diff --git a/Common/Tools/StandardCCDBLoader.h b/Common/Tools/StandardCCDBLoader.h index 058342ce527..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; @@ -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); diff --git a/Common/Tools/TrackPropagationModule.h b/Common/Tools/TrackPropagationModule.h index c49441fe311..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 @@ -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,6 +301,7 @@ 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()); @@ -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) {