|
14 | 14 | #include <Framework/Configurable.h> |
15 | 15 | #include <TLorentzVector.h> |
16 | 16 | #include "TVector2.h" |
17 | | -#include <vector> |
18 | 17 |
|
19 | 18 | #include "Common/DataModel/Centrality.h" |
20 | 19 | #include "Common/DataModel/EventSelection.h" |
@@ -47,8 +46,6 @@ struct f0980analysis { |
47 | 46 | "Maximum transverse DCA"}; |
48 | 47 | Configurable<float> cfgMaxDCAzToPVcut{"cfgMaxDCAzToPVcut", 2.0, |
49 | 48 | "Maximum longitudinal DCA"}; |
50 | | - Configurable<float> cfgMaxTPC{"cfgMaxTPC", 5.0, "Maximum TPC PID with TOF"}; |
51 | | - Configurable<float> cfgMaxTOF{"cfgMaxTOF", 3.0, "Maximum TOF PID with TPC"}; |
52 | 49 | Configurable<float> cfgMinRap{"cfgMinRap", -0.5, "Minimum rapidity for pair"}; |
53 | 50 | Configurable<float> cfgMaxRap{"cfgMaxRap", 0.5, "Maximum rapidity for pair"}; |
54 | 51 | Configurable<bool> cfgFindRT{"cfgFindRT", false, "boolean for RT analysis"}; |
@@ -80,7 +77,8 @@ struct f0980analysis { |
80 | 77 |
|
81 | 78 | // PID |
82 | 79 | Configurable<double> cMaxTOFnSigmaPion{"cMaxTOFnSigmaPion", 3.0, "TOF nSigma cut for Pion"}; // TOF |
83 | | - Configurable<double> cMaxTPCnSigmaPion{"cMaxTPCnSigmaPion", 3.0, "TPC nSigma cut for Pion"}; // TPC |
| 80 | + Configurable<double> cMaxTPCnSigmaPion{"cMaxTPCnSigmaPion", 5.0, "TPC nSigma cut for Pion"}; // TPC |
| 81 | + Configurable<double> cMaxTPCnSigmaPionWoTOF{"cMaxTPCnSigmaPionWoTOF", 2.0, "TPC nSigma cut without TOF for Pion"}; |
84 | 82 | Configurable<double> nsigmaCutCombinedPion{"nsigmaCutCombinedPion", -999, "Combined nSigma cut for Pion"}; |
85 | 83 | Configurable<int> SelectType{"SelectType", 0, "PID selection type"}; |
86 | 84 |
|
@@ -199,6 +197,15 @@ struct f0980analysis { |
199 | 197 | if (track.tpcNSigmaPi() * track.tpcNSigmaPi() + track.tofNSigmaPi() * track.tofNSigmaPi() >= nsigmaCutCombinedPion * nsigmaCutCombinedPion) |
200 | 198 | return false; |
201 | 199 | } |
| 200 | + if (SelectType == 3) { |
| 201 | + if (track.hasTOF()) { |
| 202 | + if (std::fabs(track.tpcNSigmaPi()) >= cMaxTPCnSigmaPion || std::fabs(track.tofNSigmaPi()) >= cMaxTOFnSigmaPion) |
| 203 | + return false; |
| 204 | + } else if (!track.hasTOF()) { |
| 205 | + if (std::fabs(track.tpcNSigmaPi()) >= cMaxTPCnSigmaPionWoTOF) |
| 206 | + return false; |
| 207 | + } |
| 208 | + } |
202 | 209 | return true; |
203 | 210 | } |
204 | 211 |
|
@@ -227,17 +234,14 @@ struct f0980analysis { |
227 | 234 | TLorentzVector Pion1, Pion2, Reco; |
228 | 235 | for (auto& [trk1, trk2] : |
229 | 236 | combinations(CombinationsStrictlyUpperIndexPolicy(dTracks, dTracks))) { |
230 | | - if (trk1.index() == trk2.index()) { |
231 | | - if (!SelTrack(trk1)) |
232 | | - continue; |
233 | | - histos.fill(HIST("QA/Nsigma_TPC"), trk1.pt(), trk1.tpcNSigmaPi()); |
234 | | - histos.fill(HIST("QA/Nsigma_TOF"), trk1.pt(), trk1.tofNSigmaPi()); |
235 | | - histos.fill(HIST("QA/TPC_TOF"), trk1.tpcNSigmaPi(), trk1.tofNSigmaPi()); |
236 | | - continue; |
237 | | - } |
238 | 237 |
|
239 | 238 | if (!SelTrack(trk1) || !SelTrack(trk2)) |
240 | 239 | continue; |
| 240 | + // TPC, TOF Nsigma distributions |
| 241 | + histos.fill(HIST("QA/Nsigma_TPC"), trk1.pt(), trk1.tpcNSigmaPi()); |
| 242 | + histos.fill(HIST("QA/Nsigma_TOF"), trk1.pt(), trk1.tofNSigmaPi()); |
| 243 | + histos.fill(HIST("QA/TPC_TOF"), trk1.tpcNSigmaPi(), trk1.tofNSigmaPi()); |
| 244 | + |
241 | 245 | if (!SelPion(trk1) || !SelPion(trk2)) |
242 | 246 | continue; |
243 | 247 |
|
@@ -305,7 +309,6 @@ struct f0980analysis { |
305 | 309 |
|
306 | 310 | void processMCTrue(aod::ResoMCParents& resoParents) |
307 | 311 | { |
308 | | - |
309 | 312 | for (auto& part : resoParents) { // loop over all pre-filtered MC particles |
310 | 313 | if (abs(part.pdgCode()) != 9010221) |
311 | 314 | continue; |
|
0 commit comments