Skip to content

Commit 38cf847

Browse files
authored
[PWGLF] Add centrality and gen daughter momenta components to trackedHypertritonRecoTask table producer (#17865)
1 parent 6f0c911 commit 38cf847

3 files changed

Lines changed: 110 additions & 57 deletions

File tree

PWGLF/DataModel/Vtx3BodyTables.h

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#ifndef PWGLF_DATAMODEL_VTX3BODYTABLES_H_
1818
#define PWGLF_DATAMODEL_VTX3BODYTABLES_H_
1919

20+
#include "PWGLF/DataModel/LFHypernucleiTables.h"
21+
2022
#include "Common/Core/RecoDecay.h"
2123

2224
#include <CommonConstants/PhysicsConstants.h>
@@ -128,12 +130,15 @@ DECLARE_SOA_COLUMN(GenCt, genCt, float); // generated Ct of the hy
128130
DECLARE_SOA_COLUMN(GenPhi, genPhi, float); // generated Phi of the hypertriton
129131
DECLARE_SOA_COLUMN(GenEta, genEta, float); // Eta of the hypertriton
130132
DECLARE_SOA_COLUMN(GenRap, genRap, float); // generated rapidity of the hypertriton
131-
DECLARE_SOA_COLUMN(GenPPr, genPPr, float); //! generated momentum proton daughter particle
132-
DECLARE_SOA_COLUMN(GenPPi, genPPi, float); //! generated momentum pion daughter particle
133-
DECLARE_SOA_COLUMN(GenPDe, genPDe, float); //! generated momentum deuteron daughter particle
134-
DECLARE_SOA_COLUMN(GenPtPr, genPtPr, float); //! generated transverse momentum proton daughter particle
135-
DECLARE_SOA_COLUMN(GenPtPi, genPtPi, float); //! generated transverse momentum pion daughter particle
136-
DECLARE_SOA_COLUMN(GenPtDe, genPtDe, float); //! generated transverse momentum deuteron daughter particle
133+
DECLARE_SOA_COLUMN(GenPxPr, genPxPr, float); //! generated Px of proton daughter particle
134+
DECLARE_SOA_COLUMN(GenPyPr, genPyPr, float); //! generated Py of proton daughter particle
135+
DECLARE_SOA_COLUMN(GenPzPr, genPzPr, float); //! generated Pz of proton daughter particle
136+
DECLARE_SOA_COLUMN(GenPxPi, genPxPi, float); //! generated Px of pion daughter particle
137+
DECLARE_SOA_COLUMN(GenPyPi, genPyPi, float); //! generated Py of pion daughter particle
138+
DECLARE_SOA_COLUMN(GenPzPi, genPzPi, float); //! generated Pz of pion daughter particle
139+
DECLARE_SOA_COLUMN(GenPxDe, genPxDe, float); //! generated Px of deuteron daughter particle
140+
DECLARE_SOA_COLUMN(GenPyDe, genPyDe, float); //! generated Py of deuteron daughter particle
141+
DECLARE_SOA_COLUMN(GenPzDe, genPzDe, float); //! generated Pz of deuteron daughter particle
137142
DECLARE_SOA_COLUMN(MotherPdgCode, motherPdgCode, int); //! PDG code of the mother particle
138143
DECLARE_SOA_COLUMN(PrPdgCode, prPdgCode, int); //! MC particle proton PDG code
139144
DECLARE_SOA_COLUMN(PiPdgCode, piPdgCode, int); //! MC particle pion PDG code
@@ -271,6 +276,22 @@ DECLARE_SOA_TABLE(Vtx3BodyTrackedInfo, "AOD", "VTX3BODYTR", //!
271276
vtx3body::ITSTrackDCAXYToSV,
272277
vtx3body::ITSTrackDCAZToSV);
273278

279+
// collision info table
280+
DECLARE_SOA_TABLE(Vtx3BodyCollision, "AOD", "VTX3BODYCOLL", //!
281+
o2::soa::Index<>,
282+
hyperrec::CentralityFT0A, hyperrec::CentralityFT0C, hyperrec::CentralityFT0M,
283+
hyperrec::TrackOccupancyInTimeRange, hyperrec::Ft0cOccupancyInTimeRange,
284+
hyperrec::XPrimVtx, hyperrec::YPrimVtx, hyperrec::ZPrimVtx,
285+
hyperrec::RunNumber);
286+
287+
DECLARE_SOA_TABLE(McVtx3BodyCollision, "AOD", "MCVTX3BODYCOLL", //!
288+
o2::soa::Index<>,
289+
hyperrec::IsRecoMCCollision,
290+
hyperrec::CentralityFT0A, hyperrec::CentralityFT0C, hyperrec::CentralityFT0M,
291+
hyperrec::TrackOccupancyInTimeRange, hyperrec::Ft0cOccupancyInTimeRange,
292+
hyperrec::XPrimVtx, hyperrec::YPrimVtx, hyperrec::ZPrimVtx,
293+
hyperrec::RunNumber);
294+
274295
// MC candidate table for analysis
275296
DECLARE_SOA_TABLE(McVtx3BodyDatas, "AOD", "MC3BODYDATA", //!
276297
o2::soa::Index<>,
@@ -303,8 +324,9 @@ DECLARE_SOA_TABLE(McVtx3BodyDatas, "AOD", "MC3BODYDATA", //!
303324
vtx3body::GenX, vtx3body::GenY, vtx3body::GenZ,
304325
vtx3body::GenCt,
305326
vtx3body::GenPhi, vtx3body::GenEta, vtx3body::GenRap,
306-
vtx3body::GenPPr, vtx3body::GenPPi, vtx3body::GenPDe,
307-
vtx3body::GenPtPr, vtx3body::GenPtPi, vtx3body::GenPtDe,
327+
vtx3body::GenPxPr, vtx3body::GenPyPr, vtx3body::GenPzPr,
328+
vtx3body::GenPxPi, vtx3body::GenPyPi, vtx3body::GenPzPi,
329+
vtx3body::GenPxDe, vtx3body::GenPyDe, vtx3body::GenPzDe,
308330
vtx3body::IsReco,
309331
vtx3body::MotherLabel,
310332
vtx3body::MotherPdgCode,

PWGLF/TableProducer/Nuspex/decay3bodybuilder.cxx

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,9 @@ struct decay3bodyBuilder {
227227
float genPhi;
228228
float genEta;
229229
float genRapidity;
230-
float genMomProton;
231-
float genMomPion;
232-
float genMomDeuteron;
233-
float genPtProton;
234-
float genPtPion;
235-
float genPtDeuteron;
230+
std::array<float, 3> genMomProton{0.f};
231+
std::array<float, 3> genMomPion{0.f};
232+
std::array<float, 3> genMomDeuteron{0.f};
236233
bool isReco;
237234
int motherLabel;
238235
int motherPdgCode;
@@ -822,12 +819,9 @@ struct decay3bodyBuilder {
822819
this3BodyMCInfo.daughterPiPdgCode = mcTrackPion.pdgCode();
823820
this3BodyMCInfo.daughterDePdgCode = mcTrackDeuteron.pdgCode();
824821
this3BodyMCInfo.isDeuteronPrimary = mcTrackDeuteron.isPhysicalPrimary();
825-
this3BodyMCInfo.genMomProton = mcTrackProton.p();
826-
this3BodyMCInfo.genMomPion = mcTrackPion.p();
827-
this3BodyMCInfo.genMomDeuteron = mcTrackDeuteron.p();
828-
this3BodyMCInfo.genPtProton = mcTrackProton.pt();
829-
this3BodyMCInfo.genPtPion = mcTrackPion.pt();
830-
this3BodyMCInfo.genPtDeuteron = mcTrackDeuteron.pt();
822+
this3BodyMCInfo.genMomProton = {mcTrackProton.px(), mcTrackProton.py(), mcTrackProton.pz()};
823+
this3BodyMCInfo.genMomPion = {mcTrackPion.px(), mcTrackPion.py(), mcTrackPion.pz()};
824+
this3BodyMCInfo.genMomDeuteron = {mcTrackDeuteron.px(), mcTrackDeuteron.py(), mcTrackDeuteron.pz()};
831825

832826
// daughters are matched to MC, now we check if reco mother is true H3L/Anti-H3l and decayed via three-body decay
833827
this3BodyMCInfo.motherLabel = checkH3LTruth(mcTrackProton, mcTrackPion, mcTrackDeuteron); // returns global index of mother if true H3L/Anti-H3L mother decaying via three-body decay, otherwise negative value for background
@@ -905,17 +899,14 @@ struct decay3bodyBuilder {
905899
// get daughters
906900
for (const auto& mcparticleDaughter : mcparticle.template daughters_as<aod::McParticles>()) {
907901
if (std::abs(mcparticleDaughter.pdgCode()) == PDG_t::kProton) { // proton
908-
this3BodyMCInfo.genMomProton = mcparticleDaughter.p();
909-
this3BodyMCInfo.genPtProton = mcparticleDaughter.pt();
902+
this3BodyMCInfo.genMomProton = {mcparticleDaughter.px(), mcparticleDaughter.py(), mcparticleDaughter.pz()};
910903
this3BodyMCInfo.daughterPrPdgCode = mcparticleDaughter.pdgCode();
911904
this3BodyMCInfo.genDecVtx = {mcparticleDaughter.vx(), mcparticleDaughter.vy(), mcparticleDaughter.vz()};
912905
} else if (std::abs(mcparticleDaughter.pdgCode()) == PDG_t::kPiPlus) { // pion
913-
this3BodyMCInfo.genMomPion = mcparticleDaughter.p();
914-
this3BodyMCInfo.genPtPion = mcparticleDaughter.pt();
906+
this3BodyMCInfo.genMomPion = {mcparticleDaughter.px(), mcparticleDaughter.py(), mcparticleDaughter.pz()};
915907
this3BodyMCInfo.daughterPiPdgCode = mcparticleDaughter.pdgCode();
916908
} else if (std::abs(mcparticleDaughter.pdgCode()) == o2::constants::physics::Pdg::kDeuteron) { // deuteron
917-
this3BodyMCInfo.genMomDeuteron = mcparticleDaughter.p();
918-
this3BodyMCInfo.genPtDeuteron = mcparticleDaughter.pt();
909+
this3BodyMCInfo.genMomDeuteron = {mcparticleDaughter.px(), mcparticleDaughter.py(), mcparticleDaughter.pz()};
919910
this3BodyMCInfo.daughterDePdgCode = mcparticleDaughter.pdgCode();
920911
this3BodyMCInfo.isDeuteronPrimary = mcparticleDaughter.isPhysicalPrimary();
921912
}
@@ -957,8 +948,9 @@ struct decay3bodyBuilder {
957948
this3BodyMCInfo.genDecVtx[0], this3BodyMCInfo.genDecVtx[1], this3BodyMCInfo.genDecVtx[2],
958949
this3BodyMCInfo.genCt,
959950
mcparticle.phi(), mcparticle.eta(), mcparticle.y(),
960-
this3BodyMCInfo.genMomProton, this3BodyMCInfo.genMomPion, this3BodyMCInfo.genMomDeuteron,
961-
this3BodyMCInfo.genPtProton, this3BodyMCInfo.genPtPion, this3BodyMCInfo.genPtDeuteron,
951+
this3BodyMCInfo.genMomProton[0], this3BodyMCInfo.genMomProton[1], this3BodyMCInfo.genMomProton[2],
952+
this3BodyMCInfo.genMomPion[0], this3BodyMCInfo.genMomPion[1], this3BodyMCInfo.genMomPion[2],
953+
this3BodyMCInfo.genMomDeuteron[0], this3BodyMCInfo.genMomDeuteron[1], this3BodyMCInfo.genMomDeuteron[2],
962954
this3BodyMCInfo.isReco,
963955
mcparticle.globalIndex(), // motherLabel
964956
mcparticle.pdgCode(), // motherPdgCode
@@ -1153,8 +1145,9 @@ struct decay3bodyBuilder {
11531145
this3BodyMCInfo.genDecVtx[0], this3BodyMCInfo.genDecVtx[1], this3BodyMCInfo.genDecVtx[2],
11541146
this3BodyMCInfo.genCt,
11551147
this3BodyMCInfo.genPhi, this3BodyMCInfo.genEta, this3BodyMCInfo.genRapidity,
1156-
this3BodyMCInfo.genMomProton, this3BodyMCInfo.genMomPion, this3BodyMCInfo.genMomDeuteron,
1157-
this3BodyMCInfo.genPtProton, this3BodyMCInfo.genPtPion, this3BodyMCInfo.genPtDeuteron,
1148+
this3BodyMCInfo.genMomProton[0], this3BodyMCInfo.genMomProton[1], this3BodyMCInfo.genMomProton[2],
1149+
this3BodyMCInfo.genMomPion[0], this3BodyMCInfo.genMomPion[1], this3BodyMCInfo.genMomPion[2],
1150+
this3BodyMCInfo.genMomDeuteron[0], this3BodyMCInfo.genMomDeuteron[1], this3BodyMCInfo.genMomDeuteron[2],
11581151
this3BodyMCInfo.isReco,
11591152
this3BodyMCInfo.motherLabel,
11601153
this3BodyMCInfo.motherPdgCode,
@@ -1280,8 +1273,9 @@ struct decay3bodyBuilder {
12801273
mcInfo.genDecVtx[0] = -1., mcInfo.genDecVtx[1] = -1., mcInfo.genDecVtx[2] = -1.;
12811274
mcInfo.genCt = -1.;
12821275
mcInfo.genPhi = -1., mcInfo.genEta = -1., mcInfo.genRapidity = -1.;
1283-
mcInfo.genMomProton = -1., mcInfo.genMomPion = -1., mcInfo.genMomDeuteron = -1.;
1284-
mcInfo.genPtProton = -1., mcInfo.genPtPion = -1., mcInfo.genPtDeuteron = -1.;
1276+
mcInfo.genMomProton[0] = -1., mcInfo.genMomProton[1] = -1., mcInfo.genMomProton[2] = -1.;
1277+
mcInfo.genMomPion[0] = -1., mcInfo.genMomPion[1] = -1., mcInfo.genMomPion[2] = -1.;
1278+
mcInfo.genMomDeuteron[0] = -1., mcInfo.genMomDeuteron[1] = -1., mcInfo.genMomDeuteron[2] = -1.;
12851279
mcInfo.isReco = false;
12861280
mcInfo.motherPdgCode = 0;
12871281
mcInfo.daughterPrPdgCode = -1, mcInfo.daughterPiPdgCode = -1, mcInfo.daughterDePdgCode = -1;

0 commit comments

Comments
 (0)