Skip to content

Commit eceae8b

Browse files
authored
[PWGJE] Fix Ds MC jet matching and apply filtered jet tables (#17030)
1 parent 9256063 commit eceae8b

1 file changed

Lines changed: 15 additions & 27 deletions

File tree

PWGJE/Tasks/jetDsSpecSubs.cxx

Lines changed: 15 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;
@@ -94,11 +94,15 @@ struct JetDsSpecSubs {
9494
std::vector<int> eventSelectionBits;
9595
int trackSelection = -1;
9696

97-
static constexpr float epsilon = 1.e-6f;
9897
// Filters
99-
// Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100.0f);
98+
Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100.0f);
10099
// Filter collisionFilter = nabs(aod::jcollision::posZ) < vertexZCut;
101100

101+
// Filtered jet tables
102+
using FilteredDsDataJets = soa::Filtered<DsDataJets>;
103+
using FilteredDsMCDJets = soa::Filtered<DsMCDJets>;
104+
using FilteredDsMCPJets = soa::Filtered<DsMCPJets>;
105+
102106
//=============
103107
// Histograms
104108
//=============
@@ -293,7 +297,7 @@ struct JetDsSpecSubs {
293297
// DATA process
294298
//==============
295299

296-
void processDataChargedSubstructure(aod::JetCollision const& collision, soa::Join<aod::DsChargedJets, aod::DsChargedJetConstituents> const& jets,
300+
void processDataChargedSubstructure(aod::JetCollision const& collision, FilteredDsDataJets const& jets,
297301
aod::CandidatesDsData const&, aod::JetTracks const&)
298302
{
299303
registry.fill(HIST("h_collision_counter_data"), 2.0);
@@ -306,10 +310,6 @@ struct JetDsSpecSubs {
306310
registry.fill(HIST("h_collision_counter_data"), 3.0);
307311

308312
for (const auto& jet : jets) {
309-
const float jetRadius = jet.r() / 100.f;
310-
if (std::abs(jetRadius - jetR.value) > epsilon) {
311-
continue;
312-
}
313313
registry.fill(HIST("h_dsjet_counter_data"), 0.5); // DsChargedJets entries
314314

315315
registry.fill(HIST("h_jet_pt_data"), jet.pt());
@@ -395,8 +395,8 @@ struct JetDsSpecSubs {
395395
MCPJetsPerMCCollissionPreslice const& jetmcppreslice,
396396
aod::JetMcCollisions const& mccollisions,
397397
aod::JetCollisionsMCD const& collisions,
398-
DsMCDJets const& mcdjets,
399-
DsMCPJets const& mcpjets,
398+
FilteredDsMCDJets const& mcdjets,
399+
FilteredDsMCPJets const& mcpjets,
400400
DsCandidatesMCD const& /*mcdCandidates*/,
401401
DsCandidatesMCP const& /*mcpCandidates*/,
402402
aod::JetTracks const& tracks)
@@ -430,22 +430,14 @@ struct JetDsSpecSubs {
430430
// Detector-level Ds-tagged jets associated with the current reconstructed collision
431431
const auto dsmcdJetsPerCollision = mcdjets.sliceBy(jetmcdpreslice, collision.globalIndex());
432432
for (const auto& mcdjet : dsmcdJetsPerCollision) {
433-
const float mcdjetRadius = mcdjet.r() / 100.f;
434-
if (std::abs(mcdjetRadius - jetR.value) > epsilon) {
435-
continue;
436-
}
437433
// Detector-level jet found in a matched collision
438434
registry.fill(HIST("McEffJet"), getValFromBin(BinMCJetCntr::DetectorLevelJetInMCCollision));
439435

440436
// Leading Ds candidate associated to the jet
441437
auto mcdDscand = mcdjet.template candidates_first_as<DsCandidatesMCD>();
442438

443439
// Check if it's prompt
444-
int origin = 0;
445-
446-
if (mcdDscand.originMcRec() != RecoDecay::OriginType::Prompt) {
447-
origin = 1;
448-
}
440+
int origin = (mcdDscand.originMcRec() != RecoDecay::OriginType::Prompt) ? 1 : 0;
449441

450442
// Check whether a matched particle-level jet exists
451443
if (mcdjet.has_matchedJetCand()) {
@@ -488,10 +480,6 @@ struct JetDsSpecSubs {
488480
// Particle level
489481
const auto dsmcpJetsPerMCCollision = mcpjets.sliceBy(jetmcppreslice, mccollision.globalIndex());
490482
for (const auto& mcpjet : dsmcpJetsPerMCCollision) {
491-
const float mcpjetRadius = mcpjet.r() / 100.f;
492-
if (std::abs(mcpjetRadius - jetR.value) > epsilon) {
493-
continue;
494-
}
495483

496484
registry.fill(HIST("McEffJet"), getValFromBin(BinMCJetCntr::ParticleLevelJetInMCCollision));
497485

@@ -538,16 +526,16 @@ struct JetDsSpecSubs {
538526

539527
void processMonteCarloEfficiencyDs(aod::JetMcCollisions const& mccollisions,
540528
aod::JetCollisionsMCD const& collisions,
541-
DsMCDJets const& mcdjets,
542-
DsMCPJets const& mcpjets,
529+
FilteredDsMCDJets const& mcdjets,
530+
FilteredDsMCPJets const& mcpjets,
543531
DsCandidatesMCD const& mcdDscand,
544532
DsCandidatesMCP const& mcpDscand,
545533
aod::JetTracks const& jettracks)
546534
{
547535
analyseMonteCarloEfficiency<Preslice<DsMCDJets>,
548536
Preslice<DsMCPJets>,
549-
DsMCDJets,
550-
DsMCPJets,
537+
FilteredDsMCDJets,
538+
FilteredDsMCPJets,
551539
DsCandidatesMCD,
552540
DsCandidatesMCP>(dsMCDJetsPerEXPCollisionPreslice,
553541
dsMCPJetsPerMCCollisionPreslice,

0 commit comments

Comments
 (0)