Skip to content

Commit 3516ea0

Browse files
committed
Factor out process functions for B+
1 parent 6ce763c commit 3516ea0

File tree

1 file changed

+13
-58
lines changed

1 file changed

+13
-58
lines changed

PWGHF/TableProducer/derivedDataCreatorBplusToD0Pi.cxx

Lines changed: 13 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ struct HfDerivedDataCreatorBplusToD0Pi {
6767

6868
HfHelper hfHelper;
6969
SliceCache cache;
70+
static constexpr double mass{o2::constants::physics::MassBPlus};
7071

7172
using CollisionsWCentMult = soa::Join<aod::Collisions, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::PVMultZeqs>;
7273
using CollisionsWMcCentMult = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::PVMultZeqs>;
@@ -297,52 +298,6 @@ struct HfDerivedDataCreatorBplusToD0Pi {
297298
}
298299
}
299300

300-
template <typename CollisionType, typename ParticleType>
301-
void preProcessMcCollisions(CollisionType const& mcCollisions,
302-
ParticleType const& mcParticles)
303-
{
304-
if (!confDerData.fillMcRCollId) {
305-
return;
306-
}
307-
rowsCommon.hasMcParticles.clear();
308-
// Fill MC collision flags
309-
for (const auto& mcCollision : mcCollisions) {
310-
auto thisMcCollId = mcCollision.globalIndex();
311-
auto particlesThisMcColl = mcParticles.sliceBy(mcParticlesPerMcCollision, thisMcCollId);
312-
LOGF(debug, "MC collision %d has %d MC particles (preprocess)", thisMcCollId, particlesThisMcColl.size());
313-
rowsCommon.hasMcParticles[thisMcCollId] = (particlesThisMcColl.size() > 0);
314-
}
315-
}
316-
317-
template <typename CollisionType, typename ParticleType>
318-
void processMcParticles(CollisionType const& mcCollisions,
319-
ParticleType const& mcParticles)
320-
{
321-
// Fill MC collision properties
322-
auto sizeTableMcColl = mcCollisions.size();
323-
rowsCommon.reserveTablesMcColl(sizeTableMcColl);
324-
for (const auto& mcCollision : mcCollisions) {
325-
auto thisMcCollId = mcCollision.globalIndex();
326-
auto particlesThisMcColl = mcParticles.sliceBy(mcParticlesPerMcCollision, thisMcCollId);
327-
auto sizeTablePart = particlesThisMcColl.size();
328-
LOGF(debug, "MC collision %d has %d MC particles", thisMcCollId, sizeTablePart);
329-
// Skip MC collisions without HF particles (and without HF candidates in matched reconstructed collisions if saving indices of reconstructed collisions matched to MC collisions)
330-
LOGF(debug, "MC collision %d has %d saved derived rec. collisions", thisMcCollId, rowsCommon.matchedCollisions[thisMcCollId].size());
331-
if (sizeTablePart == 0 && (!confDerData.fillMcRCollId || rowsCommon.matchedCollisions[thisMcCollId].empty())) {
332-
LOGF(debug, "Skipping MC collision %d", thisMcCollId);
333-
continue;
334-
}
335-
LOGF(debug, "Filling MC collision %d at derived index %d", thisMcCollId, rowsCommon.rowMcCollBase.lastIndex() + 1);
336-
rowsCommon.fillTablesMcCollision(mcCollision);
337-
338-
// Fill MC particle properties
339-
rowsCommon.reserveTablesParticles(sizeTablePart);
340-
for (const auto& particle : particlesThisMcColl) {
341-
rowsCommon.fillTablesParticle(particle, o2::constants::physics::MassBPlus);
342-
}
343-
}
344-
}
345-
346301
void processData(CollisionsWCentMult const& collisions,
347302
SelectedCandidates const&,
348303
THfCandDaughters const& candidatesDaughters,
@@ -361,9 +316,9 @@ struct HfDerivedDataCreatorBplusToD0Pi {
361316
TracksWPid const& tracks,
362317
aod::BCs const& bcs)
363318
{
364-
preProcessMcCollisions(mcCollisions, mcParticles);
319+
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
365320
processCandidates<false, true, false, true>(collisions, candidatesMcSig, candidatesDaughters, tracks, bcs);
366-
processMcParticles(mcCollisions, mcParticles);
321+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
367322
}
368323
PROCESS_SWITCH(HfDerivedDataCreatorBplusToD0Pi, processMcSig, "Process MC only for signals", false);
369324

@@ -375,9 +330,9 @@ struct HfDerivedDataCreatorBplusToD0Pi {
375330
TracksWPid const& tracks,
376331
aod::BCs const& bcs)
377332
{
378-
preProcessMcCollisions(mcCollisions, mcParticles);
333+
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
379334
processCandidates<false, true, true, false>(collisions, candidatesMcBkg, candidatesDaughters, tracks, bcs);
380-
processMcParticles(mcCollisions, mcParticles);
335+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
381336
}
382337
PROCESS_SWITCH(HfDerivedDataCreatorBplusToD0Pi, processMcBkg, "Process MC only for background", false);
383338

@@ -389,9 +344,9 @@ struct HfDerivedDataCreatorBplusToD0Pi {
389344
TracksWPid const& tracks,
390345
aod::BCs const& bcs)
391346
{
392-
preProcessMcCollisions(mcCollisions, mcParticles);
347+
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
393348
processCandidates<false, true, false, false>(collisions, candidatesMcAll, candidatesDaughters, tracks, bcs);
394-
processMcParticles(mcCollisions, mcParticles);
349+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
395350
}
396351
PROCESS_SWITCH(HfDerivedDataCreatorBplusToD0Pi, processMcAll, "Process MC", false);
397352

@@ -415,9 +370,9 @@ struct HfDerivedDataCreatorBplusToD0Pi {
415370
TracksWPid const& tracks,
416371
aod::BCs const& bcs)
417372
{
418-
preProcessMcCollisions(mcCollisions, mcParticles);
373+
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
419374
processCandidates<true, true, false, true>(collisions, candidatesMcMlSig, candidatesDaughters, tracks, bcs);
420-
processMcParticles(mcCollisions, mcParticles);
375+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
421376
}
422377
PROCESS_SWITCH(HfDerivedDataCreatorBplusToD0Pi, processMcMlSig, "Process MC with ML only for signals", false);
423378

@@ -429,9 +384,9 @@ struct HfDerivedDataCreatorBplusToD0Pi {
429384
TracksWPid const& tracks,
430385
aod::BCs const& bcs)
431386
{
432-
preProcessMcCollisions(mcCollisions, mcParticles);
387+
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
433388
processCandidates<true, true, true, false>(collisions, candidatesMcMlBkg, candidatesDaughters, tracks, bcs);
434-
processMcParticles(mcCollisions, mcParticles);
389+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
435390
}
436391
PROCESS_SWITCH(HfDerivedDataCreatorBplusToD0Pi, processMcMlBkg, "Process MC with ML only for background", false);
437392

@@ -443,9 +398,9 @@ struct HfDerivedDataCreatorBplusToD0Pi {
443398
TracksWPid const& tracks,
444399
aod::BCs const& bcs)
445400
{
446-
preProcessMcCollisions(mcCollisions, mcParticles);
401+
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
447402
processCandidates<true, true, false, false>(collisions, candidatesMcMlAll, candidatesDaughters, tracks, bcs);
448-
processMcParticles(mcCollisions, mcParticles);
403+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
449404
}
450405
PROCESS_SWITCH(HfDerivedDataCreatorBplusToD0Pi, processMcMlAll, "Process MC with ML", false);
451406
};

0 commit comments

Comments
 (0)