@@ -336,127 +336,57 @@ struct HfTaskLc {
336336 auto numPvContributors = collision.numContrib ();
337337 auto ptRecB = candidate.ptBhadMotherPart ();
338338
339- // / MC reconstructed signal
340- if ((candidate.isSelLcToPKPi () >= selectionFlagLc) && pdgCodeProng0 == kProton ) {
341- registry.fill (HIST (" MC/reconstructed/signal/hMassRecSig" ), hfHelper.invMassLcToPKPi (candidate));
342- registry.fill (HIST (" MC/reconstructed/signal/hMassVsPtRecSig" ), hfHelper.invMassLcToPKPi (candidate), pt);
343- }
344- if ((candidate.isSelLcToPiKP () >= selectionFlagLc) && pdgCodeProng0 == kPiPlus ) {
345- registry.fill (HIST (" MC/reconstructed/signal/hMassRecSig" ), hfHelper.invMassLcToPiKP (candidate));
346- registry.fill (HIST (" MC/reconstructed/signal/hMassVsPtRecSig" ), hfHelper.invMassLcToPiKP (candidate), pt);
347- }
348- registry.fill (HIST (" MC/reconstructed/signal/hPtRecSig" ), pt);
349- registry.fill (HIST (" MC/reconstructed/signal/hPtProng0RecSig" ), ptProng0);
350- registry.fill (HIST (" MC/reconstructed/signal/hPtProng1RecSig" ), ptProng1);
351- registry.fill (HIST (" MC/reconstructed/signal/hPtProng2RecSig" ), ptProng2);
352-
353- registry.fill (HIST (" MC/reconstructed/signal/hd0Prong0RecSig" ), candidate.impactParameter0 ());
354- registry.fill (HIST (" MC/reconstructed/signal/hd0Prong1RecSig" ), candidate.impactParameter1 ());
355- registry.fill (HIST (" MC/reconstructed/signal/hd0Prong2RecSig" ), candidate.impactParameter2 ());
356- registry.fill (HIST (" MC/reconstructed/signal/hd0VsPtProng0RecSig" ), candidate.impactParameter0 (), pt);
357- registry.fill (HIST (" MC/reconstructed/signal/hd0VsPtProng1RecSig" ), candidate.impactParameter1 (), pt);
358- registry.fill (HIST (" MC/reconstructed/signal/hd0VsPtProng2RecSig" ), candidate.impactParameter2 (), pt);
359- registry.fill (HIST (" MC/reconstructed/signal/hDecLengthRecSig" ), decayLength);
360- registry.fill (HIST (" MC/reconstructed/signal/hDecLengthVsPtRecSig" ), decayLength, pt);
361- registry.fill (HIST (" MC/reconstructed/signal/hDecLengthxyRecSig" ), decayLengthXY);
362- registry.fill (HIST (" MC/reconstructed/signal/hDecLengthxyVsPtRecSig" ), decayLengthXY, pt);
363- registry.fill (HIST (" MC/reconstructed/signal/hCtRecSig" ), hfHelper.ctLc (candidate));
364- registry.fill (HIST (" MC/reconstructed/signal/hCtVsPtRecSig" ), hfHelper.ctLc (candidate), pt);
365- registry.fill (HIST (" MC/reconstructed/signal/hCPARecSig" ), cpa);
366- registry.fill (HIST (" MC/reconstructed/signal/hCPAVsPtRecSig" ), cpa, pt);
367- registry.fill (HIST (" MC/reconstructed/signal/hCPAxyRecSig" ), cpaXY);
368- registry.fill (HIST (" MC/reconstructed/signal/hCPAxyVsPtRecSig" ), cpaXY, pt);
369- registry.fill (HIST (" MC/reconstructed/signal/hDca2RecSig" ), chi2PCA);
370- registry.fill (HIST (" MC/reconstructed/signal/hDca2VsPtRecSig" ), chi2PCA, pt);
371- registry.fill (HIST (" MC/reconstructed/signal/hEtaRecSig" ), candidate.eta ());
372- registry.fill (HIST (" MC/reconstructed/signal/hEtaVsPtRecSig" ), candidate.eta (), pt);
373- registry.fill (HIST (" MC/reconstructed/signal/hPhiRecSig" ), candidate.phi ());
374- registry.fill (HIST (" MC/reconstructed/signal/hPhiVsPtRecSig" ), candidate.phi (), pt);
375- registry.fill (HIST (" MC/reconstructed/signal/hImpParErrProng0VsPtRecSig" ), candidate.errorImpactParameter0 (), pt);
376- registry.fill (HIST (" MC/reconstructed/signal/hImpParErrProng1VsPtRecSig" ), candidate.errorImpactParameter1 (), pt);
377- registry.fill (HIST (" MC/reconstructed/signal/hImpParErrProng2VsPtRecSig" ), candidate.errorImpactParameter2 (), pt);
378- registry.fill (HIST (" MC/reconstructed/signal/hDecLenErrVsPtRecSig" ), candidate.errorDecayLength (), pt);
379-
380- // / reconstructed signal prompt
381- if (candidate.originMcRec () == RecoDecay::OriginType::Prompt) {
339+ auto fillHistogramsRecSig = [&](const std::string& signalFolder, const std::string& signalSuffix) {
382340 if ((candidate.isSelLcToPKPi () >= selectionFlagLc) && pdgCodeProng0 == kProton ) {
383- registry.fill (HIST (" MC/reconstructed/prompt/hMassRecSigPrompt " ), hfHelper.invMassLcToPKPi (candidate));
384- registry.fill (HIST (" MC/reconstructed/prompt/hMassVsPtRecSigPrompt " ), hfHelper.invMassLcToPKPi (candidate), pt);
341+ registry.fill (HIST (( " MC/reconstructed/" + signalFolder + " /hMassRecSig " + signalSuffix)). c_str ( ), hfHelper.invMassLcToPKPi (candidate));
342+ registry.fill (HIST (( " MC/reconstructed/" + signalFolder + " /hMassVsPtRecSig " + signalSuffix)). c_str ( ), hfHelper.invMassLcToPKPi (candidate), pt);
385343 }
386344 if ((candidate.isSelLcToPiKP () >= selectionFlagLc) && pdgCodeProng0 == kPiPlus ) {
387- registry.fill (HIST (" MC/reconstructed/prompt/hMassRecSigPrompt" ), hfHelper.invMassLcToPiKP (candidate));
388- registry.fill (HIST (" MC/reconstructed/prompt/hMassVsPtRecSigPrompt" ), hfHelper.invMassLcToPiKP (candidate), pt);
389- }
390- registry.fill (HIST (" MC/reconstructed/prompt/hPtRecSigPrompt" ), pt);
391- registry.fill (HIST (" MC/reconstructed/prompt/hPtProng0RecSigPrompt" ), ptProng0);
392- registry.fill (HIST (" MC/reconstructed/prompt/hPtProng1RecSigPrompt" ), ptProng1);
393- registry.fill (HIST (" MC/reconstructed/prompt/hPtProng2RecSigPrompt" ), ptProng2);
394- registry.fill (HIST (" MC/reconstructed/prompt/hd0Prong0RecSigPrompt" ), candidate.impactParameter0 ());
395- registry.fill (HIST (" MC/reconstructed/prompt/hd0Prong1RecSigPrompt" ), candidate.impactParameter1 ());
396- registry.fill (HIST (" MC/reconstructed/prompt/hd0Prong2RecSigPrompt" ), candidate.impactParameter2 ());
397- registry.fill (HIST (" MC/reconstructed/prompt/hd0VsPtProng0RecSigPrompt" ), candidate.impactParameter0 (), pt);
398- registry.fill (HIST (" MC/reconstructed/prompt/hd0VsPtProng1RecSigPrompt" ), candidate.impactParameter1 (), pt);
399- registry.fill (HIST (" MC/reconstructed/prompt/hd0VsPtProng2RecSigPrompt" ), candidate.impactParameter2 (), pt);
400- registry.fill (HIST (" MC/reconstructed/prompt/hDecLengthRecSigPrompt" ), decayLength);
401- registry.fill (HIST (" MC/reconstructed/prompt/hDecLengthVsPtRecSigPrompt" ), decayLength, pt);
402- registry.fill (HIST (" MC/reconstructed/prompt/hDecLengthxyRecSigPrompt" ), decayLengthXY);
403- registry.fill (HIST (" MC/reconstructed/prompt/hDecLengthxyVsPtRecSigPrompt" ), decayLengthXY, pt);
404- registry.fill (HIST (" MC/reconstructed/prompt/hCtRecSigPrompt" ), hfHelper.ctLc (candidate));
405- registry.fill (HIST (" MC/reconstructed/prompt/hCtVsPtRecSigPrompt" ), hfHelper.ctLc (candidate), pt);
406- registry.fill (HIST (" MC/reconstructed/prompt/hCPARecSigPrompt" ), cpa);
407- registry.fill (HIST (" MC/reconstructed/prompt/hCPAVsPtRecSigPrompt" ), cpa, pt);
408- registry.fill (HIST (" MC/reconstructed/prompt/hCPAxyRecSigPrompt" ), cpaXY);
409- registry.fill (HIST (" MC/reconstructed/prompt/hCPAxyVsPtRecSigPrompt" ), cpaXY, pt);
410- registry.fill (HIST (" MC/reconstructed/prompt/hDca2RecSigPrompt" ), chi2PCA);
411- registry.fill (HIST (" MC/reconstructed/prompt/hDca2VsPtRecSigPrompt" ), chi2PCA, pt);
412- registry.fill (HIST (" MC/reconstructed/prompt/hEtaRecSigPrompt" ), candidate.eta ());
413- registry.fill (HIST (" MC/reconstructed/prompt/hEtaVsPtRecSigPrompt" ), candidate.eta (), pt);
414- registry.fill (HIST (" MC/reconstructed/prompt/hPhiRecSigPrompt" ), candidate.phi ());
415- registry.fill (HIST (" MC/reconstructed/prompt/hPhiVsPtRecSigPrompt" ), candidate.phi (), pt);
416- registry.fill (HIST (" MC/reconstructed/prompt/hImpParErrProng0VsPtRecSigPrompt" ), candidate.errorImpactParameter0 (), pt);
417- registry.fill (HIST (" MC/reconstructed/prompt/hImpParErrProng1VsPtRecSigPrompt" ), candidate.errorImpactParameter1 (), pt);
418- registry.fill (HIST (" MC/reconstructed/prompt/hImpParErrProng2VsPtRecSigPrompt" ), candidate.errorImpactParameter2 (), pt);
419- registry.fill (HIST (" MC/reconstructed/prompt/hDecLenErrVsPtRecSigPrompt" ), candidate.errorDecayLength (), pt);
420- } else {
421- if ((candidate.isSelLcToPKPi () >= selectionFlagLc) && pdgCodeProng0 == kProton ) {
422- registry.fill (HIST (" MC/reconstructed/nonprompt/hMassRecSigNonPrompt" ), hfHelper.invMassLcToPKPi (candidate));
423- registry.fill (HIST (" MC/reconstructed/nonprompt/hMassVsPtRecSigNonPrompt" ), hfHelper.invMassLcToPKPi (candidate), pt);
345+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hMassRecSig" + signalSuffix)).c_str (), hfHelper.invMassLcToPiKP (candidate));
346+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hMassVsPtRecSig" + signalSuffix)).c_str (), hfHelper.invMassLcToPiKP (candidate), pt);
424347 }
425- if ((candidate.isSelLcToPiKP () >= selectionFlagLc) && pdgCodeProng0 == kPiPlus ) {
426- registry.fill (HIST (" MC/reconstructed/nonprompt/hMassRecSigNonPrompt" ), hfHelper.invMassLcToPiKP (candidate));
427- registry.fill (HIST (" MC/reconstructed/nonprompt/hMassVsPtRecSigNonPrompt" ), hfHelper.invMassLcToPiKP (candidate), pt);
428- }
429- registry.fill (HIST (" MC/reconstructed/nonprompt/hPtRecSigNonPrompt" ), pt);
430- registry.fill (HIST (" MC/reconstructed/nonprompt/hPtProng0RecSigNonPrompt" ), ptProng0);
431- registry.fill (HIST (" MC/reconstructed/nonprompt/hPtProng1RecSigNonPrompt" ), ptProng1);
432- registry.fill (HIST (" MC/reconstructed/nonprompt/hPtProng2RecSigNonPrompt" ), ptProng2);
433- registry.fill (HIST (" MC/reconstructed/nonprompt/hd0Prong0RecSigNonPrompt" ), candidate.impactParameter0 ());
434- registry.fill (HIST (" MC/reconstructed/nonprompt/hd0Prong1RecSigNonPrompt" ), candidate.impactParameter1 ());
435- registry.fill (HIST (" MC/reconstructed/nonprompt/hd0Prong2RecSigNonPrompt" ), candidate.impactParameter2 ());
436- registry.fill (HIST (" MC/reconstructed/nonprompt/hd0VsPtProng0RecSigNonPrompt" ), candidate.impactParameter0 (), pt);
437- registry.fill (HIST (" MC/reconstructed/nonprompt/hd0VsPtProng1RecSigNonPrompt" ), candidate.impactParameter1 (), pt);
438- registry.fill (HIST (" MC/reconstructed/nonprompt/hd0VsPtProng2RecSigNonPrompt" ), candidate.impactParameter2 (), pt);
439- registry.fill (HIST (" MC/reconstructed/nonprompt/hDecLengthRecSigNonPrompt" ), decayLength);
440- registry.fill (HIST (" MC/reconstructed/nonprompt/hDecLengthVsPtRecSigNonPrompt" ), decayLength, pt);
441- registry.fill (HIST (" MC/reconstructed/nonprompt/hDecLengthxyRecSigNonPrompt" ), decayLengthXY);
442- registry.fill (HIST (" MC/reconstructed/nonprompt/hDecLengthxyVsPtRecSigNonPrompt" ), decayLengthXY, pt);
443- registry.fill (HIST (" MC/reconstructed/nonprompt/hCtRecSigNonPrompt" ), hfHelper.ctLc (candidate));
444- registry.fill (HIST (" MC/reconstructed/nonprompt/hCtVsPtRecSigNonPrompt" ), hfHelper.ctLc (candidate), pt);
445- registry.fill (HIST (" MC/reconstructed/nonprompt/hCPARecSigNonPrompt" ), cpa);
446- registry.fill (HIST (" MC/reconstructed/nonprompt/hCPAVsPtRecSigNonPrompt" ), cpa, pt);
447- registry.fill (HIST (" MC/reconstructed/nonprompt/hCPAxyRecSigNonPrompt" ), cpaXY);
448- registry.fill (HIST (" MC/reconstructed/nonprompt/hCPAxyVsPtRecSigNonPrompt" ), cpaXY, pt);
449- registry.fill (HIST (" MC/reconstructed/nonprompt/hDca2RecSigNonPrompt" ), chi2PCA);
450- registry.fill (HIST (" MC/reconstructed/nonprompt/hDca2VsPtRecSigNonPrompt" ), chi2PCA, pt);
451- registry.fill (HIST (" MC/reconstructed/nonprompt/hEtaRecSigNonPrompt" ), candidate.eta ());
452- registry.fill (HIST (" MC/reconstructed/nonprompt/hEtaVsPtRecSigNonPrompt" ), candidate.eta (), pt);
453- registry.fill (HIST (" MC/reconstructed/nonprompt/hPhiRecSigNonPrompt" ), candidate.phi ());
454- registry.fill (HIST (" MC/reconstructed/nonprompt/hPhiVsPtRecSigNonPrompt" ), candidate.phi (), pt);
455- registry.fill (HIST (" MC/reconstructed/nonprompt/hImpParErrProng0VsPtRecSigNonPrompt" ), candidate.errorImpactParameter0 (), pt);
456- registry.fill (HIST (" MC/reconstructed/nonprompt/hImpParErrProng1VsPtRecSigNonPrompt" ), candidate.errorImpactParameter1 (), pt);
457- registry.fill (HIST (" MC/reconstructed/nonprompt/hImpParErrProng2VsPtRecSigNonPrompt" ), candidate.errorImpactParameter2 (), pt);
458- registry.fill (HIST (" MC/reconstructed/nonprompt/hDecLenErrVsPtRecSigNonPrompt" ), candidate.errorDecayLength (), pt);
348+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hPtRecSig" + signalSuffix)).c_str (), pt);
349+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hPtProng0RecSig" + signalSuffix)).c_str (), ptProng0);
350+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hPtProng1RecSig" + signalSuffix)).c_str (), ptProng1);
351+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hPtProng2RecSig" + signalSuffix)).c_str (), ptProng2);
352+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hd0Prong0RecSig" + signalSuffix)).c_str (), candidate.impactParameter0 ());
353+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hd0Prong1RecSig" + signalSuffix)).c_str (), candidate.impactParameter1 ());
354+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hd0Prong2RecSig" + signalSuffix)).c_str (), candidate.impactParameter2 ());
355+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hd0VsPtProng0RecSig" + signalSuffix)).c_str (), candidate.impactParameter0 (), pt);
356+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hd0VsPtProng1RecSig" + signalSuffix)).c_str (), candidate.impactParameter1 (), pt);
357+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hd0VsPtProng2RecSig" + signalSuffix)).c_str (), candidate.impactParameter2 (), pt);
358+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hDecLengthRecSig" + signalSuffix)).c_str (), decayLength);
359+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hDecLengthVsPtRecSig" + signalSuffix)).c_str (), decayLength, pt);
360+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hDecLengthxyRecSig" + signalSuffix)).c_str (), decayLengthXY);
361+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hDecLengthxyVsPtRecSig" + signalSuffix)).c_str (), decayLengthXY, pt);
362+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hCtRecSig" + signalSuffix)).c_str (), hfHelper.ctLc (candidate));
363+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hCtVsPtRecSig" + signalSuffix)).c_str (), hfHelper.ctLc (candidate), pt);
364+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hCPARecSig" + signalSuffix)).c_str (), cpa);
365+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hCPAVsPtRecSig" + signalSuffix)).c_str (), cpa, pt);
366+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hCPAxyRecSig" + signalSuffix)).c_str (), cpaXY);
367+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hCPAxyVsPtRecSig" + signalSuffix)).c_str (), cpaXY, pt);
368+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hDca2RecSig" + signalSuffix)).c_str (), chi2PCA);
369+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hDca2VsPtRecSig" + signalSuffix)).c_str (), chi2PCA, pt);
370+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hEtaRecSig" + signalSuffix)).c_str (), candidate.eta ());
371+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hEtaVsPtRecSig" + signalSuffix)).c_str (), candidate.eta (), pt);
372+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hPhiRecSig" + signalSuffix)).c_str (), candidate.phi ());
373+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hPhiVsPtRecSig" + signalSuffix)).c_str (), candidate.phi (), pt);
374+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hImpParErrProng0VsPtRecSig" + signalSuffix)).c_str (), candidate.errorImpactParameter0 (), pt);
375+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hImpParErrProng1VsPtRecSig" + signalSuffix)).c_str (), candidate.errorImpactParameter1 (), pt);
376+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hImpParErrProng2VsPtRecSig" + signalSuffix)).c_str (), candidate.errorImpactParameter2 (), pt);
377+ registry.fill (HIST ((" MC/reconstructed/" + signalFolder + " /hDecLenErrVsPtRecSig" + signalSuffix)).c_str (), candidate.errorDecayLength (), pt);
378+ };
379+
380+ // / MC reconstructed signal
381+ fillHistogramsRecSig (" signal" , " " );
382+ // / reconstructed signal prompt
383+ if (candidate.originMcRec () == RecoDecay::OriginType::Prompt) {
384+ fillHistogramsRecSig (" prompt" , " Prompt" );
385+ // / reconstructed signal nonprompt
386+ } else if (candidate.originMcRec () == RecoDecay::OriginType::NonPrompt) {
387+ fillHistogramsRecSig (" nonprompt" , " NonPrompt" );
459388 }
389+
460390 if (fillTHn) {
461391 float cent = evaluateCentralityColl (collision);
462392 float occ{-1 .};
0 commit comments