Skip to content

Commit 2b8b90f

Browse files
committed
rewrite lambda-functions with HIST macro as usual functions
1 parent 4ae7350 commit 2b8b90f

File tree

1 file changed

+73
-65
lines changed

1 file changed

+73
-65
lines changed

PWGHF/D2H/Tasks/taskLc.cxx

Lines changed: 73 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ struct HfTaskLc {
7171
constexpr static float CtToProperLifetimePs = 1.f / o2::constants::physics::LightSpeedCm2PS;
7272
constexpr static float NanoToPico = 1000.f;
7373

74+
constexpr static std::string_view SignalFolders[] = {"signal", "prompt", "nonprompt"};
75+
constexpr static std::string_view SignalSuffixes[] = {"", "Prompt", "NonPrompt"};
76+
7477
enum MlClasses : int {
7578
MlClassBackground = 0,
7679
MlClassPrompt,
@@ -84,9 +87,6 @@ struct HfTaskLc {
8487
NonPrompt
8588
};
8689

87-
constexpr static std::string_view SignalFolders[] = {"signal", "prompt", "nonprompt"};
88-
constexpr static std::string_view SignalSuffixes[] = {"", "Prompt", "NonPrompt"};
89-
9090
HfHelper hfHelper;
9191
SliceCache cache;
9292

@@ -305,12 +305,60 @@ struct HfTaskLc {
305305
return o2::hf_centrality::getCentralityColl<Coll>(collision);
306306
}
307307

308+
/// Helper function for filling MC reconstructed histograms for prompt, nonpromt and common (signal)
309+
/// \param candidate is a reconstructed candidate
310+
/// \tparam signalType is an enum defining which histogram in which folder (signal, prompt or nonpromt) to fill
311+
template <int signalType, typename CandidateType>
312+
void fillHistogramsRecSig(CandidateType const& candidate)
313+
{
314+
const auto& mcParticleProng0 = candidate.template prong0_as<aod::TracksWMc>().template mcParticle_as<soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>>();
315+
const auto pdgCodeProng0 = std::abs(mcParticleProng0.pdgCode());
316+
if ((candidate.isSelLcToPKPi() >= selectionFlagLc) && pdgCodeProng0 == kProton) {
317+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hMassRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.invMassLcToPKPi(candidate));
318+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hMassVsPtRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.invMassLcToPKPi(candidate), candidate.pt());
319+
}
320+
if ((candidate.isSelLcToPiKP() >= selectionFlagLc) && pdgCodeProng0 == kPiPlus) {
321+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hMassRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.invMassLcToPiKP(candidate));
322+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hMassVsPtRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.invMassLcToPiKP(candidate), candidate.pt());
323+
}
324+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.pt());
325+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPtProng0RecSig") + HIST(SignalSuffixes[signalType]), candidate.ptProng0());
326+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPtProng1RecSig") + HIST(SignalSuffixes[signalType]), candidate.ptProng1());
327+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPtProng2RecSig") + HIST(SignalSuffixes[signalType]), candidate.ptProng2());
328+
329+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0Prong0RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter0());
330+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0Prong1RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter1());
331+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0Prong2RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter2());
332+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0VsPtProng0RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter0(), candidate.pt());
333+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0VsPtProng1RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter1(), candidate.pt());
334+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0VsPtProng2RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter2(), candidate.pt());
335+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLengthRecSig") + HIST(SignalSuffixes[signalType]), candidate.decayLength());
336+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLengthVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.decayLength(), candidate.pt());
337+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLengthxyRecSig") + HIST(SignalSuffixes[signalType]), candidate.decayLengthXY());
338+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLengthxyVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.decayLengthXY(), candidate.pt());
339+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCtRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.ctLc(candidate));
340+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCtVsPtRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.ctLc(candidate), candidate.pt());
341+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCPARecSig") + HIST(SignalSuffixes[signalType]), candidate.cpa());
342+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCPAVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.cpa(), candidate.pt());
343+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCPAxyRecSig") + HIST(SignalSuffixes[signalType]), candidate.cpaXY());
344+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCPAxyVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.cpaXY(), candidate.pt());
345+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDca2RecSig") + HIST(SignalSuffixes[signalType]), candidate.chi2PCA());
346+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDca2VsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.chi2PCA(), candidate.pt());
347+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hEtaRecSig") + HIST(SignalSuffixes[signalType]), candidate.eta());
348+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hEtaVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.eta(), candidate.pt());
349+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPhiRecSig") + HIST(SignalSuffixes[signalType]), candidate.phi());
350+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPhiVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.phi(), candidate.pt());
351+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hImpParErrProng0VsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.errorImpactParameter0(), candidate.pt());
352+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hImpParErrProng1VsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.errorImpactParameter1(), candidate.pt());
353+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hImpParErrProng2VsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.errorImpactParameter2(), candidate.pt());
354+
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLenErrVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.errorDecayLength(), candidate.pt());
355+
}
356+
308357
/// Fill MC histograms at reconstruction level
309358
/// \tparam fillMl switch to fill ML histograms
310359
template <bool fillMl, typename CollType, typename CandLcMcRec, typename CandLcMcGen>
311360
void fillHistosMcRec(CollType const& collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles)
312361
{
313-
314362
auto thisCollId = collision.globalIndex();
315363
auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId);
316364

@@ -337,65 +385,21 @@ struct HfTaskLc {
337385
auto ptProng1 = candidate.ptProng1();
338386
auto ptProng2 = candidate.ptProng2();
339387
auto decayLength = candidate.decayLength();
340-
auto decayLengthXY = candidate.decayLengthXY();
341388
auto chi2PCA = candidate.chi2PCA();
342389
auto cpa = candidate.cpa();
343-
auto cpaXY = candidate.cpaXY();
344390
auto originType = candidate.originMcRec();
345391
auto numPvContributors = collision.numContrib();
346392
auto ptRecB = candidate.ptBhadMotherPart();
347393

348-
auto fillHistogramsRec = [&candidate, pdgCodeProng0, pt, ptProng0, ptProng1, ptProng2, decayLength, decayLengthXY, chi2PCA, cpa, cpaXY]<int signalType>(HistogramRegistry& registry, HfHelper& hfHelper, int selectionFlagLc) {
349-
if ((candidate.isSelLcToPKPi() >= selectionFlagLc) && pdgCodeProng0 == kProton) {
350-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hMassRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.invMassLcToPKPi(candidate));
351-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hMassVsPtRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.invMassLcToPKPi(candidate), pt);
352-
}
353-
if ((candidate.isSelLcToPiKP() >= selectionFlagLc) && pdgCodeProng0 == kPiPlus) {
354-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hMassRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.invMassLcToPiKP(candidate));
355-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hMassVsPtRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.invMassLcToPiKP(candidate), pt);
356-
}
357-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPtRecSig") + HIST(SignalSuffixes[signalType]), pt);
358-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPtProng0RecSig") + HIST(SignalSuffixes[signalType]), ptProng0);
359-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPtProng1RecSig") + HIST(SignalSuffixes[signalType]), ptProng1);
360-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPtProng2RecSig") + HIST(SignalSuffixes[signalType]), ptProng2);
361-
362-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0Prong0RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter0());
363-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0Prong1RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter1());
364-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0Prong2RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter2());
365-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0VsPtProng0RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter0(), pt);
366-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0VsPtProng1RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter1(), pt);
367-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hd0VsPtProng2RecSig") + HIST(SignalSuffixes[signalType]), candidate.impactParameter2(), pt);
368-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLengthRecSig") + HIST(SignalSuffixes[signalType]), decayLength);
369-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLengthVsPtRecSig") + HIST(SignalSuffixes[signalType]), decayLength, pt);
370-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLengthxyRecSig") + HIST(SignalSuffixes[signalType]), decayLengthXY);
371-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLengthxyVsPtRecSig") + HIST(SignalSuffixes[signalType]), decayLengthXY, pt);
372-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCtRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.ctLc(candidate));
373-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCtVsPtRecSig") + HIST(SignalSuffixes[signalType]), hfHelper.ctLc(candidate), pt);
374-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCPARecSig") + HIST(SignalSuffixes[signalType]), cpa);
375-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCPAVsPtRecSig") + HIST(SignalSuffixes[signalType]), cpa, pt);
376-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCPAxyRecSig") + HIST(SignalSuffixes[signalType]), cpaXY);
377-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hCPAxyVsPtRecSig") + HIST(SignalSuffixes[signalType]), cpaXY, pt);
378-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDca2RecSig") + HIST(SignalSuffixes[signalType]), chi2PCA);
379-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDca2VsPtRecSig") + HIST(SignalSuffixes[signalType]), chi2PCA, pt);
380-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hEtaRecSig") + HIST(SignalSuffixes[signalType]), candidate.eta());
381-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hEtaVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.eta(), pt);
382-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPhiRecSig") + HIST(SignalSuffixes[signalType]), candidate.phi());
383-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hPhiVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.phi(), pt);
384-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hImpParErrProng0VsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.errorImpactParameter0(), pt);
385-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hImpParErrProng1VsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.errorImpactParameter1(), pt);
386-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hImpParErrProng2VsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.errorImpactParameter2(), pt);
387-
registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[signalType]) + HIST("/hDecLenErrVsPtRecSig") + HIST(SignalSuffixes[signalType]), candidate.errorDecayLength(), pt);
388-
};
389-
390394
/// MC reconstructed signal
391-
fillHistogramsRec.template operator()<Signal>(registry, hfHelper, selectionFlagLc);
395+
fillHistogramsRecSig<Signal>(candidate);
392396

393397
/// reconstructed signal prompt
394398
if (candidate.originMcRec() == RecoDecay::OriginType::Prompt) {
395-
fillHistogramsRec.template operator()<Prompt>(registry, hfHelper, selectionFlagLc);
399+
fillHistogramsRecSig<Prompt>(candidate);
396400
/// reconstructed signal nonprompt
397401
} else if (candidate.originMcRec() == RecoDecay::OriginType::NonPrompt) {
398-
fillHistogramsRec.template operator()<NonPrompt>(registry, hfHelper, selectionFlagLc);
402+
fillHistogramsRecSig<NonPrompt>(candidate);
399403
}
400404

401405
if (fillTHn) {
@@ -449,8 +453,22 @@ struct HfTaskLc {
449453
}
450454
}
451455

456+
/// Helper function for filling MC generated histograms for prompt, nonpromt and common (signal)
457+
/// \param particle is a generated particle
458+
/// \tparam signalType is an enum defining which histogram in which folder (signal, prompt or nonpromt) to fill
459+
template <int signalType, typename ParticleType>
460+
void fillHistogramsGen(ParticleType const& particle)
461+
{
462+
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hPtGen") + HIST(SignalSuffixes[signalType]), particle.pt());
463+
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hEtaGen") + HIST(SignalSuffixes[signalType]), particle.eta());
464+
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hYGen") + HIST(SignalSuffixes[signalType]), RecoDecay::y(particle.pVector(), o2::constants::physics::MassLambdaCPlus));
465+
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hPhiGen") + HIST(SignalSuffixes[signalType]), particle.phi());
466+
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hEtaVsPtGen") + HIST(SignalSuffixes[signalType]), particle.eta(), particle.pt());
467+
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hYVsPtGen") + HIST(SignalSuffixes[signalType]), RecoDecay::y(particle.pVector(), o2::constants::physics::MassLambdaCPlus), particle.pt());
468+
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hPhiVsPtGen") + HIST(SignalSuffixes[signalType]), particle.phi(), particle.pt());
469+
}
470+
452471
/// Fill MC histograms at generated level
453-
/// \tparam fillMl switch to fill ML histograms
454472
template <typename CandLcMcGen, typename Coll>
455473
void fillHistosMcGen(CandLcMcGen const& mcParticles, Coll const& recoCollisions)
456474
{
@@ -480,17 +498,7 @@ struct HfTaskLc {
480498
const float gamma = std::sqrt(1 + p2m * p2m); // mother's particle Lorentz factor
481499
const float properLifetime = mcDaughter0.vt() * NanoToPico / gamma; // from ns to ps * from lab time to proper time
482500

483-
auto fillHistogramsGen = [&particle, ptGen, yGen]<int signalType>(HistogramRegistry& registry) {
484-
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hPtGen") + HIST(SignalSuffixes[signalType]), ptGen);
485-
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hEtaGen") + HIST(SignalSuffixes[signalType]), particle.eta());
486-
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hYGen") + HIST(SignalSuffixes[signalType]), yGen);
487-
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hPhiGen") + HIST(SignalSuffixes[signalType]), particle.phi());
488-
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hEtaVsPtGen") + HIST(SignalSuffixes[signalType]), particle.eta(), ptGen);
489-
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hYVsPtGen") + HIST(SignalSuffixes[signalType]), yGen, ptGen);
490-
registry.fill(HIST("MC/generated/") + HIST(SignalFolders[signalType]) + HIST("/hPhiVsPtGen") + HIST(SignalSuffixes[signalType]), particle.phi(), ptGen);
491-
};
492-
493-
fillHistogramsGen.template operator()<Signal>(registry);
501+
fillHistogramsGen<Signal>(particle);
494502

495503
auto fillTHnGen = [&](bool isPrompt) {
496504
ptGenB = isPrompt ? -1. : mcParticles.rawIteratorAt(particle.idxBhadMotherPart()).pt();
@@ -509,10 +517,10 @@ struct HfTaskLc {
509517

510518
if (particle.originMcGen() == RecoDecay::OriginType::Prompt) {
511519
fillTHnGen(true);
512-
fillHistogramsGen.template operator()<Prompt>(registry);
520+
fillHistogramsGen<Prompt>(particle);
513521
} else if (particle.originMcGen() == RecoDecay::OriginType::NonPrompt) {
514522
fillTHnGen(false);
515-
fillHistogramsGen.template operator()<NonPrompt>(registry);
523+
fillHistogramsGen<NonPrompt>(particle);
516524
}
517525
}
518526
}

0 commit comments

Comments
 (0)