Skip to content

Commit 0d58a3e

Browse files
committed
MC Omega cascade
1 parent c78a566 commit 0d58a3e

File tree

1 file changed

+43
-54
lines changed

1 file changed

+43
-54
lines changed

Common/Tasks/pidStudies.cxx

Lines changed: 43 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
#include "Common/DataModel/Centrality.h"
2525
#include "Common/DataModel/Multiplicity.h"
2626
#include "Common/DataModel/EventSelection.h"
27+
#include "Common/DataModel/TrackSelectionTables.h"
2728
#include "PWGLF/DataModel/LFStrangenessTables.h"
2829
#include "PWGLF/DataModel/LFStrangenessPIDTables.h"
29-
// #include "/home/mdicosta/alice/O2Physics/Common/TableProducer/Converters/mcCollisionConverter.cxx"
3030

3131
using namespace o2;
3232
using namespace o2::framework;
@@ -37,27 +37,34 @@ namespace o2::aod
3737
{
3838
namespace pid_studies
3939
{
40+
// V0s
4041
DECLARE_SOA_COLUMN(MassK0, massK0, float); //! Candidate mass
4142
DECLARE_SOA_COLUMN(MassLambda, massLambda, float); //! Candidate mass
42-
DECLARE_SOA_COLUMN(MassOmega, massOmega, float); //! Candidate mass
4343
DECLARE_SOA_COLUMN(PtPos, ptPos, float); //! Transverse momentum of positive track (GeV/c)
4444
DECLARE_SOA_COLUMN(PtNeg, ptNeg, float); //! Transverse momentum of negative track (GeV/c)
4545
DECLARE_SOA_COLUMN(Radius, radius, float); //! Radius
4646
DECLARE_SOA_COLUMN(Cpa, cpa, float); //! Cosine of pointing angle
4747
DECLARE_SOA_COLUMN(NSigmaTpcPosPi, nSigmaTpcPosPi, float); //! nSigmaTPC of positive track with pion hypothesis
4848
DECLARE_SOA_COLUMN(NSigmaTpcNegPi, nSigmaTpcNegPi, float); //! nSigmaTPC of negative track with pion hypothesis
49-
DECLARE_SOA_COLUMN(NSigmaTpcPosKa, nSigmaTpcPosKa, float); //! nSigmaTPC of positive track with kaon hypothesis
50-
DECLARE_SOA_COLUMN(NSigmaTpcNegKa, nSigmaTpcNegKa, float); //! nSigmaTPC of negative track with kaon hypothesis
5149
DECLARE_SOA_COLUMN(NSigmaTpcPosPr, nSigmaTpcPosPr, float); //! nSigmaTPC of positive track with proton hypothesis
5250
DECLARE_SOA_COLUMN(NSigmaTpcNegPr, nSigmaTpcNegPr, float); //! nSigmaTPC of negative track with proton hypothesis
5351
DECLARE_SOA_COLUMN(NSigmaTofPosPi, nSigmaTofPosPi, float); //! nSigmaTOF of positive track with pion hypothesis
5452
DECLARE_SOA_COLUMN(NSigmaTofNegPi, nSigmaTofNegPi, float); //! nSigmaTOF of negative track with pion hypothesis
55-
DECLARE_SOA_COLUMN(NSigmaTofPosKa, nSigmaTofPosKa, float); //! nSigmaTOF of positive track with kaon hypothesis
56-
DECLARE_SOA_COLUMN(NSigmaTofNegKa, nSigmaTofNegKa, float); //! nSigmaTOF of negative track with kaon hypothesis
5753
DECLARE_SOA_COLUMN(NSigmaTofPosPr, nSigmaTofPosPr, float); //! nSigmaTOF of positive track with proton hypothesis
5854
DECLARE_SOA_COLUMN(NSigmaTofNegPr, nSigmaTofNegPr, float); //! nSigmaTOF of negative track with proton hypothesis
5955
DECLARE_SOA_COLUMN(AlphaArm, alphaArm, float); //! Armenteros alpha
6056
DECLARE_SOA_COLUMN(QtArm, qtArm, float); //! Armenteros Qt
57+
58+
// Cascades
59+
DECLARE_SOA_COLUMN(MassOmega, massOmega, float); //! Candidate mass
60+
DECLARE_SOA_COLUMN(MassXi, massXi, float); //! Candidate mass
61+
DECLARE_SOA_COLUMN(CascCosPA, casccosPA, float); //! Cascade CPA
62+
DECLARE_SOA_COLUMN(DCAV0daughters, dcaV0daughters, float); //! DCA of V0 daughters
63+
DECLARE_SOA_COLUMN(DCAv0topv, dcav0topv, float); //! V0 DCA to PV
64+
DECLARE_SOA_COLUMN(NSigmaTpcBachKa, nSigmaTpcBachKa, float); //! nSigmaTPC of positive bachelor with kaon hypothesis
65+
DECLARE_SOA_COLUMN(NSigmaTofBachKa, nSigmaTofBachKa, float); //! nSigmaTPC of negative bachelor with kaon hypothesis
66+
67+
// Common columns
6168
DECLARE_SOA_COLUMN(OccupancyFt0c, occupancyFt0c, float); //! Occupancy from FT0C
6269
DECLARE_SOA_COLUMN(OccupancyIts, occupancyIts, float); //! Occupancy from ITS
6370
DECLARE_SOA_COLUMN(CentralityFT0C, centralityFT0C, float); //! Centrality from FT0C
@@ -74,14 +81,10 @@ DECLARE_SOA_TABLE(pidV0s, "AOD", "PIDV0S", //! Table with PID information
7481
pid_studies::Cpa,
7582
pid_studies::NSigmaTpcPosPi,
7683
pid_studies::NSigmaTpcNegPi,
77-
pid_studies::NSigmaTpcPosKa,
78-
pid_studies::NSigmaTpcNegKa,
7984
pid_studies::NSigmaTpcPosPr,
8085
pid_studies::NSigmaTpcNegPr,
8186
pid_studies::NSigmaTofPosPi,
8287
pid_studies::NSigmaTofNegPi,
83-
pid_studies::NSigmaTofPosKa,
84-
pid_studies::NSigmaTofNegKa,
8588
pid_studies::NSigmaTofPosPr,
8689
pid_studies::NSigmaTofNegPr,
8790
pid_studies::AlphaArm,
@@ -94,13 +97,13 @@ DECLARE_SOA_TABLE(pidV0s, "AOD", "PIDV0S", //! Table with PID information
9497
);
9598

9699
DECLARE_SOA_TABLE(pidCascades, "AOD", "PIDCASCADES", //! Table with PID information
97-
// pid_studies::MassOmega,
98-
// pid_studies::PtPos,
99-
// pid_studies::PtNeg,
100-
// pid_studies::Radius,
101-
// pid_studies::Cpa,
102-
// pid_studies::NSigmaTpcPosKa,
103-
// pid_studies::NSigmaTpcNegKa,
100+
pid_studies::MassOmega,
101+
pid_studies::MassXi,
102+
pid_studies::CascCosPA,
103+
pid_studies::DCAV0daughters,
104+
pid_studies::DCAv0topv,
105+
pid_studies::NSigmaTpcBachKa,
106+
pid_studies::NSigmaTofBachKa,
104107
pid_studies::OccupancyFt0c,
105108
pid_studies::OccupancyIts,
106109
pid_studies::CentralityFT0C,
@@ -136,6 +139,7 @@ struct pidStudies {
136139
template <typename Cand>
137140
void fillTree(Cand const& candidate, const int& flag)
138141
{
142+
const auto& coll = candidate.template collision_as<CollSels>();
139143
if constexpr (std::is_same<Cand, V0sMCRec::iterator>::value) {
140144
const auto& posTrack = candidate.template posTrack_as<PIDTracks>();
141145
const auto& negTrack = candidate.template negTrack_as<PIDTracks>();
@@ -148,39 +152,35 @@ struct pidStudies {
148152
candidate.v0cosPA(),
149153
posTrack.tofNSigmaPi(),
150154
negTrack.tofNSigmaPi(),
151-
posTrack.tofNSigmaKa(),
152-
negTrack.tofNSigmaKa(),
153155
posTrack.tofNSigmaPr(),
154156
negTrack.tofNSigmaPr(),
155157
posTrack.tpcNSigmaPi(),
156158
negTrack.tpcNSigmaPi(),
157-
posTrack.tpcNSigmaKa(),
158-
negTrack.tpcNSigmaKa(),
159159
posTrack.tpcNSigmaPr(),
160160
negTrack.tpcNSigmaPr(),
161161
candidate.alpha(),
162162
candidate.qtarm(),
163-
candidate.template collision_as<CollSels>().ft0cOccupancyInTimeRange(),
164-
candidate.template collision_as<CollSels>().trackOccupancyInTimeRange(),
165-
candidate.template collision_as<CollSels>().centFT0C(),
166-
candidate.template collision_as<CollSels>().centFT0M(),
163+
coll.ft0cOccupancyInTimeRange(),
164+
coll.trackOccupancyInTimeRange(),
165+
coll.centFT0C(),
166+
coll.centFT0M(),
167167
flag
168168
);
169-
} else {
170-
// const auto& posTrack = candidate.template posTrack_as<PIDTracks>();
171-
// const auto& negTrack = candidate.template negTrack_as<PIDTracks>();
172-
pidCascades(
173-
// candidate.mOmega(),
174-
// posTrack.pt(),
175-
// negTrack.pt(),
176-
// candidate.v0radius(),
177-
// candidate.v0cosPA(),
178-
// posTrack.tpcNSigmaKa(),
179-
// negTrack.tpcNSigmaKa(),
180-
candidate.template collision_as<CollSels>().ft0cOccupancyInTimeRange(),
181-
candidate.template collision_as<CollSels>().trackOccupancyInTimeRange(),
182-
candidate.template collision_as<CollSels>().centFT0C(),
183-
candidate.template collision_as<CollSels>().centFT0M(),
169+
}
170+
if constexpr (std::is_same<Cand, CascsMCRec::iterator>::value) {
171+
const auto& bachTrack = candidate.template bachelor_as<PIDTracks>();
172+
pidCascade(
173+
candidate.mOmega(),
174+
candidate.mXi(),
175+
candidate.casccosPA(coll.posX(), coll.posY(), coll.posZ()),
176+
candidate.dcaV0daughters(),
177+
candidate.dcav0topv(coll.posX(), coll.posY(), coll.posZ()),
178+
bachTrack.tpcNSigmaKa(),
179+
bachTrack.tofNSigmaKa(),
180+
coll.ft0cOccupancyInTimeRange(),
181+
coll.trackOccupancyInTimeRange(),
182+
coll.centFT0C(),
183+
coll.centFT0M(),
184184
flag
185185
);
186186
}
@@ -192,10 +192,7 @@ struct pidStudies {
192192
if constexpr (std::is_same<T1, V0sMCRec::iterator>::value) {
193193
if (!cand.has_v0MCCore())
194194
return matched;
195-
auto v0MC = cand.template v0MCCore_as<aod::V0MCCores>();
196-
// LOG(info) << "v0MC.pdgCode() " << v0MC.pdgCode();
197-
// LOG(info) << "v0MC.pdgCodeNegative() " << v0MC.pdgCodeNegative();
198-
// LOG(info) << "v0MC.pdgCodePositive() " << v0MC.pdgCodePositive();
195+
auto v0MC = cand.template v0MCCore_as<aod::V0MCCores>();
199196
if (v0MC.pdgCode() == 3122 && v0MC.pdgCodeNegative() == -211
200197
&& v0MC.pdgCodePositive() == 2212) {
201198
matched = 1;
@@ -218,11 +215,6 @@ struct pidStudies {
218215
return matched;
219216
LOG(info) << "Inside checker";
220217
auto cascMC = cand.template cascMCCore_as<aod::CascMCCores>();
221-
// LOG(info) << "cascMC.pdgCode() " << cascMC.pdgCode();
222-
// LOG(info) << "cascMC.pdgCodeBachelor() " << cascMC.pdgCodeBachelor();
223-
// LOG(info) << "cascMC.pdgCodeV0() " << cascMC.pdgCodeV0();
224-
// LOG(info) << "cascMC.pdgCodePositive() " << cascMC.pdgCodePositive();
225-
// LOG(info) << "cascMC.pdgCodeNegative() " << cascMC.pdgCodeNegative();
226218
if (cascMC.pdgCode() > 0) {
227219
if (cascMC.pdgCode() == 3334 &&
228220
cascMC.pdgCodeBachelor() == -321 &&
@@ -257,21 +249,18 @@ struct pidStudies {
257249
}
258250
}
259251
for (const auto& casc : cascs) {
260-
LOG(info) << "checking omega";
261252
if (casc.mOmega() > massOmegaMin && casc.mOmega() < massOmegaMax) {
262-
LOG(info) << "mass passed";
263253
int matched = isMatched(casc);
264254
if(matched != 0) {
265-
LOG(info) << "Matched omega";
266-
// fillTree(casc, matched);
255+
fillTree(casc, matched);
267256
}
268257
}
269258
}
270259

271260
}
272261
PROCESS_SWITCH(pidStudies, processMC, "process MC", true);
273262

274-
void processData(aod::V0Datas const& V0s, aod::Cascades const& cascades, CollSels const&, PIDTracks const&)
263+
void processData(aod::V0Datas const& V0s, aod::CascDatas const& cascades, CollSels const&, PIDTracks const&)
275264
{
276265
for (const auto& v0 : V0s) {
277266
if (v0.mK0Short() > massK0Min && v0.mK0Short() < massK0Max ||

0 commit comments

Comments
 (0)