@@ -37,41 +37,39 @@ RecPointReader::RecPointReader(bool useMC)
3737void RecPointReader::init (InitContext& ic)
3838{
3939 mInputFileName = ic.options ().get <std::string>(" ft0-recpoints-infile" );
40+ connectTree (mInputFileName );
4041}
4142
4243void RecPointReader::run (ProcessingContext& pc)
4344{
44- if (mFinished ) {
45- return ;
46- }
45+ auto ent = mTree ->GetReadEntry () + 1 ;
46+ assert (ent < mTree ->GetEntries ()); // this should not happen
47+ mTree ->GetEntry (ent);
48+
49+ LOG (INFO) << " FT0 RecPointReader pushes " << mRecPoints ->size () << " recpoints at entry " << ent;
50+ pc.outputs ().snapshot (Output{mOrigin , " RECPOINTS" , 0 , Lifetime::Timeframe}, *mRecPoints );
4751
48- { // load data from files
49- TFile rpFile (mInputFileName .c_str (), " read" );
50- if (rpFile.IsZombie ()) {
51- LOG (FATAL) << " Failed to open FT0 recpoints file " << mInputFileName ;
52- }
53- TTree* rpTree = (TTree*)rpFile.Get (mRecPointTreeName .c_str ());
54- if (!rpTree) {
55- LOG (FATAL) << " Failed to load FT0 recpoints tree " << mRecPointTreeName << " from " << mInputFileName ;
56- }
57- LOG (INFO) << " Loaded FT0 recpoints tree " << mRecPointTreeName << " from " << mInputFileName ;
58-
59- rpTree->SetBranchAddress (mRecPointBranchName .c_str (), &mRecPoints );
60- if (mUseMC ) {
61- LOG (WARNING) << " MC-truth is not supported for FT0 recpoints currently" ;
62- mUseMC = false ;
63- }
64-
65- rpTree->GetEntry (0 );
66- delete rpTree;
67- rpFile.Close ();
52+ if (mTree ->GetReadEntry () + 1 >= mTree ->GetEntries ()) {
53+ pc.services ().get <ControlService>().endOfStream ();
54+ pc.services ().get <ControlService>().readyToQuit (QuitRequest::Me);
6855 }
56+ }
6957
70- LOG (INFO) << " FT0 RecPointReader pushes " << mRecPoints ->size () << " recpoints" ;
71- pc.outputs ().snapshot (Output{mOrigin , " RECPOINTS" , 0 , Lifetime::Timeframe}, *mRecPoints );
58+ void RecPointReader::connectTree (const std::string& filename)
59+ {
60+ mTree .reset (nullptr ); // in case it was already loaded
61+ mFile .reset (TFile::Open (filename.c_str ()));
62+ assert (mFile && !mFile ->IsZombie ());
63+ mTree .reset ((TTree*)mFile ->Get (mRecPointTreeName .c_str ()));
64+ assert (mTree );
65+
66+ mTree ->SetBranchAddress (mRecPointBranchName .c_str (), &mRecPoints );
67+ if (mUseMC ) {
68+ LOG (WARNING) << " MC-truth is not supported for FT0 recpoints currently" ;
69+ mUseMC = false ;
70+ }
7271
73- mFinished = true ;
74- pc.services ().get <ControlService>().readyToQuit (QuitRequest::Me);
72+ LOG (INFO) << " Loaded FT0 RecPoints tree from " << filename << " with " << mTree ->GetEntries () << " entries" ;
7573}
7674
7775DataProcessorSpec getFT0RecPointReaderSpec (bool useMC)
0 commit comments