Skip to content

Commit 2234533

Browse files
[PWGHF] Improve clarity in D+ tree creator (#10976)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 387834a commit 2234533

File tree

1 file changed

+71
-135
lines changed

1 file changed

+71
-135
lines changed

PWGHF/TableProducer/treeCreatorDplusToPiKPi.cxx

Lines changed: 71 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,6 @@ struct HfTreeCreatorDplusToPiKPi {
252252
Configurable<bool> fillCandidateLiteTable{"fillCandidateLiteTable", false, "Switch to fill lite table with candidate properties"};
253253
// parameters for production of training samples
254254
Configurable<bool> fillOnlySignal{"fillOnlySignal", false, "Flag to fill derived tables with signal for ML trainings"};
255-
Configurable<bool> fillOnlySignalMl{"fillOnlySignalMl", false, "Flag to fill derived tables with MC and ML info"};
256255
Configurable<bool> fillOnlyBackground{"fillOnlyBackground", false, "Flag to fill derived tables with background for ML trainings"};
257256
Configurable<float> downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"};
258257
Configurable<float> ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"};
@@ -485,87 +484,6 @@ struct HfTreeCreatorDplusToPiKPi {
485484

486485
PROCESS_SWITCH(HfTreeCreatorDplusToPiKPi, processData, "Process data", true);
487486

488-
void processMc(aod::Collisions const& collisions,
489-
aod::McCollisions const&,
490-
SelectedCandidatesMc const& candidates,
491-
MatchedGenCandidatesMc const& particles,
492-
SelectedCandidatesMcWithMl const&,
493-
TracksWPid const&)
494-
{
495-
// Filling event properties
496-
rowCandidateFullEvents.reserve(collisions.size());
497-
for (const auto& collision : collisions) {
498-
fillEvent(collision, 0, 1);
499-
}
500-
501-
// Filling candidate properties
502-
if (fillOnlySignal) {
503-
if (fillCandidateLiteTable) {
504-
rowCandidateLite.reserve(reconstructedCandSig.size());
505-
} else {
506-
rowCandidateFull.reserve(reconstructedCandSig.size());
507-
}
508-
for (const auto& candidate : reconstructedCandSig) {
509-
fillCandidateTable<aod::Collisions, true>(candidate);
510-
}
511-
} else if (fillOnlySignalMl) {
512-
rowCandidateMl.reserve(reconstructedCandSigMl.size());
513-
if (fillCandidateLiteTable) {
514-
rowCandidateLite.reserve(reconstructedCandSigMl.size());
515-
} else {
516-
rowCandidateFull.reserve(reconstructedCandSigMl.size());
517-
}
518-
for (const auto& candidate : reconstructedCandSigMl) {
519-
if (downSampleBkgFactor < 1.) {
520-
float pseudoRndm = candidate.ptProng0() * 1000. - static_cast<int64_t>(candidate.ptProng0() * 1000);
521-
if (candidate.pt() < ptMaxForDownSample && pseudoRndm >= downSampleBkgFactor) {
522-
continue;
523-
}
524-
}
525-
fillCandidateTable<aod::Collisions, true, true>(candidate);
526-
}
527-
} else if (fillOnlyBackground) {
528-
if (fillCandidateLiteTable) {
529-
rowCandidateLite.reserve(reconstructedCandBkg.size());
530-
} else {
531-
rowCandidateFull.reserve(reconstructedCandBkg.size());
532-
}
533-
for (const auto& candidate : reconstructedCandBkg) {
534-
if (downSampleBkgFactor < 1.) {
535-
float pseudoRndm = candidate.ptProng0() * 1000. - static_cast<int64_t>(candidate.ptProng0() * 1000);
536-
if (candidate.pt() < ptMaxForDownSample && pseudoRndm >= downSampleBkgFactor) {
537-
continue;
538-
}
539-
}
540-
fillCandidateTable<aod::Collisions, true>(candidate);
541-
}
542-
} else {
543-
if (fillCandidateLiteTable) {
544-
rowCandidateLite.reserve(candidates.size());
545-
} else {
546-
rowCandidateFull.reserve(candidates.size());
547-
}
548-
for (const auto& candidate : candidates) {
549-
fillCandidateTable<aod::Collisions, true>(candidate);
550-
}
551-
}
552-
553-
// Filling particle properties
554-
rowCandidateFullParticles.reserve(particles.size());
555-
for (const auto& particle : particles) {
556-
rowCandidateFullParticles(
557-
particle.mcCollision().bcId(),
558-
particle.pt(),
559-
particle.eta(),
560-
particle.phi(),
561-
RecoDecay::y(particle.pVector(), o2::constants::physics::MassDPlus),
562-
particle.flagMcMatchGen(),
563-
particle.originMcGen());
564-
}
565-
}
566-
567-
PROCESS_SWITCH(HfTreeCreatorDplusToPiKPi, processMc, "Process MC", false);
568-
569487
void processDataWCent(CollisionsCent const& collisions,
570488
soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelDplusToPiKPi>> const& candidates,
571489
TracksWPid const&)
@@ -595,12 +513,12 @@ struct HfTreeCreatorDplusToPiKPi {
595513

596514
PROCESS_SWITCH(HfTreeCreatorDplusToPiKPi, processDataWCent, "Process data with cent", false);
597515

598-
void processMcWCent(CollisionsCent const& collisions,
599-
aod::McCollisions const&,
600-
SelectedCandidatesMc const& candidates,
601-
MatchedGenCandidatesMc const& particles,
602-
SelectedCandidatesMcWithMl const&,
603-
TracksWPid const&)
516+
template <bool applyMl = false, typename CandType, typename CollType>
517+
void fillMcTables(CollType const& collisions,
518+
aod::McCollisions const&,
519+
CandType const& candidates,
520+
MatchedGenCandidatesMc const& particles,
521+
TracksWPid const&)
604522
{
605523
// Filling event properties
606524
rowCandidateFullEvents.reserve(collisions.size());
@@ -609,55 +527,19 @@ struct HfTreeCreatorDplusToPiKPi {
609527
}
610528

611529
// Filling candidate properties
612-
if (fillOnlySignal) {
613-
if (fillCandidateLiteTable) {
614-
rowCandidateLite.reserve(reconstructedCandSig.size());
615-
} else {
616-
rowCandidateFull.reserve(reconstructedCandSig.size());
617-
}
618-
for (const auto& candidate : reconstructedCandSig) {
619-
fillCandidateTable<CollisionsCent, true>(candidate);
620-
}
621-
} else if (fillOnlySignalMl) {
622-
rowCandidateMl.reserve(reconstructedCandSigMl.size());
623-
if (fillCandidateLiteTable) {
624-
rowCandidateLite.reserve(reconstructedCandSigMl.size());
625-
} else {
626-
rowCandidateFull.reserve(reconstructedCandSigMl.size());
627-
}
628-
for (const auto& candidate : reconstructedCandSigMl) {
629-
if (downSampleBkgFactor < 1.) {
630-
float pseudoRndm = candidate.ptProng0() * 1000. - static_cast<int64_t>(candidate.ptProng0() * 1000);
631-
if (candidate.pt() < ptMaxForDownSample && pseudoRndm >= downSampleBkgFactor) {
632-
continue;
633-
}
634-
}
635-
fillCandidateTable<CollisionsCent, true, true>(candidate);
636-
}
637-
} else if (fillOnlyBackground) {
638-
if (fillCandidateLiteTable) {
639-
rowCandidateLite.reserve(reconstructedCandBkg.size());
640-
} else {
641-
rowCandidateFull.reserve(reconstructedCandBkg.size());
642-
}
643-
for (const auto& candidate : reconstructedCandBkg) {
644-
if (downSampleBkgFactor < 1.) {
645-
float pseudoRndm = candidate.ptProng0() * 1000. - static_cast<int64_t>(candidate.ptProng0() * 1000);
646-
if (candidate.pt() < ptMaxForDownSample && pseudoRndm >= downSampleBkgFactor) {
647-
continue;
648-
}
649-
}
650-
fillCandidateTable<CollisionsCent, true>(candidate);
651-
}
530+
if (fillCandidateLiteTable) {
531+
rowCandidateLite.reserve(candidates.size());
652532
} else {
653-
if (fillCandidateLiteTable) {
654-
rowCandidateLite.reserve(candidates.size());
655-
} else {
656-
rowCandidateFull.reserve(candidates.size());
657-
}
658-
for (const auto& candidate : candidates) {
659-
fillCandidateTable<CollisionsCent, true>(candidate);
533+
rowCandidateFull.reserve(candidates.size());
534+
}
535+
for (const auto& candidate : candidates) {
536+
if (downSampleBkgFactor < 1.) {
537+
float pseudoRndm = candidate.ptProng0() * 1000. - static_cast<int64_t>(candidate.ptProng0() * 1000);
538+
if (candidate.pt() < ptMaxForDownSample && pseudoRndm >= downSampleBkgFactor) {
539+
continue;
540+
}
660541
}
542+
fillCandidateTable<CollType, true, applyMl>(candidate);
661543
}
662544

663545
// Filling particle properties
@@ -674,7 +556,61 @@ struct HfTreeCreatorDplusToPiKPi {
674556
}
675557
}
676558

559+
void processMc(aod::Collisions const& collisions,
560+
aod::McCollisions const& mccollisions,
561+
SelectedCandidatesMc const& candidates,
562+
MatchedGenCandidatesMc const& particles,
563+
TracksWPid const& tracks)
564+
{
565+
if (fillOnlySignal) {
566+
fillMcTables(collisions, mccollisions, reconstructedCandSig, particles, tracks);
567+
} else if (fillOnlyBackground) {
568+
fillMcTables(collisions, mccollisions, reconstructedCandBkg, particles, tracks);
569+
} else {
570+
fillMcTables(collisions, mccollisions, candidates, particles, tracks);
571+
}
572+
}
573+
574+
PROCESS_SWITCH(HfTreeCreatorDplusToPiKPi, processMc, "Process MC", false);
575+
576+
void processMcWCent(CollisionsCent const& collisions,
577+
aod::McCollisions const& mccollisions,
578+
SelectedCandidatesMc const& candidates,
579+
MatchedGenCandidatesMc const& particles,
580+
TracksWPid const& tracks)
581+
{
582+
if (fillOnlySignal) {
583+
fillMcTables(collisions, mccollisions, reconstructedCandSig, particles, tracks);
584+
} else if (fillOnlyBackground) {
585+
fillMcTables(collisions, mccollisions, reconstructedCandBkg, particles, tracks);
586+
} else {
587+
fillMcTables(collisions, mccollisions, candidates, particles, tracks);
588+
}
589+
}
590+
677591
PROCESS_SWITCH(HfTreeCreatorDplusToPiKPi, processMcWCent, "Process MC with cent", false);
592+
593+
void processMcSgnWMl(aod::Collisions const& collisions,
594+
aod::McCollisions const& mccollisions,
595+
SelectedCandidatesMcWithMl const&,
596+
MatchedGenCandidatesMc const& particles,
597+
TracksWPid const& tracks)
598+
{
599+
fillMcTables<true>(collisions, mccollisions, reconstructedCandSigMl, particles, tracks);
600+
}
601+
602+
PROCESS_SWITCH(HfTreeCreatorDplusToPiKPi, processMcSgnWMl, "Process MC signal with ML info", false);
603+
604+
void processMcSgnWCentMl(CollisionsCent const& collisions,
605+
aod::McCollisions const& mccollisions,
606+
SelectedCandidatesMcWithMl const&,
607+
MatchedGenCandidatesMc const& particles,
608+
TracksWPid const& tracks)
609+
{
610+
fillMcTables<true>(collisions, mccollisions, reconstructedCandSigMl, particles, tracks);
611+
}
612+
613+
PROCESS_SWITCH(HfTreeCreatorDplusToPiKPi, processMcSgnWCentMl, "Process MC signal with cent and ML info", false);
678614
};
679615

680616
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)