diff --git a/PWGJE/Tasks/jetDsSpecSubs.cxx b/PWGJE/Tasks/jetDsSpecSubs.cxx index 6189fd60e1f..c088dfb6437 100644 --- a/PWGJE/Tasks/jetDsSpecSubs.cxx +++ b/PWGJE/Tasks/jetDsSpecSubs.cxx @@ -75,7 +75,7 @@ struct JetDsSpecSubs { using DsDataJets = soa::Join; using DsMCDJets = soa::Join; - using DsMCPJets = soa::Join; + using DsMCPJets = soa::Join; // Slices for access to proper HF MCD jet collision that is associated to MCCollision PresliceUnsorted collisionsPerMCCollisionPreslice = aod::jmccollisionlb::mcCollisionId; @@ -94,11 +94,15 @@ struct JetDsSpecSubs { std::vector eventSelectionBits; int trackSelection = -1; - static constexpr float epsilon = 1.e-6f; // Filters - // Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100.0f); + Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100.0f); // Filter collisionFilter = nabs(aod::jcollision::posZ) < vertexZCut; + // Filtered jet tables + using FilteredDsDataJets = soa::Filtered; + using FilteredDsMCDJets = soa::Filtered; + using FilteredDsMCPJets = soa::Filtered; + //============= // Histograms //============= @@ -293,7 +297,7 @@ struct JetDsSpecSubs { // DATA process //============== - void processDataChargedSubstructure(aod::JetCollision const& collision, soa::Join const& jets, + void processDataChargedSubstructure(aod::JetCollision const& collision, FilteredDsDataJets const& jets, aod::CandidatesDsData const&, aod::JetTracks const&) { registry.fill(HIST("h_collision_counter_data"), 2.0); @@ -306,10 +310,6 @@ struct JetDsSpecSubs { registry.fill(HIST("h_collision_counter_data"), 3.0); for (const auto& jet : jets) { - const float jetRadius = jet.r() / 100.f; - if (std::abs(jetRadius - jetR.value) > epsilon) { - continue; - } registry.fill(HIST("h_dsjet_counter_data"), 0.5); // DsChargedJets entries registry.fill(HIST("h_jet_pt_data"), jet.pt()); @@ -395,8 +395,8 @@ struct JetDsSpecSubs { MCPJetsPerMCCollissionPreslice const& jetmcppreslice, aod::JetMcCollisions const& mccollisions, aod::JetCollisionsMCD const& collisions, - DsMCDJets const& mcdjets, - DsMCPJets const& mcpjets, + FilteredDsMCDJets const& mcdjets, + FilteredDsMCPJets const& mcpjets, DsCandidatesMCD const& /*mcdCandidates*/, DsCandidatesMCP const& /*mcpCandidates*/, aod::JetTracks const& tracks) @@ -430,10 +430,6 @@ struct JetDsSpecSubs { // Detector-level Ds-tagged jets associated with the current reconstructed collision const auto dsmcdJetsPerCollision = mcdjets.sliceBy(jetmcdpreslice, collision.globalIndex()); for (const auto& mcdjet : dsmcdJetsPerCollision) { - const float mcdjetRadius = mcdjet.r() / 100.f; - if (std::abs(mcdjetRadius - jetR.value) > epsilon) { - continue; - } // Detector-level jet found in a matched collision registry.fill(HIST("McEffJet"), getValFromBin(BinMCJetCntr::DetectorLevelJetInMCCollision)); @@ -441,11 +437,7 @@ struct JetDsSpecSubs { auto mcdDscand = mcdjet.template candidates_first_as(); // Check if it's prompt - int origin = 0; - - if (mcdDscand.originMcRec() != RecoDecay::OriginType::Prompt) { - origin = 1; - } + int origin = (mcdDscand.originMcRec() != RecoDecay::OriginType::Prompt) ? 1 : 0; // Check whether a matched particle-level jet exists if (mcdjet.has_matchedJetCand()) { @@ -488,10 +480,6 @@ struct JetDsSpecSubs { // Particle level const auto dsmcpJetsPerMCCollision = mcpjets.sliceBy(jetmcppreslice, mccollision.globalIndex()); for (const auto& mcpjet : dsmcpJetsPerMCCollision) { - const float mcpjetRadius = mcpjet.r() / 100.f; - if (std::abs(mcpjetRadius - jetR.value) > epsilon) { - continue; - } registry.fill(HIST("McEffJet"), getValFromBin(BinMCJetCntr::ParticleLevelJetInMCCollision)); @@ -538,16 +526,16 @@ struct JetDsSpecSubs { void processMonteCarloEfficiencyDs(aod::JetMcCollisions const& mccollisions, aod::JetCollisionsMCD const& collisions, - DsMCDJets const& mcdjets, - DsMCPJets const& mcpjets, + FilteredDsMCDJets const& mcdjets, + FilteredDsMCPJets const& mcpjets, DsCandidatesMCD const& mcdDscand, DsCandidatesMCP const& mcpDscand, aod::JetTracks const& jettracks) { analyseMonteCarloEfficiency, Preslice, - DsMCDJets, - DsMCPJets, + FilteredDsMCDJets, + FilteredDsMCPJets, DsCandidatesMCD, DsCandidatesMCP>(dsMCDJetsPerEXPCollisionPreslice, dsMCPJetsPerMCCollisionPreslice,