@@ -613,11 +613,13 @@ void GPURecoWorkflowSpec::run(ProcessingContext& pc)
613613 auto lockDecodeInput = std::make_unique<std::lock_guard<std::mutex>>(mPipeline ->mutexDecodeInput );
614614
615615 GRPGeomHelper::instance ().checkUpdates (pc);
616- if (mSpecConfig .runITSTracking && pc.inputs ().getPos (" itsTGeo" ) >= 0 ) {
617- pc.inputs ().get <o2::its::GeometryTGeo*>(" itsTGeo" );
618- }
619- if (GRPGeomHelper::instance ().getGRPECS ()->isDetReadOut (o2::detectors::DetID::TPC) && mConfParam ->tpcTriggeredMode ^ !GRPGeomHelper::instance ().getGRPECS ()->isDetContinuousReadOut (o2::detectors::DetID::TPC)) {
620- LOG (fatal) << " configKeyValue tpcTriggeredMode does not match GRP isDetContinuousReadOut(TPC) setting" ;
616+ if (mSpecConfig .enableDoublePipeline != 2 ) {
617+ if (mSpecConfig .runITSTracking && pc.inputs ().getPos (" itsTGeo" ) >= 0 ) {
618+ pc.inputs ().get <o2::its::GeometryTGeo*>(" itsTGeo" );
619+ }
620+ if (GRPGeomHelper::instance ().getGRPECS ()->isDetReadOut (o2::detectors::DetID::TPC) && mConfParam ->tpcTriggeredMode ^ !GRPGeomHelper::instance ().getGRPECS ()->isDetContinuousReadOut (o2::detectors::DetID::TPC)) {
621+ LOG (fatal) << " configKeyValue tpcTriggeredMode does not match GRP isDetContinuousReadOut(TPC) setting" ;
622+ }
621623 }
622624
623625 GPUTrackingInOutPointers ptrs;
@@ -630,23 +632,25 @@ void GPURecoWorkflowSpec::run(ProcessingContext& pc)
630632 mTFSettings ->hasNHBFPerTF = 1 ;
631633 mTFSettings ->nHBFPerTF = mConfParam ->overrideNHbfPerTF ? mConfParam ->overrideNHbfPerTF : GRPGeomHelper::instance ().getGRPECS ()->getNHBFPerTF ();
632634 mTFSettings ->hasRunStartOrbit = 0 ;
633- if (mVerbosity ) {
634- LOG (info) << " TF firstTForbit " << mTFSettings ->tfStartOrbit << " nHBF " << mTFSettings ->nHBFPerTF << " runStartOrbit " << mTFSettings ->runStartOrbit << " simStartOrbit " << mTFSettings ->simStartOrbit ;
635- }
636635 ptrs.settingsTF = mTFSettings .get ();
637636
638- if (mConfParam ->checkFirstTfOrbit ) {
639- static uint32_t lastFirstTFOrbit = -1 ;
640- static uint32_t lastTFCounter = -1 ;
641- if (lastFirstTFOrbit != -1 && lastTFCounter != -1 ) {
642- int32_t diffOrbit = tinfo.firstTForbit - lastFirstTFOrbit;
643- int32_t diffCounter = tinfo.tfCounter - lastTFCounter;
644- if (diffOrbit != diffCounter * mTFSettings ->nHBFPerTF ) {
645- LOG (error) << " Time frame has mismatching firstTfOrbit - Last orbit/counter: " << lastFirstTFOrbit << " " << lastTFCounter << " - Current: " << tinfo.firstTForbit << " " << tinfo.tfCounter ;
637+ if (mSpecConfig .enableDoublePipeline != 2 ) {
638+ if (mVerbosity ) {
639+ LOG (info) << " TF firstTForbit " << mTFSettings ->tfStartOrbit << " nHBF " << mTFSettings ->nHBFPerTF << " runStartOrbit " << mTFSettings ->runStartOrbit << " simStartOrbit " << mTFSettings ->simStartOrbit ;
640+ }
641+ if (mConfParam ->checkFirstTfOrbit ) {
642+ static uint32_t lastFirstTFOrbit = -1 ;
643+ static uint32_t lastTFCounter = -1 ;
644+ if (lastFirstTFOrbit != -1 && lastTFCounter != -1 ) {
645+ int32_t diffOrbit = tinfo.firstTForbit - lastFirstTFOrbit;
646+ int32_t diffCounter = tinfo.tfCounter - lastTFCounter;
647+ if (diffOrbit != diffCounter * mTFSettings ->nHBFPerTF ) {
648+ LOG (error) << " Time frame has mismatching firstTfOrbit - Last orbit/counter: " << lastFirstTFOrbit << " " << lastTFCounter << " - Current: " << tinfo.firstTForbit << " " << tinfo.tfCounter ;
649+ }
646650 }
651+ lastFirstTFOrbit = tinfo.firstTForbit ;
652+ lastTFCounter = tinfo.tfCounter ;
647653 }
648- lastFirstTFOrbit = tinfo.firstTForbit ;
649- lastTFCounter = tinfo.tfCounter ;
650654 }
651655
652656 o2::globaltracking::RecoContainer inputTracksTRD;
@@ -1142,12 +1146,12 @@ Inputs GPURecoWorkflowSpec::inputs()
11421146 } else if (mSpecConfig .enableDoublePipeline == 1 ) {
11431147 inputs.emplace_back (" pipelineprepare" , gDataOriginGPU , " PIPELINEPREPARE" , 0 , Lifetime::Timeframe);
11441148 }
1145- if (mSpecConfig .outputTracks || mSpecConfig .caClusterer ) {
1149+ if (mSpecConfig .enableDoublePipeline != 2 && ( mSpecConfig . outputTracks || mSpecConfig .caClusterer ) ) {
11461150 // calibration objects for TPC clusterization
11471151 inputs.emplace_back (" tpcgain" , gDataOriginTPC , " PADGAINFULL" , 0 , Lifetime::Condition, ccdbParamSpec (o2::tpc::CDBTypeMap.at (o2::tpc::CDBType::CalPadGainFull)));
11481152 inputs.emplace_back (" tpcaltrosync" , gDataOriginTPC , " ALTROSYNCSIGNAL" , 0 , Lifetime::Condition, ccdbParamSpec (o2::tpc::CDBTypeMap.at (o2::tpc::CDBType::AltroSyncSignal)));
11491153 }
1150- if (mSpecConfig .outputTracks ) {
1154+ if (mSpecConfig .enableDoublePipeline != 2 && mSpecConfig . outputTracks ) {
11511155 // calibration objects for TPC tracking
11521156 const auto mapSources = mSpecConfig .tpcDeadMapSources ;
11531157 if (mapSources != 0 ) {
@@ -1217,15 +1221,17 @@ Inputs GPURecoWorkflowSpec::inputs()
12171221 } else if (mSpecConfig .itsTriggerType == 2 ) {
12181222 inputs.emplace_back (" phystrig" , " TRD" , " TRKTRGRD" , 0 , Lifetime::Timeframe);
12191223 }
1220- if (mSpecConfig .isITS3 ) {
1221- inputs.emplace_back (" cldict" , " IT3" , " CLUSDICT" , 0 , Lifetime::Condition, ccdbParamSpec (" IT3/Calib/ClusterDictionary" ));
1222- inputs.emplace_back (" alppar" , " ITS" , " ALPIDEPARAM" , 0 , Lifetime::Condition, ccdbParamSpec (" ITS/Config/AlpideParam" ));
1223- } else {
1224- inputs.emplace_back (" itscldict" , " ITS" , " CLUSDICT" , 0 , Lifetime::Condition, ccdbParamSpec (" ITS/Calib/ClusterDictionary" ));
1225- inputs.emplace_back (" itsalppar" , " ITS" , " ALPIDEPARAM" , 0 , Lifetime::Condition, ccdbParamSpec (" ITS/Config/AlpideParam" ));
1226- }
1227- if (mSpecConfig .itsOverrBeamEst ) {
1228- inputs.emplace_back (" meanvtx" , " GLO" , " MEANVERTEX" , 0 , Lifetime::Condition, ccdbParamSpec (" GLO/Calib/MeanVertex" , {}, 1 ));
1224+ if (mSpecConfig .enableDoublePipeline != 2 ) {
1225+ if (mSpecConfig .isITS3 ) {
1226+ inputs.emplace_back (" cldict" , " IT3" , " CLUSDICT" , 0 , Lifetime::Condition, ccdbParamSpec (" IT3/Calib/ClusterDictionary" ));
1227+ inputs.emplace_back (" alppar" , " ITS" , " ALPIDEPARAM" , 0 , Lifetime::Condition, ccdbParamSpec (" ITS/Config/AlpideParam" ));
1228+ } else {
1229+ inputs.emplace_back (" itscldict" , " ITS" , " CLUSDICT" , 0 , Lifetime::Condition, ccdbParamSpec (" ITS/Calib/ClusterDictionary" ));
1230+ inputs.emplace_back (" itsalppar" , " ITS" , " ALPIDEPARAM" , 0 , Lifetime::Condition, ccdbParamSpec (" ITS/Config/AlpideParam" ));
1231+ }
1232+ if (mSpecConfig .itsOverrBeamEst ) {
1233+ inputs.emplace_back (" meanvtx" , " GLO" , " MEANVERTEX" , 0 , Lifetime::Condition, ccdbParamSpec (" GLO/Calib/MeanVertex" , {}, 1 ));
1234+ }
12291235 }
12301236 if (mSpecConfig .processMC ) {
12311237 inputs.emplace_back (" itsmclabels" , " ITS" , " CLUSTERSMCTR" , 0 , Lifetime::Timeframe);
0 commit comments