From 1f0f70b70e2a1f2ab0d4bca3d2d007f179af1134 Mon Sep 17 00:00:00 2001 From: Omar Vazquez Date: Wed, 3 Sep 2025 12:31:14 -0500 Subject: [PATCH] Added more QA + finner eta bins --- PWGLF/Tasks/Nuspex/piKpRAA.cxx | 161 ++++++++++++++++++++++----------- 1 file changed, 108 insertions(+), 53 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/piKpRAA.cxx b/PWGLF/Tasks/Nuspex/piKpRAA.cxx index 06682d9cbf7..d41dd1b4812 100644 --- a/PWGLF/Tasks/Nuspex/piKpRAA.cxx +++ b/PWGLF/Tasks/Nuspex/piKpRAA.cxx @@ -67,11 +67,10 @@ using namespace o2::framework::expressions; using ColEvSels = soa::Join; using BCsRun3 = soa::Join; -// using TracksFull = soa::Join; using TracksFull = soa::Join; -static constexpr int kNEtaHists{4}; +static constexpr int kNEtaHists{8}; std::array, kNEtaHists> dEdxPiV0{}; std::array, kNEtaHists> dEdxPrV0{}; @@ -79,9 +78,20 @@ std::array, kNEtaHists> dEdxElV0{}; std::array, kNEtaHists> dEdxPiTOF{}; std::array, kNEtaHists> dEdx{}; std::array, kNEtaHists> pTVsP{}; +std::array, kNEtaHists> nClVsP{}; +std::array, kNEtaHists> nClVsPElV0{}; +std::array, kNEtaHists> nClVsPPiV0{}; +std::array, kNEtaHists> nClVsPPrV0{}; +std::array, kNEtaHists> nClVsPp{}; +std::array, kNEtaHists> nClVsPpElV0{}; +std::array, kNEtaHists> nClVsPpPiV0{}; +std::array, kNEtaHists> nClVsPpPrV0{}; struct PiKpRAA { + static constexpr int kZeroInt{0}; + static constexpr int kSevenInt{7}; + static constexpr float kZero{0.0f}; static constexpr float kOne{1.0f}; static constexpr float kTenToMinusNine{1e-9}; @@ -97,16 +107,16 @@ struct PiKpRAA { static constexpr float kMindEdxMIPPlateau{70.0f}; static constexpr float kMaxdEdxMIPPlateau{90.0f}; - // static constexpr float kLowEta[kNEtaHists] = {-0.8, -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6}; - // static constexpr float kHighEta[kNEtaHists] = {0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8}; - static constexpr float kLowEta[kNEtaHists] = {0.0, 0.2, 0.4, 0.6}; - static constexpr float kHighEta[kNEtaHists] = {0.2, 0.4, 0.6, 0.8}; + static constexpr float kLowEta[kNEtaHists] = {-0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6}; + static constexpr float kHighEta[kNEtaHists] = {-0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8}; + // static constexpr float kLowEta[kNEtaHists] = {0.0, 0.2, 0.4, 0.6}; + // static constexpr float kHighEta[kNEtaHists] = {0.2, 0.4, 0.6, 0.8}; static constexpr float DefaultLifetimeCuts[1][2] = {{30., 20.}}; Configurable> lifetimecut{"lifetimecut", {DefaultLifetimeCuts[0], 2, {"lifetimecutLambda", "lifetimecutK0S"}}, "lifetimecut"}; struct : ConfigurableGroup { - Configurable v0TypeSelection{"v0TypeSelection", 1, "select on a certain V0 type (leave negative if no selection desired)"}; + Configurable v0TypeSelection{"v0TypeSelection", 1, "select on a certain V0 type (leave negative if no selection desired)"}; // Selection criteria: acceptance Configurable rapidityCut{"rapidityCut", 0.5, "rapidity"}; @@ -134,7 +144,7 @@ struct PiKpRAA { Configurable applyInvMassSel{"applyInvMassSel", false, "Select V0s close to the Inv. mass value"}; Configurable dMassSel{"dMassSel", 0.01f, "Invariant mass selection"}; Configurable dMassSelG{"dMassSelG", 0.1f, "Inv mass selection gammas"}; - Configurable dMassGcut{"dMassGcut", 0.01f, "Inv mass selection gammas"}; + Configurable dMassGcut{"dMassGcut", 0.1f, "Inv mass selection gammas"}; // PID (TPC/TOF) Configurable tpcPidNsigmaCut{"tpcPidNsigmaCut", 5, "tpcPidNsigmaCut"}; @@ -175,6 +185,8 @@ struct PiKpRAA { ConfigurableAxis binsPtNcl{"binsPtNcl", {VARIABLE_WIDTH, 0.0, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 7.0, 9.0, 12.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0}, "pT"}; ConfigurableAxis binsPt{"binsPt", {VARIABLE_WIDTH, 0.0, 0.1, 0.12}, "pT binning"}; ConfigurableAxis binsCent{"binsCent", {VARIABLE_WIDTH, 0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.}, "T0C binning"}; + ConfigurableAxis axisEta{"axisEta", {50, -1.0, 1.0}, "Eta axix"}; + ConfigurableAxis axisY{"axisY", {50, -1.0, 1.0}, "rapidity axix"}; ConfigurableAxis axisArmAlpha{"axisArmAlpha", {200, -1.0, 1.0}, "Armenteros alpha"}; ConfigurableAxis axisArmqT{"axisArmqT", {600, 0.0f, 0.3f}, "Armenteros qT"}; ConfigurableAxis axisK0Mass{"axisK0Mass", {200, 0.4f, 0.6f}, "Mass K0Short"}; @@ -214,6 +226,13 @@ struct PiKpRAA { NchSel }; + enum V0sCounter { + K0s = 1, + Lambda, + AntiLambda, + Gamma + }; + HistogramRegistry registry{"registry", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; Service ccdb; @@ -257,14 +276,16 @@ struct PiKpRAA { const std::string titlePorPt{v0Selections.usePinPhiSelection ? "#it{p} (GeV/#it{c})" : "#it{p}_{T} (GeV/#it{c})"}; const AxisSpec axisZpos{48, -12., 12., "Vtx_{z} (cm)"}; const AxisSpec axisEvent{15, 0.5, 15.5, ""}; - const AxisSpec axisEta{100, -1., +1., "#eta"}; + const AxisSpec axisNcl{161, -0.5, 160.5, "#it{N}_{cl} TPC"}; const AxisSpec axisPt{binsPt, "#it{p}_{T} (GeV/#it{c})"}; const AxisSpec axisPtV0s{binsPtV0s, "#it{p}_{T} (GeV/#it{c})"}; - const AxisSpec axisXNcl{binsPtNcl, Form("%s", titlePorPt.data())}; + const AxisSpec axisPtNcl{binsPtNcl, Form("%s", titlePorPt.data())}; const AxisSpec axisXPhiCut{binsPtPhiCut, Form("%s", titlePorPt.data())}; const AxisSpec axisCent{binsCent, "T0C centrality"}; - const char* endingEta[kNEtaHists] = {"02", "24", "46", "68"}; - const char* latexEta[kNEtaHists] = {"0<|#eta|<0.2", "0.2<#eta<0.4", "0.4<#eta<0.6", "0.6<#eta<0.8"}; + // const char* endingEta[kNEtaHists] = {"02", "24", "46", "68"}; + // const char* latexEta[kNEtaHists] = {"0<|#eta|<0.2", "0.2<#eta<0.4", "0.4<#eta<0.6", "0.6<#eta<0.8"}; + const char* endingEta[kNEtaHists] = {"86", "64", "42", "20", "02", "24", "46", "68"}; + const char* latexEta[kNEtaHists] = {"-0.8<#eta<-0.6", "-0.6<#eta<-0.4", "-0.4<#eta<-0.2", "-0.2<#eta<0", "0<#eta<0.2", "0.2<#eta<0.4", "0.4<#eta<0.6", "0.6<#eta<0.8"}; registry.add("EventCounter", ";;Events", kTH1F, {axisEvent}); @@ -292,6 +313,7 @@ struct PiKpRAA { registry.add("ExcludedEvtVsNch", ";Nch;Entries;", kTH1F, {{nBinsNch, minNch, maxNch}}); registry.add("ExcludedEvtVsNPV", ";NPV;Entries;", kTH1F, {{nBinsNPV, minNpv, maxNpv}}); + registry.add("V0sCounter", ";V0 type; Entries;", kTH1F, {{4, 0.5, 4.5}}); registry.add("dcaVsPt", "Primary particles;#it{p}_{T} (GeV/#it{c});DCA_{xy} (cm);", kTH2F, {{{axisPt}, {40, -1.0, 1.0}}}); registry.add("dcaDauVsPt", ";V0 #it{p}_{T} (GeV/#it{c});DCA_{xy} (cm) daughters;", kTH2F, {{{axisPtV0s}, {200, -10., 10.}}}); registry.add("nSigPiFromK0s", ";#it{n#sigma};;", kTH2F, {axisPtV0s, axisNsigmaTPC}); @@ -312,10 +334,8 @@ struct PiKpRAA { registry.add("MassALVsPt", ";;Inv. Mass (GeV/#it{c}^{2});", kTH2F, {axisPtV0s, axisLambdaMass}); registry.add("MassGVsPt", ";;Inv. Mass (GeV/#it{c}^{2});", kTH2F, {axisPtV0s, axisGammaMass}); - registry.add("NclFindable", ";;Findable Ncl TPC", kTH2F, {{{axisXNcl}, {161, -0.5, 160.5}}}); - registry.add("NclFindablep", ";;Findable #LTNcl#GT TPC", kTProfile, {axisXNcl}); - registry.add("NclFound", ";;Found Ncl TPC", kTH2F, {{{axisXNcl}, {161, -0.5, 160.5}}}); - registry.add("NclFoundp", ";;Found #LTNcl#GT TPC", kTProfile, {axisXNcl}); + registry.add("NclFindable", ";;Findable Ncl TPC", kTH2F, {axisPtNcl, axisNcl}); + registry.add("NclFindablep", ";;Findable #LTNcl#GT TPC", kTProfile, {axisPtNcl}); registry.add("NclFoundVsPhipBeforeCut", Form("Found #LTNcl#GT TPC;%s (GeV/#it{c});#varphi", titlePorPt.data()), kTProfile2D, {{{axisXPhiCut}, {350, 0.0, 0.35}}}); registry.add("NclFoundVsPhipAfterCut", Form("Found #LTNcl#GT TPC;%s (GeV/#it{c});#varphi", titlePorPt.data()), kTProfile2D, {{{axisXPhiCut}, {350, 0.0, 0.35}}}); registry.add("NclVsEta", ";#eta;Found Ncl TPC", kTH2F, {{{axisEta}, {161, -0.5, 160.5}}}); @@ -323,18 +343,19 @@ struct PiKpRAA { registry.add("NclVsEtaPiMIP", "MIP #pi^{+} + #pi^{-} (0.4 < #it{p} < 0.6 GeV/#it{c}, 40 < dE/dx < 60);#eta; Found Ncl TPC", kTH2F, {{{axisEta}, {161, -0.5, 160.5}}}); registry.add("NclVsEtaPiMIPp", "MIP #pi^{+} + #pi^{-} (0.4 < #it{p} < 0.6 GeV/#it{c}, 40 < dE/dx < 60);#eta; Found #LTNcl#GT TPC", kTProfile, {axisEta}); - registry.add("NclVsEtaPiV0", ";#eta; Found Ncl TPC", kTH2F, {{{axisEta}, {161, -0.5, 160.5}}}); + registry.add("NclVsEtaPiV0", ";#eta; Found Ncl TPC", kTH2F, {axisEta, axisNcl}); registry.add("NclVsEtaPiV0p", ";#eta; Found #LTNcl#GT TPC", kTProfile, {axisEta}); - registry.add("NclPiV0", ";;Found Ncl TPC", kTH2F, {{{axisXNcl}, {161, -0.5, 160.5}}}); - registry.add("NclPiV0p", ";;Found #LTNcl#GT TPC", kTProfile, {axisXNcl}); - registry.add("NclVsEtaPrV0", ";#eta; Found Ncl TPC", kTH2F, {{{axisEta}, {161, -0.5, 160.5}}}); + registry.add("NclVsEtaPrV0", ";#eta; Found Ncl TPC", kTH2F, {axisEta, axisNcl}); registry.add("NclVsEtaPrV0p", ";#eta; Found #LTNcl#GT TPC", kTProfile, {axisEta}); - registry.add("NclPrV0", ";;Found Ncl TPC", kTH2F, {{{axisXNcl}, {161, -0.5, 160.5}}}); - registry.add("NclPrV0p", ";;Found #LTNcl#GT TPC", kTProfile, {axisXNcl}); - registry.add("NclVsEtaElV0", ";#eta; Found Ncl TPC", kTH2F, {{{axisEta}, {161, -0.5, 160.5}}}); + registry.add("NclVsEtaElV0", ";#eta; Found Ncl TPC", kTH2F, {axisEta, axisNcl}); registry.add("NclVsEtaElV0p", ";#eta; Found #LTNcl#GT TPC", kTProfile, {axisEta}); - registry.add("NclElV0", ";;Found Ncl TPC", kTH2F, {{{axisXNcl}, {161, -0.5, 160.5}}}); - registry.add("NclElV0p", ";;Found #LTNcl#GT TPC", kTProfile, {axisXNcl}); + + registry.add("EtaVsYK0s", ";#eta;#it{y};", kTH2F, {axisEta, axisY}); + registry.add("EtaVsYPiL", ";#eta;#it{y};", kTH2F, {axisEta, axisY}); + registry.add("EtaVsYPrL", ";#eta;#it{y};", kTH2F, {axisEta, axisY}); + registry.add("EtaVsYPiAL", ";#eta;#it{y};", kTH2F, {axisEta, axisY}); + registry.add("EtaVsYPrAL", ";#eta;#it{y};", kTH2F, {axisEta, axisY}); + registry.add("EtaVsYG", ";#eta;#it{y};", kTH2F, {axisEta, axisY}); registry.add("TOFExpPi2TOF", ";Momentum (GeV/#it{c});t^{e}_{Exp}/t_{TOF}", kTH2F, {{{axisPtV0s}, {100, 0.2, 1.2}}}); registry.add("TOFExpEl2TOF", ";Momentum (GeV/#it{c});t^{#pi}_{Exp}/t_{TOF}", kTH2F, {{{axisPtV0s}, {100, 0.2, 1.2}}}); @@ -356,12 +377,21 @@ struct PiKpRAA { dEdxPrV0[i] = registry.add(Form("dEdxPrV0_%s", endingEta[i]), Form("p + #bar{p}, %s;Momentum (GeV/#it{c});dE/dx;", latexEta[i]), kTH3F, {axisPtV0s, axisdEdx, axisCent}); dEdxElV0[i] = registry.add(Form("dEdxElV0_%s", endingEta[i]), Form("e^{+} + e^{-}, %s;Momentum (GeV/#it{c});dE/dx;", latexEta[i]), kTH3F, {axisPtV0s, axisdEdx, axisCent}); dEdxPiTOF[i] = registry.add(Form("dEdxPiTOF_%s", endingEta[i]), Form("#pi^{+} + #pi^{-}, %s;Momentum (GeV/#it{c});dE/dx;", latexEta[i]), kTH3F, {axisPtV0s, axisdEdx, axisCent}); + nClVsP[i] = registry.add(Form("NclFound_%s", endingEta[i]), Form("%s;;Found Ncl TPC", latexEta[i]), kTH2F, {axisPtNcl, axisNcl}); + nClVsPElV0[i] = registry.add(Form("NclFoundElV0_%s", endingEta[i]), Form("%s;;Found Ncl TPC", latexEta[i]), kTH2F, {axisPtNcl, axisNcl}); + nClVsPPiV0[i] = registry.add(Form("NclFoundPiV0_%s", endingEta[i]), Form("%s;;Found Ncl TPC", latexEta[i]), kTH2F, {axisPtNcl, axisNcl}); + nClVsPPrV0[i] = registry.add(Form("NclFoundPrV0_%s", endingEta[i]), Form("%s;;Found Ncl TPC", latexEta[i]), kTH2F, {axisPtNcl, axisNcl}); + nClVsPp[i] = registry.add(Form("NclFoundp_%s", endingEta[i]), Form("%s;;Found #LT#it{N}_{cl}#GT TPC", latexEta[i]), kTProfile, {axisPtNcl}); + nClVsPpElV0[i] = registry.add(Form("NclFoundpElV0_%s", endingEta[i]), Form("%s;;Found #LT#it{N}_{cl}#GT TPC", latexEta[i]), kTProfile, {axisPtNcl}); + nClVsPpPiV0[i] = registry.add(Form("NclFoundpPiV0_%s", endingEta[i]), Form("%s;;Found #LT#it{N}_{cl}#GT TPC", latexEta[i]), kTProfile, {axisPtNcl}); + nClVsPpPrV0[i] = registry.add(Form("NclFoundpPrV0_%s", endingEta[i]), Form("%s;;Found #LT#it{N}_{cl}#GT TPC", latexEta[i]), kTProfile, {axisPtNcl}); } } LOG(info) << "\tccdbNoLaterThan=" << ccdbNoLaterThan.value; LOG(info) << "\tapplyNchSel=" << applyNchSel.value; LOG(info) << "\tdetector4Calibration=" << detector4Calibration.value; + LOG(info) << "\tv0TypeSelection=" << static_cast(v0Selections.v0TypeSelection); LOG(info) << "\tminPt=" << v0Selections.minPt; LOG(info) << "\tmaxPt=" << v0Selections.maxPt; LOG(info) << "\tqTSel=" << v0Selections.qTSel; @@ -523,14 +553,17 @@ struct PiKpRAA { continue; } - int indexEta{0}; - for (int i = 1; i < kNEtaHists; ++i) { - if (std::abs(eta) >= kLowEta[i] && std::abs(eta) < kHighEta[i]) { + int indexEta{-999}; + for (int i = 0; i < kNEtaHists; ++i) { + if (eta >= kLowEta[i] && eta < kHighEta[i]) { indexEta = i; break; } } + if (indexEta < kZeroInt || indexEta > kSevenInt) + continue; + if (momentum > kMinPMIP && momentum < kMaxPMIP && dedx > kMindEdxMIP && dedx < kMaxdEdxMIP) { registry.fill(HIST("dEdxVsEtaPiMIP"), eta, dedx); registry.fill(HIST("dEdxVsEtaPiMIPp"), eta, dedx); @@ -545,11 +578,12 @@ struct PiKpRAA { dEdx[indexEta]->Fill(momentum, dedx, centrality); pTVsP[indexEta]->Fill(momentum, pt); + nClVsP[indexEta]->Fill(pOrPt, track.tpcNClsFound()); + nClVsPp[indexEta]->Fill(pOrPt, track.tpcNClsFound()); registry.fill(HIST("dcaVsPt"), pt, track.dcaXY()); registry.fill(HIST("NclVsEta"), eta, track.tpcNClsFound()); registry.fill(HIST("NclVsEtap"), eta, track.tpcNClsFound()); - registry.fill(HIST("NclFound"), pOrPt, track.tpcNClsFound()); - registry.fill(HIST("NclFoundp"), pOrPt, track.tpcNClsFound()); + // registry.fill(HIST("NclFoundp"), pOrPt, track.tpcNClsFound()); registry.fill(HIST("NclFindable"), pOrPt, track.tpcNClsFindable()); registry.fill(HIST("NclFindablep"), pOrPt, track.tpcNClsFindable()); registry.fill(HIST("NclFoundVsPhipAfterCut"), pOrPt, phiPrime, track.tpcNClsFound()); @@ -652,22 +686,28 @@ struct PiKpRAA { const double dMassAL{std::abs(v0.mAntiLambda() - o2::constants::physics::MassLambda0)}; const double dMassG{std::abs(v0.mGamma() - o2::constants::physics::MassGamma)}; - int posIndexEta{0}; - int negIndexEta{0}; - for (int i = 1; i < kNEtaHists; ++i) { - if (std::abs(posTrkEta) >= kLowEta[i] && std::abs(posTrkEta) < kHighEta[i]) { + int posIndexEta{-999}; + int negIndexEta{-999}; + for (int i = 0; i < kNEtaHists; ++i) { + if (posTrkEta >= kLowEta[i] && posTrkEta < kHighEta[i]) { posIndexEta = i; break; } } - for (int i = 1; i < kNEtaHists; ++i) { - if (std::abs(negTrkEta) >= kLowEta[i] && std::abs(negTrkEta) < kHighEta[i]) { + for (int i = 0; i < kNEtaHists; ++i) { + if (negTrkEta >= kLowEta[i] && negTrkEta < kHighEta[i]) { negIndexEta = i; break; } } + if (posIndexEta < kZeroInt || posIndexEta > kSevenInt) + continue; + + if (negIndexEta < kZeroInt || negIndexEta > kSevenInt) + continue; + if (passesTopoSel) { registry.fill(HIST("ArmAfterTopoSel"), alpha, qT); registry.fill(HIST("dcaDauVsPt"), v0.pt(), v0.dcapostopv()); @@ -678,6 +718,7 @@ struct PiKpRAA { if (passesK0Selection(collision, v0)) { // nSigma TPC and y cuts registry.fill(HIST("ArmK0NOSel"), alpha, qT); if (v0Selections.armPodCut * qT > std::abs(alpha)) { // Armenters selection + registry.fill(HIST("V0sCounter"), V0sCounter::K0s); registry.fill(HIST("ArmK0"), alpha, qT); registry.fill(HIST("MassK0sVsPt"), v0.pt(), v0.mK0Short()); registry.fill(HIST("nSigPiFromK0s"), posTrkPt, posTrack.tpcNSigmaPi()); @@ -686,11 +727,10 @@ struct PiKpRAA { registry.fill(HIST("NclVsEtaPiV0p"), posTrkEta, posTrack.tpcNClsFound()); registry.fill(HIST("NclVsEtaPiV0"), negTrkEta, negTrack.tpcNClsFound()); registry.fill(HIST("NclVsEtaPiV0p"), negTrkEta, negTrack.tpcNClsFound()); - registry.fill(HIST("NclPiV0"), posPorPt, posTrack.tpcNClsFound()); - registry.fill(HIST("NclPiV0p"), posPorPt, posTrack.tpcNClsFound()); - registry.fill(HIST("NclPiV0"), negPorPt, negTrack.tpcNClsFound()); - registry.fill(HIST("NclPiV0p"), negPorPt, negTrack.tpcNClsFound()); - + nClVsPPiV0[posIndexEta]->Fill(posPorPt, posTrack.tpcNClsFound()); + nClVsPpPiV0[posIndexEta]->Fill(posPorPt, posTrack.tpcNClsFound()); + nClVsPPiV0[negIndexEta]->Fill(negPorPt, negTrack.tpcNClsFound()); + nClVsPpPiV0[negIndexEta]->Fill(negPorPt, negTrack.tpcNClsFound()); dEdxPiV0[posIndexEta]->Fill(posTrkP, posTrkdEdx, centrality); dEdxPiV0[negIndexEta]->Fill(negTrkP, negTrkdEdx, centrality); @@ -710,6 +750,7 @@ struct PiKpRAA { if (v0Selections.applyInvMassSel) { if (dMassL < v0Selections.dMassSel && dMassK0s > v0Selections.dMassSel && dMassG > v0Selections.dMassSelG) { if (passesLambdaSelection(collision, v0)) { + registry.fill(HIST("V0sCounter"), V0sCounter::Lambda); registry.fill(HIST("ArmL"), alpha, qT); registry.fill(HIST("MassLVsPt"), v0.pt(), v0.mLambda()); registry.fill(HIST("nSigPrFromL"), posTrkPt, posTrack.tpcNSigmaPr()); @@ -718,10 +759,10 @@ struct PiKpRAA { registry.fill(HIST("NclVsEtaPrV0p"), posTrkEta, posTrack.tpcNClsFound()); registry.fill(HIST("NclVsEtaPiV0"), negTrkEta, negTrack.tpcNClsFound()); registry.fill(HIST("NclVsEtaPiV0p"), negTrkEta, negTrack.tpcNClsFound()); - registry.fill(HIST("NclPrV0"), posPorPt, posTrack.tpcNClsFound()); - registry.fill(HIST("NclPrV0p"), posPorPt, posTrack.tpcNClsFound()); - registry.fill(HIST("NclPiV0"), negPorPt, negTrack.tpcNClsFound()); - registry.fill(HIST("NclPiV0p"), negPorPt, negTrack.tpcNClsFound()); + nClVsPPrV0[posIndexEta]->Fill(posPorPt, posTrack.tpcNClsFound()); + nClVsPpPrV0[posIndexEta]->Fill(posPorPt, posTrack.tpcNClsFound()); + nClVsPPiV0[negIndexEta]->Fill(negPorPt, negTrack.tpcNClsFound()); + nClVsPpPiV0[negIndexEta]->Fill(negPorPt, negTrack.tpcNClsFound()); dEdxPrV0[posIndexEta]->Fill(posTrkP, posTrkdEdx, centrality); dEdxPiV0[negIndexEta]->Fill(negTrkP, negTrkdEdx, centrality); } @@ -730,6 +771,7 @@ struct PiKpRAA { if (v0Selections.applyInvMassSel && dMassAL < v0Selections.dMassSel && dMassK0s > v0Selections.dMassSel && dMassG > v0Selections.dMassSelG) { if (passesAntiLambdaSelection(collision, v0)) { + registry.fill(HIST("V0sCounter"), V0sCounter::AntiLambda); registry.fill(HIST("ArmAL"), alpha, qT); registry.fill(HIST("MassALVsPt"), v0.pt(), v0.mAntiLambda()); registry.fill(HIST("nSigPrFromAL"), negTrkPt, negTrack.tpcNSigmaPr()); @@ -738,10 +780,10 @@ struct PiKpRAA { registry.fill(HIST("NclVsEtaPiV0p"), posTrkEta, posTrack.tpcNClsFound()); registry.fill(HIST("NclVsEtaPrV0"), negTrkEta, negTrack.tpcNClsFound()); registry.fill(HIST("NclVsEtaPrV0p"), negTrkEta, negTrack.tpcNClsFound()); - registry.fill(HIST("NclPiV0"), posPorPt, posTrack.tpcNClsFound()); - registry.fill(HIST("NclPiV0p"), posPorPt, posTrack.tpcNClsFound()); - registry.fill(HIST("NclPrV0"), negPorPt, negTrack.tpcNClsFound()); - registry.fill(HIST("NclPrV0p"), negPorPt, negTrack.tpcNClsFound()); + nClVsPPrV0[negIndexEta]->Fill(negPorPt, negTrack.tpcNClsFound()); + nClVsPpPrV0[negIndexEta]->Fill(negPorPt, negTrack.tpcNClsFound()); + nClVsPPiV0[posIndexEta]->Fill(posPorPt, posTrack.tpcNClsFound()); + nClVsPpPiV0[posIndexEta]->Fill(posPorPt, posTrack.tpcNClsFound()); dEdxPrV0[negIndexEta]->Fill(negTrkP, negTrkdEdx, centrality); dEdxPiV0[posIndexEta]->Fill(posTrkP, posTrkdEdx, centrality); } @@ -751,6 +793,7 @@ struct PiKpRAA { if (v0Selections.applyInvMassSel && dMassK0s > v0Selections.dMassSel && dMassL > v0Selections.dMassSel && dMassAL > v0Selections.dMassSel && dMassG < v0Selections.dMassGcut) { if (passesGammaSelection(collision, v0)) { if (std::abs(alpha) < v0Selections.armAlphaSel && qT < v0Selections.qTSel) { + registry.fill(HIST("V0sCounter"), V0sCounter::Gamma); registry.fill(HIST("ArmG"), alpha, qT); registry.fill(HIST("MassGVsPt"), v0.pt(), v0.mGamma()); registry.fill(HIST("nSigElFromG"), negTrkPt, negTrack.tpcNSigmaEl()); @@ -759,10 +802,10 @@ struct PiKpRAA { registry.fill(HIST("NclVsEtaElV0p"), posTrkEta, posTrack.tpcNClsFound()); registry.fill(HIST("NclVsEtaElV0"), negTrkEta, negTrack.tpcNClsFound()); registry.fill(HIST("NclVsEtaElV0p"), negTrkEta, negTrack.tpcNClsFound()); - registry.fill(HIST("NclElV0"), posPorPt, posTrack.tpcNClsFound()); - registry.fill(HIST("NclElV0p"), posPorPt, posTrack.tpcNClsFound()); - registry.fill(HIST("NclElV0"), negPorPt, negTrack.tpcNClsFound()); - registry.fill(HIST("NclElV0p"), negPorPt, negTrack.tpcNClsFound()); + nClVsPElV0[negIndexEta]->Fill(negPorPt, negTrack.tpcNClsFound()); + nClVsPpElV0[negIndexEta]->Fill(negPorPt, negTrack.tpcNClsFound()); + nClVsPElV0[posIndexEta]->Fill(posPorPt, posTrack.tpcNClsFound()); + nClVsPpElV0[posIndexEta]->Fill(posPorPt, posTrack.tpcNClsFound()); registry.fill(HIST("dEdxVsEtaElMIPV0"), posTrkEta, posTrkdEdx); registry.fill(HIST("dEdxVsEtaElMIPV0p"), posTrkEta, posTrkdEdx); registry.fill(HIST("dEdxVsEtaElMIPV0"), negTrkEta, negTrkdEdx); @@ -857,6 +900,9 @@ struct PiKpRAA { const double posRadiusNsigma{std::sqrt(std::pow(posTPCNsigma, 2.) + std::pow(posTOFNsigma, 2.))}; const double negRadiusNsigma{std::sqrt(std::pow(negTPCNsigma, 2.) + std::pow(negTOFNsigma, 2.))}; + registry.fill(HIST("EtaVsYK0s"), negTrack.eta(), v0.yK0Short()); + registry.fill(HIST("EtaVsYK0s"), posTrack.eta(), v0.yK0Short()); + bool isSelected{false}; if (v0Selections.applyTPCTOFCombinedCut) isSelected = v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassK0Short < lifetimecut->get("lifetimecutK0S") && std::abs(v0.yK0Short()) < v0Selections.rapidityCut && posTrack.hasTOF() && negTrack.hasTOF() && posRadiusNsigma < v0Selections.tpcPidNsigmaCut && negRadiusNsigma < v0Selections.tpcPidNsigmaCut ? true : false; @@ -881,6 +927,9 @@ struct PiKpRAA { const double posRadiusNsigma{std::sqrt(std::pow(posTPCNsigma, 2.) + std::pow(posTOFNsigma, 2.))}; const double negRadiusNsigma{std::sqrt(std::pow(negTPCNsigma, 2.) + std::pow(negTOFNsigma, 2.))}; + registry.fill(HIST("EtaVsYPiL"), negTrack.eta(), v0.yLambda()); + registry.fill(HIST("EtaVsYPrL"), posTrack.eta(), v0.yLambda()); + bool isSelected{false}; if (v0Selections.applyTPCTOFCombinedCut) isSelected = v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassLambda0 < lifetimecut->get("lifetimecutLambda") && std::abs(v0.yLambda()) < v0Selections.rapidityCut && posTrack.hasTOF() && negTrack.hasTOF() && posRadiusNsigma < v0Selections.tpcPidNsigmaCut && negRadiusNsigma < v0Selections.tpcPidNsigmaCut ? true : false; @@ -905,6 +954,9 @@ struct PiKpRAA { const double posRadiusNsigma{std::sqrt(std::pow(posTPCNsigma, 2.) + std::pow(posTOFNsigma, 2.))}; const double negRadiusNsigma{std::sqrt(std::pow(negTPCNsigma, 2.) + std::pow(negTOFNsigma, 2.))}; + registry.fill(HIST("EtaVsYPiAL"), posTrack.eta(), v0.yLambda()); + registry.fill(HIST("EtaVsYPrAL"), negTrack.eta(), v0.yLambda()); + bool isSelected{false}; if (v0Selections.applyTPCTOFCombinedCut) isSelected = v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassLambda0 < lifetimecut->get("lifetimecutLambda") && std::abs(v0.yLambda()) < v0Selections.rapidityCut && posTrack.hasTOF() && negTrack.hasTOF() && posRadiusNsigma < v0Selections.tpcPidNsigmaCut && negRadiusNsigma < v0Selections.tpcPidNsigmaCut ? true : false; @@ -928,6 +980,9 @@ struct PiKpRAA { const double negRadiusNsigma{std::sqrt(std::pow(negTPCNsigma, 2.) + std::pow(negTOFNsigma, 2.))}; const float yGamma = RecoDecay::y(std::array{v0.px(), v0.py(), v0.pz()}, o2::constants::physics::MassGamma); + registry.fill(HIST("EtaVsYG"), negTrack.eta(), yGamma); + registry.fill(HIST("EtaVsYG"), posTrack.eta(), yGamma); + if (!(std::abs(yGamma) < v0Selections.rapidityCut)) return false;