@@ -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