#include #include #include #include "TTree.h" #include "TFile.h" class SimTree{ public: SimTree(){}; void SetTree(TTree* tree) { fTrees.push_back(tree); for ( std::vector::iterator treeItr = fTrees.begin(); treeItr != fTrees.end(); treeItr++ ) { cout << (*treeItr)->GetName() << endl; } }; private: std::vector fTrees; }; class Reco{ public: Reco(){}; void SetFile(TFile* file) { fFile = file; fTrueTree.SetTree( (TTree*) fFile->Get("TREE_NAME") ); }; private: TFile* fFile; SimTree fTrueTree; }; class Simulation{ public: Simulation(){}; void Process() { Reco linefit; TFile* inputFile; int fileCount = 0; int fNumOfFiles = 1; while ( fileCount < fNumOfFiles ) { std::string fileName = "ROOT_FILE_WITH_TREE"; inputFile = new TFile(fileName.c_str()); linefit.SetFile(inputFile); fileCount++; } }; }; void test() { Simulation simulation; simulation.Process(); }