Skip to content

Commit 9389f90

Browse files
minjungkim12claude
andcommitted
[PWGHF] Add FT0A and FT0C axes to taskD0 UPC THnSparse
- Add ConfigurableAxis for FT0A and FT0C (1001 bins, -1.5 to 999.5) - Bin centers at -1, 0, 1, 2, ..., 999 for integer amplitude values - Add axes to THnSparse when doprocessDataWithDCAFitterNMlWithUpc is enabled - Include FT0A and FT0C amplitudes in fillTHnData lambda function - Enables detailed analysis of forward detector signals in UPC events - Complements gap type classification with raw detector information 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent a63fb5c commit 9389f90

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

PWGHF/D2H/Tasks/taskD0.cxx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)