@@ -153,6 +153,8 @@ struct HfTaskD0 {
153153 ConfigurableAxis thnConfigAxisMinTpcNCrossedRows{" thnConfigAxisMinTpcNCrossedRows" , {10 , 70 , 180 }, " axis for minimum TPC NCls crossed rows of candidate prongs" };
154154 ConfigurableAxis thnConfigAxisIR{" thnConfigAxisIR" , {5000 , 0 , 500 }, " Interaction rate (kHz)" };
155155 ConfigurableAxis thnConfigAxisGapType{" thnConfigAxisGapType" , {3 , -0.5 , 2.5 }, " axis for UPC gap type (0=GapA, 1=GapC, 2=DoubleGap)" };
156+ ConfigurableAxis thnConfigAxisFT0A{" thnConfigAxisFT0A" , {1001 , -1.5 , 999.5 }, " axis for FT0-A amplitude (a.u.)" };
157+ ConfigurableAxis thnConfigAxisFT0C{" thnConfigAxisFT0C" , {1001 , -1.5 , 999.5 }, " axis for FT0-C amplitude (a.u.)" };
156158
157159 HistogramRegistry registry{
158160 " registry" ,
@@ -298,6 +300,8 @@ struct HfTaskD0 {
298300 const AxisSpec thnAxisMinTpcNCrossedRows{thnConfigAxisMinTpcNCrossedRows, " Minimum TPC crossed rows" };
299301 const AxisSpec thnAxisIR{thnConfigAxisIR, " Interaction rate" };
300302 const AxisSpec thnAxisGapType{thnConfigAxisGapType, " Gap type" };
303+ const AxisSpec thnAxisFT0A{thnConfigAxisFT0A, " FT0-A amplitude" };
304+ const AxisSpec thnAxisFT0C{thnConfigAxisFT0C, " FT0-C amplitude" };
301305
302306 if (doprocessMcWithDCAFitterN || doprocessMcWithDCAFitterNCent || doprocessMcWithKFParticle || doprocessMcWithDCAFitterNMl || doprocessMcWithDCAFitterNMlCent || doprocessMcWithKFParticleMl) {
303307 std::vector<AxisSpec> axesAcc = {thnAxisGenPtD, thnAxisGenPtB, thnAxisY, thnAxisOrigin, thnAxisNumPvContr};
@@ -333,6 +337,8 @@ struct HfTaskD0 {
333337 }
334338 if (doprocessDataWithDCAFitterNMlWithUpc) {
335339 axes.push_back (thnAxisGapType);
340+ axes.push_back (thnAxisFT0A);
341+ axes.push_back (thnAxisFT0C);
336342 }
337343 if (applyMl) {
338344 const AxisSpec thnAxisBkgScore{thnConfigAxisBkgScore, " BDT score bkg." };
@@ -599,13 +605,15 @@ struct HfTaskD0 {
599605 registry.fill (HIST (" hMassVsPhi" ), massD0bar, ptCandidate, candidate.phi ());
600606 }
601607
602- // Fill THnSparse with gap type using vectorized approach similar to taskDplus
608+ // Fill THnSparse with gap type and FIT signals using vectorized approach
603609 if constexpr (fillMl) {
604610 auto fillTHnData = [&](float mass, int d0Type) {
605611 std::vector<double > valuesToFill{candidate.mlProbD0 ()[0 ], candidate.mlProbD0 ()[1 ], candidate.mlProbD0 ()[2 ],
606612 static_cast <double >(mass), static_cast <double >(ptCandidate),
607613 static_cast <double >(hfHelper.yD0 (candidate)), static_cast <double >(d0Type)};
608614 valuesToFill.push_back (static_cast <double >(gapTypeInt));
615+ valuesToFill.push_back (static_cast <double >(fitInfo.ampFT0A ));
616+ valuesToFill.push_back (static_cast <double >(fitInfo.ampFT0C ));
609617 registry.get <THnSparse>(HIST (" hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type" ))->Fill (valuesToFill.data ());
610618 };
611619
@@ -622,6 +630,8 @@ struct HfTaskD0 {
622630 std::vector<double > valuesToFill{static_cast <double >(mass), static_cast <double >(ptCandidate),
623631 static_cast <double >(hfHelper.yD0 (candidate)), static_cast <double >(d0Type)};
624632 valuesToFill.push_back (static_cast <double >(gapTypeInt));
633+ valuesToFill.push_back (static_cast <double >(fitInfo.ampFT0A ));
634+ valuesToFill.push_back (static_cast <double >(fitInfo.ampFT0C ));
625635 registry.get <THnSparse>(HIST (" hMassVsPtVsPtBVsYVsOriginVsD0Type" ))->Fill (valuesToFill.data ());
626636 };
627637
0 commit comments