diff --git a/PWGJE/Tasks/jetHadronRecoil.cxx b/PWGJE/Tasks/jetHadronRecoil.cxx index 7d76b0e4288..14733c99de6 100644 --- a/PWGJE/Tasks/jetHadronRecoil.cxx +++ b/PWGJE/Tasks/jetHadronRecoil.cxx @@ -69,7 +69,7 @@ struct hJetAnalysis { Filter jetCuts = aod::jet::r == nround(jetR.node() * 100.0f); Filter trackCuts = (aod::jtrack::pt >= trackPtMin && aod::jtrack::pt < trackPtMax && aod::jtrack::eta > trackEtaMin && aod::jtrack::eta < trackEtaMax); - Filter eventCuts = nabs(aod::jcollision::posZ) < vertexZCut; + Filter eventTrackLevelCuts = nabs(aod::jcollision::posZ) < vertexZCut; HistogramRegistry registry{"registry", {{"hNtrig", "number of triggers;trigger type;entries", {HistType::kTH1F, {{2, 0, 2}}}}, @@ -123,6 +123,8 @@ struct hJetAnalysis { int eventSelection = -1; int trackSelection = -1; + Service pdg; + void init(InitContext const&) { eventSelection = jetderiveddatautilities::initialiseEventSelection(static_cast(eventSelections)); @@ -130,7 +132,7 @@ struct hJetAnalysis { Filter jetCuts = aod::jet::r == nround(jetR.node() * 100.0f); Filter trackCuts = (aod::jtrack::pt >= trackPtMin && aod::jtrack::pt < trackPtMax && aod::jtrack::eta > trackEtaMin && aod::jtrack::eta < trackEtaMax); - Filter eventCuts = (nabs(aod::jcollision::posZ) < vertexZCut); + Filter eventTrackLevelCuts = nabs(aod::jcollision::posZ) < vertexZCut; } template @@ -268,6 +270,13 @@ struct hJetAnalysis { is_sig_col = false; for (auto& particle : particles) { + auto pdgParticle = pdg->GetParticle(particle.pdgCode()); + if (!pdgParticle) { + continue; + } + if ((pdgParticle->Charge() == 0.0) || (!particle.isPhysicalPrimary())) { + continue; + } if (is_sig_col && particle.pt() < pt_TTsig_max && particle.pt() > pt_TTsig_min) { phi_TT_ar.push_back(particle.phi()); n_TT++; @@ -436,7 +445,7 @@ struct hJetAnalysis { } PROCESS_SWITCH(hJetAnalysis, processMCD, "process MC detector level", false); - void processMCDWeighted(soa::Join::iterator const& collision, + void processMCDWeighted(soa::Join, aod::JMcCollisionLbs>::iterator const& collision, soa::Filtered> const& jets, soa::Filtered> const& jetsWTA, soa::Filtered const& tracks) @@ -448,11 +457,14 @@ struct hJetAnalysis { } PROCESS_SWITCH(hJetAnalysis, processMCDWeighted, "process MC detector level with event weights", false); - void processMCP(JetMcCollision const& /*collision*/, + void processMCP(JetMcCollision const& collision, soa::Filtered> const& jets, soa::Filtered> const& jetsWTA, JetParticles const& particles) { + if (collision.posZ() < vertexZCut) { // For some reason declaring a filter doesnt work + return; + } fillMCPHistograms(jets, jetsWTA, particles); } PROCESS_SWITCH(hJetAnalysis, processMCP, "process MC particle level", false); @@ -462,6 +474,9 @@ struct hJetAnalysis { soa::Filtered> const& jetsWTA, JetParticles const& particles) { + if (collision.posZ() < vertexZCut) { + return; + } fillMCPHistograms(jets, jetsWTA, particles, collision.weight()); } PROCESS_SWITCH(hJetAnalysis, processMCPWeighted, "process MC particle level with event weights", false);