@@ -75,7 +75,7 @@ struct JetDsSpecSubs {
7575
7676 using DsDataJets = soa::Join<aod::DsChargedJets, aod::DsChargedJetConstituents>;
7777 using DsMCDJets = soa::Join<aod::DsChargedMCDetectorLevelJets, aod::DsChargedMCDetectorLevelJetConstituents, aod::DsChargedMCDetectorLevelJetsMatchedToDsChargedMCParticleLevelJets>;
78- using DsMCPJets = soa::Join<aod::DsChargedMCParticleLevelJets, aod::DsChargedMCParticleLevelJetConstituents, aod::DsChargedMCDetectorLevelJetsMatchedToDsChargedMCParticleLevelJets >;
78+ using DsMCPJets = soa::Join<aod::DsChargedMCParticleLevelJets, aod::DsChargedMCParticleLevelJetConstituents, aod::DsChargedMCParticleLevelJetsMatchedToDsChargedMCDetectorLevelJets >;
7979
8080 // Slices for access to proper HF MCD jet collision that is associated to MCCollision
8181 PresliceUnsorted<aod::JetCollisionsMCD> collisionsPerMCCollisionPreslice = aod::jmccollisionlb::mcCollisionId;
@@ -96,9 +96,14 @@ struct JetDsSpecSubs {
9696
9797 static constexpr float epsilon = 1 .e-6f ;
9898 // Filters
99- // Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100.0f);
99+ Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100 .0f );
100100 // Filter collisionFilter = nabs(aod::jcollision::posZ) < vertexZCut;
101101
102+ // Filtered jet tables
103+ using FilteredDsDataJets = soa::Filtered<DsDataJets>;
104+ using FilteredDsMCDJets = soa::Filtered<DsMCDJets>;
105+ using FilteredDsMCPJets = soa::Filtered<DsMCPJets>;
106+
102107 // =============
103108 // Histograms
104109 // =============
@@ -293,7 +298,7 @@ struct JetDsSpecSubs {
293298 // DATA process
294299 // ==============
295300
296- void processDataChargedSubstructure (aod::JetCollision const & collision, soa::Join<aod::DsChargedJets, aod::DsChargedJetConstituents> const & jets,
301+ void processDataChargedSubstructure (aod::JetCollision const & collision, FilteredDsDataJets const & jets,
297302 aod::CandidatesDsData const &, aod::JetTracks const &)
298303 {
299304 registry.fill (HIST (" h_collision_counter_data" ), 2.0 );
@@ -306,10 +311,6 @@ struct JetDsSpecSubs {
306311 registry.fill (HIST (" h_collision_counter_data" ), 3.0 );
307312
308313 for (const auto & jet : jets) {
309- const float jetRadius = jet.r () / 100 .f ;
310- if (std::abs (jetRadius - jetR.value ) > epsilon) {
311- continue ;
312- }
313314 registry.fill (HIST (" h_dsjet_counter_data" ), 0.5 ); // DsChargedJets entries
314315
315316 registry.fill (HIST (" h_jet_pt_data" ), jet.pt ());
@@ -395,8 +396,8 @@ struct JetDsSpecSubs {
395396 MCPJetsPerMCCollissionPreslice const & jetmcppreslice,
396397 aod::JetMcCollisions const & mccollisions,
397398 aod::JetCollisionsMCD const & collisions,
398- DsMCDJets const & mcdjets,
399- DsMCPJets const & mcpjets,
399+ FilteredDsMCDJets const & mcdjets,
400+ FilteredDsMCPJets const & mcpjets,
400401 DsCandidatesMCD const & /* mcdCandidates*/ ,
401402 DsCandidatesMCP const & /* mcpCandidates*/ ,
402403 aod::JetTracks const & tracks)
@@ -430,22 +431,14 @@ struct JetDsSpecSubs {
430431 // Detector-level Ds-tagged jets associated with the current reconstructed collision
431432 const auto dsmcdJetsPerCollision = mcdjets.sliceBy (jetmcdpreslice, collision.globalIndex ());
432433 for (const auto & mcdjet : dsmcdJetsPerCollision) {
433- const float mcdjetRadius = mcdjet.r () / 100 .f ;
434- if (std::abs (mcdjetRadius - jetR.value ) > epsilon) {
435- continue ;
436- }
437434 // Detector-level jet found in a matched collision
438435 registry.fill (HIST (" McEffJet" ), getValFromBin (BinMCJetCntr::DetectorLevelJetInMCCollision));
439436
440437 // Leading Ds candidate associated to the jet
441438 auto mcdDscand = mcdjet.template candidates_first_as <DsCandidatesMCD>();
442439
443440 // Check if it's prompt
444- int origin = 0 ;
445-
446- if (mcdDscand.originMcRec () != RecoDecay::OriginType::Prompt) {
447- origin = 1 ;
448- }
441+ int origin = (mcdDscand.originMcRec () != RecoDecay::OriginType::Prompt) ? 1 : 0 ;
449442
450443 // Check whether a matched particle-level jet exists
451444 if (mcdjet.has_matchedJetCand ()) {
@@ -488,10 +481,6 @@ struct JetDsSpecSubs {
488481 // Particle level
489482 const auto dsmcpJetsPerMCCollision = mcpjets.sliceBy (jetmcppreslice, mccollision.globalIndex ());
490483 for (const auto & mcpjet : dsmcpJetsPerMCCollision) {
491- const float mcpjetRadius = mcpjet.r () / 100 .f ;
492- if (std::abs (mcpjetRadius - jetR.value ) > epsilon) {
493- continue ;
494- }
495484
496485 registry.fill (HIST (" McEffJet" ), getValFromBin (BinMCJetCntr::ParticleLevelJetInMCCollision));
497486
@@ -538,16 +527,16 @@ struct JetDsSpecSubs {
538527
539528 void processMonteCarloEfficiencyDs (aod::JetMcCollisions const & mccollisions,
540529 aod::JetCollisionsMCD const & collisions,
541- DsMCDJets const & mcdjets,
542- DsMCPJets const & mcpjets,
530+ FilteredDsMCDJets const & mcdjets,
531+ FilteredDsMCPJets const & mcpjets,
543532 DsCandidatesMCD const & mcdDscand,
544533 DsCandidatesMCP const & mcpDscand,
545534 aod::JetTracks const & jettracks)
546535 {
547536 analyseMonteCarloEfficiency<Preslice<DsMCDJets>,
548537 Preslice<DsMCPJets>,
549- DsMCDJets ,
550- DsMCPJets ,
538+ FilteredDsMCDJets ,
539+ FilteredDsMCPJets ,
551540 DsCandidatesMCD,
552541 DsCandidatesMCP>(dsMCDJetsPerEXPCollisionPreslice,
553542 dsMCPJetsPerMCCollisionPreslice,
@@ -564,4 +553,4 @@ struct JetDsSpecSubs {
564553WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
565554{
566555 return WorkflowSpec{adaptAnalysisTask<JetDsSpecSubs>(cfgc)};
567- }
556+ }
0 commit comments