@@ -224,6 +224,10 @@ void AODProducerWorkflowDPL::init(InitContext& ic)
224224 mFillTracksITS = ic.options ().get <int >(" fill-tracks-its" );
225225 mFillTracksTPC = ic.options ().get <int >(" fill-tracks-tpc" );
226226 mFillTracksITSTPC = ic.options ().get <int >(" fill-tracks-its-tpc" );
227+ mTFNumber = ic.options ().get <int >(" aod-timeframe-id" );
228+ if (mTFNumber == -1 ) {
229+ LOG (INFO) << " TFNumber will be obtained from CCDB" ;
230+ }
227231 LOG (INFO) << " track filling flags set to: "
228232 << " \n ITS = " << mFillTracksITS << " \n TPC = " << mFillTracksTPC << " \n ITSTPC = " << mFillTracksITSTPC ;
229233
@@ -468,8 +472,8 @@ void AODProducerWorkflowDPL::run(ProcessingContext& pc)
468472 auto & cov = vertex.getCov ();
469473 auto & timeStamp = vertex.getTimeStamp ();
470474 Double_t tsTimeStamp = timeStamp.getTimeStamp () * 1E3 ; // mus to ns
471- // FIXME :
472- // should use IRMin and IRMax for globalBC calculation
475+ // TODO :
476+ // use filling scheme to calculate most prob. BC
473477 uint64_t globalBC = std::round (tsTimeStamp / o2::constants::lhc::LHCBunchSpacingNS);
474478
475479 LOG (DEBUG) << globalBC << " " << tsTimeStamp;
@@ -478,6 +482,8 @@ void AODProducerWorkflowDPL::run(ProcessingContext& pc)
478482 firstVtxGlBC = globalBC;
479483 }
480484
485+ // collision timestamp in ns wrt the beginning of collision BC
486+ tsTimeStamp = globalBC * o2::constants::lhc::LHCBunchSpacingNS - tsTimeStamp;
481487 int BCid = mGlobBC2BCID .at (globalBC);
482488 // TODO:
483489 // get real collision time mask
@@ -495,8 +501,8 @@ void AODProducerWorkflowDPL::run(ProcessingContext& pc)
495501 cov[5 ],
496502 vertex.getChi2 (),
497503 vertex.getNContributors (),
498- timeStamp. getTimeStamp () ,
499- timeStamp.getTimeStampError (),
504+ tsTimeStamp ,
505+ timeStamp.getTimeStampError () * 1E3 ,
500506 collisionTimeMask);
501507
502508 auto trackRef = primVer2TRefs[collisionID];
@@ -610,7 +616,11 @@ void AODProducerWorkflowDPL::run(ProcessingContext& pc)
610616 }
611617 }
612618
613- timeFrameNumberBuilder = getTFNumber (firstVtxGlBC, runNumber);
619+ if (mTFNumber == -1 ) {
620+ timeFrameNumberBuilder = getTFNumber (firstVtxGlBC, runNumber);
621+ } else {
622+ timeFrameNumberBuilder = mTFNumber ;
623+ }
614624
615625 mTimer .Stop ();
616626}
@@ -663,7 +673,8 @@ DataProcessorSpec getAODProducerWorkflowSpec()
663673 Options{
664674 ConfigParamSpec{" fill-tracks-its" , VariantType::Int, 1 , {" Fill ITS tracks into tracks table" }},
665675 ConfigParamSpec{" fill-tracks-tpc" , VariantType::Int, 1 , {" Fill TPC tracks into tracks table" }},
666- ConfigParamSpec{" fill-tracks-its-tpc" , VariantType::Int, 1 , {" Fill ITS-TPC tracks into tracks table" }}}};
676+ ConfigParamSpec{" fill-tracks-its-tpc" , VariantType::Int, 1 , {" Fill ITS-TPC tracks into tracks table" }},
677+ ConfigParamSpec{" aod-timeframe-id" , VariantType::Int, -1 , {" Set timeframe number" }}}};
667678}
668679
669680} // namespace o2::aodproducer
0 commit comments