@@ -74,10 +74,8 @@ using MCPV0JetsWithConstituents = soa::Join<aod::V0ChargedMCParticleLevelJets, a
7474using MatchedMCDV0Jets = soa::Join<aod::V0ChargedMCDetectorLevelJets, aod::V0ChargedMCDetectorLevelJetsMatchedToV0ChargedMCParticleLevelJets>;
7575using 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.
7978using JetMcCollisionsWithPIs = soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs>;
80- using McCollisionsWithCent = soa::Join<aod::McCollisions, aod::McCentFT0Ms>;
8179
8280struct 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