Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 10 additions & 19 deletions PWGDQ/Tasks/dqEfficiency_withAssoc.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1299,7 +1299,7 @@ struct AnalysisSameEventPairing {
if (context.mOptions.get<bool>("processDummy")) {
return;
}
bool isMCGen = context.mOptions.get<bool>("processMCGen") || context.mOptions.get<bool>("processMCGenWithEventSelection");
bool isMCGen = context.mOptions.get<bool>("processMCGen");
VarManager::SetDefaultVarNames();

fEnableBarrelHistos = context.mOptions.get<bool>("processAllSkimmed") || context.mOptions.get<bool>("processBarrelOnlySkimmed") || context.mOptions.get<bool>("processBarrelOnlyWithCollSkimmed");
Expand Down Expand Up @@ -2050,7 +2050,7 @@ struct AnalysisSameEventPairing {
{
runSameEventPairing<true, VarManager::kDecayToEE, gkEventFillMapWithCov, gkTrackFillMapWithCov>(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks);
runSameEventPairing<true, VarManager::kDecayToMuMu, gkEventFillMapWithCov, gkMuonFillMapWithCov>(events, muonAssocsPerCollision, muonAssocs, muons, mcEvents, mcTracks);
// Feature replaced by processMCGen and processMCGenWithEventSelection
// Feature replaced by processMCGen
/*if (fConfigMC.runMCGenPair) {
runMCGen(mcEvents, mcTracks);
}*/
Expand All @@ -2062,7 +2062,7 @@ struct AnalysisSameEventPairing {
MyBarrelTracksWithCovWithAmbiguities const& barrelTracks, ReducedMCEvents const& mcEvents, ReducedMCTracks const& mcTracks)
{
runSameEventPairing<true, VarManager::kDecayToEE, gkEventFillMapWithCov, gkTrackFillMapWithCov>(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks);
// Feature replaced by processMCGen and processMCGenWithEventSelection
// Feature replaced by processMCGen
/*if (fConfigMC.runMCGenPair) {
runMCGen(mcEvents, mcTracks);
}*/
Expand All @@ -2073,7 +2073,7 @@ struct AnalysisSameEventPairing {
MyBarrelTracksWithCovWithAmbiguitiesWithColl const& barrelTracks, ReducedMCEvents const& mcEvents, ReducedMCTracks const& mcTracks)
{
runSameEventPairing<true, VarManager::kDecayToEE, gkEventFillMapWithCov, gkTrackFillMapWithCovWithColl>(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks);
// Feature replaced by processMCGen and processMCGenWithEventSelection
// Feature replaced by processMCGen
/*if (fConfigMC.runMCGenPair) {
runMCGen(mcEvents, mcTracks);
}*/
Expand All @@ -2083,19 +2083,18 @@ struct AnalysisSameEventPairing {
soa::Join<aod::ReducedMuonsAssoc, aod::MuonTrackCuts> const& muonAssocs, MyMuonTracksWithCovWithAmbiguities const& muons, ReducedMCEvents const& mcEvents, ReducedMCTracks const& mcTracks)
{
runSameEventPairing<true, VarManager::kDecayToMuMu, gkEventFillMapWithCov, gkMuonFillMapWithCov>(events, muonAssocsPerCollision, muonAssocs, muons, mcEvents, mcTracks);
// Feature replaced by processMCGen and processMCGenWithEventSelection
// Feature replaced by processMCGen
/*if (fConfigMC.runMCGenPair) {
runMCGen(mcEvents, mcTracks);
}*/
}

void processMCGen(ReducedMCTracks const& mcTracks)
PresliceUnsorted<ReducedMCTracks> perReducedMcGenEvent = aod::reducedtrackMC::reducedMCeventId;

void processMCGen(soa::Filtered<MyEventsVtxCovSelected> const& events, ReducedMCEvents const& /*mcEvents*/, ReducedMCTracks const& mcTracks)
{
// loop over mc stack and fill histograms for pure MC truth signals
// group all the MC tracks which belong to the MC event corresponding to the current reconstructed event
// auto groupedMCTracks = tracksMC.sliceBy(aod::reducedtrackMC::reducedMCeventId, event.reducedMCevent().globalIndex());
// Fill Generated histograms taking into account all generated tracks
for (auto& mctrack : mcTracks) {

VarManager::FillTrackMC(mcTracks, mctrack);
// NOTE: Signals are checked here mostly based on the skimmed MC stack, so depending on the requested signal, the stack could be incomplete.
// NOTE: However, the working model is that the decisions on MC signals are precomputed during skimming and are stored in the mcReducedFlags member.
Expand All @@ -2106,13 +2105,8 @@ struct AnalysisSameEventPairing {
}
}
}
}

PresliceUnsorted<ReducedMCTracks> perReducedMcGenEvent = aod::reducedtrackMC::reducedMCeventId;

void processMCGenWithEventSelection(soa::Filtered<MyEventsVtxCovSelected> const& events,
ReducedMCEvents const& /*mcEvents*/, ReducedMCTracks const& mcTracks)
{
// Fill Generated histograms taking into account selected collisions
for (auto& event : events) {
if (!event.isEventSelected_bit(0)) {
continue;
Expand All @@ -2124,9 +2118,7 @@ struct AnalysisSameEventPairing {
auto groupedMCTracks = mcTracks.sliceBy(perReducedMcGenEvent, event.reducedMCeventId());
groupedMCTracks.bindInternalIndicesTo(&mcTracks);
for (auto& track : groupedMCTracks) {

VarManager::FillTrackMC(mcTracks, track);

auto track_raw = groupedMCTracks.rawIteratorAt(track.globalIndex());
for (auto& sig : fGenMCSignals) {
if (sig->CheckSignal(true, track_raw)) {
Expand All @@ -2147,7 +2139,6 @@ struct AnalysisSameEventPairing {
PROCESS_SWITCH(AnalysisSameEventPairing, processBarrelOnlyWithCollSkimmed, "Run barrel only pairing, with skimmed tracks and with collision information", false);
PROCESS_SWITCH(AnalysisSameEventPairing, processMuonOnlySkimmed, "Run muon only pairing, with skimmed tracks", false);
PROCESS_SWITCH(AnalysisSameEventPairing, processMCGen, "Loop over MC particle stack and fill generator level histograms", false);
PROCESS_SWITCH(AnalysisSameEventPairing, processMCGenWithEventSelection, "Loop over MC particle stack and fill generator level histograms with event selection", false);
PROCESS_SWITCH(AnalysisSameEventPairing, processDummy, "Dummy function, enabled only if none of the others are enabled", false);
};

Expand Down