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