Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 15 additions & 27 deletions PWGJE/Tasks/jetDsSpecSubs.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ struct JetDsSpecSubs {

using DsDataJets = soa::Join<aod::DsChargedJets, aod::DsChargedJetConstituents>;
using DsMCDJets = soa::Join<aod::DsChargedMCDetectorLevelJets, aod::DsChargedMCDetectorLevelJetConstituents, aod::DsChargedMCDetectorLevelJetsMatchedToDsChargedMCParticleLevelJets>;
using DsMCPJets = soa::Join<aod::DsChargedMCParticleLevelJets, aod::DsChargedMCParticleLevelJetConstituents, aod::DsChargedMCDetectorLevelJetsMatchedToDsChargedMCParticleLevelJets>;
using DsMCPJets = soa::Join<aod::DsChargedMCParticleLevelJets, aod::DsChargedMCParticleLevelJetConstituents, aod::DsChargedMCParticleLevelJetsMatchedToDsChargedMCDetectorLevelJets>;

// Slices for access to proper HF MCD jet collision that is associated to MCCollision
PresliceUnsorted<aod::JetCollisionsMCD> collisionsPerMCCollisionPreslice = aod::jmccollisionlb::mcCollisionId;
Expand All @@ -94,11 +94,15 @@ struct JetDsSpecSubs {
std::vector<int> 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<DsDataJets>;
using FilteredDsMCDJets = soa::Filtered<DsMCDJets>;
using FilteredDsMCPJets = soa::Filtered<DsMCPJets>;

//=============
// Histograms
//=============
Expand Down Expand Up @@ -293,7 +297,7 @@ struct JetDsSpecSubs {
// DATA process
//==============

void processDataChargedSubstructure(aod::JetCollision const& collision, soa::Join<aod::DsChargedJets, aod::DsChargedJetConstituents> 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);
Expand All @@ -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());
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -430,22 +430,14 @@ 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));

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

// 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()) {
Expand Down Expand Up @@ -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));

Expand Down Expand Up @@ -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>,
Preslice<DsMCPJets>,
DsMCDJets,
DsMCPJets,
FilteredDsMCDJets,
FilteredDsMCPJets,
DsCandidatesMCD,
DsCandidatesMCP>(dsMCDJetsPerEXPCollisionPreslice,
dsMCPJetsPerMCCollisionPreslice,
Expand Down
Loading