@@ -75,12 +75,14 @@ using BCsRun3 = soa::Join<aod::BCsWithTimestamps, aod::BcSels, aod::Run3MatchedT
7575
7676using 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
8080using 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
8282static constexpr int KnEtaHists{8 };
8383
84+ std::array<std::shared_ptr<TH2 >, KnEtaHists> dEdxPiTOF{};
85+ std::array<std::shared_ptr<TH2 >, KnEtaHists> dEdxPiTOF2{};
8486std::array<std::shared_ptr<TH2 >, KnEtaHists> dEdxPiV0{};
8587std::array<std::shared_ptr<TH2 >, KnEtaHists> dEdxPrV0{};
8688std::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