@@ -74,43 +74,45 @@ DECLARE_SOA_COLUMN(NeutronClass, neutronClass, int);
7474// pion tracks
7575DECLARE_SOA_COLUMN (PhiRandom, phiRandom, float );
7676DECLARE_SOA_COLUMN (PhiCharge, phiCharge, float );
77- DECLARE_SOA_COLUMN (PosTrackSign, posTrackSign, int );
78- DECLARE_SOA_COLUMN (NegTrackSign, negTrackSign, int );
79- DECLARE_SOA_COLUMN (PosTrackPt, posTrackPt, float );
80- DECLARE_SOA_COLUMN (NegTrackPt, negTrackPt, float );
81- DECLARE_SOA_COLUMN (PosTrackEta, posTrackEta, float );
82- DECLARE_SOA_COLUMN (NegTrackEta, negTrackEta, float );
83- DECLARE_SOA_COLUMN (PosTrackPhi, posTrackPhi, float );
84- DECLARE_SOA_COLUMN (NegTrackPhi, negTrackPhi, float );
85- DECLARE_SOA_COLUMN (PosTrackPiPID, posTrackPiPID, float );
86- DECLARE_SOA_COLUMN (NegTrackPiPID, negTrackPiPID, float );
87- DECLARE_SOA_COLUMN (PosTrackElPID, posTrackElPID, float );
88- DECLARE_SOA_COLUMN (NegTrackElPID, negTrackElPID, float );
89- DECLARE_SOA_COLUMN (PosTrackKaPID, posTrackKaPID, float );
90- DECLARE_SOA_COLUMN (NegTrackKaPID, negTrackKaPID, float );
91- DECLARE_SOA_COLUMN (PosTrackDcaXY, posTrackDcaXY, float );
92- DECLARE_SOA_COLUMN (NegTrackDcaXY, negTrackDcaXY, float );
93- DECLARE_SOA_COLUMN (PosTrackDcaZ, posTrackDcaZ, float );
94- DECLARE_SOA_COLUMN (NegTrackDcaZ, negTrackDcaZ, float );
95- DECLARE_SOA_COLUMN (PosTrackTpcSignal, posTrackTpcSignal, float );
96- DECLARE_SOA_COLUMN (NegTrackTpcSignal, negTrackTpcSignal, float );
77+ DECLARE_SOA_COLUMN (LeadingTrackSign, leadingTrackSign, int );
78+ DECLARE_SOA_COLUMN (SubleadingTrackSign, subleadingTrackSign, int );
79+ DECLARE_SOA_COLUMN (LeadingTrackPt, leadingTrackPt, float );
80+ DECLARE_SOA_COLUMN (SubleadingTrackPt, subleadingTrackPt, float );
81+ DECLARE_SOA_COLUMN (LeadingTrackEta, leadingTrackEta, float );
82+ DECLARE_SOA_COLUMN (SubleadingTrackEta, subleadingTrackEta, float );
83+ DECLARE_SOA_COLUMN (LeadingTrackPhi, leadingTrackPhi, float );
84+ DECLARE_SOA_COLUMN (SubleadingTrackPhi, subleadingTrackPhi, float );
85+ DECLARE_SOA_COLUMN (SubleadingTrackPiPID, subleadingTrackPiPID, float );
86+ DECLARE_SOA_COLUMN (LeadingTrackElPID, leadingTrackElPID, float );
87+ DECLARE_SOA_COLUMN (SubleadingTrackElPID, subleadingTrackElPID, float );
88+ DECLARE_SOA_COLUMN (LeadingTrackKaPID, leadingTrackKaPID, float );
89+ DECLARE_SOA_COLUMN (SubleadingTrackKaPID, subleadingTrackKaPID, float );
90+ DECLARE_SOA_COLUMN (LeadingTrackPrPID, leadingTrackPrPID, float );
91+ DECLARE_SOA_COLUMN (SubleadingTrackPrPID, subleadingTrackPrPID, float );
92+ DECLARE_SOA_COLUMN (LeadingTrackDcaXY, leadingTrackDcaXY, float );
93+ DECLARE_SOA_COLUMN (SubleadingTrackDcaXY, subleadingTrackDcaXY, float );
94+ DECLARE_SOA_COLUMN (LeadingTrackDcaZ, leadingTrackDcaZ, float );
95+ DECLARE_SOA_COLUMN (SubleadingTrackDcaZ, subleadingTrackDcaZ, float );
96+ DECLARE_SOA_COLUMN (LeadingTrackTpcSignal, leadingTrackTpcSignal, float );
97+ DECLARE_SOA_COLUMN (SubleadingTrackTpcSignal, subleadingTrackTpcSignal, float );
9798} // namespace reco_tree
9899DECLARE_SOA_TABLE (RecoTree, " AOD" , " RECOTREE" ,
99100 reco_tree::RecoSetting, reco_tree::RunNumber, reco_tree::LocalBC, reco_tree::NumContrib, reco_tree::PosX, reco_tree::PosY, reco_tree::PosZ,
100101 reco_tree::TotalFT0AmplitudeA, reco_tree::TotalFT0AmplitudeC, reco_tree::TotalFV0AmplitudeA, reco_tree::TotalFDDAmplitudeA, reco_tree::TotalFDDAmplitudeC,
101102 reco_tree::TimeFT0A, reco_tree::TimeFT0C, reco_tree::TimeFV0A, reco_tree::TimeFDDA, reco_tree::TimeFDDC,
102103 reco_tree::EnergyCommonZNA, reco_tree::EnergyCommonZNC, reco_tree::TimeZNA, reco_tree::TimeZNC, reco_tree::NeutronClass,
103104 reco_tree::PhiRandom, reco_tree::PhiCharge,
104- reco_tree::PosTrackSign, reco_tree::NegTrackSign,
105- reco_tree::PosTrackPt, reco_tree::NegTrackPt,
106- reco_tree::PosTrackEta, reco_tree::NegTrackEta,
107- reco_tree::PosTrackPhi, reco_tree::NegTrackPhi,
108- reco_tree::PosTrackPiPID, reco_tree::NegTrackPiPID,
109- reco_tree::PosTrackElPID, reco_tree::NegTrackElPID,
110- reco_tree::PosTrackKaPID, reco_tree::NegTrackKaPID,
111- reco_tree::PosTrackDcaXY, reco_tree::NegTrackDcaXY,
112- reco_tree::PosTrackDcaZ, reco_tree::NegTrackDcaZ,
113- reco_tree::PosTrackTpcSignal, reco_tree::NegTrackTpcSignal);
105+ reco_tree::LeadingTrackSign, reco_tree::SubleadingTrackSign,
106+ reco_tree::LeadingTrackPt, reco_tree::SubleadingTrackPt,
107+ reco_tree::LeadingTrackEta, reco_tree::SubleadingTrackEta,
108+ reco_tree::LeadingTrackPhi, reco_tree::SubleadingTrackPhi,
109+ reco_tree::LeadingTrackPiPID, reco_tree::SubleadingTrackPiPID,
110+ reco_tree::LeadingTrackElPID, reco_tree::SubleadingTrackElPID,
111+ reco_tree::LeadingTrackKaPID, reco_tree::SubleadingTrackKaPID,
112+ reco_tree::LeadingTrackPrPID, reco_tree::SubleadingTrackPrPID,
113+ reco_tree::LeadingTrackDcaXY, reco_tree::SubleadingTrackDcaXY,
114+ reco_tree::LeadingTrackDcaZ, reco_tree::SubleadingTrackDcaZ,
115+ reco_tree::LeadingTrackTpcSignal, reco_tree::SubleadingTrackTpcSignal);
114116
115117namespace mc_tree
116118{
@@ -124,23 +126,23 @@ DECLARE_SOA_COLUMN(PosZ, posZ, float);
124126// pion tracks
125127DECLARE_SOA_COLUMN (PhiRandom, phiRandom, float );
126128DECLARE_SOA_COLUMN (PhiCharge, phiCharge, float );
127- DECLARE_SOA_COLUMN (PosTrackSign, posTrackSign , int );
128- DECLARE_SOA_COLUMN (NegTrackSign, negTrackSign , int );
129- DECLARE_SOA_COLUMN (PosTrackPt, posTrackPt , float );
130- DECLARE_SOA_COLUMN (NegTrackPt, negTrackPt , float );
131- DECLARE_SOA_COLUMN (PosTrackEta, posTrackEta , float );
132- DECLARE_SOA_COLUMN (NegTrackEta, negTrackEta , float );
133- DECLARE_SOA_COLUMN (PosTrackPhi, posTrackPhi , float );
134- DECLARE_SOA_COLUMN (NegTrackPhi, negTrackPhi , float );
129+ DECLARE_SOA_COLUMN (LeadingTrackSign, leadingTrackSign , int );
130+ DECLARE_SOA_COLUMN (SubleadingTrackSign, subleadingTrackSign , int );
131+ DECLARE_SOA_COLUMN (LeadingTrackPt, leadingTrackPt , float );
132+ DECLARE_SOA_COLUMN (SubleadingTrackPt, subleadingTrackPt , float );
133+ DECLARE_SOA_COLUMN (LeadingTrackEta, leadingTrackEta , float );
134+ DECLARE_SOA_COLUMN (SubleadingTrackEta, subleadingTrackEta , float );
135+ DECLARE_SOA_COLUMN (LeadingTrackPhi, leadingTrackPhi , float );
136+ DECLARE_SOA_COLUMN (SubleadingTrackPhi, subleadingTrackPhi , float );
135137} // namespace mc_tree
136138DECLARE_SOA_TABLE (McTree, " AOD" , " MCTREE" ,
137139 mc_tree::LocalBc, mc_tree::RunNumber,
138140 mc_tree::PosX, mc_tree::PosY, mc_tree::PosZ,
139141 mc_tree::PhiRandom, mc_tree::PhiCharge,
140- mc_tree::PosTrackSign , mc_tree::NegTrackSign ,
141- mc_tree::PosTrackPt , mc_tree::NegTrackPt ,
142- mc_tree::PosTrackEta , mc_tree::NegTrackEta ,
143- mc_tree::PosTrackPhi , mc_tree::NegTrackPhi );
142+ mc_tree::LeadingTrackSign , mc_tree::SubleadingTrackSign ,
143+ mc_tree::LeadingTrackPt , mc_tree::SubleadingTrackPt ,
144+ mc_tree::LeadingTrackEta , mc_tree::SubleadingTrackEta ,
145+ mc_tree::LeadingTrackPhi , mc_tree::SubleadingTrackPhi );
144146} // namespace o2::aod
145147
146148struct UpcRhoAnalysis {
@@ -795,37 +797,35 @@ struct UpcRhoAnalysis {
795797 }
796798
797799 // differentiate leading- and subleading-momentum tracks
798- auto leadingMomentumTrack = momentum (cutTracks[0 ].px (), cutTracks[0 ].py (), cutTracks[0 ].pz ()) > momentum (cutTracks[1 ].px (), cutTracks[1 ].py (), cutTracks[1 ].pz ()) ? cutTracks[0 ] : cutTracks[1 ];
799- auto subleadingMomentumTrack = (leadingMomentumTrack == cutTracks[0 ]) ? cutTracks[1 ] : cutTracks[0 ];
800-
801- auto positiveTrack = cutTracks[0 ].sign () == 1 ? cutTracks[0 ] : cutTracks[1 ];
802- auto negativeTrack = cutTracks[0 ].sign () == -1 ? cutTracks[0 ] : cutTracks[1 ];
803-
804- float leadingPt = leadingMomentumTrack.pt ();
805- float subleadingPt = subleadingMomentumTrack.pt ();
806- float leadingEta = eta (leadingMomentumTrack.px (), leadingMomentumTrack.py (), leadingMomentumTrack.pz ());
807- float subleadingEta = eta (subleadingMomentumTrack.px (), subleadingMomentumTrack.py (), subleadingMomentumTrack.pz ());
808- float leadingPhi = phi (leadingMomentumTrack.px (), leadingMomentumTrack.py ());
809- float subleadingPhi = phi (subleadingMomentumTrack.px (), subleadingMomentumTrack.py ());
800+ auto leadingTrack = momentum (cutTracks[0 ].px (), cutTracks[0 ].py (), cutTracks[0 ].pz ()) > momentum (cutTracks[1 ].px (), cutTracks[1 ].py (), cutTracks[1 ].pz ()) ? cutTracks[0 ] : cutTracks[1 ];
801+ auto subleadingTrack = (leadingTrack == cutTracks[0 ]) ? cutTracks[1 ] : cutTracks[0 ];
802+
803+ float leadingPt = leadingTrack.pt ();
804+ float subleadingPt = subleadingTrack.pt ();
805+ float leadingEta = eta (leadingTrack.px (), leadingTrack.py (), leadingTrack.pz ());
806+ float subleadingEta = eta (subleadingTrack.px (), subleadingTrack.py (), subleadingTrack.pz ());
807+ float leadingPhi = phi (leadingTrack.px (), leadingTrack.py ());
808+ float subleadingPhi = phi (subleadingTrack.px (), subleadingTrack.py ());
810809 float phiRandom = getPhiRandom (cutTracksLVs);
811810 float phiCharge = getPhiCharge (cutTracks, cutTracksLVs);
812811
813812 // fill recoTree
814813 recoTree (collision.flags (), collision.runNumber (), collision.globalBC () % o2::constants::lhc::LHCMaxBunches, collision.numContrib (), collision.posX (), collision.posY (), collision.posZ (),
815- collision.totalFT0AmplitudeA (), collision.totalFT0AmplitudeC (), collision.totalFV0AmplitudeA (), collision.totalFDDAmplitudeA (), collision.totalFDDAmplitudeC (),
816- collision.timeFT0A (), collision.timeFT0C (), collision.timeFV0A (), collision.timeFDDA (), collision.timeFDDC (),
817- energyCommonZNA, energyCommonZNC, timeZNA, timeZNC, neutronClass,
818- phiRandom, phiCharge,
819- positiveTrack.sign (), negativeTrack.sign (),
820- positiveTrack.pt (), negativeTrack.pt (),
821- eta (positiveTrack.px (), positiveTrack.py (), positiveTrack.pz ()), eta (negativeTrack.px (), negativeTrack.py (), negativeTrack.pz ()),
822- phi (positiveTrack.px (), positiveTrack.py ()), phi (negativeTrack.px (), negativeTrack.py ()),
823- positiveTrack.tpcNSigmaPi (), negativeTrack.tpcNSigmaPi (),
824- positiveTrack.tpcNSigmaEl (), negativeTrack.tpcNSigmaEl (),
825- positiveTrack.tpcNSigmaKa (), negativeTrack.tpcNSigmaKa (),
826- positiveTrack.dcaXY (), negativeTrack.dcaXY (),
827- positiveTrack.dcaZ (), negativeTrack.dcaZ (),
828- positiveTrack.tpcSignal (), negativeTrack.tpcSignal ());
814+ collision.totalFT0AmplitudeA (), collision.totalFT0AmplitudeC (), collision.totalFV0AmplitudeA (), collision.totalFDDAmplitudeA (), collision.totalFDDAmplitudeC (),
815+ collision.timeFT0A (), collision.timeFT0C (), collision.timeFV0A (), collision.timeFDDA (), collision.timeFDDC (),
816+ energyCommonZNA, energyCommonZNC, timeZNA, timeZNC, neutronClass,
817+ phiRandom, phiCharge,
818+ leadingTrack.sign (), subleadingTrack.sign (),
819+ leadingPt, subleadingPt,
820+ leadingEta, subleadingEta,
821+ leadingPhi, subleadingPhi,
822+ leadingTrack.tpcNSigmaPi (), subleadingTrack.tpcNSigmaPi (),
823+ leadingTrack.tpcNSigmaEl (), subleadingTrack.tpcNSigmaEl (),
824+ leadingTrack.tpcNSigmaKa (), subleadingTrack.tpcNSigmaKa (),
825+ leadingTrack.tpcNSigmaPr (), subleadingTrack.tpcNSigmaPr (),
826+ leadingTrack.dcaXY (), subleadingTrack.dcaXY (),
827+ leadingTrack.dcaZ (), subleadingTrack.dcaZ (),
828+ leadingTrack.tpcSignal (), subleadingTrack.tpcSignal ());
829829
830830 if (!tracksPassPID (cutTracks)) // apply PID cut
831831 return ;
@@ -835,7 +835,7 @@ struct UpcRhoAnalysis {
835835 rQC.fill (HIST (" QC/tracks/hSelectionCounterPerRun" ), 16 , runIndex);
836836 fillTrackQcHistos<1 >(cutTrack); // fill QC histograms after cuts
837837 }
838- rQC.fill (HIST (" QC/tracks/hTofHitCheck" ), leadingMomentumTrack .hasTOF (), subleadingMomentumTrack .hasTOF ());
838+ rQC.fill (HIST (" QC/tracks/hTofHitCheck" ), leadingTrack .hasTOF (), subleadingTrack .hasTOF ());
839839 fillCollisionQcHistos<1 >(collision); // fill QC histograms after track selections
840840
841841 ROOT::Math::PxPyPzMVector system = reconstructSystem (cutTracksLVs);
@@ -983,11 +983,11 @@ struct UpcRhoAnalysis {
983983 float phiRandom = getPhiRandom (mcParticlesLVs);
984984 float phiCharge = getPhiChargeMC (cutMcParticles, mcParticlesLVs);
985985
986- auto leadingMomentumPion = momentum (cutMcParticles[0 ].px (), cutMcParticles[0 ].py (), cutMcParticles[0 ].pz ()) > momentum (cutMcParticles[1 ].px (), cutMcParticles[1 ].py (), cutMcParticles[1 ].pz ()) ? cutMcParticles[0 ] : cutMcParticles[1 ];
987- auto subleadingMomentumPion = (leadingMomentumPion == cutMcParticles[0 ]) ? cutMcParticles[1 ] : cutMcParticles[0 ];
988- rMC.fill (HIST (" MC/tracks/hPt" ), pt (leadingMomentumPion .px (), leadingMomentumPion .py ()), pt (subleadingMomentumPion .px (), subleadingMomentumPion .py ()));
989- rMC.fill (HIST (" MC/tracks/hEta" ), eta (leadingMomentumPion .px (), leadingMomentumPion .py (), leadingMomentumPion .pz ()), eta (subleadingMomentumPion .px (), subleadingMomentumPion .py (), subleadingMomentumPion .pz ()));
990- rMC.fill (HIST (" MC/tracks/hPhi" ), phi (leadingMomentumPion .px (), leadingMomentumPion .py ()), phi (subleadingMomentumPion .px (), subleadingMomentumPion .py ()));
986+ auto leadingPion = momentum (cutMcParticles[0 ].px (), cutMcParticles[0 ].py (), cutMcParticles[0 ].pz ()) > momentum (cutMcParticles[1 ].px (), cutMcParticles[1 ].py (), cutMcParticles[1 ].pz ()) ? cutMcParticles[0 ] : cutMcParticles[1 ];
987+ auto subleadingPion = (leadingPion == cutMcParticles[0 ]) ? cutMcParticles[1 ] : cutMcParticles[0 ];
988+ rMC.fill (HIST (" MC/tracks/hPt" ), pt (leadingPion .px (), leadingPion .py ()), pt (subleadingPion .px (), subleadingPion .py ()));
989+ rMC.fill (HIST (" MC/tracks/hEta" ), eta (leadingPion .px (), leadingPion .py (), leadingPion .pz ()), eta (subleadingPion .px (), subleadingPion .py (), subleadingPion .pz ()));
990+ rMC.fill (HIST (" MC/tracks/hPhi" ), phi (leadingPion .px (), leadingPion .py ()), phi (subleadingPion .px (), subleadingPion .py ()));
991991
992992 rMC.fill (HIST (" MC/system/hM" ), mass);
993993 rMC.fill (HIST (" MC/system/hPt" ), pT);
@@ -1014,15 +1014,13 @@ struct UpcRhoAnalysis {
10141014 }
10151015
10161016 // fill mcTree
1017- auto positivePion = cutMcParticles[0 ].pdgCode () > 0 ? cutMcParticles[0 ] : cutMcParticles[1 ];
1018- auto negativePion = cutMcParticles[0 ].pdgCode () > 0 ? cutMcParticles[1 ] : cutMcParticles[0 ];
10191017 mcTree (mcCollision.globalBC () % o2::constants::lhc::LHCMaxBunches, runNumber,
10201018 mcCollision.posX (), mcCollision.posY (), mcCollision.posZ (),
10211019 phiRandom, phiCharge,
1022- positivePion .pdgCode () / std::abs (positivePion .pdgCode ()), negativePion .pdgCode () / std::abs (negativePion .pdgCode ()),
1023- pt (positivePion .px (), positivePion .py ()), pt (negativePion .px (), negativePion .py ()),
1024- eta (positivePion .px (), positivePion .py (), positivePion .pz ()), eta (negativePion .px (), negativePion .py (), negativePion .pz ()),
1025- phi (positivePion .px (), positivePion .py ()), phi (negativePion .px (), negativePion .py ()));
1020+ leadingPion .pdgCode () / std::abs (leadingPion .pdgCode ()), subleadingPion .pdgCode () / std::abs (subleadingPion .pdgCode ()),
1021+ pt (leadingPion .px (), leadingPion .py ()), pt (subleadingPion .px (), subleadingPion .py ()),
1022+ eta (leadingPion .px (), leadingPion .py (), leadingPion .pz ()), eta (subleadingPion .px (), subleadingPion .py (), subleadingPion .pz ()),
1023+ phi (leadingPion .px (), leadingPion .py ()), phi (subleadingPion .px (), subleadingPion .py ()));
10261024 }
10271025
10281026 template <typename C>
0 commit comments