#include #include #include "TTreeReaderArray.h" #include "TTreeReader.h" #include "TChain.h" struct Task { TTreeReaderArray * f; std::string m_name; void init(TTreeReader& r){ f = new TTreeReaderArray(r, m_name.c_str() ); std::cout << " inited "<< this << " with "<< f<< std::endl; } float s=0; void execute(){ if(! f->IsEmpty() ) { //std::cout << (*f)[0] << std::endl; s+=(*f)[0]; } } }; struct Loop { std::vector m_tasks; void run(TChain *chain){ TTreeReader reader(chain); std::cout << " running with "<< chain << " ntask= "<< m_tasks.size() << " nevt="<< chain->GetEntries() <init(reader); size_t n = chain->GetEntries(); //size_t n = 10; for (size_t i=0;iexecute(); } } };