From 4f58f7a437e8affb797d07e40c1348dda5219ac1 Mon Sep 17 00:00:00 2001 From: Yoshini Bailung Date: Wed, 8 Jul 2026 15:58:59 +0200 Subject: [PATCH] PWGDQ: Update track indexing for derived tables --- PWGDQ/Tasks/qaMatching.cxx | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/PWGDQ/Tasks/qaMatching.cxx b/PWGDQ/Tasks/qaMatching.cxx index acd5924db7d..f9d9fb23ca2 100644 --- a/PWGDQ/Tasks/qaMatching.cxx +++ b/PWGDQ/Tasks/qaMatching.cxx @@ -3018,7 +3018,7 @@ struct QaMatching { int debugCounter{0}; fillQaMatchingAodEventForCollision(collisionInfo, collision, collisionInfo.reducedEventId, debugCounter); - fillQaMatchingMchTracksForCollision(collisionInfo, collision, muonTracks, taggedMuons, collisionInfo.reducedEventId); + fillQaMatchingMchTracksForCollision(collisionInfo, collision, muonTracks, taggedMuons, collisionInfo.reducedEventId, collisionInfo.reducedMchTrackIds); registry.get(HIST("tracksMultiplicityMFT"))->Fill(collisionInfo.mftTracks.size()); registry.get(HIST("tracksMultiplicityMCH"))->Fill(collisionInfo.mchTracks.size()); @@ -3221,21 +3221,18 @@ struct QaMatching { TCOLLISION const& collision, TMUON const& muonTracks, const std::vector& taggedMuons, - int32_t reducedEventId) + int32_t reducedEventId, + const std::map& reducedMchTrackIds) { - std::vector mchIds; - for (const auto& mchTrack : collisionInfo.mchTracks) { - if (std::find(mchIds.begin(), mchIds.end(), mchTrack.first) == mchIds.end()) { - mchIds.emplace_back(mchTrack.first); - } - } - for (const auto& candidate : collisionInfo.matchingCandidates) { - if (std::find(mchIds.begin(), mchIds.end(), candidate.first) == mchIds.end()) { - mchIds.emplace_back(candidate.first); - } + std::vector> orderedMchIds; + orderedMchIds.reserve(reducedMchTrackIds.size()); + for (const auto& [mchIndex, reducedMchTrackId] : reducedMchTrackIds) { + orderedMchIds.emplace_back(reducedMchTrackId, mchIndex); } + std::sort(orderedMchIds.begin(), orderedMchIds.end()); - for (const auto& mchIndex : mchIds) { + for (const auto& [reducedMchTrackId, mchIndex] : orderedMchIds) { + (void)reducedMchTrackId; auto const& mchTrack = muonTracks.rawIteratorAt(mchIndex); int mftMchMatchAttempts = 0; if (const auto& mchTrackInfoIt = collisionInfo.mchTracks.find(mchIndex); mchTrackInfoIt != collisionInfo.mchTracks.end()) {