void makeDF(){ auto add_vec_col1 = []( double dummy ){ vector c; c.reserve(10); for( int i = 0; i < 100; ++i){ c.push_back( 1.*i); } return c; }; auto add_vec_col2 = []( double dummy ){ vector c; c.reserve(10); for( int i = 0; i < 100; ++i){ c.push_back( 2.*i); } return c; }; ROOT::RDataFrame df(1000); auto last_node = df.Define("dummy", "1."); last_node.Define("val1", add_vec_col1, {"dummy"}) .Define("val2", add_vec_col2, {"dummy"}) .Snapshot("test","test.root"); } using namespace ROOT::VecOps; template class SUMRVEC : public ROOT::Detail::RDF::RActionImpl> { public : const int NBSLOTS = N; using Result_t = T; std::shared_ptr fResultSum; std::vector< Result_t > fSumsPerSlot; SUMRVEC(){ std::cout<<"Constructor"<( myVec); } SUMRVEC( SUMRVEC &&)= default; SUMRVEC( const SUMRVEC &) = delete; void Exec(unsigned int slot, const T &vs) { std::cout<<"EXEC"< GetResultPtr() const { std::cout<<"ResultPtr"<, 100>(); std::cout<<"BOOKIT"<>(std::move(sumWCols), {"val1"} ).GetValue(); // df.Count(); std::cout<<"LOOPING"<