Skip to content

Commit b3e5d7b

Browse files
authored
[PWGLF] Selects primary pions with TOF (#16921)
1 parent ab36e1d commit b3e5d7b

1 file changed

Lines changed: 27 additions & 5 deletions

File tree

PWGLF/Tasks/Nuspex/piKpRAA.cxx

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,14 @@ using BCsRun3 = soa::Join<aod::BCsWithTimestamps, aod::BcSels, aod::Run3MatchedT
7575

7676
using ColEvSelsMC = soa::Join<aod::Collisions, aod::EvSels, aod::McCollisionLabels, o2::aod::CentFT0Cs, o2::aod::CentFT0Ms, o2::aod::CentFV0As, o2::aod::CentFT0Ms, o2::aod::BarrelMults>;
7777

78-
using TracksFull = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelectionExtension, aod::TracksDCA, aod::TrackSelection, aod::TracksCovIU, aod::pidTPCPi, aod::pidTPCPr, aod::pidTOFPr, aod::pidTPCEl, aod::pidTOFFlags, aod::pidTOFbeta, aod::TOFSignal, aod::pidTOFFullPi, aod::pidTOFFullEl>;
78+
using TracksFull = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelectionExtension, aod::TracksDCA, aod::TrackSelection, aod::TracksCovIU, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTPCEl, aod::pidTOFFlags, aod::pidTOFbeta, aod::TOFSignal, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr, aod::pidTOFFullEl>;
7979

8080
using TracksMC = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelectionExtension, aod::TracksDCA, aod::TrackSelection, aod::TracksCovIU, aod::pidTPCPi, aod::pidTPCPr, aod::pidTOFPr, aod::pidTPCEl, aod::pidTOFFlags, aod::pidTOFbeta, aod::TOFSignal, aod::pidTOFFullPi, aod::pidTOFFullEl, aod::McTrackLabels>;
8181

8282
static constexpr int KnEtaHists{8};
8383

84+
std::array<std::shared_ptr<TH2>, KnEtaHists> dEdxPiTOF{};
85+
std::array<std::shared_ptr<TH2>, KnEtaHists> dEdxPiTOF2{};
8486
std::array<std::shared_ptr<TH2>, KnEtaHists> dEdxPiV0{};
8587
std::array<std::shared_ptr<TH2>, KnEtaHists> dEdxPrV0{};
8688
std::array<std::shared_ptr<TH2>, KnEtaHists> dEdxElV0{};
@@ -148,6 +150,10 @@ struct PiKpRAA {
148150
Configurable<float> maxChi2ClsTPC{"maxChi2ClsTPC", 4.0, "Max chi2 per Cls TPC"};
149151
Configurable<float> chi2ClsITS{"chi2ClsITS", 36.0, "chi2 per Cls ITS selection"};
150152
Configurable<float> maxElTOFBeta{"maxElTOFBeta", 0.1, "Maximum beta TOF selection"};
153+
Configurable<float> maxPiTOFBeta{"maxPiTOFBeta", 0.005, "Maximum beta TOF selection for Pions"};
154+
// Configurable<float> maxKaTOFBeta{"maxKaTOFBeta", 0.001, "Maximum beta TOF selection for Kaons"};
155+
// Configurable<float> maxPrTOFBeta{"maxPrTOFBeta", 0.001, "Maximum beta TOF selection for Protons"};
156+
Configurable<float> nSigmaPIDselPrim{"nSigmaPIDselPrim", 1.0, "N sigma selection for primary pions with TOF"};
151157

152158
// Phi cut
153159
Configurable<bool> applyPhiCut{"applyPhiCut", false, "Apply geometrical cut?"};
@@ -475,6 +481,8 @@ struct PiKpRAA {
475481
for (int i = 0; i < KnEtaHists; ++i) {
476482
dEdx[i] = registry.add<TH3>(Form("dEdx_%s", endingEta[i].c_str()), Form("%s;Momentum;dE/dx;", latexEta[i].c_str()), kTH3F, {axisPt, axisdEdx, axisCent});
477483
pTVsP[i] = registry.add<TH2>(Form("pTVsP_%s", endingEta[i].c_str()), Form("%s;Momentum;#it{p}_{T} (GeV/#it{c});", latexEta[i].c_str()), kTH2F, {axisPt, axisPt});
484+
dEdxPiTOF[i] = registry.add<TH2>(Form("dEdxPiTOF_%s", endingEta[i].c_str()), Form("#pi^{+} + #pi^{-}, %s;Momentum;dE/dx;", latexEta[i].c_str()), kTH2F, {axisPtV0s, axisdEdx});
485+
dEdxPiTOF2[i] = registry.add<TH2>(Form("dEdxPiTOF2_%s", endingEta[i].c_str()), Form("#pi^{+} + #pi^{-}, %s;Momentum;dE/dx;", latexEta[i].c_str()), kTH2F, {axisPtV0s, axisdEdx});
478486
dEdxPiV0[i] = registry.add<TH2>(Form("dEdxPiV0_%s", endingEta[i].c_str()), Form("#pi^{+} + #pi^{-}, %s;Momentum;dE/dx;", latexEta[i].c_str()), kTH2F, {axisPtV0s, axisdEdx});
479487
dEdxPrV0[i] = registry.add<TH2>(Form("dEdxPrV0_%s", endingEta[i].c_str()), Form("p + #bar{p}, %s;Momentum;dE/dx;", latexEta[i].c_str()), kTH2F, {axisPtV0s, axisdEdx});
480488
dEdxElV0[i] = registry.add<TH2>(Form("dEdxElV0_%s", endingEta[i].c_str()), Form("e^{+} + e^{-}, %s;Momentum;dE/dx;", latexEta[i].c_str()), kTH2F, {axisPtV0s, axisdEdx});
@@ -820,6 +828,24 @@ struct PiKpRAA {
820828
}
821829
}
822830

831+
if (track.hasTOF() && track.goodTOFMatch()) {
832+
const float tTOF{track.tofSignal()};
833+
const float trkLength{track.length()};
834+
const float tExpPiTOF{track.tofExpSignalPi(tTOF)};
835+
const float tOFNsigmaPi{std::fabs(track.tofNSigmaPi())};
836+
const float tPCNsigmaPi{std::fabs(track.tpcNSigmaPi())};
837+
838+
if (tTOF > Kzero && trkLength > Kzero) {
839+
if (std::abs((tExpPiTOF / tTOF) - Kone) < trackSelections.maxPiTOFBeta) {
840+
dEdxPiTOF2[indexEta]->Fill(momentum, dedx);
841+
}
842+
843+
if (std::sqrt(std::pow(tOFNsigmaPi, 2.0) + std::pow(tPCNsigmaPi, 2.0)) < trackSelections.nSigmaPIDselPrim) {
844+
dEdxPiTOF[indexEta]->Fill(momentum, dedx);
845+
}
846+
}
847+
}
848+
823849
etaTest[indexEta]->Fill(eta);
824850
dEdx[indexEta]->Fill(momentum, dedx, centrality);
825851
pTVsP[indexEta]->Fill(momentum, pt);
@@ -998,9 +1024,7 @@ struct PiKpRAA {
9981024
registry.fill(HIST("nSigPiFromL"), negTrkPt, negTrack.tpcNSigmaPi());
9991025
// registry.fill(HIST("NclVsEtaPiV0"), negTrkEta, negNcl);
10001026
// registry.fill(HIST("NclVsEtaPiV0p"), negTrkEta, negNcl);
1001-
// nClVsPPiV0[negIndexEta]->Fill(negPorPt, negNcl);
10021027
// nClVsPpPiV0[negIndexEta]->Fill(negPorPt, negNcl);
1003-
// dEdxPiV0[negIndexEta]->Fill(negTrkP, negTrkdEdx, centrality);
10041028
}
10051029
}
10061030

@@ -1012,9 +1036,7 @@ struct PiKpRAA {
10121036
registry.fill(HIST("nSigPiFromAL"), posTrkPt, posTrack.tpcNSigmaPi());
10131037
// registry.fill(HIST("NclVsEtaPiV0"), posTrkEta, posNcl);
10141038
// registry.fill(HIST("NclVsEtaPiV0p"), posTrkEta, posNcl);
1015-
// nClVsPPiV0[posIndexEta]->Fill(posPorPt, posNcl);
10161039
// nClVsPpPiV0[posIndexEta]->Fill(posPorPt, posNcl);
1017-
// dEdxPiV0[posIndexEta]->Fill(posTrkP, posTrkdEdx, centrality);
10181040
}
10191041
if (negTrackCharge < Kzero) {
10201042
registry.fill(HIST("nSigPrFromAL"), negTrkPt, negTrack.tpcNSigmaPr());

0 commit comments

Comments
 (0)