@@ -124,10 +124,11 @@ void ITSTrackingInterface::run(framework::ProcessingContext& pc)
124124 }
125125 }
126126
127+ const auto & tfInfo = pc.services ().get <o2::framework::TimingInfo>();
127128 gsl::span<const o2::itsmft::PhysTrigger> physTriggers;
128129 std::vector<o2::itsmft::PhysTrigger> fromTRD;
129130 if (mUseTriggers == 2 ) { // use TRD triggers
130- o2::InteractionRecord ir{0 , pc. services (). get <o2::framework::TimingInfo>() .firstTForbit };
131+ o2::InteractionRecord ir{0 , tfInfo .firstTForbit };
131132 auto trdTriggers = pc.inputs ().get <gsl::span<o2::trd::TriggerRecord>>(" phystrig" );
132133 for (const auto & trig : trdTriggers) {
133134 if (trig.getBCData () >= ir && trig.getNumberOfTracklets ()) {
@@ -166,6 +167,7 @@ void ITSTrackingInterface::run(framework::ProcessingContext& pc)
166167 }
167168
168169 mTracker ->setBz (o2::base::Propagator::Instance ()->getNominalBz ());
170+ mTracker ->setTimeSlice (tfInfo.timeslice );
169171
170172 for (int iLayer = 0 ; iLayer < ((mDoStaggering ) ? NLayers : 1 ); ++iLayer) {
171173 gsl::span<const unsigned char >::iterator pattIt = patterns[iLayer].begin ();
@@ -177,9 +179,8 @@ void ITSTrackingInterface::run(framework::ProcessingContext& pc)
177179 auto errorLogger = [&](const std::string& s) { LOG (error) << s; };
178180
179181 FastMultEst multEst; // mult estimator
180- const auto firstTForbit = pc.services ().get <o2::framework::TimingInfo>().firstTForbit ;
181182 o2::its::ROFMaskTable<NLayers> processMultiplictyMask{mTimeFrame ->getROFOverlapTable ()}, processUPCMask{mTimeFrame ->getROFOverlapTable ()};
182- multEst.selectROFs (rofsinput, compClusters, physTriggers, firstTForbit, mDoStaggering , mTimeFrame ->getROFOverlapTableView (), processMultiplictyMask);
183+ multEst.selectROFs (rofsinput, compClusters, physTriggers, tfInfo. firstTForbit , mDoStaggering , mTimeFrame ->getROFOverlapTableView (), processMultiplictyMask);
183184 mTimeFrame ->setMultiplicityCutMask (processMultiplictyMask);
184185 for (int iLayer = 0 ; iLayer < ((mDoStaggering ) ? NLayers : 1 ); ++iLayer) {
185186 mTimeFrame ->getROFMaskView ().print (iLayer);
@@ -272,13 +273,12 @@ void ITSTrackingInterface::run(framework::ProcessingContext& pc)
272273 // the number of ROFs does not necessarily reflect the actual ROFs
273274 // due to possible delay of other layers, however it is guaranteed to be >=0
274275 // tracks are guaranteed to be sorted here by their lower edge
275- const auto firstTForbit = pc.services ().get <o2::framework::TimingInfo>().firstTForbit ;
276276 const auto & clock = mTimeFrame ->getROFOverlapTableView ().getClock ();
277277 const auto & clockLayer = mTimeFrame ->getROFOverlapTableView ().getClockLayer ();
278278 auto setBCData = [&](auto & rofs) {
279279 for (size_t iROF{0 }; iROF < rofs.size (); ++iROF) { // set BC data
280280 auto & rof = rofs[iROF];
281- int orb = (iROF * par.getROFLengthInBC (clock) / o2::constants::lhc::LHCMaxBunches) + firstTForbit;
281+ int orb = (iROF * par.getROFLengthInBC (clock) / o2::constants::lhc::LHCMaxBunches) + tfInfo. firstTForbit ;
282282 int bc = (iROF * par.getROFLengthInBC (clock) % o2::constants::lhc::LHCMaxBunches) + par.getROFDelayInBC (clock);
283283 o2::InteractionRecord ir (bc, orb);
284284 rof.setBCData (ir);
@@ -373,15 +373,23 @@ void ITSTrackingInterface::updateTimeDependentParams(framework::ProcessingContex
373373 initialise ();
374374
375375 if (pc.services ().get <const o2::framework::DeviceSpec>().inputTimesliceId == 0 ) { // print settings only for the 1st pipeling
376- o2::its::FastMultEstConfig::Instance ().printKeyValues (true , true );
377- o2::its::VertexerParamConfig::Instance ().printKeyValues (true , true );
378- o2::its::TrackerParamConfig::Instance ().printKeyValues (true , true );
376+ // print all used settings
377+ if (o2::its::FastMultEstConfig::Instance ().isRequested ()) {
378+ o2::its::FastMultEstConfig::Instance ().printKeyValues (true , true );
379+ }
379380 const auto & vtxParams = mVertexer ->getParameters ();
381+ if (!vtxParams.empty ()) {
382+ o2::its::VertexerParamConfig::Instance ().printKeyValues (true , true );
383+ }
384+ const auto & trParams = mTracker ->getParameters ();
385+ if (!trParams.empty ()) {
386+ o2::its::TrackerParamConfig::Instance ().printKeyValues (true , true );
387+ }
388+ // quick summary
380389 for (size_t it = 0 ; it < vtxParams.size (); it++) {
381390 const auto & par = vtxParams[it];
382391 LOGP (info, " vtxIter#{} : {}" , it, par.asString ());
383392 }
384- const auto & trParams = mTracker ->getParameters ();
385393 for (size_t it = 0 ; it < trParams.size (); it++) {
386394 const auto & par = trParams[it];
387395 LOGP (info, " recoIter#{} : {}" , it, par.asString ());
@@ -396,7 +404,12 @@ void ITSTrackingInterface::updateTimeDependentParams(framework::ProcessingContex
396404 const auto & trackParams = mTracker ->getParameters ();
397405 for (int iLayer = 0 ; iLayer < NLayers; ++iLayer) {
398406 const unsigned int nROFsPerOrbit = o2::constants::lhc::LHCMaxBunches / par.getROFLengthInBC (iLayer);
399- const LayerTiming timing{.mNROFsTF = (nROFsPerOrbit * nOrbitsPerTF), .mROFLength = (uint32_t )par.getROFLengthInBC (iLayer), .mROFDelay = (uint32_t )par.getROFDelayInBC (iLayer), .mROFBias = (uint32_t )par.getROFBiasInBC (iLayer), .mROFAddTimeErr = (trackParams.empty () ? 0 : trackParams[0 ].AddTimeError [iLayer])};
407+ const LayerTiming timing{
408+ .mNROFsTF = (nROFsPerOrbit * nOrbitsPerTF),
409+ .mROFLength = (uint32_t )par.getROFLengthInBC (iLayer),
410+ .mROFDelay = (uint32_t )par.getROFDelayInBC (iLayer),
411+ .mROFBias = (uint32_t )par.getROFBiasInBC (iLayer),
412+ .mROFAddTimeErr = (trackParams.empty () ? o2::its::TrackerParamConfig::Instance ().addTimeError [iLayer] : trackParams[0 ].AddTimeError [iLayer])};
400413 rofTable.defineLayer (iLayer, timing);
401414 vtxTable.defineLayer (iLayer, timing);
402415 }
0 commit comments