@@ -775,64 +775,64 @@ struct AnalysisEventMixing {
775775 histNames = fTrackMuonHistNames ;
776776 }
777777
778- uint32_t twoTrackFilter = 0 ;
779- uint32_t mult_dimuons = 0 ;
778+ uint32_t twoTrackFilter = 0 ;
779+ uint32_t mult_dimuons = 0 ;
780+ for (auto & track1 : tracks1) {
781+ for (auto & track2 : tracks2) {
782+ if constexpr (TPairType == VarManager::kDecayToMuMu ) {
783+ twoTrackFilter = static_cast <uint32_t >(track1.isMuonSelected ()) & static_cast <uint32_t >(track2.isMuonSelected ()) & fTwoMuonFilterMask ;
784+ }
785+ if (twoTrackFilter && track1.sign () * track2.sign () < 0 ) {
786+ mult_dimuons++;
787+ }
788+ } // end for (track2)
789+ } // end for (track1)
790+ VarManager::fgValues[VarManager::kMultDimuonsME ] = mult_dimuons;
791+
792+ twoTrackFilter = 0 ;
780793 for (auto & track1 : tracks1) {
781794 for (auto & track2 : tracks2) {
795+ if constexpr (TPairType == VarManager::kDecayToEE ) {
796+ twoTrackFilter = static_cast <uint32_t >(track1.isBarrelSelected ()) & static_cast <uint32_t >(track2.isBarrelSelected ()) & fTwoTrackFilterMask ;
797+ }
782798 if constexpr (TPairType == VarManager::kDecayToMuMu ) {
783799 twoTrackFilter = static_cast <uint32_t >(track1.isMuonSelected ()) & static_cast <uint32_t >(track2.isMuonSelected ()) & fTwoMuonFilterMask ;
800+ if (fConfigSingleMuCumulants ) {
801+ VarManager::FillTwoMixEventsCumulants (SingleMuv22m, SingleMuv24m, SingleMuv22p, SingleMuv24p, track1, track2);
802+ }
784803 }
785- if (twoTrackFilter && track1. sign () * track2. sign () < 0 ) {
786- mult_dimuons++ ;
804+ if constexpr (TPairType == VarManager:: kElectronMuon ) {
805+ twoTrackFilter = static_cast < uint32_t >(track1. isBarrelSelected ()) & static_cast < uint32_t >(track2. isMuonSelected ()) & fTwoTrackFilterMask ;
787806 }
788- } // end for (track2)
789- } // end for (track1)
790- VarManager::fgValues[VarManager::kMultDimuonsME ] = mult_dimuons;
791807
792- twoTrackFilter = 0 ;
793- for (auto & track1 : tracks1) {
794- for (auto & track2 : tracks2) {
795- if constexpr (TPairType == VarManager::kDecayToEE ) {
796- twoTrackFilter = static_cast <uint32_t >(track1.isBarrelSelected ()) & static_cast <uint32_t >(track2.isBarrelSelected ()) & fTwoTrackFilterMask ;
797- }
798- if constexpr (TPairType == VarManager::kDecayToMuMu ) {
799- twoTrackFilter = static_cast <uint32_t >(track1.isMuonSelected ()) & static_cast <uint32_t >(track2.isMuonSelected ()) & fTwoMuonFilterMask ;
800- if (fConfigSingleMuCumulants ) {
801- VarManager::FillTwoMixEventsCumulants (SingleMuv22m, SingleMuv24m, SingleMuv22p, SingleMuv24p, track1, track2);
808+ if (!twoTrackFilter) { // the tracks must have at least one filter bit in common to continue
809+ continue ;
802810 }
803- }
804- if constexpr (TPairType == VarManager::kElectronMuon ) {
805- twoTrackFilter = static_cast <uint32_t >(track1.isBarrelSelected ()) & static_cast <uint32_t >(track2.isMuonSelected ()) & fTwoTrackFilterMask ;
806- }
811+ VarManager::FillPairME<TEventFillMap, TPairType>(track1, track2);
807812
808- if (!twoTrackFilter) { // the tracks must have at least one filter bit in common to continue
809- continue ;
810- }
811- VarManager::FillPairME<TEventFillMap, TPairType>(track1, track2);
812-
813- for (unsigned int icut = 0 ; icut < ncuts; icut++) {
814- if (twoTrackFilter & (static_cast <uint32_t >(1 ) << icut)) {
815- if (track1.sign () * track2.sign () < 0 ) {
816- fHistMan ->FillHistClass (histNames[icut][0 ].Data (), VarManager::fgValues);
817- if (fConfigAmbiguousHist && !(track1.isAmbiguous () || track2.isAmbiguous ())) {
818- fHistMan ->FillHistClass (Form (" %s_unambiguous" , histNames[icut][0 ].Data ()), VarManager::fgValues);
819- }
820- } else {
821- if (track1.sign () > 0 ) {
822- fHistMan ->FillHistClass (histNames[icut][1 ].Data (), VarManager::fgValues);
813+ for (unsigned int icut = 0 ; icut < ncuts; icut++) {
814+ if (twoTrackFilter & (static_cast <uint32_t >(1 ) << icut)) {
815+ if (track1.sign () * track2.sign () < 0 ) {
816+ fHistMan ->FillHistClass (histNames[icut][0 ].Data (), VarManager::fgValues);
823817 if (fConfigAmbiguousHist && !(track1.isAmbiguous () || track2.isAmbiguous ())) {
824- fHistMan ->FillHistClass (Form (" %s_unambiguous" , histNames[icut][1 ].Data ()), VarManager::fgValues);
818+ fHistMan ->FillHistClass (Form (" %s_unambiguous" , histNames[icut][0 ].Data ()), VarManager::fgValues);
825819 }
826820 } else {
827- fHistMan ->FillHistClass (histNames[icut][2 ].Data (), VarManager::fgValues);
828- if (fConfigAmbiguousHist && !(track1.isAmbiguous () || track2.isAmbiguous ())) {
829- fHistMan ->FillHistClass (Form (" %s_unambiguous" , histNames[icut][2 ].Data ()), VarManager::fgValues);
821+ if (track1.sign () > 0 ) {
822+ fHistMan ->FillHistClass (histNames[icut][1 ].Data (), VarManager::fgValues);
823+ if (fConfigAmbiguousHist && !(track1.isAmbiguous () || track2.isAmbiguous ())) {
824+ fHistMan ->FillHistClass (Form (" %s_unambiguous" , histNames[icut][1 ].Data ()), VarManager::fgValues);
825+ }
826+ } else {
827+ fHistMan ->FillHistClass (histNames[icut][2 ].Data (), VarManager::fgValues);
828+ if (fConfigAmbiguousHist && !(track1.isAmbiguous () || track2.isAmbiguous ())) {
829+ fHistMan ->FillHistClass (Form (" %s_unambiguous" , histNames[icut][2 ].Data ()), VarManager::fgValues);
830+ }
830831 }
831832 }
832- }
833- } // end if (filter bits)
834- } // end for (cuts)
835- } // end for (track2)
833+ } // end if (filter bits)
834+ } // end for (cuts)
835+ } // end for (track2)
836836 } // end for (track1)
837837 }
838838
0 commit comments