@@ -345,7 +345,7 @@ struct HfTaskLc {
345345 auto numPvContributors = collision.numContrib ();
346346 auto ptRecB = candidate.ptBhadMotherPart ();
347347
348- auto fillHistogramsRec = [&]<int signalType>() {
348+ auto fillHistogramsRec = [&candidate, pdgCodeProng0, pt, ptProng0, ptProng1, ptProng2, decayLength, decayLengthXY, chi2PCA, cpa, cpaXY ]<int signalType>(HistogramRegistry& registry, HfHelper& hfHelper, int selectionFlagLc ) {
349349 if ((candidate.isSelLcToPKPi () >= selectionFlagLc) && pdgCodeProng0 == kProton ) {
350350 registry.fill (HIST (" MC/reconstructed/" ) + HIST (SignalFolders[signalType]) + HIST (" /hMassRecSig" ) + HIST (SignalSuffixes[signalType]), hfHelper.invMassLcToPKPi (candidate));
351351 registry.fill (HIST (" MC/reconstructed/" ) + HIST (SignalFolders[signalType]) + HIST (" /hMassVsPtRecSig" ) + HIST (SignalSuffixes[signalType]), hfHelper.invMassLcToPKPi (candidate), pt);
@@ -388,14 +388,14 @@ struct HfTaskLc {
388388 };
389389
390390 // / MC reconstructed signal
391- fillHistogramsRec.template operator ()<Signal>();
391+ fillHistogramsRec.template operator ()<Signal>(registry, hfHelper, selectionFlagLc );
392392
393393 // / reconstructed signal prompt
394394 if (candidate.originMcRec () == RecoDecay::OriginType::Prompt) {
395- fillHistogramsRec.template operator ()<Prompt>();
395+ fillHistogramsRec.template operator ()<Prompt>(registry, hfHelper, selectionFlagLc );
396396 // / reconstructed signal nonprompt
397397 } else if (candidate.originMcRec () == RecoDecay::OriginType::NonPrompt) {
398- fillHistogramsRec.template operator ()<NonPrompt>();
398+ fillHistogramsRec.template operator ()<NonPrompt>(registry, hfHelper, selectionFlagLc );
399399 }
400400
401401 if (fillTHn) {
@@ -480,7 +480,7 @@ struct HfTaskLc {
480480 const float gamma = std::sqrt (1 + p2m * p2m); // mother's particle Lorentz factor
481481 const float properLifetime = mcDaughter0.vt () * NanoToPico / gamma; // from ns to ps * from lab time to proper time
482482
483- auto fillHistogramsGen = [&]<int signalType>() {
483+ auto fillHistogramsGen = [&particle, ptGen, yGen ]<int signalType>(HistogramRegistry& registry ) {
484484 registry.fill (HIST (" MC/generated/" ) + HIST (SignalFolders[signalType]) + HIST (" /hPtGen" ) + HIST (SignalSuffixes[signalType]), ptGen);
485485 registry.fill (HIST (" MC/generated/" ) + HIST (SignalFolders[signalType]) + HIST (" /hEtaGen" ) + HIST (SignalSuffixes[signalType]), particle.eta ());
486486 registry.fill (HIST (" MC/generated/" ) + HIST (SignalFolders[signalType]) + HIST (" /hYGen" ) + HIST (SignalSuffixes[signalType]), yGen);
@@ -490,7 +490,7 @@ struct HfTaskLc {
490490 registry.fill (HIST (" MC/generated/" ) + HIST (SignalFolders[signalType]) + HIST (" /hPhiVsPtGen" ) + HIST (SignalSuffixes[signalType]), particle.phi (), ptGen);
491491 };
492492
493- fillHistogramsGen.template operator ()<Signal>();
493+ fillHistogramsGen.template operator ()<Signal>(registry );
494494
495495 auto fillTHnGen = [&](bool isPrompt) {
496496 ptGenB = isPrompt ? -1 . : mcParticles.rawIteratorAt (particle.idxBhadMotherPart ()).pt ();
@@ -509,10 +509,10 @@ struct HfTaskLc {
509509
510510 if (particle.originMcGen () == RecoDecay::OriginType::Prompt) {
511511 fillTHnGen (true );
512- fillHistogramsGen.template operator ()<Prompt>();
512+ fillHistogramsGen.template operator ()<Prompt>(registry );
513513 } else if (particle.originMcGen () == RecoDecay::OriginType::NonPrompt) {
514514 fillTHnGen (false );
515- fillHistogramsGen.template operator ()<NonPrompt>();
515+ fillHistogramsGen.template operator ()<NonPrompt>(registry );
516516 }
517517 }
518518 }
0 commit comments