Skip to content

Commit 4f68eaa

Browse files
authored
[PWGDQ] fix missing match type for custom matching candidates (#14736)
1 parent 0c02476 commit 4f68eaa

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

PWGDQ/Tasks/qaMatching.cxx

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2316,11 +2316,12 @@ struct qaMatching {
23162316
template <class C, class TMUON, class TMFT, class CMFT>
23172317
void RunChi2Matching(C const& collisions,
23182318
TMUON const& muonTracks,
2319-
TMFT const& /*mftTracks*/,
2319+
TMFT const& mftTracks,
23202320
CMFT const& mftCovs,
23212321
std::string funcName,
23222322
float matchingPlaneZ,
23232323
int extrapMethod,
2324+
const std::vector<std::pair<int64_t, int64_t>>& matchablePairs,
23242325
const MatchingCandidates& matchingCandidates,
23252326
MatchingCandidates& newMatchingCandidates)
23262327
{
@@ -2410,6 +2411,15 @@ struct qaMatching {
24102411

24112412
for (auto& [mchIndex, globalTracksVector] : newMatchingCandidates) {
24122413
std::sort(globalTracksVector.begin(), globalTracksVector.end(), compareMatchingScore);
2414+
2415+
int ranking = 1;
2416+
for (auto& candidate : globalTracksVector) {
2417+
const auto& muonTrack = muonTracks.rawIteratorAt(candidate.globalTrackId);
2418+
2419+
candidate.matchRanking = ranking;
2420+
candidate.matchType = GetMatchType(muonTrack, muonTracks, mftTracks, matchablePairs, ranking);
2421+
ranking += 1;
2422+
}
24132423
}
24142424
}
24152425

@@ -2419,6 +2429,7 @@ struct qaMatching {
24192429
TMFT const& mftTracks,
24202430
CMFT const& mftCovs,
24212431
std::string label,
2432+
const std::vector<std::pair<int64_t, int64_t>>& matchablePairs,
24222433
const MatchingCandidates& matchingCandidates,
24232434
MatchingCandidates& newMatchingCandidates)
24242435
{
@@ -2442,15 +2453,16 @@ struct qaMatching {
24422453
auto matchingPlaneZ = matchingPlanesZ[label];
24432454
auto extrapMethod = matchingExtrapMethod[label];
24442455

2445-
RunChi2Matching(collisions, muonTracks, mftTracks, mftCovs, funcName, matchingPlaneZ, extrapMethod, matchingCandidates, newMatchingCandidates);
2456+
RunChi2Matching(collisions, muonTracks, mftTracks, mftCovs, funcName, matchingPlaneZ, extrapMethod, matchablePairs, matchingCandidates, newMatchingCandidates);
24462457
}
24472458

24482459
template <class C, class TMUON, class TMFT, class CMFT>
24492460
void RunMLMatching(C const& collisions,
24502461
TMUON const& muonTracks,
2451-
TMFT const& /*mftTracks*/,
2462+
TMFT const& mftTracks,
24522463
CMFT const& mftCovs,
24532464
std::string label,
2465+
const std::vector<std::pair<int64_t, int64_t>>& matchablePairs,
24542466
const MatchingCandidates& matchingCandidates,
24552467
MatchingCandidates& newMatchingCandidates)
24562468
{
@@ -2539,6 +2551,15 @@ struct qaMatching {
25392551

25402552
for (auto& [mchIndex, globalTracksVector] : newMatchingCandidates) {
25412553
std::sort(globalTracksVector.begin(), globalTracksVector.end(), compareMatchingScore);
2554+
2555+
int ranking = 1;
2556+
for (auto& candidate : globalTracksVector) {
2557+
const auto& muonTrack = muonTracks.rawIteratorAt(candidate.globalTrackId);
2558+
2559+
candidate.matchRanking = ranking;
2560+
candidate.matchType = GetMatchType(muonTrack, muonTracks, mftTracks, matchablePairs, ranking);
2561+
ranking += 1;
2562+
}
25422563
}
25432564
}
25442565

@@ -2558,7 +2579,7 @@ struct qaMatching {
25582579
FillMatchingPlotsMC(collision, collisionInfo, muonTracks, mftTracks, collisionInfo.matchingCandidates, collisionInfo.matchingCandidates, collisionInfo.matchablePairs, fMatchingChi2ScoreMftMchLow, fChi2MatchingPlotter.get(), false);
25592580
for (auto& [label, func] : matchingChi2Functions) {
25602581
MatchingCandidates matchingCandidates;
2561-
RunChi2Matching(collisions, muonTracks, mftTracks, mftCovs, label, collisionInfo.matchingCandidates, matchingCandidates);
2582+
RunChi2Matching(collisions, muonTracks, mftTracks, mftCovs, label, collisionInfo.matchablePairs, collisionInfo.matchingCandidates, matchingCandidates);
25622583

25632584
auto* plotter = fMatchingPlotters.at(label).get();
25642585
double matchingScoreCut = matchingScoreCuts.at(label);
@@ -2569,7 +2590,7 @@ struct qaMatching {
25692590
// ML-based matching analysis
25702591
for (auto& [label, mlResponse] : matchingMlResponses) {
25712592
MatchingCandidates matchingCandidates;
2572-
RunMLMatching(collisions, muonTracks, mftTracks, mftCovs, label, collisionInfo.matchingCandidates, matchingCandidates);
2593+
RunMLMatching(collisions, muonTracks, mftTracks, mftCovs, label, collisionInfo.matchablePairs, collisionInfo.matchingCandidates, matchingCandidates);
25732594

25742595
auto* plotter = fMatchingPlotters.at(label).get();
25752596
double matchingScoreCut = matchingScoreCuts.at(label);

0 commit comments

Comments
 (0)