@@ -2933,7 +2933,7 @@ struct QaMatching {
29332933
29342934 // -------------------------------
29352935 // Chi2-based matching from production
2936- fillQaMatchingAodTablesForCollision (collision, muonTracks, collisionInfo.matchingCandidates , matchingMethodCounter, collisionInfo.reducedEventId , collisionInfo.reducedMchTrackIds );
2936+ fillQaMatchingAodTablesForCollision (collision, muonTracks, mftTracks, collisionInfo.matchingCandidates , matchingMethodCounter, collisionInfo.reducedEventId , collisionInfo.reducedMchTrackIds );
29372937 if constexpr (isMC) {
29382938 fillMatchingPlotsMc (collision, collisionInfo, muonTracks, mftTracks, collisionInfo.matchingCandidates , collisionInfo.matchingCandidates , collisionInfo.matchablePairs , cfgMatchingChi2ScoreMftMchLow, fChi2MatchingPlotter .get (), false );
29392939 } else {
@@ -2987,7 +2987,7 @@ struct QaMatching {
29872987 double matchingScoreCut = matchingScoreCuts.at (label);
29882988
29892989 matchingMethodCounter += 1 ;
2990- fillQaMatchingAodTablesForCollision (collision, muonTracks, matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId , collisionInfo.reducedMchTrackIds );
2990+ fillQaMatchingAodTablesForCollision (collision, muonTracks, mftTracks, matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId , collisionInfo.reducedMchTrackIds );
29912991 if constexpr (isMC) {
29922992 fillMatchingPlotsMc (collision, collisionInfo, muonTracks, mftTracks, matchingCandidates, collisionInfo.matchingCandidates , collisionInfo.matchablePairs , matchingScoreCut, plotter, false );
29932993 } else {
@@ -3005,7 +3005,7 @@ struct QaMatching {
30053005 double matchingScoreCut = matchingScoreCuts.at (label);
30063006
30073007 matchingMethodCounter += 1 ;
3008- fillQaMatchingAodTablesForCollision (collision, muonTracks, matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId , collisionInfo.reducedMchTrackIds );
3008+ fillQaMatchingAodTablesForCollision (collision, muonTracks, mftTracks, matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId , collisionInfo.reducedMchTrackIds );
30093009 if constexpr (isMC) {
30103010 fillMatchingPlotsMc (collision, collisionInfo, muonTracks, mftTracks, matchingCandidates, collisionInfo.matchingCandidates , collisionInfo.matchablePairs , matchingScoreCut, plotter);
30113011 } else {
@@ -3018,9 +3018,10 @@ struct QaMatching {
30183018 fillDimuonPlotsMc (collisionInfo, collisions, muonTracks, mftTracks);
30193019 }
30203020
3021- template <class TCOLLISION , class TMUON >
3021+ template <class TCOLLISION , class TMUON , class TMFT >
30223022 void fillQaMatchingAodTablesForCollision (TCOLLISION const & collision,
30233023 TMUON const & muonTracks,
3024+ TMFT const & mftTracks,
30243025 const MatchingCandidates& matchingCandidates,
30253026 int8_t matchLabel,
30263027 int32_t reducedEventId,
@@ -3044,7 +3045,9 @@ struct QaMatching {
30443045
30453046 for (const auto & candidate : candidates) {
30463047 const auto & candidateTrack = muonTracks.rawIteratorAt (candidate.globalTrackId );
3047- auto candidateTrackAtVertex = VarManager::PropagateMuon (candidateTrack, collision, VarManager::kToVertex );
3048+ const auto & mftTrack = mftTracks.rawIteratorAt (candidate.mftTrackId );
3049+ // propagate global forward track to vertex using momentum rescaling method
3050+ auto candidateTrackAtVertex = propagateToVertexMft (mftTrack, mchTrack, collision);
30483051 qaMatchingCandidates (
30493052 reducedEventId,
30503053 reducedMchTrackId,
0 commit comments