diff --git a/PWGJE/Tasks/jetHadronRecoil.cxx b/PWGJE/Tasks/jetHadronRecoil.cxx index 700ce8910f0..381789fbfcb 100644 --- a/PWGJE/Tasks/jetHadronRecoil.cxx +++ b/PWGJE/Tasks/jetHadronRecoil.cxx @@ -82,6 +82,7 @@ struct JetHadronRecoil { Configurable skipMBGapEvents{"skipMBGapEvents", false, "flag to choose to reject min. bias gap events; jet-level rejection applied at the jet finder level, here rejection is applied for collision and track process functions"}; Configurable outlierRejectEvent{"outlierRejectEvent", true, "where outliers are found, reject event (true) or just reject the single track/jet (false)"}; Configurable doSumw{"doSumw", false, "enable sumw2 for weighted histograms"}; + Configurable rejectOutlierCollisions{"rejectOutlierCollisions", false, "flag to reject outlier collisions for weighed MC"}; TRandom3* rand = new TRandom3(0); @@ -811,7 +812,7 @@ struct JetHadronRecoil { } PROCESS_SWITCH(JetHadronRecoil, processMCDWithRhoSubtraction, "process MC detector level with rho subtraction", false); - void processMCDWeighted(soa::Filtered>::iterator const& collision, + void processMCDWeighted(soa::Filtered>::iterator const& collision, aod::JMcCollisions const&, soa::Filtered> const& jets, soa::Filtered> const& tracks) @@ -831,12 +832,15 @@ struct JetHadronRecoil { if (collision.mcCollision().ptHard() < pTHatMinEvent) { return; } + if (rejectOutlierCollisions && collision.isOutlier()) { + return; + } registry.fill(HIST("hZvtxSelected"), collision.posZ(), collision.mcCollision().weight()); fillHistogramsMCD(jets, tracks, collision.mcCollision().weight(), 0.0, collision.mcCollision().ptHard(), collision.mcCollisionId()); } PROCESS_SWITCH(JetHadronRecoil, processMCDWeighted, "process MC detector level with event weights", false); - void processMCDWeightedWithRhoSubtraction(soa::Filtered>::iterator const& collision, + void processMCDWeightedWithRhoSubtraction(soa::Filtered>::iterator const& collision, aod::JMcCollisions const&, soa::Filtered> const& jets, soa::Filtered> const& tracks) @@ -856,6 +860,9 @@ struct JetHadronRecoil { if (collision.mcCollision().ptHard() < pTHatMinEvent) { return; } + if (rejectOutlierCollisions && collision.isOutlier()) { + return; + } registry.fill(HIST("hZvtxSelected"), collision.posZ(), collision.mcCollision().weight()); fillHistogramsMCD(jets, tracks, collision.mcCollision().weight(), collision.rho(), collision.mcCollision().ptHard(), collision.mcCollisionId()); } @@ -892,7 +899,7 @@ struct JetHadronRecoil { PROCESS_SWITCH(JetHadronRecoil, processMCP, "process MC particle level", false); void processMCPWeighted(aod::JetMcCollision const& mccollision, - soa::SmallGroups const& collisions, + soa::SmallGroups> const& collisions, soa::Filtered> const& jets, soa::Filtered const& particles) { @@ -915,6 +922,9 @@ struct JetHadronRecoil { if (!jetderiveddatautilities::selectTrigger(collision, triggerMaskBits)) { return; } + if (rejectOutlierCollisions && collision.isOutlier()) { + return; + } } registry.fill(HIST("hZvtxSelected"), mccollision.posZ(), mccollision.weight()); fillMCPHistograms(jets, particles, mccollision.weight(), mccollision.ptHard()); @@ -969,7 +979,7 @@ struct JetHadronRecoil { } PROCESS_SWITCH(JetHadronRecoil, processJetsMCPMCDMatchedWithRhoSubtraction, "process MC matched (inc jets) with rho subtraction", false); - void processJetsMCPMCDMatchedWeighted(soa::Filtered>::iterator const& collision, + void processJetsMCPMCDMatchedWeighted(soa::Filtered>::iterator const& collision, soa::Filtered> const& mcdjets, aod::JetTracks const& tracks, aod::JetParticles const& particles, @@ -988,12 +998,15 @@ struct JetHadronRecoil { if (collision.mcCollision().ptHard() < pTHatMinEvent) { return; } + if (rejectOutlierCollisions && collision.isOutlier()) { + return; + } registry.fill(HIST("hZvtxSelected"), collision.posZ()); fillMatchedHistograms(mcdjets, mcpjets, tracks, particles, collision.mcCollision().weight(), 0.0, collision.mcCollision().ptHard()); } PROCESS_SWITCH(JetHadronRecoil, processJetsMCPMCDMatchedWeighted, "process MC matched with event weights (inc jets)", false); - void processJetsMCPMCDMatchedWeightedWithRhoSubtraction(soa::Filtered>::iterator const& collision, + void processJetsMCPMCDMatchedWeightedWithRhoSubtraction(soa::Filtered>::iterator const& collision, soa::Filtered> const& mcdjets, aod::JetTracks const& tracks, aod::JetParticles const& particles, @@ -1012,6 +1025,9 @@ struct JetHadronRecoil { if (collision.mcCollision().ptHard() < pTHatMinEvent) { return; } + if (rejectOutlierCollisions && collision.isOutlier()) { + return; + } registry.fill(HIST("hZvtxSelected"), collision.posZ()); fillMatchedHistograms(mcdjets, mcpjets, tracks, particles, collision.mcCollision().weight(), collision.rho(), collision.mcCollision().ptHard()); } @@ -1050,7 +1066,7 @@ struct JetHadronRecoil { PROCESS_SWITCH(JetHadronRecoil, processRecoilJetsMCPMCDMatched, "process MC matched (recoil jets)", false); void processRecoilJetsMCPMCDMatchedWeighted(aod::JetMcCollisions::iterator const& mccollision, - soa::SmallGroups const& collisions, + soa::SmallGroups> const& collisions, soa::Filtered> const& mcdjets, soa::Filtered const& tracks, soa::Filtered const& particles, @@ -1075,6 +1091,9 @@ struct JetHadronRecoil { if (!jetderiveddatautilities::selectTrigger(collision, triggerMaskBits)) { return; } + if (rejectOutlierCollisions && collision.isOutlier()) { + return; + } } registry.fill(HIST("hZvtxSelected"), mccollision.posZ(), mccollision.weight()); fillRecoilJetMatchedHistograms(mcdjets, mcpjets, tracks, particles, mccollision.weight(), 0.0, mccollision.ptHard()); @@ -1082,7 +1101,7 @@ struct JetHadronRecoil { PROCESS_SWITCH(JetHadronRecoil, processRecoilJetsMCPMCDMatchedWeighted, "process MC matched with event weights (recoil jets)", false); void processRecoilJetsMCPMCDMatchedWeightedWithRhoSubtraction(soa::Join::iterator const& mccollision, - soa::SmallGroups const& collisions, + soa::SmallGroups> const& collisions, soa::Filtered> const& mcdjets, soa::Filtered const& tracks, soa::Filtered const& particles, @@ -1107,6 +1126,9 @@ struct JetHadronRecoil { if (!jetderiveddatautilities::selectTrigger(collision, triggerMaskBits)) { return; } + if (rejectOutlierCollisions && collision.isOutlier()) { + return; + } } registry.fill(HIST("hZvtxSelected"), mccollision.posZ(), mccollision.weight()); fillRecoilJetMatchedHistograms(mcdjets, mcpjets, tracks, particles, mccollision.weight(), mccollision.rho(), mccollision.ptHard());