@@ -28,49 +28,72 @@ void TRDTrackletReader::init(InitContext& ic)
2828{
2929 // get the option from the init context
3030 LOG (INFO) << " Init TRD tracklet reader!" ;
31- mInFileName = ic.options ().get <std::string>(" trd-tracklet-infile" );
32- mInTreeName = ic.options ().get <std::string>(" treename" );
33- connectTree (mInFileName );
31+ mInFileNameTrklt = ic.options ().get <std::string>(" trd-tracklet-infile" );
32+ mInTreeNameTrklt = ic.options ().get <std::string>(" treename" );
33+ connectTree ();
34+ if (mUseTrackletTransform ) {
35+ connectTreeCTracklet ();
36+ }
37+ }
38+
39+ void TRDTrackletReader::connectTreeCTracklet ()
40+ {
41+ mTreeCTrklt .reset (nullptr ); // in case it was already loaded
42+ mFileCTrklt .reset (TFile::Open (" trdcalibratedtracklets.root" ));
43+ assert (mFileCTrklt && !mFileCTrklt ->IsZombie ());
44+ mTreeCTrklt .reset ((TTree*)mFileCTrklt ->Get (" ctracklets" ));
45+ assert (mTreeCTrklt );
46+ mTreeCTrklt ->SetBranchAddress (" CTracklets" , &mTrackletsCalPtr );
47+ LOG (INFO) << " Loaded tree from trdcalibratedtracklets.root with " << mTreeCTrklt ->GetEntries () << " entries" ;
3448}
3549
36- void TRDTrackletReader::connectTree (const std::string& filename )
50+ void TRDTrackletReader::connectTree ()
3751{
38- mTree .reset (nullptr ); // in case it was already loaded
39- mFile .reset (TFile::Open (filename .c_str ()));
40- assert (mFile && !mFile ->IsZombie ());
41- mTree .reset ((TTree*)mFile ->Get (mInTreeName .c_str ()));
42- assert (mTree );
43- mTree ->SetBranchAddress (" Tracklet" , &mTrackletsPtr );
44- mTree ->SetBranchAddress (" TrackTrg" , &mTriggerRecordsPtr );
52+ mTreeTrklt .reset (nullptr ); // in case it was already loaded
53+ mFileTrklt .reset (TFile::Open (mInFileNameTrklt .c_str ()));
54+ assert (mFileTrklt && !mFileTrklt ->IsZombie ());
55+ mTreeTrklt .reset ((TTree*)mFileTrklt ->Get (mInTreeNameTrklt .c_str ()));
56+ assert (mTreeTrklt );
57+ mTreeTrklt ->SetBranchAddress (" Tracklet" , &mTrackletsPtr );
58+ mTreeTrklt ->SetBranchAddress (" TrackTrg" , &mTriggerRecordsPtr );
4559 if (mUseMC ) {
4660 LOG (FATAL) << " MC information not yet included for TRD tracklets" ;
4761 }
48- LOG (INFO) << " Loaded tree from " << filename << " with " << mTree ->GetEntries () << " entries" ;
62+ LOG (INFO) << " Loaded tree from " << mInFileNameTrklt << " with " << mTreeTrklt ->GetEntries () << " entries" ;
4963}
5064
5165void TRDTrackletReader::run (ProcessingContext& pc)
5266{
53- auto currEntry = mTree ->GetReadEntry () + 1 ;
54- assert (currEntry < mTree ->GetEntries ()); // this should not happen
55- mTree ->GetEntry (currEntry);
67+ auto currEntry = mTreeTrklt ->GetReadEntry () + 1 ;
68+ assert (currEntry < mTreeTrklt ->GetEntries ()); // this should not happen
69+ mTreeTrklt ->GetEntry (currEntry);
5670 LOG (INFO) << " Pushing " << mTriggerRecords .size () << " TRD trigger records at entry " << currEntry;
57- LOG (INFO) << " Pushing " << mTracklets .size () << " TRD tracklets for these trigger records" ;
58-
71+ LOG (INFO) << " Pushing " << mTracklets .size () << " uncalibrated TRD tracklets for these trigger records" ;
5972 pc.outputs ().snapshot (Output{o2::header::gDataOriginTRD , " TRACKLETS" , 0 , Lifetime::Timeframe}, mTracklets );
73+ if (mUseTrackletTransform ) {
74+ assert (mTreeTrklt ->GetEntries () == mTreeCTrklt ->GetEntries ());
75+ mTreeCTrklt ->GetEntry (currEntry);
76+ LOG (INFO) << " Pushing " << mTrackletsCal .size () << " calibrated TRD tracklets for these trigger records" ;
77+ pc.outputs ().snapshot (Output{o2::header::gDataOriginTRD , " CTRACKLETS" , 0 , Lifetime::Timeframe}, mTrackletsCal );
78+ }
79+
6080 pc.outputs ().snapshot (Output{o2::header::gDataOriginTRD , " TRKTRGRD" , 0 , Lifetime::Timeframe}, mTriggerRecords );
6181 if (mUseMC ) {
6282 LOG (FATAL) << " MC information not yet included for TRD tracklets" ;
6383 }
6484
65- if (mTree ->GetReadEntry () + 1 >= mTree ->GetEntries ()) {
85+ if (mTreeTrklt ->GetReadEntry () + 1 >= mTreeTrklt ->GetEntries ()) {
6686 pc.services ().get <ControlService>().endOfStream ();
6787 pc.services ().get <ControlService>().readyToQuit (QuitRequest::Me);
6888 }
6989}
7090
71- DataProcessorSpec getTRDTrackletReaderSpec (bool useMC)
91+ DataProcessorSpec getTRDTrackletReaderSpec (bool useMC, bool useCalibratedTracklets )
7292{
7393 std::vector<OutputSpec> outputs;
94+ if (useCalibratedTracklets) {
95+ outputs.emplace_back (o2::header::gDataOriginTRD , " CTRACKLETS" , 0 , Lifetime::Timeframe);
96+ }
7497 outputs.emplace_back (o2::header::gDataOriginTRD , " TRACKLETS" , 0 , Lifetime::Timeframe);
7598 outputs.emplace_back (o2::header::gDataOriginTRD , " TRKTRGRD" , 0 , Lifetime::Timeframe);
7699 if (useMC) {
@@ -81,7 +104,7 @@ DataProcessorSpec getTRDTrackletReaderSpec(bool useMC)
81104 " TRDTrackletReader" ,
82105 Inputs{},
83106 outputs,
84- AlgorithmSpec{adaptFromTask<TRDTrackletReader>(useMC)},
107+ AlgorithmSpec{adaptFromTask<TRDTrackletReader>(useMC, useCalibratedTracklets )},
85108 Options{
86109 {" trd-tracklet-infile" , VariantType::String, " trdtracklets.root" , {" Name of the input file" }},
87110 {" treename" , VariantType::String, " o2sim" , {" Name of top-level TTree" }},
0 commit comments