Skip to content

Commit 79d298f

Browse files
committed
adding the ability to skip parton level info saving
1 parent 017d284 commit 79d298f

File tree

5 files changed

+38
-25
lines changed

5 files changed

+38
-25
lines changed

PWGJE/JetFinders/jetFinder.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ struct JetFinderTask {
238238
{
239239
// TODO: MC event selection?
240240
inputParticles.clear();
241-
jetfindingutilities::analyseParticles<true, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 1, particles, pdgDatabase);
241+
jetfindingutilities::analyseParticles<false, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 1, particles, pdgDatabase);
242242
jetfindingutilities::findJets(jetFinder, inputParticles, jetPtMin, jetPtMax, jetRadius, jetAreaFractionMin, collision, jetsTable, constituentsTable, fillTHnSparse ? registry.get<THn>(HIST("hJetMCP")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
243243
}
244244
PROCESS_SWITCH(JetFinderTask, processParticleLevelChargedJets, "Particle level charged jet finding", false);
@@ -247,7 +247,7 @@ struct JetFinderTask {
247247
{
248248
// TODO: MC event selection?
249249
inputParticles.clear();
250-
jetfindingutilities::analyseParticles<true, soa::Filtered<aod::JetParticlesSub>, soa::Filtered<aod::JetParticlesSub>::iterator>(inputParticles, particleSelection, 1, particles, pdgDatabase);
250+
jetfindingutilities::analyseParticles<false, soa::Filtered<aod::JetParticlesSub>, soa::Filtered<aod::JetParticlesSub>::iterator>(inputParticles, particleSelection, 1, particles, pdgDatabase);
251251
jetfindingutilities::findJets(jetFinder, inputParticles, jetEWSPtMin, jetEWSPtMax, jetRadius, jetAreaFractionMin, collision, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, fillTHnSparse ? registry.get<THn>(HIST("hJetEWSMCP")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
252252
}
253253
PROCESS_SWITCH(JetFinderTask, processParticleLevelChargedEvtWiseSubJets, "Particle level charged with event-wise constituent subtraction jet finding", false);
@@ -256,7 +256,7 @@ struct JetFinderTask {
256256
{
257257
// TODO: MC event selection?
258258
inputParticles.clear();
259-
jetfindingutilities::analyseParticles<true, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 2, particles, pdgDatabase);
259+
jetfindingutilities::analyseParticles<false, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 2, particles, pdgDatabase);
260260
jetfindingutilities::findJets(jetFinder, inputParticles, jetPtMin, jetPtMax, jetRadius, jetAreaFractionMin, collision, jetsTable, constituentsTable, fillTHnSparse ? registry.get<THn>(HIST("hJetMCP")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
261261
}
262262
PROCESS_SWITCH(JetFinderTask, processParticleLevelNeutralJets, "Particle level neutral jet finding", false);
@@ -265,7 +265,7 @@ struct JetFinderTask {
265265
{
266266
// TODO: MC event selection?
267267
inputParticles.clear();
268-
jetfindingutilities::analyseParticles<true, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 0, particles, pdgDatabase);
268+
jetfindingutilities::analyseParticles<false, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 0, particles, pdgDatabase);
269269
jetfindingutilities::findJets(jetFinder, inputParticles, jetPtMin, jetPtMax, jetRadius, jetAreaFractionMin, collision, jetsTable, constituentsTable, fillTHnSparse ? registry.get<THn>(HIST("hJetMCP")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
270270
}
271271

PWGJE/JetFinders/jetFinderHF.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,10 @@ struct JetFinderHFTask {
245245
if (!jetfindingutilities::analyseCandidate(inputParticles, candidate, candPtMin, candPtMax, candYMin, candYMax)) {
246246
return;
247247
}
248-
if constexpr (!isEvtWiseSub) {
249-
jetfindingutilities::analyseParticles<true>(inputParticles, particleSelection, jetTypeParticleLevel, particles, pdgDatabase, &candidate);
250-
} else {
248+
if constexpr (isEvtWiseSub) {
251249
jetfindingutilities::analyseParticles<false>(inputParticles, particleSelection, jetTypeParticleLevel, particles, pdgDatabase, &candidate);
250+
} else {
251+
jetfindingutilities::analyseParticles<true>(inputParticles, particleSelection, jetTypeParticleLevel, particles, pdgDatabase, &candidate);
252252
}
253253
jetfindingutilities::findJets(jetFinder, inputParticles, minJetPt, maxJetPt, jetRadius, jetAreaFractionMin, collision, jetsTableInput, constituentsTableInput, registry.get<THn>(HIST("hJetMCP")), fillTHnSparse, true);
254254
}

PWGJE/TableProducer/derivedDataWriter.cxx

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ struct JetDerivedDataWriter {
5353
Configurable<bool> performTrackSelection{"performTrackSelection", true, "only save tracks that pass one of the track selections"};
5454
Configurable<float> trackPtSelectionMin{"trackPtSelectionMin", 0.15, "only save tracks that have a pT larger than this pT"};
5555
Configurable<float> trackEtaSelectionMax{"trackEtaSelectionMax", 0.9, "only save tracks that have an eta smaller than this eta"};
56+
Configurable<bool> savePartonLevelInfo{"savePartonLevelInfo", true, "save parton level info at MCP level"};
5657

5758
Configurable<std::string> triggerMasks{"triggerMasks", "", "possible JE Trigger masks: fJetChLowPt,fJetChHighPt,fTrackLowPt,fTrackHighPt,fJetD0ChLowPt,fJetD0ChHighPt,fJetLcChLowPt,fJetLcChHighPt,fEMCALReadout,fJetFullHighPt,fJetFullLowPt,fJetNeutralHighPt,fJetNeutralLowPt,fGammaVeryHighPtEMCAL,fGammaVeryHighPtDCAL,fGammaHighPtEMCAL,fGammaHighPtDCAL,fGammaLowPtEMCAL,fGammaLowPtDCAL,fGammaVeryLowPtEMCAL,fGammaVeryLowPtDCAL"};
5859
} config;
@@ -665,21 +666,27 @@ struct JetDerivedDataWriter {
665666
for (auto particle : particlesPerMcCollision) {
666667

667668
std::vector<int32_t> mothersIds;
668-
if (particle.has_mothers()) {
669-
auto mothersIdTemps = particle.mothersIds();
670-
for (auto mothersIdTemp : mothersIdTemps) {
671-
mothersIds.push_back(particleMapping[mothersIdTemp]);
672-
}
673-
}
674669
int daughtersIds[2] = {-1, -1};
675-
if (particle.has_daughters()) {
676-
auto i = 0;
677-
for (auto daughterId : particle.daughtersIds()) {
678-
if (i > 1) {
679-
break;
670+
if (config.savePartonLevelInfo) {
671+
if (particle.has_mothers()) {
672+
auto mothersIdTemps = particle.mothersIds();
673+
for (auto mothersIdTemp : mothersIdTemps) {
674+
mothersIds.push_back(particleMapping[mothersIdTemp]);
675+
}
676+
}
677+
if (particle.has_daughters()) {
678+
auto i = 0;
679+
for (auto daughterId : particle.daughtersIds()) {
680+
if (i > 1) {
681+
break;
682+
}
683+
daughtersIds[i] = particleMapping[daughterId];
684+
i++;
680685
}
681-
daughtersIds[i] = particleMapping[daughterId];
682-
i++;
686+
}
687+
} else {
688+
if (!particle.isPhysicalPrimary()) { // add outgoing partons exclusion here later
689+
continue;
683690
}
684691
}
685692
products.storedJMcParticlesTable(mcCollisionMapping[mcCollision.globalIndex()], o2::math_utils::detail::truncateFloatFraction(particle.pt(), precisionMomentumMask), o2::math_utils::detail::truncateFloatFraction(particle.eta(), precisionPositionMask), o2::math_utils::detail::truncateFloatFraction(particle.phi(), precisionPositionMask), o2::math_utils::detail::truncateFloatFraction(particle.y(), precisionPositionMask), o2::math_utils::detail::truncateFloatFraction(particle.e(), precisionMomentumMask), particle.pdgCode(), particle.statusCode(), particle.flags(), mothersIds, daughtersIds);
@@ -909,14 +916,14 @@ struct JetDerivedDataWriter {
909916
}
910917
PROCESS_SWITCH(JetDerivedDataWriter, processColllisonsMcCollisionLabel, "write out collision mcCollision label output tables", false);
911918

912-
void processTracksMcParticleLabel(soa::Join<aod::JCollisions, aod::JCollisionSelections>::iterator const& collision, soa::Join<aod::JTracks, aod::JMcTrackLbs> const& tracks)
919+
void processTracksMcParticleLabel(soa::Join<aod::JCollisions, aod::JCollisionSelections>::iterator const& collision, soa::Join<aod::JTracks, aod::JMcTrackLbs> const& tracks, aod::JMcParticles const&)
913920
{
914921
if (collision.isCollisionSelected()) {
915922
for (const auto& track : tracks) {
916923
if (!trackSelection(track)) {
917924
continue;
918925
}
919-
if (track.has_mcParticle()) {
926+
if (track.has_mcParticle() && (config.savePartonLevelInfo || track.mcParticle().isPhysicalPrimary())) {
920927
products.storedJMcTracksLabelTable(particleMapping[track.mcParticleId()]);
921928
} else {
922929
products.storedJMcTracksLabelTable(-1);
@@ -926,12 +933,18 @@ struct JetDerivedDataWriter {
926933
}
927934
PROCESS_SWITCH(JetDerivedDataWriter, processTracksMcParticleLabel, "write out track mcParticle label output tables", false);
928935

929-
void processClusterMcLabel(soa::Join<aod::JCollisions, aod::JCollisionSelections>::iterator const& collision, soa::Join<aod::JClusters, aod::JMcClusterLbs> const& clusters)
936+
void processClusterMcLabel(soa::Join<aod::JCollisions, aod::JCollisionSelections>::iterator const& collision, soa::Join<aod::JClusters, aod::JMcClusterLbs> const& clusters, aod::JMcParticles const& particles)
930937
{
931938
if (collision.isCollisionSelected()) {
932939
for (const auto& cluster : clusters) {
933940
std::vector<int32_t> clusterStoredJParticleIDs;
934941
for (const auto& clusterParticleId : cluster.mcParticlesIds()) {
942+
if (!config.savePartonLevelInfo) {
943+
const auto& particle = particles.iteratorAt(clusterParticleId);
944+
if (!particle.isPhysicalPrimary()) {
945+
continue;
946+
}
947+
}
935948
clusterStoredJParticleIDs.push_back(particleMapping[clusterParticleId]);
936949
}
937950
std::vector<float> amplitudeA;

PWGJE/TableProducer/eventwiseConstituentSubtractor.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ struct eventWiseConstituentSubtractorTask {
166166
}
167167
inputParticles.clear();
168168
tracksSubtracted.clear();
169-
jetfindingutilities::analyseParticles<true, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 1, particles, pdgDatabase);
169+
jetfindingutilities::analyseParticles<false, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 1, particles, pdgDatabase);
170170

171171
tracksSubtracted = eventWiseConstituentSubtractor.JetBkgSubUtils::doEventConstSub(inputParticles, mcCollision.rho(), mcCollision.rhoM());
172172

PWGJE/TableProducer/rhoEstimator.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ struct RhoEstimatorTask {
233233
return;
234234
}
235235
inputParticles.clear();
236-
jetfindingutilities::analyseParticles<true, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 1, particles, pdgDatabase);
236+
jetfindingutilities::analyseParticles<false, soa::Filtered<aod::JetParticles>, soa::Filtered<aod::JetParticles>::iterator>(inputParticles, particleSelection, 1, particles, pdgDatabase);
237237
auto [rho, rhoM] = bkgSub.estimateRhoAreaMedian(inputParticles, config.doSparse);
238238
rhoChargedMcTable(rho, rhoM);
239239
}

0 commit comments

Comments
 (0)