@@ -1252,7 +1252,7 @@ struct AnalysisSameEventPairing {
12521252 Configurable<std::string> recSignals{" cfgBarrelMCRecSignals" , " " , " Comma separated list of MC signals (reconstructed)" };
12531253 Configurable<std::string> recSignalsJSON{" cfgMCRecSignalsJSON" , " " , " Comma separated list of MC signals (reconstructed) via JSON" };
12541254 Configurable<bool > skimSignalOnly{" cfgSkimSignalOnly" , false , " Configurable to select only matched candidates" };
1255- Configurable<bool > runMCGenPair{" cfgRunMCGenPair" , false , " Do pairing of true MC particles" };
1255+ // Configurable<bool> runMCGenPair{"cfgRunMCGenPair", false, "Do pairing of true MC particles"};
12561256 } fConfigMC ;
12571257
12581258 struct : ConfigurableGroup {
@@ -2050,9 +2050,9 @@ struct AnalysisSameEventPairing {
20502050 runSameEventPairing<true , VarManager::kDecayToEE , gkEventFillMapWithCov, gkTrackFillMapWithCov>(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks);
20512051 runSameEventPairing<true , VarManager::kDecayToMuMu , gkEventFillMapWithCov, gkMuonFillMapWithCov>(events, muonAssocsPerCollision, muonAssocs, muons, mcEvents, mcTracks);
20522052 // Feature replaced by processMCGen
2053- if (fConfigMC .runMCGenPair ) {
2053+ /* if (fConfigMC.runMCGenPair) {
20542054 runMCGen<VarManager::kDecayToEE>(mcEvents, mcTracks);
2055- }
2055+ }*/
20562056 // runSameEventPairing<true, VarManager::kElectronMuon, gkEventFillMap, gkTrackFillMap>(event, tracks, muons);
20572057 }
20582058
@@ -2062,9 +2062,9 @@ struct AnalysisSameEventPairing {
20622062 {
20632063 runSameEventPairing<true , VarManager::kDecayToEE , gkEventFillMapWithCov, gkTrackFillMapWithCov>(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks);
20642064 // Feature replaced by processMCGen
2065- if (fConfigMC .runMCGenPair ) {
2065+ /* if (fConfigMC.runMCGenPair) {
20662066 runMCGen<VarManager::kDecayToEE>(mcEvents, mcTracks);
2067- }
2067+ }*/
20682068 }
20692069
20702070 void processBarrelOnlyWithCollSkimmed (MyEventsVtxCovSelected const & events,
@@ -2073,19 +2073,19 @@ struct AnalysisSameEventPairing {
20732073 {
20742074 runSameEventPairing<true , VarManager::kDecayToEE , gkEventFillMapWithCov, gkTrackFillMapWithCovWithColl>(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks);
20752075 // Feature replaced by processMCGen
2076- if (fConfigMC .runMCGenPair ) {
2077- runMCGen<VarManager::kDecayToEE >(mcEvents, mcTracks);
2078- }
2076+ /* if (fConfigMC.runMCGenPair) {
2077+ runMCGen<VarManager::kDecayToEE>(mcEvents, mcTracks);
2078+ } */
20792079 }
20802080
20812081 void processMuonOnlySkimmed (MyEventsVtxCovSelected const & events,
20822082 soa::Join<aod::ReducedMuonsAssoc, aod::MuonTrackCuts> const & muonAssocs, MyMuonTracksWithCovWithAmbiguities const & muons, ReducedMCEvents const & mcEvents, ReducedMCTracks const & mcTracks)
20832083 {
20842084 runSameEventPairing<true , VarManager::kDecayToMuMu , gkEventFillMapWithCov, gkMuonFillMapWithCov>(events, muonAssocsPerCollision, muonAssocs, muons, mcEvents, mcTracks);
20852085 // Feature replaced by processMCGen
2086- if (fConfigMC .runMCGenPair ) {
2087- runMCGen<VarManager::kDecayToMuMu >(mcEvents, mcTracks);
2088- }
2086+ /* if (fConfigMC.runMCGenPair) {
2087+ runMCGen<VarManager::kDecayToMuMu>(mcEvents, mcTracks);
2088+ } */
20892089 }
20902090
20912091 PresliceUnsorted<ReducedMCTracks> perReducedMcGenEvent = aod::reducedtrackMC::reducedMCeventId;
@@ -2126,6 +2126,24 @@ struct AnalysisSameEventPairing {
21262126 }
21272127 }
21282128 } // end loop over reconstructed events
2129+ if (fHasTwoProngGenMCsignals ) {
2130+ for (auto & [t1, t2] : combinations (mcTracks, mcTracks)) {
2131+ auto t1_raw = mcTracks.rawIteratorAt (t1.globalIndex ());
2132+ auto t2_raw = mcTracks.rawIteratorAt (t2.globalIndex ());
2133+ if (t1_raw.reducedMCeventId () == t2_raw.reducedMCeventId ()) {
2134+ for (auto & sig : fGenMCSignals ) {
2135+ if (sig->GetNProngs () != 2 ) { // NOTE: 2-prong signals required here
2136+ continue ;
2137+ }
2138+ if (sig->CheckSignal (true , t1_raw, t2_raw)) {
2139+ // mcDecision |= (static_cast<uint32_t>(1) << isig);
2140+ VarManager::FillPairMC<VarManager::kDecayToMuMu >(t1, t2); // NOTE: This feature will only work for muons
2141+ fHistMan ->FillHistClass (Form (" MCTruthGenPair_%s" , sig->GetName ()), VarManager::fgValues);
2142+ }
2143+ }
2144+ }
2145+ }
2146+ }
21292147 }
21302148
21312149 void processDummy (MyEvents&)
0 commit comments