#include "TChain.h" #include "TTreeReader.h" #include "TTreeReaderValue.h" #include "TTreeReaderArray.h" #include using namespace std; enum EEntryStatus { kEntryValid = 0, ///< data read okay kEntryNotLoaded, ///< no entry has been loaded yet kEntryNoTree, ///< the tree does not exist kEntryNotFound, ///< the tree entry number does not exist kEntryChainSetupError, ///< problem in accessing a chain element, e.g. file without the tree kEntryChainFileError, ///< problem in opening a chain's file kEntryDictionaryError, ///< problem reading dictionary info from tree kEntryLast, ///< last entry was reached }; void mainprogram2(){ TChain* inputdata; TTreeReader* inputfilereader; TTreeReaderValue* rdrrunp; TTreeReaderValue* rdrntankp; inputdata = new TChain("tankflux"); inputdata->Add("fluxesandtables/annie_tank_flux.*.root"); inputdata->LoadTree(0); inputfilereader = new TTreeReader(inputdata); Int_t numinputevents = inputfilereader->GetEntries(true); cout<SetEntry(0); cout<<"entrystat: "<Next(); if(nextsuccess){cout<<"success"< rdrrun((*inputfilereader), "run"); TTreeReaderValue rdrntank((*inputfilereader), "ntank"); if(rdrrun.GetSetupStatus()<0) cout<Next()){ cout<<" END OF INPUT FILE!!!!!!"<SetEntry(0); } if (inputfilereader->GetEntryStatus() == TTreeReader::kEntryValid) { cout << "Loaded entry " << inputfilereader->GetCurrentEntry() << '\n'; } else { switch (inputfilereader->GetEntryStatus()) { kEntryValid: // Handled above. break; kEntryNotLoaded: cerr << "Error: TTreeReader has not loaded any data yet!\n"; break; kEntryNoTree: cerr << "Error: TTreeReader cannot find a tree names \"MyTree\"!\n"; break; kEntryNotFound: // Can't really happen as TTreeReader::Next() knows when to stop. cerr << "Error: The entry number doe not exist\n"; break; kEntryChainSetupError: cerr << "Error: TTreeReader cannot access a chain element, e.g. file without the tree\n"; break; kEntryChainFileError: cerr << "Error: TTreeReader cannot open a chain element, e.g. missing file\n"; break; kEntryDictionaryError: cerr << "Error: TTreeReader cannot find the dictionary for some data\n"; break; } //return; } cout<<"getting entry"<