@@ -786,6 +786,17 @@ struct matchingMFT {
786786 if (fwdtrack.trackType () != o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) {
787787 continue ;
788788 }
789+
790+ if (cfgBestMatchFinder == 0 ) { // chi2
791+ if (fwdtrack.trackType () == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack && std::find (vec_min_chi2MatchMCHMFT.begin (), vec_min_chi2MatchMCHMFT.end (), std::make_tuple (fwdtrack.globalIndex (), fwdtrack.matchMCHTrackId (), fwdtrack.matchMFTTrackId ())) == vec_min_chi2MatchMCHMFT.end ()) {
792+ continue ;
793+ }
794+ } else if (cfgBestMatchFinder == 1 ) { // dr
795+ if (fwdtrack.trackType () == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack && std::find (vec_min_dr.begin (), vec_min_dr.end (), std::make_tuple (fwdtrack.globalIndex (), fwdtrack.matchMCHTrackId (), fwdtrack.matchMFTTrackId ())) == vec_min_dr.end ()) {
796+ continue ;
797+ }
798+ }
799+
789800 fillHistograms<false >(collision, fwdtrack, fwdtracks, mfttracks, nullptr );
790801 } // end of fwdtrack loop
791802 } // end of collision loop
@@ -834,6 +845,17 @@ struct matchingMFT {
834845 if (fwdtrack.trackType () != o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) {
835846 continue ;
836847 }
848+
849+ if (cfgBestMatchFinder == 0 ) { // chi2
850+ if (fwdtrack.trackType () == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack && std::find (vec_min_chi2MatchMCHMFT.begin (), vec_min_chi2MatchMCHMFT.end (), std::make_tuple (fwdtrack.globalIndex (), fwdtrack.matchMCHTrackId (), fwdtrack.matchMFTTrackId ())) == vec_min_chi2MatchMCHMFT.end ()) {
851+ continue ;
852+ }
853+ } else if (cfgBestMatchFinder == 1 ) { // dr
854+ if (fwdtrack.trackType () == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack && std::find (vec_min_dr.begin (), vec_min_dr.end (), std::make_tuple (fwdtrack.globalIndex (), fwdtrack.matchMCHTrackId (), fwdtrack.matchMFTTrackId ())) == vec_min_dr.end ()) {
855+ continue ;
856+ }
857+ }
858+
837859 fillHistograms<false >(collision, fwdtrack, fwdtracks, mfttracks, nullptr );
838860 } // end of fwdtrack loop
839861 } // end of collision loop
@@ -886,6 +908,9 @@ struct matchingMFT {
886908 auto fwdtrackIdsThisCollision = fwdtrackIndices.sliceBy (fwdtrackIndicesPerCollision, collision.globalIndex ());
887909 for (const auto & fwdtrackId : fwdtrackIdsThisCollision) {
888910 auto fwdtrack = fwdtrackId.template fwdtrack_as <MyFwdTracks>();
911+ if (fwdtrack.trackType () != o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) {
912+ continue ;
913+ }
889914
890915 if (cfgBestMatchFinder == 0 ) { // chi2
891916 if (fwdtrack.trackType () == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack && std::find (vec_min_chi2MatchMCHMFT.begin (), vec_min_chi2MatchMCHMFT.end (), std::make_tuple (fwdtrack.globalIndex (), fwdtrack.matchMCHTrackId (), fwdtrack.matchMFTTrackId ())) == vec_min_chi2MatchMCHMFT.end ()) {
@@ -895,10 +920,6 @@ struct matchingMFT {
895920 if (fwdtrack.trackType () == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack && std::find (vec_min_dr.begin (), vec_min_dr.end (), std::make_tuple (fwdtrack.globalIndex (), fwdtrack.matchMCHTrackId (), fwdtrack.matchMFTTrackId ())) == vec_min_dr.end ()) {
896921 continue ;
897922 }
898- } else { // best match is not selected. Histograms are filled with all global muons.
899- if (fwdtrack.trackType () != o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) {
900- continue ;
901- }
902923 }
903924 fillHistograms<true >(collision, fwdtrack, fwdtracks, mfttracks, mftCovs);
904925 } // end of fwdtrack loop
0 commit comments