@@ -140,6 +140,7 @@ struct HfTaskCorrelationDplusHadrons {
140140 Configurable<bool > activateQA{" activateQA" , false , " Flag to enable debug histogram" };
141141 Configurable<int > nTpcCrossedRaws{" nTpcCrossedRaws" , 70 , " Number of crossed TPC Rows" };
142142 Configurable<float > cutCollPosZMc{" cutCollPosZMc" , 10 ., " max z-vertex position for collision acceptance" };
143+ Configurable<bool > storeMassAxis{" storeMassAxis" , false , " Store Mass axis in THnSparse" };
143144 // CCDB configuration
144145 Configurable<std::string> ccdbUrl{" ccdbUrl" , " http://alice-ccdb.cern.ch" , " url of the ccdb repository" };
145146 Configurable<std::string> associatedEffCcdbPath{" associatedEffCcdbPath" , " " , " CCDB path for associated efficiency" };
@@ -201,25 +202,30 @@ struct HfTaskCorrelationDplusHadrons {
201202 registry.add (" hMassDplusVsPt" , " D+ candidates massVsPt" , {HistType::kTH2F , {{axisMassD}, {axisPtD}}});
202203 registry.add (" hMassDplusVsPtWoEff" , " D+ candidates massVsPt without efficiency" , {HistType::kTH2F , {{axisMassD}, {axisPtD}}});
203204 if (fillHistoData) {
204- registry.add (" hDeltaEtaPtIntSignalRegion" , stringDHadron + stringSignal + stringDeltaEta + " entries" , {HistType::kTH1F , {axisDeltaEta}});
205- registry.add (" hDeltaPhiPtIntSignalRegion" , stringDHadron + stringSignal + stringDeltaPhi + " entries" , {HistType::kTH1F , {axisDeltaPhi}});
206- registry.add (" hCorrel2DPtIntSignalRegion" , stringDHadron + stringSignal + stringDeltaPhi + stringDeltaEta + " entries" , {HistType::kTH2F , {{axisDeltaPhi}, {axisDeltaEta}}});
207- registry.add (" hCorrel2DVsPtSignalRegion" , stringDHadron + stringSignal + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtCorr}, {axisPtHadron}, {axisPoolBin}}});
208- registry.add (" hDeltaEtaPtIntSidebands" , stringDHadron + stringSideband + stringDeltaEta + " entries" , {HistType::kTH1F , {axisDeltaEta}});
209- registry.add (" hDeltaPhiPtIntSidebands" , stringDHadron + stringSideband + stringDeltaPhi + " entries" , {HistType::kTH1F , {axisDeltaPhi}});
210- registry.add (" hCorrel2DPtIntSidebands" , stringDHadron + stringSideband + stringDeltaPhi + stringDeltaEta + " entries" , {HistType::kTH2F , {{axisDeltaPhi}, {axisDeltaEta}}});
211- registry.add (" hCorrel2DVsPtSidebands" , stringDHadron + stringSideband + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtCorr}, {axisPtHadron}, {axisPoolBin}}});
212- registry.add (" hDeltaEtaPtIntSidebandLeft" , stringDHadron + " Left" + stringSideband + stringDeltaEta, {HistType::kTH1F , {axisDeltaEta}});
213- registry.add (" hDeltaPhiPtIntSidebandLeft" , stringDHadron + " Left" + stringSideband + stringDeltaPhi, {HistType::kTH1F , {axisDeltaPhi}});
214- registry.add (" hDeltaEtaPtIntSidebandRight" , stringDHadron + " Right" + stringSideband + stringDeltaEta, {HistType::kTH1F , {axisDeltaEta}});
215- registry.add (" hDeltaPhiPtIntSidebandRight" , stringDHadron + " Right" + stringSideband + stringDeltaPhi, {HistType::kTH1F , {axisDeltaPhi}});
216- registry.add (" hCorrel2DVsPtSidebandLeft" , stringDHadron + " Left" + stringSideband + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtD}, {axisPtHadron}, {axisPoolBin}}});
217- registry.add (" hCorrel2DVsPtSidebandRight" , stringDHadron + " Right" + stringSideband + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtD}, {axisPtHadron}, {axisPoolBin}}});
218-
219- registry.get <THnSparse>(HIST (" hCorrel2DVsPtSignalRegion" ))->Sumw2 ();
220- registry.get <THnSparse>(HIST (" hCorrel2DVsPtSidebands" ))->Sumw2 ();
221- registry.get <THnSparse>(HIST (" hCorrel2DVsPtSidebandLeft" ))->Sumw2 ();
222- registry.get <THnSparse>(HIST (" hCorrel2DVsPtSidebandRight" ))->Sumw2 ();
205+ if (storeMassAxis) {
206+ registry.add (" hCorrel2DVsPtVsMass" , stringDHadron + stringSignal + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtCorr}, {axisPtHadron}, {axisPoolBin}, {axisMassD}}});
207+ registry.get <THnSparse>(HIST (" hCorrel2DVsPtVsMass" ))->Sumw2 ();
208+ } else {
209+ registry.add (" hDeltaEtaPtIntSignalRegion" , stringDHadron + stringSignal + stringDeltaEta + " entries" , {HistType::kTH1F , {axisDeltaEta}});
210+ registry.add (" hDeltaPhiPtIntSignalRegion" , stringDHadron + stringSignal + stringDeltaPhi + " entries" , {HistType::kTH1F , {axisDeltaPhi}});
211+ registry.add (" hCorrel2DPtIntSignalRegion" , stringDHadron + stringSignal + stringDeltaPhi + stringDeltaEta + " entries" , {HistType::kTH2F , {{axisDeltaPhi}, {axisDeltaEta}}});
212+ registry.add (" hCorrel2DVsPtSignalRegion" , stringDHadron + stringSignal + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtCorr}, {axisPtHadron}, {axisPoolBin}}});
213+ registry.add (" hDeltaEtaPtIntSidebands" , stringDHadron + stringSideband + stringDeltaEta + " entries" , {HistType::kTH1F , {axisDeltaEta}});
214+ registry.add (" hDeltaPhiPtIntSidebands" , stringDHadron + stringSideband + stringDeltaPhi + " entries" , {HistType::kTH1F , {axisDeltaPhi}});
215+ registry.add (" hCorrel2DPtIntSidebands" , stringDHadron + stringSideband + stringDeltaPhi + stringDeltaEta + " entries" , {HistType::kTH2F , {{axisDeltaPhi}, {axisDeltaEta}}});
216+ registry.add (" hCorrel2DVsPtSidebands" , stringDHadron + stringSideband + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtCorr}, {axisPtHadron}, {axisPoolBin}}});
217+ registry.add (" hDeltaEtaPtIntSidebandLeft" , stringDHadron + " Left" + stringSideband + stringDeltaEta, {HistType::kTH1F , {axisDeltaEta}});
218+ registry.add (" hDeltaPhiPtIntSidebandLeft" , stringDHadron + " Left" + stringSideband + stringDeltaPhi, {HistType::kTH1F , {axisDeltaPhi}});
219+ registry.add (" hDeltaEtaPtIntSidebandRight" , stringDHadron + " Right" + stringSideband + stringDeltaEta, {HistType::kTH1F , {axisDeltaEta}});
220+ registry.add (" hDeltaPhiPtIntSidebandRight" , stringDHadron + " Right" + stringSideband + stringDeltaPhi, {HistType::kTH1F , {axisDeltaPhi}});
221+ registry.add (" hCorrel2DVsPtSidebandLeft" , stringDHadron + " Left" + stringSideband + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtD}, {axisPtHadron}, {axisPoolBin}}});
222+ registry.add (" hCorrel2DVsPtSidebandRight" , stringDHadron + " Right" + stringSideband + stringDeltaPhi + stringDeltaEta + stringPtD + stringPtHadron + " entries" , {HistType::kTHnSparseD , {{axisDeltaPhi}, {axisDeltaEta}, {axisPtD}, {axisPtHadron}, {axisPoolBin}}});
223+
224+ registry.get <THnSparse>(HIST (" hCorrel2DVsPtSignalRegion" ))->Sumw2 ();
225+ registry.get <THnSparse>(HIST (" hCorrel2DVsPtSidebands" ))->Sumw2 ();
226+ registry.get <THnSparse>(HIST (" hCorrel2DVsPtSidebandLeft" ))->Sumw2 ();
227+ registry.get <THnSparse>(HIST (" hCorrel2DVsPtSidebandRight" ))->Sumw2 ();
228+ }
223229 }
224230 // Histograms for MC Reco analysis
225231 if (fillHistoMcRec) {
@@ -396,6 +402,10 @@ struct HfTaskCorrelationDplusHadrons {
396402 efficiencyWeight = 1 . / (effD->GetBinContent (effD->FindBin (ptD)) * mEfficiencyAssociated ->GetBinContent (mEfficiencyAssociated ->FindBin (ptHadron)));
397403 }
398404 }
405+ if (storeMassAxis) {
406+ registry.fill (HIST (" hCorrel2DVsPtVsMass" ), deltaPhi, deltaEta, ptD, ptHadron, poolBin, massD, efficiencyWeight);
407+ continue ;
408+ }
399409 // check if correlation entry belongs to signal region, sidebands or is outside both, and fill correlation plots
400410 if (massD > signalRegionInner->at (pTBinD) && massD < signalRegionOuter->at (pTBinD)) {
401411 // in signal region
0 commit comments