@@ -3020,7 +3020,7 @@ struct QaMatching {
30203020
30213021 int debugCounter{0 };
30223022 fillQaMatchingAodEventForCollision (collisionInfo, collision, collisionInfo.reducedEventId , debugCounter);
3023- fillQaMatchingMchTracksForCollision (collisionInfo, collision, muonTracks, taggedMuons, collisionInfo.reducedEventId );
3023+ fillQaMatchingMchTracksForCollision (collisionInfo, collision, muonTracks, taggedMuons, collisionInfo.reducedEventId , collisionInfo. reducedMchTrackIds );
30243024
30253025 registry.get <TH1 >(HIST (" tracksMultiplicityMFT" ))->Fill (collisionInfo.mftTracks .size ());
30263026 registry.get <TH1 >(HIST (" tracksMultiplicityMCH" ))->Fill (collisionInfo.mchTracks .size ());
@@ -3234,21 +3234,18 @@ struct QaMatching {
32343234 TCOLLISION const & collision,
32353235 TMUON const & muonTracks,
32363236 const std::vector<int64_t >& taggedMuons,
3237- int32_t reducedEventId)
3237+ int32_t reducedEventId,
3238+ const std::map<int64_t , int64_t >& reducedMchTrackIds)
32383239 {
3239- std::vector<int64_t > mchIds;
3240- for (const auto & mchTrack : collisionInfo.mchTracks ) {
3241- if (std::find (mchIds.begin (), mchIds.end (), mchTrack.first ) == mchIds.end ()) {
3242- mchIds.emplace_back (mchTrack.first );
3243- }
3244- }
3245- for (const auto & candidate : collisionInfo.matchingCandidates ) {
3246- if (std::find (mchIds.begin (), mchIds.end (), candidate.first ) == mchIds.end ()) {
3247- mchIds.emplace_back (candidate.first );
3248- }
3240+ std::vector<std::pair<int64_t , int64_t >> orderedMchIds;
3241+ orderedMchIds.reserve (reducedMchTrackIds.size ());
3242+ for (const auto & [mchIndex, reducedMchTrackId] : reducedMchTrackIds) {
3243+ orderedMchIds.emplace_back (reducedMchTrackId, mchIndex);
32493244 }
3245+ std::sort (orderedMchIds.begin (), orderedMchIds.end ());
32503246
3251- for (const auto & mchIndex : mchIds) {
3247+ for (const auto & [reducedMchTrackId, mchIndex] : orderedMchIds) {
3248+ (void )reducedMchTrackId;
32523249 auto const & mchTrack = muonTracks.rawIteratorAt (mchIndex);
32533250 int mftMchMatchAttempts = 0 ;
32543251 if (const auto & mchTrackInfoIt = collisionInfo.mchTracks .find (mchIndex); mchTrackInfoIt != collisionInfo.mchTracks .end ()) {
0 commit comments