@@ -568,6 +568,9 @@ struct UpcRhoAnalysis {
568568 auto subleadingMomentumTrack = (leadingMomentumTrack == cutTracks[0 ]) ? cutTracks[1 ] : cutTracks[0 ];
569569 rQC.fill (HIST (" QC/tracks/hTofHitCheck" ), leadingMomentumTrack.hasTOF (), subleadingMomentumTrack.hasTOF ());
570570
571+ auto positiveTrack = cutTracks[0 ].sign () > 0 ? cutTracks[0 ] : cutTracks[1 ];
572+ auto negativeTrack = cutTracks[0 ].sign () > 0 ? cutTracks[1 ] : cutTracks[0 ];
573+
571574 float leadingPt = leadingMomentumTrack.pt ();
572575 float subleadingPt = subleadingMomentumTrack.pt ();
573576 float leadingEta = eta (leadingMomentumTrack.px (), leadingMomentumTrack.py (), leadingMomentumTrack.pz ());
@@ -579,16 +582,16 @@ struct UpcRhoAnalysis {
579582
580583 // fill recoTree
581584 int localBc = collision.globalBC () % o2::constants::lhc::LHCMaxBunches;
582- int trackSigns[2 ] = {leadingMomentumTrack .sign (), subleadingMomentumTrack .sign ()};
583- float trackPts[2 ] = {leadingPt, subleadingPt };
584- float trackEtas[2 ] = {leadingEta, subleadingEta };
585- float trackPhis[2 ] = {leadingPhi, subleadingPhi };
586- float trackPiPIDs[2 ] = {leadingMomentumTrack .tpcNSigmaPi (), subleadingMomentumTrack .tpcNSigmaPi ()};
587- float trackElPIDs[2 ] = {leadingMomentumTrack .tpcNSigmaEl (), subleadingMomentumTrack .tpcNSigmaEl ()};
588- float trackKaPIDs[2 ] = {leadingMomentumTrack .tpcNSigmaKa (), subleadingMomentumTrack .tpcNSigmaKa ()};
589- float trackDcaXYs[2 ] = {leadingMomentumTrack .dcaXY (), subleadingMomentumTrack .dcaXY ()};
590- float trackDcaZs[2 ] = {leadingMomentumTrack .dcaZ (), subleadingMomentumTrack .dcaZ ()};
591- float trackTpcSignals[2 ] = {leadingMomentumTrack .tpcSignal (), subleadingMomentumTrack .tpcSignal ()};
585+ int trackSigns[2 ] = {positiveTrack .sign (), negativeTrack .sign ()};
586+ float trackPts[2 ] = {positiveTrack. pt (), negativeTrack. pt () };
587+ float trackEtas[2 ] = {eta (positiveTrack. px (), positiveTrack. py (), positiveTrack. pz ()), eta (negativeTrack. px (), negativeTrack. py (), negativeTrack. pz ()) };
588+ float trackPhis[2 ] = {phi (positiveTrack. px (), positiveTrack. py ()), phi (negativeTrack. px (), negativeTrack. py ()) };
589+ float trackPiPIDs[2 ] = {positiveTrack .tpcNSigmaPi (), negativeTrack .tpcNSigmaPi ()};
590+ float trackElPIDs[2 ] = {positiveTrack .tpcNSigmaEl (), negativeTrack .tpcNSigmaEl ()};
591+ float trackKaPIDs[2 ] = {positiveTrack .tpcNSigmaKa (), negativeTrack .tpcNSigmaKa ()};
592+ float trackDcaXYs[2 ] = {positiveTrack .dcaXY (), negativeTrack .dcaXY ()};
593+ float trackDcaZs[2 ] = {positiveTrack .dcaZ (), negativeTrack .dcaZ ()};
594+ float trackTpcSignals[2 ] = {positiveTrack .tpcSignal (), negativeTrack .tpcSignal ()};
592595 if ((savePions && tracksPassPiPID (cutTracks)) || (saveElectrons && tracksPassElPID (cutTracks)) || (saveKaons && tracksPassKaPID (cutTracks)))
593596 recoTree (collision.runNumber (), localBc, collision.numContrib (), collision.posX (), collision.posY (), collision.posZ (),
594597 collision.totalFT0AmplitudeA (), collision.totalFT0AmplitudeC (), collision.totalFV0AmplitudeA (), collision.totalFDDAmplitudeA (), collision.totalFDDAmplitudeC (),
@@ -723,6 +726,9 @@ struct UpcRhoAnalysis {
723726 rMC.fill (HIST (" MC/tracks/hEta" ), eta (leadingMomentumPion.px (), leadingMomentumPion.py (), leadingMomentumPion.pz ()), eta (subleadingMomentumPion.px (), subleadingMomentumPion.py (), subleadingMomentumPion.pz ()));
724727 rMC.fill (HIST (" MC/tracks/hPhi" ), phi (leadingMomentumPion.px (), leadingMomentumPion.py ()), phi (subleadingMomentumPion.px (), subleadingMomentumPion.py ()));
725728
729+ auto positivePion = cutMcParticles[0 ].pdgCode () > 0 ? cutMcParticles[0 ] : cutMcParticles[1 ];
730+ auto negativePion = cutMcParticles[0 ].pdgCode () > 0 ? cutMcParticles[1 ] : cutMcParticles[0 ];
731+
726732 rMC.fill (HIST (" MC/system/hM" ), mass);
727733 rMC.fill (HIST (" MC/system/hPt" ), pT);
728734 rMC.fill (HIST (" MC/system/hPtVsM" ), mass, pT);
@@ -745,10 +751,10 @@ struct UpcRhoAnalysis {
745751
746752 // fill mcTree
747753 int localBc = mcCollision.globalBC () % o2::constants::lhc::LHCMaxBunches;
748- int trackSigns[2 ] = {leadingMomentumPion .pdgCode () / std::abs (leadingMomentumPion .pdgCode ()), subleadingMomentumPion .pdgCode () / std::abs (subleadingMomentumPion .pdgCode ())};
749- float trackPts[2 ] = {pt (leadingMomentumPion .px (), leadingMomentumPion .py ()), pt (subleadingMomentumPion .px (), subleadingMomentumPion .py ())};
750- float trackEtas[2 ] = {eta (leadingMomentumPion .px (), leadingMomentumPion .py (), leadingMomentumPion .pz ()), eta (subleadingMomentumPion .px (), subleadingMomentumPion .py (), subleadingMomentumPion .pz ())};
751- float trackPhis[2 ] = {phi (leadingMomentumPion .px (), leadingMomentumPion .py ()), phi (subleadingMomentumPion .px (), subleadingMomentumPion .py ())};
754+ int trackSigns[2 ] = {positivePion .pdgCode () / std::abs (positivePion .pdgCode ()), negativePion .pdgCode () / std::abs (negativePion .pdgCode ())};
755+ float trackPts[2 ] = {pt (positivePion .px (), positivePion .py ()), pt (negativePion .px (), negativePion .py ())};
756+ float trackEtas[2 ] = {eta (positivePion .px (), positivePion .py (), positivePion .pz ()), eta (negativePion .px (), negativePion .py (), negativePion .pz ())};
757+ float trackPhis[2 ] = {phi (positivePion .px (), positivePion .py ()), phi (negativePion .px (), negativePion .py ())};
752758 mcTree (localBc,
753759 mcCollision.posX (), mcCollision.posY (), mcCollision.posZ (),
754760 phiRandom, phiCharge, trackSigns, trackPts, trackEtas, trackPhis);
0 commit comments