@@ -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