Skip to content

Commit dfdd147

Browse files
ddobrigkalibuild
andauthored
Declarative filter for mc finder speed (#2872)
* Declarative filter for mc finder speed * Please consider the following formatting changes (#136) --------- Co-authored-by: David Dobrigkeit Chinellato <david.dobrigkeit.chinellato.cern.ch> Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent 62cb9db commit dfdd147

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

PWGLF/TableProducer/cascademcfinder.cxx

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,16 @@ struct cascademcfinder {
7676
Configurable<bool> findOmegaMinus{"findOmegaMinus", true, "findOmegaMinus"};
7777
Configurable<bool> findOmegaPlus{"findOmegaPlus", true, "findOmegaPlus"};
7878
Configurable<bool> requireITS{"requireITS", false, "require ITS information used in tracks"};
79+
Configurable<float> yPreFilter{"yPreFilter", 2.5, "broad y pre-filter for speed"};
7980
Configurable<bool> doQA{"doQA", true, "do qa plots"};
8081

8182
// For manual sliceBy
8283
Preslice<aod::McParticle> perMcCollision = aod::mcparticle::mcCollisionId;
8384

85+
// declarative filtering for particles of interest
86+
// pre-filter on PDG and on very broad rapidity window
87+
Filter mcParticleFilter = nabs(o2::aod::mcparticle::y) < yPreFilter && (nabs(o2::aod::mcparticle::pdgCode) == 3312 || nabs(o2::aod::mcparticle::pdgCode) == 3334);
88+
8489
std::vector<int> casccollisionId;
8590
std::vector<int> cascv0Index;
8691
std::vector<int> cascbachelorIndex;
@@ -246,7 +251,7 @@ struct cascademcfinder {
246251
return reconstructed;
247252
}
248253

249-
void process(soa::Join<aod::McCollisions, aod::McCollsExtra> const& mcCollisions, LabeledTracks const& tracks, aod::McParticles const& allMcParticles, LabeledFullV0s const& v0s)
254+
void process(soa::Join<aod::McCollisions, aod::McCollsExtra> const& mcCollisions, LabeledTracks const& tracks, soa::Filtered<aod::McParticles> const& allMcParticles, LabeledFullV0s const& v0s)
250255
{
251256
casccollisionId.clear();
252257
cascbachelorIndex.clear();
@@ -318,19 +323,19 @@ struct cascademcfinder {
318323
histos.fill(HIST("hPtOmegaPlusGlobalWithPV"), mcParticle.pt());
319324
}
320325
}
321-
}
322-
}
326+
}
327+
}
323328

324-
// sort according to collision ID
325-
auto sortedIndices = sort_indices(casccollisionId);
329+
// sort according to collision ID
330+
auto sortedIndices = sort_indices(casccollisionId);
326331

327-
// V0 list established, populate
328-
for (auto ic : sortedIndices) {
329-
if (casccollisionId[ic] >= 0) {
330-
cascades(casccollisionId[ic], cascv0Index[ic], cascbachelorIndex[ic]);
331-
}
332-
}
332+
// V0 list established, populate
333+
for (auto ic : sortedIndices) {
334+
if (casccollisionId[ic] >= 0) {
335+
cascades(casccollisionId[ic], cascv0Index[ic], cascbachelorIndex[ic]);
333336
}
337+
}
338+
}
334339
};
335340

336341
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

PWGLF/TableProducer/lambdakzeromcfinder.cxx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,15 @@ struct lambdakzeromcfinder {
8181
Configurable<bool> doUnassociatedV0s{"doUnassociatedV0s", true, "generate also unassociated V0s (for cascades!)"};
8282
Configurable<bool> doQA{"doQA", true, "do qa plots"};
8383
Configurable<int> qaNbins{"qaNbins", 200, "qa plots: binning"};
84+
Configurable<float> yPreFilter{"yPreFilter", 2.5, "broad y pre-filter for speed"};
8485
ConfigurableAxis axisPtQA{"axisPtQA", {VARIABLE_WIDTH, 0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, 1.8f, 1.9f, 2.0f, 2.2f, 2.4f, 2.6f, 2.8f, 3.0f, 3.2f, 3.4f, 3.6f, 3.8f, 4.0f, 4.4f, 4.8f, 5.2f, 5.6f, 6.0f, 6.5f, 7.0f, 7.5f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 17.0f, 19.0f, 21.0f, 23.0f, 25.0f, 30.0f, 35.0f, 40.0f, 50.0f}, "pt axis for QA histograms"};
8586

8687
Preslice<aod::McParticle> perMcCollision = aod::mcparticle::mcCollisionId;
8788

89+
// declarative filtering for particles of interest
90+
// pre-filter on PDG and on very broad rapidity window
91+
Filter mcParticleFilter = nabs(o2::aod::mcparticle::y) < yPreFilter && (nabs(o2::aod::mcparticle::pdgCode) == 1010010030 || nabs(o2::aod::mcparticle::pdgCode) == 3122 || o2::aod::mcparticle::pdgCode == 310 || o2::aod::mcparticle::pdgCode == 22);
92+
8893
std::vector<int> v0collisionId;
8994
std::vector<int> v0positiveIndex;
9095
std::vector<int> v0negativeIndex;
@@ -243,7 +248,7 @@ struct lambdakzeromcfinder {
243248
return reconstructed;
244249
}
245250

246-
void process(soa::Join<aod::McCollisions, aod::McCollsExtra> const& mcCollisions, LabeledTracks const& tracks, aod::McParticles const& allMcParticles)
251+
void process(soa::Join<aod::McCollisions, aod::McCollsExtra> const& mcCollisions, LabeledTracks const& tracks, soa::Filtered<aod::McParticles> const& allMcParticles)
247252
{
248253
v0collisionId.clear();
249254
v0positiveIndex.clear();

0 commit comments

Comments
 (0)