Skip to content

Commit 3e2d0a8

Browse files
committed
use Jet Tables for MC collisions and particles
1 parent 20a3147 commit 3e2d0a8

1 file changed

Lines changed: 12 additions & 15 deletions

File tree

‎PWGJE/Tasks/lfJetSpectra.cxx‎

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,8 @@ using MCPV0JetsWithConstituents = soa::Join<aod::V0ChargedMCParticleLevelJets, a
7474
using MatchedMCDV0Jets = soa::Join<aod::V0ChargedMCDetectorLevelJets, aod::V0ChargedMCDetectorLevelJetsMatchedToV0ChargedMCParticleLevelJets>;
7575
using MatchedMCPV0JetsWithConstituents = soa::Join<aod::V0ChargedMCParticleLevelJets, aod::V0ChargedMCParticleLevelJetConstituents, aod::V0ChargedMCParticleLevelJetsMatchedToV0ChargedMCDetectorLevelJets>;
7676

77-
// MC collisions: PWGJE MC collisions with the index to the AO2D MC collisions, from which the generated multiplicity is taken
78-
// (same estimator as in strangenessInJets)
77+
// PWGJE MC collisions and their indices to the original AO2D MC collisions.
7978
using JetMcCollisionsWithPIs = soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs>;
80-
using McCollisionsWithCent = soa::Join<aod::McCollisions, aod::McCentFT0Ms>;
8179

8280
struct LfJetSpectra {
8381
HistogramRegistry registryData{"registryData", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
@@ -114,7 +112,7 @@ struct LfJetSpectra {
114112
// Reconstructed V0s: true V0s (PDG of the V0 and of the daughters) passing the selections, at reconstructed pT.
115113
// Generated V0s: physical primary V0s, at generated pT. In particle-level jets (kGenJet, kGenUE) they are the V0s
116114
// clustered by the particle-level jet finder (aod::CandidatesV0MCP, all decay channels with v0ChargedDecaysOnly = false),
117-
// with the same in-jet / UE definition as in data. Otherwise they are taken from aod::McParticles (all decay channels,
115+
// with the same in-jet / UE definition as in data. Otherwise they are taken from aod::JetParticles (all decay channels,
118116
// so the efficiency includes the branching ratio) and, for the reco jets, "in jet" means within R from the jet axis
119117
enum MCHistogram { kRecJet = 0, // reco primary V0s, constituents of a reco jet (efficiency numerator, jet)
120118
kRecUE, // reco primary V0s in the UE of a reco jet (efficiency numerator, UE)
@@ -237,7 +235,6 @@ struct LfJetSpectra {
237235
Filter jetCollisionFilter = nabs(aod::jcollision::posZ) < vertexZCut;
238236
Filter jetMcCollisionFilter = nabs(aod::jmccollision::posZ) < vertexZCut;
239237

240-
Preslice<aod::McParticles> perMcCollision = aod::mcparticle::mcCollisionId;
241238
// Particle-level jet finder input and jets of the MC collision associated to a reconstructed collision (jet pT response)
242239
Preslice<aod::CandidatesV0MCP> v0MCPPerMcCollision = aod::jv0indices::mcCollisionId;
243240
Preslice<aod::JetParticles> particlesPerMcCollision = aod::jmcparticle::mcCollisionId;
@@ -1073,7 +1070,7 @@ struct LfJetSpectra {
10731070
}
10741071
}
10751072

1076-
// Generated physical primary V0s (aod::McParticles)
1073+
// Generated physical primary V0s from the PWGJE reduced MC particle table
10771074
template <int iHist, typename T>
10781075
void fillMCGenV0(T const& v0, float multiplicity, float weight)
10791076
{
@@ -1086,19 +1083,19 @@ struct LfJetSpectra {
10861083

10871084
// MC detector level: reconstructed V0s (efficiency numerators, feed-down) and generated V0s in the reconstructed
10881085
// events (efficiency denominators), in jets and in the UE of the reconstructed jets
1089-
void processMCReco(soa::Filtered<aod::JetCollisionsMCD>::iterator const& jcoll, JetMcCollisionsWithPIs const&, McCollisionsWithCent const&, MCDV0JetsWithConstituents const& v0jets,
1090-
aod::CandidatesV0MCD const& v0s, aod::JetTracks const& tracks, aod::McParticles const& mcParticles)
1086+
void processMCReco(soa::Filtered<aod::JetCollisionsMCD>::iterator const& jcoll, JetMcCollisionsWithPIs const&, MCDV0JetsWithConstituents const& v0jets,
1087+
aod::CandidatesV0MCD const& v0s, aod::JetTracks const& tracks, aod::JetParticles const& jetParticles)
10911088
{
10921089
if (!jcoll.has_mcCollision() || !isSelectedCollision(jcoll, jetFinderConfigDet)) {
10931090
return;
10941091
}
10951092
const auto mcCollision = jcoll.mcCollision_as<JetMcCollisionsWithPIs>();
1096-
const float multiplicity = mcCollision.mcCollision_as<McCollisionsWithCent>().centFT0M();
1093+
const float multiplicity = mcCollision.centFT0M();
10971094
const float weight = mcCollision.weight();
10981095
registryMC.fill(HIST("number_of_events_vsmultiplicity_rec"), multiplicity, weight);
10991096

1100-
// Generated particles of the AO2D MC collision associated to the reconstructed collision
1101-
const auto genV0s = mcParticles.sliceBy(perMcCollision, mcCollision.mcCollisionId());
1097+
// Generated particles of the MC collision associated to the reconstructed collision
1098+
const auto genV0s = jetParticles.sliceBy(particlesPerMcCollision, mcCollision.mcCollisionId());
11021099

11031100
const auto jetFinderV0s = buildDetectorLevelInput(v0s, tracks);
11041101

@@ -1183,17 +1180,17 @@ struct LfJetSpectra {
11831180
PROCESS_SWITCH(LfJetSpectra, processMCReco, "V0s in jets and in the UE, MC detector level (efficiency and feed-down)", false);
11841181

11851182
// MC particle level: generated V0s in particle-level jets and in their UE (defined as in data), and in the full event
1186-
void processMCGen(soa::Filtered<JetMcCollisionsWithPIs>::iterator const& mcCollision, McCollisionsWithCent const&, MCPV0JetsWithConstituents const& v0jets,
1187-
aod::CandidatesV0MCP const& v0s, aod::JetParticles const& particles, aod::McParticles const& mcParticles)
1183+
void processMCGen(soa::Filtered<JetMcCollisionsWithPIs>::iterator const& mcCollision, MCPV0JetsWithConstituents const& v0jets,
1184+
aod::CandidatesV0MCP const& v0s, aod::JetParticles const& particles)
11881185
{
11891186
if (!jetderiveddatautilities::selectCollision(mcCollision, jetFinderConfigGen.eventSelectionBits, jetFinderConfigGen.skipMBGapEvents, jetFinderConfigGen.applyRCTSelections)) {
11901187
return;
11911188
}
1192-
const float multiplicity = mcCollision.mcCollision_as<McCollisionsWithCent>().centFT0M();
1189+
const float multiplicity = mcCollision.centFT0M();
11931190
const float weight = mcCollision.weight();
11941191
registryMC.fill(HIST("number_of_events_vsmultiplicity_gen"), multiplicity, weight);
11951192

1196-
const auto genV0s = mcParticles.sliceBy(perMcCollision, mcCollision.mcCollisionId());
1193+
const auto genV0s = particles.sliceBy(particlesPerMcCollision, mcCollision.mcCollisionId());
11971194
for (const auto& genV0 : genV0s) {
11981195
if (std::abs(genV0.eta()) < inclusiveEtaMax) {
11991196
fillMCGenV0<kGenFullEvent>(genV0, multiplicity, weight);

0 commit comments

Comments
 (0)