From b29a66cfb05ce2b305e38c9c50ccbd6fac543979 Mon Sep 17 00:00:00 2001 From: SCHOTTER Romain <47983209+romainschotter@users.noreply.github.com> Date: Fri, 24 Jul 2026 17:55:05 +0200 Subject: [PATCH 1/5] Force the update of the LUT when changing runs --- Common/Tools/StandardCCDBLoader.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Common/Tools/StandardCCDBLoader.h b/Common/Tools/StandardCCDBLoader.h index 058342ce527..9c633cbd1f6 100644 --- a/Common/Tools/StandardCCDBLoader.h +++ b/Common/Tools/StandardCCDBLoader.h @@ -105,12 +105,8 @@ class StandardCCDBLoader } // load matLUT for this timestamp - if (!lut) { - LOG(info) << "Loading material look-up table for timestamp: " << currentRunNumber; - lut = o2::base::MatLayerCylSet::rectifyPtrFromFile(ccdb->template getForRun(cGroup.lutPath.value, currentRunNumber)); - } else { - LOG(info) << "Material look-up table already in place. Not reloading."; - } + LOG(info) << "Loading material look-up table for timestamp: " << currentRunNumber; + lut = o2::base::MatLayerCylSet::rectifyPtrFromFile(ccdb->template getForRun(cGroup.lutPath.value, currentRunNumber)); LOG(info) << "Setting global propagator material propagation LUT"; o2::base::Propagator::Instance()->setMatLUT(lut); From 3dbecd7193e4cb7ad4b16b78ef9ec81336c67e14 Mon Sep 17 00:00:00 2001 From: SCHOTTER Romain <47983209+romainschotter@users.noreply.github.com> Date: Fri, 24 Jul 2026 17:57:47 +0200 Subject: [PATCH 2/5] Add QA histogram --- Common/Tools/TrackPropagationModule.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Common/Tools/TrackPropagationModule.h b/Common/Tools/TrackPropagationModule.h index c49441fe311..76fd0286717 100644 --- a/Common/Tools/TrackPropagationModule.h +++ b/Common/Tools/TrackPropagationModule.h @@ -208,6 +208,11 @@ class TrackPropagationModule registry.template add("hDCAxyVsPtMC", "hDCAxyVsPtMC", o2::framework::HistType::kTH2F, {axisBinsDCA, cGroup.axisPtQA}); registry.template add("hDCAzVsPtRec", "hDCAzVsPtRec", o2::framework::HistType::kTH2F, {axisBinsDCA, cGroup.axisPtQA}); registry.template add("hDCAzVsPtMC", "hDCAzVsPtMC", o2::framework::HistType::kTH2F, {axisBinsDCA, cGroup.axisPtQA}); + + registry.template add("hPropagation", "hPropagation", o2::framework::HistType::kTH1D, {{3, 0.f, 3.f}}); + registry.template get(HIST("hPropagation"))->GetXaxis()->SetBinLabel(1, "All"); + registry.template get(HIST("hPropagation"))->GetXaxis()->SetBinLabel(2, Form("TracksIU, x < %g cm", cGroup.minPropagationRadius.value)); + registry.template get(HIST("hPropagation"))->GetXaxis()->SetBinLabel(3, "Propagation OK"); } template @@ -279,6 +284,7 @@ class TrackPropagationModule // std::array trackPxPyPzTuned = {0.0, 0.0, 0.0}; double q2OverPtNew = -9999.; // Only propagate tracks which have passed the innermost wall of the TPC (e.g. skipping loopers etc). Others fill unpropagated. + registry.fill(HIST("hPropagation"), 0.5); if (track.trackType() == o2::aod::track::TrackIU && track.x() < cGroup.minPropagationRadius.value) { if (fillTracksCov) { if constexpr (isMc) { // checking MC and fillCovMat block begins @@ -295,7 +301,8 @@ class TrackPropagationModule } // MC and fillCovMat block ends } bool isPropagationOK = true; - + registry.fill(HIST("hPropagation"), 1.5); + if (track.has_collision()) { auto const& collision = collisions.rawIteratorAt(track.collisionId()); if (fillTracksCov) { @@ -316,6 +323,7 @@ class TrackPropagationModule } if (isPropagationOK) { trackType = o2::aod::track::Track; + registry.fill(HIST("hPropagation"), 2.5); } // filling some QA histograms for track tuner test purpose if (fillTracksCov) { From 1e05c7e963c4e87d4b13bbcaf18175bb0018d6ee Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Wed, 19 Aug 2026 12:09:15 +0200 Subject: [PATCH 3/5] Please consider the following formatting changes to #17197 (#17198) --- Common/Tools/TrackPropagationModule.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/Tools/TrackPropagationModule.h b/Common/Tools/TrackPropagationModule.h index 76fd0286717..009fc8a4489 100644 --- a/Common/Tools/TrackPropagationModule.h +++ b/Common/Tools/TrackPropagationModule.h @@ -302,7 +302,7 @@ class TrackPropagationModule } bool isPropagationOK = true; registry.fill(HIST("hPropagation"), 1.5); - + if (track.has_collision()) { auto const& collision = collisions.rawIteratorAt(track.collisionId()); if (fillTracksCov) { From 454ae0c9aff412bf6fb80c9dc12ffb980893b00a Mon Sep 17 00:00:00 2001 From: SCHOTTER Romain <47983209+romainschotter@users.noreply.github.com> Date: Wed, 19 Aug 2026 12:31:46 +0200 Subject: [PATCH 4/5] Fix O2Linter error --- Common/Tools/TrackPropagationModule.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/Tools/TrackPropagationModule.h b/Common/Tools/TrackPropagationModule.h index 009fc8a4489..2fa7ea8a10b 100644 --- a/Common/Tools/TrackPropagationModule.h +++ b/Common/Tools/TrackPropagationModule.h @@ -177,7 +177,7 @@ class TrackPropagationModule /// to understand whether the TrackTuner::getDcaGraphs function can be called here (input path from string/configurables) /// or inside the process function, to "auto-detect" the input file based on the run number const auto& workflows = initContext.services().template get(); - for (const o2::framework::DeviceSpec& device : workflows.devices) { /// loop over devices + for (o2::framework::DeviceSpec const& device : workflows.devices) { /// loop over devices if (device.name == "propagation-service") { // loop over the options // to find the value of TrackTuner::autoDetectDcaCalib From f650de20a8d0ebc657ea55e3e1d2c3600433ec93 Mon Sep 17 00:00:00 2001 From: SCHOTTER Romain <47983209+romainschotter@users.noreply.github.com> Date: Wed, 19 Aug 2026 13:01:03 +0200 Subject: [PATCH 5/5] Address cpp code check errors in StandardCCDBLoader --- Common/Tools/StandardCCDBLoader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/Tools/StandardCCDBLoader.h b/Common/Tools/StandardCCDBLoader.h index 9c633cbd1f6..0b9f221b9f3 100644 --- a/Common/Tools/StandardCCDBLoader.h +++ b/Common/Tools/StandardCCDBLoader.h @@ -90,7 +90,7 @@ class StandardCCDBLoader } else { LOGF(info, "GRPMagField object returned nullptr, will attempt alternate method"); - o2::parameters::GRPObject* grpo = 0x0; + o2::parameters::GRPObject* grpo = nullptr; grpo = ccdb->template getForRun(cGroup.grpPath.value, currentRunNumber); if (!grpo) { LOG(fatal) << "Alternate path failed! Got nullptr from CCDB for path " << cGroup.grpPath << " of object GRPObject for run " << currentRunNumber;