From c51fc702032cf16d23e0105417e329b617a50a0e Mon Sep 17 00:00:00 2001 From: aferrero2707 Date: Fri, 24 Apr 2026 00:33:11 +0200 Subject: [PATCH] [PWGDQ] fixed match type assignment Removed condition requiring that a true match must correspond to a muon particle crossing both MFT and MCH. The condition is relaxed to require only that MFT and MCH are crossed by the same particle, regardless of its PDG code. --- PWGDQ/Tasks/qaMatching.cxx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/PWGDQ/Tasks/qaMatching.cxx b/PWGDQ/Tasks/qaMatching.cxx index b5c0bb2ef65..c82e2304ccd 100644 --- a/PWGDQ/Tasks/qaMatching.cxx +++ b/PWGDQ/Tasks/qaMatching.cxx @@ -139,6 +139,7 @@ struct QaMatching { static constexpr int ExtrapolationMethodMftFirstPoint = 2; static constexpr int ExtrapolationMethodVertex = 3; static constexpr int ExtrapolationMethodMftDca = 4; + static constexpr int DecayRankingDirect = 2; struct MatchingCandidate { int64_t collisionId{-1}; @@ -1675,7 +1676,7 @@ struct QaMatching { template MuonMatchType getMatchType(const TMUON& muonTrack, - TMUONS const& muonTracks, + TMUONS const& /*muonTracks*/, TMFTS const& mftTracks, const std::vector>& matchablePairs, int ranking) @@ -1685,18 +1686,18 @@ struct QaMatching { auto const& mchTrack = muonTrack.template matchMCHTrack_as(); - bool isPaired = isMatchableMch(mchTrack.globalIndex(), matchablePairs); - bool isMuon = IsMuon(muonTrack, muonTracks, mftTracks); + bool isPairable = isMatchableMch(mchTrack.globalIndex(), matchablePairs); + bool isTrueMatch = isTrueGlobalMatching(muonTrack, matchablePairs); int decayRanking = getDecayRanking(mchTrack, mftTracks); MuonMatchType result{kMatchTypeUndefined}; - if (isPaired) { - if (isMuon) { + if (isPairable) { + if (isTrueMatch) { result = (ranking == 1) ? kMatchTypeTrueLeading : kMatchTypeTrueNonLeading; } else { result = (ranking == 1) ? kMatchTypeWrongLeading : kMatchTypeWrongNonLeading; } - } else if (decayRanking == 1) { + } else if (decayRanking == DecayRankingDirect) { result = (ranking == 1) ? kMatchTypeDecayLeading : kMatchTypeDecayNonLeading; } else { result = (ranking == 1) ? kMatchTypeFakeLeading : kMatchTypeFakeNonLeading;