Skip to content

Commit a0a0288

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents 223bc85 + e6d8477 commit a0a0288

45 files changed

Lines changed: 3762 additions & 1446 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CODEOWNERS

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,18 @@
5656
/PWGHF @alibuild @vkucera @fcolamar @fgrosa @fcatalan92 @mfaggin @mmazzilli @deepathoms @NicoleBastid @hahassan7 @jpxrk @apalasciano @zhangbiao-phy @gluparel @stefanopolitano @xinyepeng @singhra1994
5757
# PWG-LF
5858
/PWGLF @alibuild @omvazque @skundu692 @mpuccio
59-
/PWGLF/DataModel @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @fmazzasc @maciacco @HorstMa @dmallick2 @smaff92 @ercolessi @romainschotter @prottayCMT @lhusova
59+
/PWGLF/DataModel @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @mario-krueger @maciacco @HorstMa @dmallick2 @smaff92 @ercolessi @romainschotter @prottayCMT @lhusova
6060
/PWGLF/Tasks/GlobalEventProperties @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @omvazque
6161
/PWGLF/TableProducer/GlobalEventProperties @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @omvazque
62-
/PWGLF/Tasks/Nuspex @alibuild @omvazque @skundu692 @mpuccio @fmazzasc @maciacco @HorstMa
63-
/PWGLF/TableProducer/Nuspex @alibuild @omvazque @skundu692 @mpuccio @fmazzasc @maciacco @HorstMa
62+
/PWGLF/Tasks/Nuspex @alibuild @omvazque @skundu692 @mpuccio @mario-krueger @maciacco @HorstMa
63+
/PWGLF/TableProducer/Nuspex @alibuild @omvazque @skundu692 @mpuccio @mario-krueger @maciacco @HorstMa
6464
/PWGLF/Tasks/Resonances @alibuild @omvazque @skundu692 @mpuccio @dmallick2 @smaff92 @prottayCMT
6565
/PWGLF/TableProducer/Resonances @alibuild @omvazque @skundu692 @mpuccio @dmallick2 @smaff92 @prottayCMT
6666
/PWGLF/Tasks/Strangeness @alibuild @omvazque @skundu692 @mpuccio @ercolessi @romainschotter @lhusova
6767
/PWGLF/TableProducer/Strangeness @alibuild @omvazque @mpuccio @skundu692 @ercolessi @romainschotter @lhusova
68-
/PWGLF/TableProducer/QC @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @fmazzasc @maciacco @HorstMa @dmallick2 @smaff92 @ercolessi @romainschotter @prottayCMT @lhusova
69-
/PWGLF/Tasks/QC @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @fmazzasc @maciacco @HorstMa @dmallick2 @smaff92 @ercolessi @romainschotter @prottayCMT @lhusova
70-
/PWGLF/Utils @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @fmazzasc @maciacco @HorstMa @dmallick2 @smaff92 @ercolessi @romainschotter @prottayCMT @lhusova
68+
/PWGLF/TableProducer/QC @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @mario-krueger @maciacco @HorstMa @dmallick2 @smaff92 @ercolessi @romainschotter @prottayCMT @lhusova
69+
/PWGLF/Tasks/QC @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @mario-krueger @maciacco @HorstMa @dmallick2 @smaff92 @ercolessi @romainschotter @prottayCMT @lhusova
70+
/PWGLF/Utils @alibuild @omvazque @skundu692 @mpuccio @gbencedi @abmodak @mario-krueger @maciacco @HorstMa @dmallick2 @smaff92 @ercolessi @romainschotter @prottayCMT @lhusova
7171

7272
# PWG-MM (fused with LF, LF conveners included. Directories to be merged in the future)
7373
/PWGMM @alibuild @omvazque @mpuccio @skundu692 @aalkin @jgcn

PWGCF/Femto/Core/baseSelection.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,12 @@ class BaseSelection
165165
std::string const& selectionName,
166166
int mode)
167167
{
168+
int selectionMode = mode;
169+
168170
if (mPassThrough) {
169-
mSelectionContainers.at(observableIndex) = selectioncontainer::SelectionContainer<T, BitmaskType>(selectionName, std::vector<T>{1}, limits::LimitType::kEqual, false, false, false);
170-
return;
171+
selectionMode = 2;
171172
}
172-
173-
switch (mode) {
173+
switch (selectionMode) {
174174
case -1: // cut is optional and we store a bit for it
175175
mSelectionContainers.at(observableIndex) = selectioncontainer::SelectionContainer<T, BitmaskType>(selectionName, std::vector<T>{1}, limits::LimitType::kEqual, false, false, true);
176176
break;

PWGCF/Femto/Core/cascadeBuilder.h

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ struct ConfCascadeFilters : o2::framework::ConfigurableGroup {
7878
o2::framework::Configurable<std::vector<float>> posDauTpc{"posDauTpc", {5.f}, "Maximum |nsimga_Pion/Proton| TPC for positive daughter tracks"}; \
7979
o2::framework::Configurable<std::vector<float>> negDauTpc{"negDauTpc", {5.f}, "Maximum |nsimga_Pion/Proton| TPC for negative daughter tracks"}; \
8080
o2::framework::Configurable<std::vector<float>> posDauTof{"posDauTof", {}, "Maximum |nsimga_Pion/Proton| TOF for positive daughter tracks"}; \
81-
o2::framework::Configurable<std::vector<float>> negDauTof{"negDauTof", {}, "Maximum |nsigma_Pion/Proton| TOF for negative daughter tracks"};
81+
o2::framework::Configurable<std::vector<float>> negDauTof{"negDauTof", {}, "Maximum |nsigma_Pion/Proton| TOF for negative daughter tracks"}; \
82+
o2::framework::Configurable<bool> requireTof{"requireTof", false, "If true, TOF PID is a mandatory selection"}; \
83+
o2::framework::Configurable<bool> keepTracksWithoutTof{"keepTracksWithoutTof", true, "If true, candidates whose daughters have no TOF signal are kept"};
8284

8385
struct ConfXiBits : o2::framework::ConfigurableGroup {
8486
std::string prefix = std::string("XiBits");
@@ -242,7 +244,7 @@ class CascadeSelection : public baseselection::BaseSelection<float, o2::analysis
242244
mOmegaMassLowerLimit = filter.rejectMassOmegaMin.value;
243245
mOmegaMassUpperLimit = filter.rejectMassOmegaMax.value;
244246
this->addSelection(kBachelorTpcPion, cascadeSelectionNames.at(kBachelorTpcPion), config.bachelorTpcPion.value, limits::kAbsUpperLimit, true, true, false);
245-
this->addSelection(kBachelorTofPion, cascadeSelectionNames.at(kBachelorTofPion), config.bachelorTofPion.value, limits::kAbsUpperLimit, true, true, false);
247+
this->addSelection(kBachelorTofPion, cascadeSelectionNames.at(kBachelorTofPion), config.bachelorTofPion.value, limits::kAbsUpperLimit, true, mRequireTof, false);
246248
}
247249
if constexpr (modes::isEqual(cascadeType, modes::Cascade::kOmega)) {
248250
mOmegaMassLowerLimit = filter.massOmegaMin.value;
@@ -251,7 +253,7 @@ class CascadeSelection : public baseselection::BaseSelection<float, o2::analysis
251253
mXiMassLowerLimit = filter.rejectMassXiMin.value;
252254
mXiMassUpperLimit = filter.rejectMassXiMax.value;
253255
this->addSelection(kBachelorTpcKaon, cascadeSelectionNames.at(kBachelorTpcKaon), config.bachelorTpcKaon.value, limits::kAbsUpperLimit, true, true, false);
254-
this->addSelection(kBachelorTofKaon, cascadeSelectionNames.at(kBachelorTofKaon), config.bachelorTofKaon.value, limits::kAbsUpperLimit, true, true, false);
256+
this->addSelection(kBachelorTofKaon, cascadeSelectionNames.at(kBachelorTofKaon), config.bachelorTofKaon.value, limits::kAbsUpperLimit, true, mRequireTof, false);
255257
}
256258

257259
mPtMin = filter.ptMin.value;
@@ -262,11 +264,13 @@ class CascadeSelection : public baseselection::BaseSelection<float, o2::analysis
262264
mPhiMax = filter.phiMax.value;
263265
mLambdaMassMin = filter.massLambdaMin.value;
264266
mLambdaMassMax = filter.massLambdaMax.value;
267+
mRequireTof = config.requireTof.value;
268+
mKeepTracksWithoutTof = config.keepTracksWithoutTof.value;
265269

266270
this->addSelection(kPosDauTpc, cascadeSelectionNames.at(kPosDauTpc), config.posDauTpc.value, limits::kAbsUpperLimit, true, true, false);
267271
this->addSelection(kNegDauTpc, cascadeSelectionNames.at(kNegDauTpc), config.negDauTpc.value, limits::kAbsUpperLimit, true, true, false);
268-
this->addSelection(kPosDauTof, cascadeSelectionNames.at(kPosDauTof), config.posDauTof.value, limits::kAbsUpperLimit, true, true, false);
269-
this->addSelection(kNegDauTof, cascadeSelectionNames.at(kNegDauTof), config.negDauTof.value, limits::kAbsUpperLimit, true, true, false);
272+
this->addSelection(kPosDauTof, cascadeSelectionNames.at(kPosDauTof), config.posDauTof.value, limits::kAbsUpperLimit, true, mRequireTof, false);
273+
this->addSelection(kNegDauTof, cascadeSelectionNames.at(kNegDauTof), config.negDauTof.value, limits::kAbsUpperLimit, true, mRequireTof, false);
270274

271275
this->addSelection(kCascadeCpaMin, cascadeSelectionNames.at(kCascadeCpaMin), config.cascadeCpaMin.value, limits::kLowerLimit, true, true, false);
272276
this->addSelection(kCascadeTransRadMin, cascadeSelectionNames.at(kCascadeTransRadMin), config.cascadeTransRadMin.value, limits::kLowerLimit, true, true, false);
@@ -336,6 +340,9 @@ class CascadeSelection : public baseselection::BaseSelection<float, o2::analysis
336340
if (bachelor.hasTOF()) {
337341
this->evaluateObservable(kBachelorTofPion, bachelor.tofNSigmaPi());
338342
this->evaluateObservable(kBachelorTofKaon, bachelor.tofNSigmaKa());
343+
} else if (mKeepTracksWithoutTof) {
344+
this->evaluateObservable(kBachelorTofPion, 0);
345+
this->evaluateObservable(kBachelorTofKaon, 0);
339346
}
340347

341348
// depending on the charge, we check lambda or antilambda hypothesis
@@ -344,18 +351,26 @@ class CascadeSelection : public baseselection::BaseSelection<float, o2::analysis
344351
this->evaluateObservable(kNegDauTpc, negDaughter.tpcNSigmaPi());
345352
if (posDaughter.hasTOF()) {
346353
this->evaluateObservable(kPosDauTof, posDaughter.tofNSigmaPr());
354+
} else if (mKeepTracksWithoutTof) {
355+
this->evaluateObservable(kPosDauTof, 0);
347356
}
348357
if (negDaughter.hasTOF()) {
349358
this->evaluateObservable(kNegDauTof, negDaughter.tofNSigmaPi());
359+
} else if (mKeepTracksWithoutTof) {
360+
this->evaluateObservable(kNegDauTof, 0);
350361
}
351362
} else if (cascade.sign() > 0) {
352363
this->evaluateObservable(kPosDauTpc, posDaughter.tpcNSigmaPi());
353364
this->evaluateObservable(kNegDauTpc, negDaughter.tpcNSigmaPr());
354365
if (posDaughter.hasTOF()) {
355366
this->evaluateObservable(kPosDauTof, posDaughter.tofNSigmaPi());
367+
} else if (mKeepTracksWithoutTof) {
368+
this->evaluateObservable(kPosDauTof, 0);
356369
}
357370
if (negDaughter.hasTOF()) {
358371
this->evaluateObservable(kNegDauTof, negDaughter.tofNSigmaPr());
372+
} else if (mKeepTracksWithoutTof) {
373+
this->evaluateObservable(kNegDauTof, 0);
359374
}
360375
} else {
361376
LOG(warn) << "Encountered Cascade candidate with 0 charge";
@@ -468,6 +483,8 @@ class CascadeSelection : public baseselection::BaseSelection<float, o2::analysis
468483
float mPhiMax = o2::constants::math::TwoPI;
469484
float mLambdaMassMin = 1.f;
470485
float mLambdaMassMax = 1.2f;
486+
bool mRequireTof = false;
487+
bool mKeepTracksWithoutTof = false;
471488
};
472489

473490
struct CascadeBuilderProducts : o2::framework::ProducesGroup {
@@ -619,20 +636,20 @@ class CascadeBuilder
619636
collisionBuilder.template fillMcCollision<system>(collisionProducts, col, mcCols, mcProducts, mcBuilder);
620637

621638
auto bachelor = cascade.template bachelor_as<T8>();
622-
bachelorIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kCascadeBachelor>(col, collisionBuilder, mcCols, bachelor, trackProducts, mcParticles, mcBuilder, mcProducts);
639+
bachelorIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kCascadeBachelor>(bachelor, trackProducts, mcCols, collisionBuilder, mcParticles, mcBuilder, mcProducts);
623640

624641
auto posDaughter = cascade.template posTrack_as<T8>();
625-
posDaughterIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kV0Daughter>(col, collisionBuilder, mcCols, posDaughter, trackProducts, mcParticles, mcBuilder, mcProducts);
642+
posDaughterIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kV0Daughter>(posDaughter, trackProducts, mcCols, collisionBuilder, mcParticles, mcBuilder, mcProducts);
626643

627644
auto negDaughter = cascade.template negTrack_as<T8>();
628-
negDaughterIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kV0Daughter>(col, collisionBuilder, mcCols, negDaughter, trackProducts, mcParticles, mcBuilder, mcProducts);
645+
negDaughterIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kV0Daughter>(negDaughter, trackProducts, mcCols, collisionBuilder, mcParticles, mcBuilder, mcProducts);
629646

630647
fillCascade(collisionBuilder, cascadeProducts, cascade, col, bachelorIndex, posDaughterIndex, negDaughterIndex);
631648
if constexpr (modes::isEqual(cascadeType, modes::Cascade::kXi)) {
632-
mcBuilder.template fillMcXiWithLabel<system>(col, mcCols, cascade, mcParticles, mcProducts);
649+
mcBuilder.template fillMcXiWithLabel<system>(cascade, mcParticles, mcCols, mcProducts);
633650
}
634651
if constexpr (modes::isEqual(cascadeType, modes::Cascade::kOmega)) {
635-
mcBuilder.template fillMcOmegaWithLabel<system>(col, mcCols, cascade, mcParticles, mcProducts);
652+
mcBuilder.template fillMcOmegaWithLabel<system>(cascade, mcParticles, mcCols, mcProducts);
636653
}
637654
}
638655
}
@@ -716,7 +733,8 @@ class CascadeBuilder
716733
}
717734
}
718735

719-
bool fillAnyTable() { return mFillAnyTable; }
736+
[[nodiscard]] bool fillAnyTable() const { return mFillAnyTable; }
737+
[[nodiscard]] bool isPassThrough() const { return mCascadeSelection.isPassThrough(); }
720738

721739
private:
722740
CascadeSelection<cascadeType, SelectionHistName, FilterHistName> mCascadeSelection;

PWGCF/Femto/Core/cascadeHistManager.h

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -435,15 +435,15 @@ class CascadeHistManager
435435
}
436436
}
437437

438-
template <modes::Mode mode, typename T1, typename T2, typename T3, typename T4, typename T5>
439-
void fill(T1 const& cascadeCandidate, T2 const& tracks, T3 const& mcParticles, T4 const& mcMothers, T5 const& mcPartonicMothers)
438+
template <modes::Mode mode, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
439+
void fill(T1 const& cascadeCandidate, T2 const& tracks, T3 const& col, T4 const& mcParticles, T5 const& mcMothers, T6 const& mcPartonicMothers)
440440
{
441441
auto posDaughter = tracks.rawIteratorAt(cascadeCandidate.posDauId() - tracks.offset());
442-
mPosDauManager.template fill<mode>(posDaughter, tracks, mcParticles, mcMothers, mcPartonicMothers);
442+
mPosDauManager.template fill<mode>(posDaughter, tracks, col, mcParticles, mcMothers, mcPartonicMothers);
443443
auto negDaughter = tracks.rawIteratorAt(cascadeCandidate.negDauId() - tracks.offset());
444-
mNegDauManager.template fill<mode>(negDaughter, tracks, mcParticles, mcMothers, mcPartonicMothers);
444+
mNegDauManager.template fill<mode>(negDaughter, tracks, col, mcParticles, mcMothers, mcPartonicMothers);
445445
auto bachelor = tracks.rawIteratorAt(cascadeCandidate.bachelorId() - tracks.offset());
446-
mBachelorManager.template fill<mode>(bachelor, tracks, mcParticles, mcMothers, mcPartonicMothers);
446+
mBachelorManager.template fill<mode>(bachelor, tracks, col, mcParticles, mcMothers, mcPartonicMothers);
447447

448448
if constexpr (modes::isFlagSet(mode, modes::Mode::kReco)) {
449449
this->fillAnalysis(cascadeCandidate);
@@ -452,7 +452,7 @@ class CascadeHistManager
452452
this->fillQa(cascadeCandidate);
453453
}
454454
if constexpr (modes::isFlagSet(mode, modes::Mode::kMc)) {
455-
this->template fillMc<mode>(cascadeCandidate, mcParticles, mcMothers, mcPartonicMothers);
455+
this->template fillMc<mode>(cascadeCandidate, col, mcParticles, mcMothers, mcPartonicMothers);
456456
}
457457
}
458458

@@ -598,8 +598,8 @@ class CascadeHistManager
598598
}
599599
}
600600

601-
template <modes::Mode mode, typename T1, typename T2, typename T3, typename T4>
602-
void fillMc(T1 const& cascadeCandidate, T2 const& /*mcParticles*/, T3 const& /*mcMothers*/, T4 const& /*mcPartonicMothers*/)
601+
template <modes::Mode mode, typename T1, typename T2, typename T3, typename T4, typename T5>
602+
void fillMc(T1 const& cascadeCandidate, T2 const& col, T3 const& /*mcParticles*/, T4 const& /*mcMothers*/, T5 const& /*mcPartonicMothers*/)
603603
{
604604
// No MC Particle
605605
if (!cascadeCandidate.has_fMcParticle()) {
@@ -614,42 +614,47 @@ class CascadeHistManager
614614
}
615615

616616
// Retrieve MC particle
617-
auto mcParticle = cascadeCandidate.template fMcParticle_as<T2>();
617+
auto mcParticle = cascadeCandidate.template fMcParticle_as<T3>();
618+
619+
// whether a particle is associated to a wrong collision or not cannot be known by the producer so we check it here
620+
bool fromWrongCollision = mcParticle.fMcColId() != col.fMcColId();
618621

619-
// missidentifed particles are special case
620622
// whether a particle is missidentfied or not cannot be known by the producer so we check it here
621623
bool isMissidentified = mcParticle.pdgCode() != mPdgCode;
622624

623625
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kTruePtVsPt, HistTable)), mcParticle.pt(), cascadeCandidate.pt());
624626
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kTrueEtaVsEta, HistTable)), mcParticle.eta(), cascadeCandidate.eta());
625627
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kTruePhiVsPhi, HistTable)), mcParticle.phi(), cascadeCandidate.phi());
626-
if (isMissidentified) {
627-
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kOrigin, HistTable)), static_cast<int>(modes::McOrigin::kMissidentified));
628+
if (fromWrongCollision) {
629+
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kOrigin, HistTable)), static_cast<float>(modes::McOrigin::kFromWrongCollision));
630+
} else if (isMissidentified) {
631+
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kOrigin, HistTable)), static_cast<float>(modes::McOrigin::kMissidentified));
628632
} else {
629633
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kOrigin, HistTable)), mcParticle.origin());
630634
}
631635
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kPdg, HistTable)), mcParticle.pdgCode());
632636

633637
// get mother
634638
if (mcParticle.has_fMcMother()) {
635-
auto mother = mcParticle.template fMcMother_as<T3>();
639+
auto mother = mcParticle.template fMcMother_as<T4>();
636640
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kPdgMother, HistTable)), mother.pdgCode());
637641
} else {
638642
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kPdgMother, HistTable)), 0);
639643
}
640644

641645
// get partonic mother
642646
if (mcParticle.has_fMcPartMoth()) {
643-
auto partonicMother = mcParticle.template fMcPartMoth_as<T4>();
647+
auto partonicMother = mcParticle.template fMcPartMoth_as<T5>();
644648
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kPdgPartonicMother, HistTable)), partonicMother.pdgCode());
645649
} else {
646650
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kPdgPartonicMother, HistTable)), 0);
647651
}
648652

649653
if constexpr (modes::isFlagSet(mode, modes::Mode::kQa)) {
650654
if (mPlotOrigins) {
651-
// check first if particle is missidentified
652-
if (isMissidentified) {
655+
if (fromWrongCollision) {
656+
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kFromWrongCollision, HistTable)), cascadeCandidate.pt(), cascadeCandidate.cascadeCosPa());
657+
} else if (isMissidentified) {
653658
// if it is, we fill it as such
654659
mHistogramRegistry->fill(HIST(cascadePrefix) + HIST(McDir) + HIST(getHistName(kMissidentified, HistTable)), cascadeCandidate.pt(), cascadeCandidate.cascadeCosPa());
655660
} else {
@@ -666,7 +671,7 @@ class CascadeHistManager
666671
break;
667672
case modes::McOrigin::kFromSecondaryDecay:
668673
if (mcParticle.has_fMcMother()) {
669-
auto mother = mcParticle.template fMcMother_as<T3>();
674+
auto mother = mcParticle.template fMcMother_as<T4>();
670675
int motherPdgCode = std::abs(mother.pdgCode());
671676
// Switch on PDG of the mother
672677
if (mPlotNSecondaries >= histmanager::kSecondaryPlotLevel1 && motherPdgCode == mPdgCodesSecondaryMother[0]) {

0 commit comments

Comments
 (0)