Skip to content

Commit 65ae5ee

Browse files
committed
Adding efficiency weights to THnSparse in correlator and new Mass histograms in taskCorrelator
1 parent 9348ae9 commit 65ae5ee

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

PWGHF/HFC/TableProducer/correlatorD0Hadrons.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ struct HfCorrelatorD0Hadrons {
430430
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
431431
outputMlD0[iclass] = candidate.mlProbD0()[classMl->at(iclass)];
432432
}
433-
registry.fill(HIST("hMLScoresVsMassVsPtVsEtaVsOriginVsCent"), outputMlD0[0], outputMlD0[1], outputMlD0[2], invMassD0, candidate.pt(), candidate.eta(), (candidate.isSelD0bar() != 0) ? o2::aod::hf_correlation_d0_hadron::D0D0barBoth : o2::aod::hf_correlation_d0_hadron::D0Only, cent);
433+
registry.fill(HIST("hMLScoresVsMassVsPtVsEtaVsOriginVsCent"), outputMlD0[0], outputMlD0[1], outputMlD0[2], invMassD0, candidate.pt(), candidate.eta(), (candidate.isSelD0bar() != 0) ? o2::aod::hf_correlation_d0_hadron::D0D0barBoth : o2::aod::hf_correlation_d0_hadron::D0Only, cent, efficiencyWeight);
434434
}
435435
if (candidate.isSelD0bar() >= selectionFlagD0bar) {
436436
registry.fill(HIST("hMass"), invMassD0bar, candidate.pt(), efficiencyWeight);
@@ -440,7 +440,7 @@ struct HfCorrelatorD0Hadrons {
440440
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
441441
outputMlD0bar[iclass] = candidate.mlProbD0bar()[classMl->at(iclass)];
442442
}
443-
registry.fill(HIST("hMLScoresVsMassVsPtVsEtaVsOriginVsCent"), outputMlD0bar[0], outputMlD0bar[1], outputMlD0bar[2], invMassD0bar, candidate.pt(), candidate.eta(), (candidate.isSelD0() != 0) ? o2::aod::hf_correlation_d0_hadron::D0D0barBoth : o2::aod::hf_correlation_d0_hadron::D0barOnly, cent);
443+
registry.fill(HIST("hMLScoresVsMassVsPtVsEtaVsOriginVsCent"), outputMlD0bar[0], outputMlD0bar[1], outputMlD0bar[2], invMassD0bar, candidate.pt(), candidate.eta(), (candidate.isSelD0() != 0) ? o2::aod::hf_correlation_d0_hadron::D0D0barBoth : o2::aod::hf_correlation_d0_hadron::D0barOnly, cent, efficiencyWeight);
444444
}
445445
entryD0CandRecoInfo(invMassD0, invMassD0bar, candidate.pt(), outputMlD0[0], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[2]);
446446

@@ -620,7 +620,7 @@ struct HfCorrelatorD0Hadrons {
620620
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
621621
outputMlD0[iclass] = candidate.mlProbD0()[classMl->at(iclass)];
622622
}
623-
registry.fill(HIST("hMLScoresVsMassVsPtVsEtaVsOriginVsCent"), outputMlD0[0], outputMlD0[1], outputMlD0[2], invMassD0, candidate.pt(), candidate.eta(), isD0Prompt, cent);
623+
registry.fill(HIST("hMLScoresVsMassVsPtVsEtaVsOriginVsCent"), outputMlD0[0], outputMlD0[1], outputMlD0[2], invMassD0, candidate.pt(), candidate.eta(), isD0Prompt, cent, efficiencyWeight);
624624
}
625625
if (candidate.isSelD0bar() >= selectionFlagD0bar) { // only reco as D0bar
626626
if (candidate.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { // also matched as D0bar
@@ -642,7 +642,7 @@ struct HfCorrelatorD0Hadrons {
642642
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
643643
outputMlD0bar[iclass] = candidate.mlProbD0bar()[classMl->at(iclass)];
644644
}
645-
registry.fill(HIST("hMLScoresVsMassVsPtVsEtaVsOriginVsCent"), outputMlD0bar[0], outputMlD0bar[1], outputMlD0bar[2], invMassD0bar, candidate.pt(), candidate.eta(), isD0Prompt, cent);
645+
registry.fill(HIST("hMLScoresVsMassVsPtVsEtaVsOriginVsCent"), outputMlD0bar[0], outputMlD0bar[1], outputMlD0bar[2], invMassD0bar, candidate.pt(), candidate.eta(), isD0Prompt, cent, efficiencyWeight);
646646
}
647647
entryD0CandRecoInfo(invMassD0, invMassD0bar, candidate.pt(), outputMlD0[0], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[2]);
648648
entryD0CandGenInfo(isD0Prompt);

PWGHF/HFC/Tasks/taskCorrelationD0Hadrons.cxx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,12 @@ struct HfTaskCorrelationD0Hadrons {
164164
AxisSpec axisCentFT0M = {binsCentFt0m, "Centrality percentile (FT0M)"};
165165

166166
// Histograms for data
167+
168+
registry.add("hBdtScorePrompt", "D0 BDT prompt score", {HistType::kTH1F, {axisBdtScore}});
169+
registry.add("hBdtScoreBkg", "D0 BDT bkg score", {HistType::kTH1F, {axisBdtScore}});
170+
registry.add("hMassD0VsPt", "D0 candidates massVsPt", {HistType::kTH2F, {{axisMassD}, {axisPtD}}});
171+
registry.add("hMassD0VsPtWoEff", "D0 candidates massVsPt without efficiency", {HistType::kTH2F, {{axisMassD}, {axisPtD}}});
172+
167173
registry.add("hDeltaEtaPtIntSignalRegion", "D0-h deltaEta signal region", {HistType::kTH1F, {axisDeltaEta}});
168174
registry.add("hDeltaPhiPtIntSignalRegion", "D0-h deltaPhi signal region", {HistType::kTH1F, {axisDeltaPhi}});
169175
registry.add("hCorrel2DPtIntSignalRegion", "D0-h deltaPhi vs deltaEta signal region", {HistType::kTH2F, {{axisDeltaPhi}, {axisDeltaEta}}});
@@ -308,6 +314,7 @@ struct HfTaskCorrelationD0Hadrons {
308314
aod::D0CandRecoInfo const& candidates)
309315
{
310316
for (const auto& candidate : candidates) {
317+
float const massD = candidate.mD();
311318
float const ptD = candidate.ptD();
312319
float const bdtScorePromptD0 = candidate.mlScorePromptD0();
313320
float const bdtScoreBkgD0 = candidate.mlScoreBkgD0();
@@ -324,6 +331,16 @@ struct HfTaskCorrelationD0Hadrons {
324331
(bdtScorePromptD0bar < mlOutputPromptD0bar->at(effBinD) || bdtScoreBkgD0bar > mlOutputBkgD0bar->at(effBinD))) {
325332
continue;
326333
}
334+
335+
double efficiencyWeightD = 1.;
336+
if (applyEfficiency != 0) {
337+
efficiencyWeightD = 1. / efficiencyDmeson->at(o2::analysis::findBin(binsPtEfficiencyD, ptD));
338+
}
339+
340+
registry.fill(HIST("hMassD0VsPt"), massD, ptD, efficiencyWeightD);
341+
registry.fill(HIST("hMassD0VsPtWoEff"), massD, ptD);
342+
registry.fill(HIST("hBdtScorePrompt"), bdtScorePromptD0);
343+
registry.fill(HIST("hBdtScoreBkg"), bdtScoreBkgD0);
327344
}
328345

329346
for (const auto& pairEntry : pairEntries) {

0 commit comments

Comments
 (0)