1 #include "otsdaq-core/MonicelliInterface/MonicelliFileReader.h"
3 #include "otsdaq-core/MonicelliInterface/Event.h"
4 #include "otsdaq-core/MonicelliInterface/EventHeader.h"
5 #include "otsdaq-core/MonicelliInterface/Geometry.h"
14 MonicelliFileReader::MonicelliFileReader(
void) :
17 theApp_ (
"MonicelliFileReaderApplication",&argv,argc),
20 inputGeometryTree_(0),
22 inputEventHeader_ (0),
23 theEvent_ (new monicelli::
Event()),
24 theEventHeader_ (new monicelli::EventHeader()),
25 theGeometry_ (new monicelli::Geometry()),
32 MonicelliFileReader::~MonicelliFileReader(
void)
36 delete theEventHeader_;
40 bool MonicelliFileReader::openGeoFile(std::string fileName)
42 inputGeometryTree_ = 0;
44 std::cout << __COUT_HDR_FL__ << __PRETTY_FUNCTION__ <<
"Opening file " << fileName << std::endl;
45 TFile* theGeoFile_ = TFile::Open(fileName.c_str(),
"read");
46 if( !theGeoFile_->IsOpen() )
48 std::cout << __COUT_HDR_FL__ << __PRETTY_FUNCTION__ <<
"Can't open file " << fileName << std::endl;
52 const std::string geometryTreeName =
"Geometry";
53 if ( (TTree*)theGeoFile_->Get(geometryTreeName.c_str()) )
55 inputGeometryTree_ = (TTree*)theGeoFile_->Get(geometryTreeName.c_str());
56 inputGeometryTree_->SetBranchAddress(
"GeometryBranch", &theGeometry_);
57 inputGeometryTree_->GetEntry(0);
59 return (inputGeometryTree_ != 0);
63 bool MonicelliFileReader::openEventsFile(std::string fileName)
66 inputEventHeader_ = 0;
69 std::cout << __COUT_HDR_FL__ << __PRETTY_FUNCTION__ <<
"Opening file " << fileName << std::endl;
70 TFile* theEventsFile_ = TFile::Open(fileName.c_str(),
"read");
71 if( !theEventsFile_->IsOpen() )
73 std::cout << __COUT_HDR_FL__ << __PRETTY_FUNCTION__ <<
"Can't open file " << fileName << std::endl;
77 std::string eventsTreeName = fileName +
"Events";
78 std::string eventsHeaderName = fileName +
"Header";
79 if( (inputEventTree_ = (TTree*)theEventsFile_->Get(eventsTreeName.c_str())) )
81 inputEventTree_->SetBranchAddress(
"EventBranch", &theEvent_);
82 inputEventTree_->GetEntry(0);
84 if( (inputEventHeader_ = (TTree*)theEventsFile_->Get(eventsHeaderName.c_str())) )
86 inputEventHeader_->SetBranchAddress(
"EventHeader", &theEventHeader_);
87 inputEventHeader_->GetEntry(0);
91 if( !inputEventTree_ )
93 std::cout << __COUT_HDR_FL__ << __PRETTY_FUNCTION__ <<
"Can't find any tree in " << fileName << std::endl;
100 void MonicelliFileReader::closeGeoFile(
void)
104 theGeoFile_->Close();
110 void MonicelliFileReader::closeEventsFile(
void)
114 theEventsFile_->Close();
120 unsigned int MonicelliFileReader::getNumberOfEvents(
void)
123 return inputEventTree_->GetEntries();
128 void MonicelliFileReader::readEvent(
unsigned int event)
131 inputEventTree_->GetEntry(event);
143 return theEventHeader_;