Skip to content

Commit aef770a

Browse files
bhagyasahoalibuild
andauthored
[PWGDQ] Adding 2-prong signal inside new processMCGen (#11210)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent ee313b8 commit aef770a

File tree

1 file changed

+29
-11
lines changed

1 file changed

+29
-11
lines changed

PWGDQ/Tasks/dqEfficiency_withAssoc.cxx

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)