Skip to content

Commit 5c16175

Browse files
committed
GPU Workflow: Do not do calib requests / updates in gpu-reconstruction-prepare
1 parent 21bb7f4 commit 5c16175

File tree

2 files changed

+36
-30
lines changed

2 files changed

+36
-30
lines changed

GPU/Workflow/src/GPUWorkflowPipeline.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ int32_t GPURecoWorkflowSpec::handlePipeline(ProcessingContext& pc, GPUTrackingIn
177177
ptrs.tpcZS = &tpcZS;
178178
}
179179
if (mSpecConfig.enableDoublePipeline == 2) {
180-
auto prepareBuffer = pc.outputs().make<DataAllocator::UninitializedVector<char>>(Output{gDataOriginGPU, "PIPELINEPREPARE", 0}, 0u);
180+
auto prepareDummyMessage = pc.outputs().make<DataAllocator::UninitializedVector<char>>(Output{gDataOriginGPU, "PIPELINEPREPARE", 0}, 0u);
181181

182182
size_t ptrsTotal = 0;
183183
const void* firstPtr = nullptr;

GPU/Workflow/src/GPUWorkflowSpec.cxx

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)