Skip to content

Commit bfd6a9c

Browse files
committed
[PWGJE] Fix Ds MC jet matching and apply filtered jet tables
1 parent 9802a79 commit bfd6a9c

1 file changed

Lines changed: 16 additions & 27 deletions

File tree

PWGJE/Tasks/jetDsSpecSubs.cxx

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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 {
564553
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
565554
{
566555
return WorkflowSpec{adaptAnalysisTask<JetDsSpecSubs>(cfgc)};
567-
}
556+
}

0 commit comments

Comments
 (0)