@@ -145,13 +145,12 @@ struct HadronNucleiCorrelation {
145145 // pT/A bins
146146 Configurable<std::vector<double >> pTBins{" pTBins" , {0 .6f , 1 .0f , 1 .2f , 2 .f }, " p_{T} bins" };
147147
148- ConfigurableAxis axisNSigma{" axisNSigma" , {35 , -7 .f , 7 .f }, " n#sigma" };
149- ConfigurableAxis deltaPhiAxis = {" deltaPhiAxis" , {46 , -1 * o2::constants::math::PIHalf, 3 * o2::constants::math::PIHalf}, " #Delta#phi (rad)" };
150-
151148 struct : ConfigurableGroup {
152149 std::string prefix = " axes" ; // JSON group name
153150 ConfigurableAxis axisDeltaEta{" axisDeltaEta" , {300 , -1.5 , 1.5 }, " #Delta#eta" };
154151 ConfigurableAxis axisDeltaRap{" axisDeltaRap" , {300 , -1.5 , 1.5 }, " #Delta y" };
152+ ConfigurableAxis axisDeltaPhi{" deltaPhiAxis" , {46 , -1 * o2::constants::math::PIHalf, 3 * o2::constants::math::PIHalf}, " #Delta #phi" };
153+ ConfigurableAxis axisNSigma{" axisNSigma" , {35 , -7 .f , 7 .f }, " n#sigma" };
155154 } settingsAxes;
156155
157156 using FilteredCollisions = soa::Filtered<aod::SingleCollSels>;
@@ -259,6 +258,7 @@ struct HadronNucleiCorrelation {
259258 LOG (info) << " DeltaEta axis: from " << deltaEtaAxis.binEdges [0 ] << " to " << deltaEtaAxis.binEdges [1 ];
260259 const AxisSpec deltaRapAxis = {settingsAxes.axisDeltaRap , " #Delta y" };
261260 LOG (info) << " DeltaRap axis: from " << deltaRapAxis.binEdges [0 ] << " to " << deltaRapAxis.binEdges [1 ];
261+ const AxisSpec deltaPhiAxis = {settingsAxes.axisDeltaPhi , " #Delta#phi" };
262262
263263 if (doprocessSameEvent || doprocessSameEventEvSel) {
264264 registry.add (" hNEvents" , " hNEvents" , {HistType::kTH1D , {{7 , 0 .f , 7 .f }}});
@@ -365,32 +365,38 @@ struct HadronNucleiCorrelation {
365365 }
366366 }
367367
368+ const AxisSpec dcaPtAxis = {100 , 0 .f , 10 .f , " #it{p}_{T} GeV/#it{c}" };
368369 if (doprocessSameEvent || doprocessSameEventEvSel || doprocessMC) {
369- registry.add (" hPrDCAxy" , " DCAxy p" , {HistType::kTH2D , {{600 , -3 .f , 3 .f , " DCA xy (cm)" }, {100 , 0 .f , 10 .f , " p_{T} GeV/c" }}});
370- registry.add (" hAntiPrDCAxy" , " DCAxy #bar{p}" , {HistType::kTH2D , {{600 , -3 .f , 3 .f , " DCA xy (cm)" }, {100 , 0 .f , 10 .f , " p_{T} GeV/c" }}});
371- registry.add (" hDeDCAxy" , " DCAxy d" , {HistType::kTH2D , {{600 , -3 .f , 3 .f , " DCA xy (cm)" }, {100 , 0 .f , 10 .f , " p_{T} GeV/c" }}});
372- registry.add (" hAntiDeDCAxy" , " DCAxy #bar{d}" , {HistType::kTH2D , {{600 , -3 .f , 3 .f , " DCA xy (cm)" }, {100 , 0 .f , 10 .f , " p_{T} GeV/c" }}});
370+ const AxisSpec dcaXyAxis = {600 , -3 .f , 3 .f , " DCA xy (cm)" };
371+ registry.add (" hPrDCAxy" , " DCAxy p" , {HistType::kTH2D , {dcaXyAxis, dcaPtAxis}});
372+ registry.add (" hAntiPrDCAxy" , " DCAxy #bar{p}" , {HistType::kTH2D , {dcaXyAxis, dcaPtAxis}});
373+ registry.add (" hDeDCAxy" , " DCAxy d" , {HistType::kTH2D , {dcaXyAxis, dcaPtAxis}});
374+ registry.add (" hAntiDeDCAxy" , " DCAxy #bar{d}" , {HistType::kTH2D , {dcaXyAxis, dcaPtAxis}});
373375 }
374376 registry.add (" hMult" , " multiplicity" , {HistType::kTH1D , {{200 , 0 .f , 200 .f , " N_{ch}" }}});
375377
378+ const AxisSpec tofNSigmaAxis = {settingsAxes.axisNSigma , " n#sigma TOF" };
379+ const AxisSpec tpcNSigmaAxis = {settingsAxes.axisNSigma , " n#sigma TPC" };
380+ const AxisSpec itsNSigmaAxis = {settingsAxes.axisNSigma , " n#sigma ITS" };
381+
376382 if (doQA && (doprocessSameEvent || doprocessSameEventEvSel || doprocessMC)) {
383+ const AxisSpec dcaXyAxis = {200 , -0 .2f , 0 .2f , " DCA xy (cm)" };
384+ const AxisSpec dcaZAxis = {200 , -0 .2f , 0 .2f , " DCA z (cm)" };
385+
377386 // Track QA
378387 registryQa.add (" QA/hVtxZ_trk" , " #it{z}_{vtx}" , {HistType::kTH1D , {{150 , -15 .f , 15 .f , " #it{z}_{vtx} (cm)" }}});
379388 registryQa.add (" QA/hTPCnClusters" , " N TPC Clusters; N TPC Clusters" , {HistType::kTH1D , {{200 , 0 .f , 200 .f }}});
380389 registryQa.add (" QA/hTPCSharedClusters" , " N TPC Shared Clusters; N TPC SharedClusters" , {HistType::kTH1D , {{100 , 0 .f , 1 .f }}});
381390 registryQa.add (" QA/hTPCchi2" , " TPC chi2/Ncls; TPC chi2/Ncls" , {HistType::kTH1D , {{100 , 0 .f , 10 .f }}});
382391 registryQa.add (" QA/hTPCcrossedRowsOverFindableCls" , " TPC crossed Rows Over Findable Cls; TPC Crossed Rows Over Findable Cls" , {HistType::kTH1D , {{100 , 0 .f , 2 .f }}});
383392 registryQa.add (" QA/hITSchi2" , " ITS chi2/Ncls; ITS chi2/Ncls" , {HistType::kTH1D , {{100 , 0 .f , 20 .f }}});
384- registryQa.add (" QA/hDCAxy" , " DCAxy" , {HistType::kTH2D , {{ 200 , - 0 . 2f , 0 . 2f , " DCA xy (cm) " }, { 100 , 0 . f , 10 . f , " p_{T} GeV/c " } }});
385- registryQa.add (" QA/hDCAz" , " DCAz" , {HistType::kTH2D , {{ 200 , - 0 . 2f , 0 . 2f , " DCA z (cm) " }, { 100 , 0 . f , 10 . f , " p_{T} GeV/c " } }});
393+ registryQa.add (" QA/hDCAxy" , " DCAxy" , {HistType::kTH2D , {dcaXyAxis, dcaPtAxis }});
394+ registryQa.add (" QA/hDCAz" , " DCAz" , {HistType::kTH2D , {dcaZAxis, dcaPtAxis }});
386395 registryQa.add (" QA/TPCChi2VsPZ" , " TPCChi2VsPZ" , {HistType::kTH2D , {{100 , 0 .f , 10 .f , " p_{TPC}/Z (GeV/c)" }, {120 , 0 .f , 6 .f , " TPC Chi2" }}});
387- const AxisSpec tofNSigmaAxis = {axisNSigma, " n#sigma TOF" };
388- const AxisSpec tpcNSigmaAxis = {axisNSigma, " n#sigma TPC" };
389- const AxisSpec itsNSigmaAxis = {axisNSigma, " n#sigma ITS" };
390- registryQa.add (" QA/h3dTPCTOF_Pr" , " n#sigma TPC vs n#sigma TOF; n#sigma TPC;n#sigma TOF;p_{T} (GeV/c)" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
391- registryQa.add (" QA/h3dTPCTOF_AntiPr" , " n#sigma TPC vs n#sigma TOF; n#sigma TPC;n#sigma TOF;p_{T} (GeV/c)" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
392- registryQa.add (" QA/h3dTPCTOF_De" , " n#sigma TPC vs n#sigma TOF; n#sigma TPC;n#sigma TOF;p_{T} (GeV/c)" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
393- registryQa.add (" QA/h3dTPCTOF_AntiDe" , " n#sigma TPC vs n#sigma TOF; n#sigma TPC;n#sigma TOF;p_{T} (GeV/c)" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
396+ registryQa.add (" QA/h3dTPCTOF_Pr" , " n#sigma TPC vs n#sigma TOF" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
397+ registryQa.add (" QA/h3dTPCTOF_AntiPr" , " n#sigma TPC vs n#sigma TOF" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
398+ registryQa.add (" QA/h3dTPCTOF_De" , " n#sigma TPC vs n#sigma TOF" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
399+ registryQa.add (" QA/h3dTPCTOF_AntiDe" , " n#sigma TPC vs n#sigma TOF" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
394400 registryQa.add (" QA/hnSigmaTPCVsPt_El" , " n#sigma TPC vs p_{T} for e hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, tpcNSigmaAxis}});
395401 registryQa.add (" QA/hnSigmaTPCVsPt_Pr" , " n#sigma TPC vs p_{T} for p hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, tpcNSigmaAxis}});
396402 registryQa.add (" QA/hnSigmaTPCVsPt_De" , " n#sigma TPC vs p_{T} for d hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, tpcNSigmaAxis}});
@@ -447,52 +453,59 @@ struct HadronNucleiCorrelation {
447453 registry.add (" hSec_EtaPhiPt_Proton" , " Secondary (anti)protons" , {HistType::kTH3F , {etaAxis, phiAxis, ptAxisSmall}});
448454 registry.add (" hPrimSec_EtaPhiPt_Proton" , " Primary + Secondary (anti)protons" , {HistType::kTH3F , {etaAxis, phiAxis, ptAxisSmall}});
449455
450- registry.add (" hnSigmaTPCVsPt_Pr_MC" , " n#sigma TPC vs p_{T} for p hypothesis true MC; p_{T} (GeV/c); n#sigma TPC " , {HistType::kTH2F , {ptAxis, axisNSigma }});
451- registry.add (" hnSigmaTPCVsPt_De_MC" , " n#sigma TPC vs p_{T} for d hypothesis true MC; p_{T} (GeV/c); n#sigma TPC " , {HistType::kTH2F , {ptAxis, axisNSigma }});
452- registry.add (" hnSigmaTOFVsPt_Pr_MC" , " n#sigma TOF vs p_{T} for p hypothesis true MC; p_{T} (GeV/c); n#sigma TOF " , {HistType::kTH2F , {ptAxis, axisNSigma }});
453- registry.add (" hnSigmaTOFVsPt_De_MC" , " n#sigma TOF vs p_{T} for d hypothesis true MC; p_{T} (GeV/c); n#sigma TOF " , {HistType::kTH2F , {ptAxis, axisNSigma }});
456+ registry.add (" hnSigmaTPCVsPt_Pr_MC" , " n#sigma TPC vs p_{T} for p hypothesis true MC" , {HistType::kTH2F , {ptAxis, tpcNSigmaAxis }});
457+ registry.add (" hnSigmaTPCVsPt_De_MC" , " n#sigma TPC vs p_{T} for d hypothesis true MC" , {HistType::kTH2F , {ptAxis, tpcNSigmaAxis }});
458+ registry.add (" hnSigmaTOFVsPt_Pr_MC" , " n#sigma TOF vs p_{T} for p hypothesis true MC" , {HistType::kTH2F , {ptAxis, tofNSigmaAxis }});
459+ registry.add (" hnSigmaTOFVsPt_De_MC" , " n#sigma TOF vs p_{T} for d hypothesis true MC" , {HistType::kTH2F , {ptAxis, tofNSigmaAxis }});
454460
455- registry.add (" hResPt_Proton" , " ; p_{T}(gen) [GeV/c]; p_{T}(reco) - p_{T}(gen) " , {HistType::kTH2F , {{100 , 0 .f , 10 .f , " p_{T}(gen) GeV/c" }, {200 , -1 .f , 1 .f , " p_{T}(reco) - p_{T}(gen) " }}});
456- registry.add (" hResPt_Deuteron" , " ; p_{T}(gen) [GeV/c]; p_{T}(reco) - p_{T}(gen) " , {HistType::kTH2F , {{100 , 0 .f , 10 .f , " p_{T}(gen) GeV/c" }, {200 , -1 .f , 1 .f , " p_{T}(reco) - p_{T}(gen) " }}});
457- registry.add (" hResPt_AntiProton" , " ; p_{T}(gen) [GeV/c]; p_{T}(reco) - p_{T}(gen) " , {HistType::kTH2F , {{100 , 0 .f , 10 .f , " p_{T}(gen) GeV/c" }, {200 , -1 .f , 1 .f , " p_{T}(reco) - p_{T}(gen) " }}});
458- registry.add (" hResPt_AntiDeuteron" , " ; p_{T}(gen) [GeV/c]; p_{T}(reco) - p_{T}(gen) " , {HistType::kTH2F , {{100 , 0 .f , 10 .f , " p_{T}(gen) GeV/c" }, {200 , -1 .f , 1 .f , " p_{T}(reco) - p_{T}(gen) " }}});
461+ const AxisSpec genPtAxis = {100 , 0 .f , 10 .f , " p_{T}(gen) (GeV/c)" };
462+ const AxisSpec resPtAxis = {200 , -1 .f , 1 .f , " p_{T}(reco) - p_{T}(gen) (GeV/c)" };
463+ registry.add (" hResPt_Proton" , " p pT residual" , {HistType::kTH2F , {genPtAxis, resPtAxis}});
464+ registry.add (" hResPt_Deuteron" , " d pT residual" , {HistType::kTH2F , {genPtAxis, resPtAxis}});
465+ registry.add (" hResPt_AntiProton" , " #bar{p} pT residual" , {HistType::kTH2F , {genPtAxis, resPtAxis}});
466+ registry.add (" hResPt_AntiDeuteron" , " #bar{d} pT residual" , {HistType::kTH2F , {genPtAxis, resPtAxis}});
459467
460- registry.add (" hNumeratorPurity_Proton" , " p(#bar{p}); p_{T} (GeV/c) ;S" , {HistType::kTH1F , {ptAxisSmall}});
461- registry.add (" hNumeratorPurity_Deuteron" , " d(#bar{d}); p_{T} (GeV/c) ;S" , {HistType::kTH1F , {ptAxisSmall}});
462- registry.add (" hDenominatorPurity_Proton" , " p(#bar{p}); p_{T} (GeV/c) ;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
463- registry.add (" hDenominatorPurity_Deuteron" , " d(#bar{d}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
468+ registry.add (" hNumeratorPurity_Proton" , " p(#bar{p});;S" , {HistType::kTH1F , {ptAxisSmall}});
469+ registry.add (" hNumeratorPurity_Deuteron" , " d(#bar{d});;S" , {HistType::kTH1F , {ptAxisSmall}});
470+ registry.add (" hDenominatorPurity_Proton" , " p(#bar{p});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
471+ registry.add (" hDenominatorPurity_Deuteron" , " d(#bar{d});; (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
464472
465473 if (doMCQA) {
466474
467- registry.add (" hResEta_Proton" , " ; #eta(gen); #eta(reco) - #eta(gen) " , {HistType::kTH2F , {{100 , -1 .f , 1 .f , " #eta(gen)" }, {200 , -0 .5f , 0 .5f , " #eta(reco) - #eta(gen) " }}});
468- registry.add (" hResEta_Deuteron" , " ; #eta(gen); #eta(reco) - #eta(gen) " , {HistType::kTH2F , {{100 , -1 .f , 1 .f , " #eta(gen)" }, {200 , -0 .5f , 0 .5f , " #eta(reco) - #eta(gen) " }}});
469- registry.add (" hResPhi_Proton" , " ; #phi(gen); #phi(reco) - #phi(gen)" , {HistType::kTH2F , {{100 , 0 .f , o2::constants::math::TwoPI, " #phi(gen)" }, {200 , -0 .5f , 0 .5f , " #phi(reco) - #phi(gen)" }}});
470- registry.add (" hResPhi_Deuteron" , " ; #phi(gen); #phi(reco) - #phi(gen)" , {HistType::kTH2F , {{100 , 0 .f , o2::constants::math::TwoPI, " #phi(gen)" }, {200 , -0 .5f , 0 .5f , " #phi(reco) - #phi(gen)" }}});
471- registry.add (" hResEta_AntiProton" , " ; #eta(gen); #eta(reco) - #eta(gen) " , {HistType::kTH2F , {{100 , -1 .f , 1 .f , " #eta(gen)" }, {200 , -0 .5f , 0 .5f , " #eta(reco) - #eta(gen) " }}});
472- registry.add (" hResEta_AntiDeuteron" , " ; #eta(gen); #eta(reco) - #eta(gen) " , {HistType::kTH2F , {{100 , -1 .f , 1 .f , " #eta(gen)" }, {200 , -0 .5f , 0 .5f , " #eta(reco) - #eta(gen) " }}});
473- registry.add (" hResPhi_AntiProton" , " ; #phi(gen); #phi(reco) - #phi(gen)" , {HistType::kTH2F , {{100 , 0 .f , o2::constants::math::TwoPI, " #phi(gen)" }, {200 , -0 .5f , 0 .5f , " #phi(reco) - #phi(gen)" }}});
474- registry.add (" hResPhi_AntiDeuteron" , " ; #phi(gen); #phi(reco) - #phi(gen)" , {HistType::kTH2F , {{100 , 0 .f , o2::constants::math::TwoPI, " #phi(gen)" }, {200 , -0 .5f , 0 .5f , " #phi(reco) - #phi(gen)" }}});
475-
476- registry.add (" hNumeratorPurity_Proton_TPC" , " p(#bar{p}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
477- registry.add (" hNumeratorPurity_Deuteron_TPC" , " d(#bar{d}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
478- registry.add (" hNumeratorPurity_Proton_TPCTOF" , " p(#bar{p}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
479- registry.add (" hNumeratorPurity_Deuteron_TPCTOF" , " d(#bar{d}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
480- registry.add (" hNumeratorPurity_Proton_TPC_or_TOF" , " p(#bar{p}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
481- registry.add (" hNumeratorPurity_Deuteron_TPC_or_TOF" , " d(#bar{d}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
482- registry.add (" hNumeratorPurity_Proton_TPCEl_or_TOF" , " p(#bar{p}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
483- registry.add (" hNumeratorPurity_Proton_TPCEl" , " p(#bar{p}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
484- registry.add (" hNumeratorPurity_Deuteron_TPCEl" , " d(#bar{d}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
485- registry.add (" hNumeratorPurity_Deuteron_TPCEl_or_TOF" , " d(#bar{d}); p_{T} (GeV/c);S" , {HistType::kTH1F , {ptAxisSmall}});
486- registry.add (" hDenominatorPurity_Proton_TPC" , " p(#bar{p}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
487- registry.add (" hDenominatorPurity_Deuteron_TPC" , " d(#bar{d}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
488- registry.add (" hDenominatorPurity_Proton_TPCTOF" , " p(#bar{p}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
489- registry.add (" hDenominatorPurity_Deuteron_TPCTOF" , " d(#bar{d}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
490- registry.add (" hDenominatorPurity_Proton_TPC_or_TOF" , " p(#bar{p}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
491- registry.add (" hDenominatorPurity_Deuteron_TPC_or_TOF" , " d(#bar{d}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
492- registry.add (" hDenominatorPurity_Proton_TPCEl" , " p(#bar{p}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
493- registry.add (" hDenominatorPurity_Proton_TPCEl_or_TOF" , " p(#bar{p}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
494- registry.add (" hDenominatorPurity_Deuteron_TPCEl" , " d(#bar{d}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
495- registry.add (" hDenominatorPurity_Deuteron_TPCEl_or_TOF" , " d(#bar{d}); p_{T} (GeV/c); (S + B)" , {HistType::kTH1F , {ptAxisSmall}});
475+ const AxisSpec genEtaAxis = {100 , -1 .f , 1 .f , " #eta(gen)" };
476+ const AxisSpec resEtaAxis = {200 , -0 .5f , 0 .5f , " #eta(reco) - #eta(gen) " };
477+
478+ const AxisSpec genPhiAxis = {100 , 0 .f , o2::constants::math::TwoPI, " #phi(gen)" };
479+ const AxisSpec resPhiAxis = {200 , -0 .5f , 0 .5f , " #phi(reco) - #phi(gen)" };
480+ registry.add (" hResEta_Proton" , " p eta residual" , {HistType::kTH2F , {genEtaAxis, resEtaAxis}});
481+ registry.add (" hResEta_Deuteron" , " d eta residual " , {HistType::kTH2F , {genEtaAxis, resEtaAxis}});
482+ registry.add (" hResPhi_Proton" , " p phi residual" , {HistType::kTH2F , {genPhiAxis, resPhiAxis}});
483+ registry.add (" hResPhi_Deuteron" , " d phi residual" , {HistType::kTH2F , {genPhiAxis, resPhiAxis}});
484+ registry.add (" hResEta_AntiProton" , " p eta residual" , {HistType::kTH2F , {genEtaAxis, resEtaAxis}});
485+ registry.add (" hResEta_AntiDeuteron" , " p eta residual " , {HistType::kTH2F , {genEtaAxis, resEtaAxis}});
486+ registry.add (" hResPhi_AntiProton" , " p phi residual" , {HistType::kTH2F , {genPhiAxis, resPhiAxis}});
487+ registry.add (" hResPhi_AntiDeuteron" , " d phi residual" , {HistType::kTH2F , {genPhiAxis, resPhiAxis}});
488+
489+ registry.add (" hNumeratorPurity_Proton_TPC" , " p(#bar{p});;S" , {HistType::kTH1F , {ptAxisSmall}});
490+ registry.add (" hNumeratorPurity_Deuteron_TPC" , " d(#bar{d});;S" , {HistType::kTH1F , {ptAxisSmall}});
491+ registry.add (" hNumeratorPurity_Proton_TPCTOF" , " p(#bar{p});;S" , {HistType::kTH1F , {ptAxisSmall}});
492+ registry.add (" hNumeratorPurity_Deuteron_TPCTOF" , " d(#bar{d});;S" , {HistType::kTH1F , {ptAxisSmall}});
493+ registry.add (" hNumeratorPurity_Proton_TPC_or_TOF" , " p(#bar{p});;S" , {HistType::kTH1F , {ptAxisSmall}});
494+ registry.add (" hNumeratorPurity_Deuteron_TPC_or_TOF" , " d(#bar{d});;S" , {HistType::kTH1F , {ptAxisSmall}});
495+ registry.add (" hNumeratorPurity_Proton_TPCEl_or_TOF" , " p(#bar{p});;S" , {HistType::kTH1F , {ptAxisSmall}});
496+ registry.add (" hNumeratorPurity_Proton_TPCEl" , " p(#bar{p});;S" , {HistType::kTH1F , {ptAxisSmall}});
497+ registry.add (" hNumeratorPurity_Deuteron_TPCEl" , " d(#bar{d});;S" , {HistType::kTH1F , {ptAxisSmall}});
498+ registry.add (" hNumeratorPurity_Deuteron_TPCEl_or_TOF" , " d(#bar{d});;S" , {HistType::kTH1F , {ptAxisSmall}});
499+ registry.add (" hDenominatorPurity_Proton_TPC" , " p(#bar{p});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
500+ registry.add (" hDenominatorPurity_Deuteron_TPC" , " d(#bar{d});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
501+ registry.add (" hDenominatorPurity_Proton_TPCTOF" , " p(#bar{p});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
502+ registry.add (" hDenominatorPurity_Deuteron_TPCTOF" , " d(#bar{d});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
503+ registry.add (" hDenominatorPurity_Proton_TPC_or_TOF" , " p(#bar{p});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
504+ registry.add (" hDenominatorPurity_Deuteron_TPC_or_TOF" , " d(#bar{d});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
505+ registry.add (" hDenominatorPurity_Proton_TPCEl" , " p(#bar{p});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
506+ registry.add (" hDenominatorPurity_Proton_TPCEl_or_TOF" , " p(#bar{p});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
507+ registry.add (" hDenominatorPurity_Deuteron_TPCEl" , " d(#bar{d});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
508+ registry.add (" hDenominatorPurity_Deuteron_TPCEl_or_TOF" , " d(#bar{d});;(S + B)" , {HistType::kTH1F , {ptAxisSmall}});
496509
497510 registry.add (" hReco_Pt_Proton_TPC" , " Reco (anti)protons in reco collisions" , {HistType::kTH1F , {ptAxisSmall}});
498511 registry.add (" hReco_Pt_Deuteron_TPC" , " Reco (anti)deuterons in reco collisions" , {HistType::kTH1F , {ptAxisSmall}});
@@ -784,8 +797,14 @@ struct HadronNucleiCorrelation {
784797 if (isPrim && !particle.isPhysicalPrimary ()) {
785798 return ;
786799 }
787- if (std::abs (particle.eta ()) > etaCut) {
788- return ;
800+ if (doRapidity) {
801+ if (std::abs (particle.y ()) > etaCut) {
802+ return ;
803+ }
804+ } else {
805+ if (std::abs (particle.eta ()) > etaCut) {
806+ return ;
807+ }
789808 }
790809 const int pdg = particle.pdgCode ();
791810 if (pdg != pdgPart0 && pdg != pdgPart1) {
@@ -1732,10 +1751,9 @@ struct HadronNucleiCorrelation {
17321751 }
17331752 }
17341753
1735- if (std::abs (particle.eta ()) > etaCut) {
1736- continue ;
1754+ if (std::abs (particle.eta ()) < etaCut) {
1755+ fillGeneratedQa ( 2.5 ) ;
17371756 }
1738- fillGeneratedQa (2.5 );
17391757
17401758 // (anti)neutrons are accepted by fillGeneratedQa for QA counting only: they have no
17411759 // eta-phi-pt histogram and must not reach the switch below (whose default is fatal)
@@ -1758,9 +1776,6 @@ struct HadronNucleiCorrelation {
17581776 case -o2::constants::physics::Pdg::kDeuteron :
17591777 registry.fill (HIST (" hGen_EtaPhiPt_Deuteron" ), particle.eta (), particle.phi (), -1 . * particle.pt ());
17601778 break ;
1761- case PDG_t::kNeutron :
1762- case -PDG_t::kNeutron :
1763- break ;
17641779 default :
17651780 LOG (fatal) << " Unhandled PDG code, should not happen, check the code! " << particle.pdgCode ();
17661781 break ;
@@ -1809,7 +1824,7 @@ struct HadronNucleiCorrelation {
18091824 using BinningTypeMC = FlexibleBinningPolicy<std::tuple<decltype (getMultiplicity)>, aod::mccollision::PosZ, decltype (getMultiplicity)>;
18101825 BinningTypeMC colBinningGen{{getMultiplicity}, {confVtxBins, confMultBins}, true };
18111826
1812- for (const auto & [collision1, collision2] : soa::selfCombinations (colBinningGen, 5 , -1 , mcCollisions, mcCollisions)) {
1827+ for (const auto & [collision1, collision2] : soa::selfCombinations (colBinningGen, maxmixcollsGen. value , -1 , mcCollisions, mcCollisions)) {
18131828 const auto & cache1 = genCaches.at (collision1.globalIndex ());
18141829 const auto & cache2 = genCaches.at (collision2.globalIndex ());
18151830
0 commit comments