From ddd4fcc923a789f54d985178acee24712bd79e5d Mon Sep 17 00:00:00 2001 From: Fabrizio Grosa Date: Tue, 7 Jul 2026 16:06:16 +0200 Subject: [PATCH] Skip track propagation when not needed to improve CPU --- .../derivedDataCreatorD0Calibration.cxx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/DPG/Tasks/AOTTrack/derivedDataCreatorD0Calibration.cxx b/DPG/Tasks/AOTTrack/derivedDataCreatorD0Calibration.cxx index 0e58bbd8b3a..4e41c0e44c6 100644 --- a/DPG/Tasks/AOTTrack/derivedDataCreatorD0Calibration.cxx +++ b/DPG/Tasks/AOTTrack/derivedDataCreatorD0Calibration.cxx @@ -117,9 +117,9 @@ struct DerivedDataCreatorD0Calibration { std::string prefix = "ml"; } cfgMl; - using TracksWCovExtraPid = soa::Join; - using TracksWCovExtraTmoPid = soa::Join; - using TracksWCovExtraTmoPidAndQa = soa::Join; + using TracksWCovExtraPid = soa::Join; + using TracksWCovExtraTmoPid = soa::Join; + using TracksWCovExtraTmoPidAndQa = soa::Join; using CollisionsWEvSel = soa::Join; using TrackMeanOccs = soa::Join; @@ -233,8 +233,10 @@ struct DerivedDataCreatorD0Calibration { continue; } auto trackParCovPos = getTrackParCov(trackPos); - o2::dataformats::DCA dcaPos; - trackParCovPos.propagateToDCA(primaryVertex, bz, &dcaPos); + o2::dataformats::DCA dcaPos(trackPos.dcaXY(), trackPos.dcaZ(), trackPos.cYY(), trackPos.cZY(), trackPos.cZZ()); + if (trackPos.collisionId() != collision.globalIndex()) { + trackParCovPos.propagateToDCA(primaryVertex, bz, &dcaPos); + } if (!isSelectedTrackDca(cfgTrackCuts.binsPt, cfgTrackCuts.limitsDca, trackParCovPos.getPt(), dcaPos.getY(), dcaPos.getZ())) { continue; } @@ -269,8 +271,10 @@ struct DerivedDataCreatorD0Calibration { continue; } auto trackParCovNeg = getTrackParCov(trackNeg); - o2::dataformats::DCA dcaNeg; - trackParCovNeg.propagateToDCA(primaryVertex, bz, &dcaNeg); + o2::dataformats::DCA dcaNeg(trackNeg.dcaXY(), trackNeg.dcaZ(), trackNeg.cYY(), trackNeg.cZY(), trackNeg.cZZ()); + if (trackNeg.collisionId() != collision.globalIndex()) { + trackParCovNeg.propagateToDCA(primaryVertex, bz, &dcaNeg); + } if (!isSelectedTrackDca(cfgTrackCuts.binsPt, cfgTrackCuts.limitsDca, trackParCovNeg.getPt(), dcaNeg.getY(), dcaNeg.getZ())) { continue; }