@@ -74,23 +74,43 @@ 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 (TrackSign, trackSign, int [2 ]);
78- DECLARE_SOA_COLUMN (TrackPt, trackPt, float [2 ]);
79- DECLARE_SOA_COLUMN (TrackEta, trackEta, float [2 ]);
80- DECLARE_SOA_COLUMN (TrackPhi, trackPhi, float [2 ]);
81- DECLARE_SOA_COLUMN (TrackPiPID, trackPiPID, float [2 ]);
82- DECLARE_SOA_COLUMN (TrackElPID, trackElPID, float [2 ]);
83- DECLARE_SOA_COLUMN (TrackKaPID, trackKaPID, float [2 ]);
84- DECLARE_SOA_COLUMN (TrackDcaXY, trackDcaXY, float [2 ]);
85- DECLARE_SOA_COLUMN (TrackDcaZ, trackDcaZ, float [2 ]);
86- DECLARE_SOA_COLUMN (TrackTpcSignal, trackTpcSignal, float [2 ]);
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 );
8797} // namespace reco_tree
8898DECLARE_SOA_TABLE (RecoTree, " AOD" , " RECOTREE" ,
8999 reco_tree::RecoSetting, reco_tree::RunNumber, reco_tree::LocalBC, reco_tree::NumContrib, reco_tree::PosX, reco_tree::PosY, reco_tree::PosZ,
90100 reco_tree::TotalFT0AmplitudeA, reco_tree::TotalFT0AmplitudeC, reco_tree::TotalFV0AmplitudeA, reco_tree::TotalFDDAmplitudeA, reco_tree::TotalFDDAmplitudeC,
91101 reco_tree::TimeFT0A, reco_tree::TimeFT0C, reco_tree::TimeFV0A, reco_tree::TimeFDDA, reco_tree::TimeFDDC,
92102 reco_tree::EnergyCommonZNA, reco_tree::EnergyCommonZNC, reco_tree::TimeZNA, reco_tree::TimeZNC, reco_tree::NeutronClass,
93- reco_tree::PhiRandom, reco_tree::PhiCharge, reco_tree::TrackSign, reco_tree::TrackPt, reco_tree::TrackEta, reco_tree::TrackPhi, reco_tree::TrackPiPID, reco_tree::TrackElPID, reco_tree::TrackKaPID, reco_tree::TrackDcaXY, reco_tree::TrackDcaZ, reco_tree::TrackTpcSignal);
103+ 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);
94114
95115namespace mc_tree
96116{
@@ -104,15 +124,23 @@ DECLARE_SOA_COLUMN(PosZ, posZ, float);
104124// pion tracks
105125DECLARE_SOA_COLUMN (PhiRandom, phiRandom, float );
106126DECLARE_SOA_COLUMN (PhiCharge, phiCharge, float );
107- DECLARE_SOA_COLUMN (TrackSign, trackSign, int [2 ]);
108- DECLARE_SOA_COLUMN (TrackPt, trackPt, float [2 ]);
109- DECLARE_SOA_COLUMN (TrackEta, trackEta, float [2 ]);
110- DECLARE_SOA_COLUMN (TrackPhi, trackPhi, float [2 ]);
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 );
111135} // namespace mc_tree
112136DECLARE_SOA_TABLE (McTree, " AOD" , " MCTREE" ,
113137 mc_tree::LocalBc, mc_tree::RunNumber,
114138 mc_tree::PosX, mc_tree::PosY, mc_tree::PosZ,
115- mc_tree::PhiRandom, mc_tree::PhiCharge, mc_tree::TrackSign, mc_tree::TrackPt, mc_tree::TrackEta, mc_tree::TrackPhi);
139+ 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);
116144} // namespace o2::aod
117145
118146struct UpcRhoAnalysis {
@@ -262,6 +290,7 @@ struct UpcRhoAnalysis {
262290 rQC.add (" QC/tracks/hPiPIDRadius" , " ;#it{n#sigma}(#pi) radius;counts" , kTH1D , {{1000 , 0.0 , 10.0 }});
263291 rQC.add (" QC/tracks/hElPIDRadius" , " ;#it{n#sigma}(e) radius;counts" , kTH1D , {{1000 , 0.0 , 10.0 }});
264292 rQC.add (" QC/tracks/hKaPIDRadius" , " ;#it{n#sigma}(K) radius;counts" , kTH1D , {{1000 , 0.0 , 10.0 }});
293+ rQC.add (" QC/tracks/hPrPIDRadius" , " ;#it{n#sigma}(p) radius;counts" , kTH1D , {{1000 , 0.0 , 10.0 }});
265294
266295 // TRACKS (2D)
267296 rTracks.add (" tracks/trackSelections/unlike-sign/hPt" , " ;#it{p}_{T leading} (GeV/#it{c});#it{p}_{T subleading} (GeV/#it{c});counts" , kTH2D , {ptAxis, ptAxis});
@@ -764,8 +793,8 @@ struct UpcRhoAnalysis {
764793 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 ];
765794 auto subleadingMomentumTrack = (leadingMomentumTrack == cutTracks[0 ]) ? cutTracks[1 ] : cutTracks[0 ];
766795
767- auto positiveTrack = cutTracks[0 ].sign () > 0 ? cutTracks[0 ] : cutTracks[1 ];
768- auto negativeTrack = cutTracks[0 ].sign () > 0 ? cutTracks[1 ] : cutTracks[0 ];
796+ auto positiveTrack = cutTracks[0 ].sign () == 1 ? cutTracks[0 ] : cutTracks[1 ];
797+ auto negativeTrack = cutTracks[0 ].sign () == - 1 ? cutTracks[0 ] : cutTracks[1 ];
769798
770799 float leadingPt = leadingMomentumTrack.pt ();
771800 float subleadingPt = subleadingMomentumTrack.pt ();
@@ -778,21 +807,41 @@ struct UpcRhoAnalysis {
778807
779808 // fill recoTree
780809 int localBc = collision.globalBC () % o2::constants::lhc::LHCMaxBunches;
781- int trackSigns[2 ] = {positiveTrack.sign (), negativeTrack.sign ()};
782- float trackPts[2 ] = {positiveTrack.pt (), negativeTrack.pt ()};
783- float trackEtas[2 ] = {eta (positiveTrack.px (), positiveTrack.py (), positiveTrack.pz ()), eta (negativeTrack.px (), negativeTrack.py (), negativeTrack.pz ())};
784- float trackPhis[2 ] = {phi (positiveTrack.px (), positiveTrack.py ()), phi (negativeTrack.px (), negativeTrack.py ())};
785- float trackPiPIDs[2 ] = {positiveTrack.tpcNSigmaPi (), negativeTrack.tpcNSigmaPi ()};
786- float trackElPIDs[2 ] = {positiveTrack.tpcNSigmaEl (), negativeTrack.tpcNSigmaEl ()};
787- float trackKaPIDs[2 ] = {positiveTrack.tpcNSigmaKa (), negativeTrack.tpcNSigmaKa ()};
788- float trackDcaXYs[2 ] = {positiveTrack.dcaXY (), negativeTrack.dcaXY ()};
789- float trackDcaZs[2 ] = {positiveTrack.dcaZ (), negativeTrack.dcaZ ()};
790- float trackTpcSignals[2 ] = {positiveTrack.tpcSignal (), negativeTrack.tpcSignal ()};
810+ int trackSignPos = positiveTrack.sign ();
811+ int trackSignNeg = negativeTrack.sign ();
812+ float trackPtPos = positiveTrack.pt ();
813+ float trackPtNeg = negativeTrack.pt ();
814+ float trackEtaPos = eta (positiveTrack.px (), positiveTrack.py (), positiveTrack.pz ());
815+ float trackEtaNeg = eta (negativeTrack.px (), negativeTrack.py (), negativeTrack.pz ());
816+ float trackPhiPos = phi (positiveTrack.px (), positiveTrack.py ());
817+ float trackPhiNeg = phi (negativeTrack.px (), negativeTrack.py ());
818+ float trackPiPIDPos = positiveTrack.tpcNSigmaPi ();
819+ float trackPiPIDNeg = negativeTrack.tpcNSigmaPi ();
820+ float trackElPIDPos = positiveTrack.tpcNSigmaEl ();
821+ float trackElPIDNeg = negativeTrack.tpcNSigmaEl ();
822+ float trackKaPIDPos = positiveTrack.tpcNSigmaKa ();
823+ float trackKaPIDNeg = negativeTrack.tpcNSigmaKa ();
824+ float trackDcaXYPos = positiveTrack.dcaXY ();
825+ float trackDcaXYNeg = negativeTrack.dcaXY ();
826+ float trackDcaZPos = positiveTrack.dcaZ ();
827+ float trackDcaZNeg = negativeTrack.dcaZ ();
828+ float trackTpcSignalPos = positiveTrack.tpcSignal ();
829+ float trackTpcSignalNeg = negativeTrack.tpcSignal ();
791830 recoTree (collision.flags (), collision.runNumber (), localBc, collision.numContrib (), collision.posX (), collision.posY (), collision.posZ (),
792- collision.totalFT0AmplitudeA (), collision.totalFT0AmplitudeC (), collision.totalFV0AmplitudeA (), collision.totalFDDAmplitudeA (), collision.totalFDDAmplitudeC (),
793- collision.timeFT0A (), collision.timeFT0C (), collision.timeFV0A (), collision.timeFDDA (), collision.timeFDDC (),
794- energyCommonZNA, energyCommonZNC, timeZNA, timeZNC, neutronClass,
795- phiRandom, phiCharge, trackSigns, trackPts, trackEtas, trackPhis, trackPiPIDs, trackElPIDs, trackKaPIDs, trackDcaXYs, trackDcaZs, trackTpcSignals);
831+ collision.totalFT0AmplitudeA (), collision.totalFT0AmplitudeC (), collision.totalFV0AmplitudeA (), collision.totalFDDAmplitudeA (), collision.totalFDDAmplitudeC (),
832+ collision.timeFT0A (), collision.timeFT0C (), collision.timeFV0A (), collision.timeFDDA (), collision.timeFDDC (),
833+ energyCommonZNA, energyCommonZNC, timeZNA, timeZNC, neutronClass,
834+ phiRandom, phiCharge,
835+ trackSignPos, trackSignNeg,
836+ trackPtPos, trackPtNeg,
837+ trackEtaPos, trackEtaNeg,
838+ trackPhiPos, trackPhiNeg,
839+ trackPiPIDPos, trackPiPIDNeg,
840+ trackElPIDPos, trackElPIDNeg,
841+ trackKaPIDPos, trackKaPIDNeg,
842+ trackDcaXYPos, trackDcaXYNeg,
843+ trackDcaZPos, trackDcaZNeg,
844+ trackTpcSignalPos, trackTpcSignalNeg);
796845
797846 if (!tracksPassPID (cutTracks)) // apply PID cut
798847 return ;
@@ -984,13 +1033,21 @@ struct UpcRhoAnalysis {
9841033 auto positivePion = cutMcParticles[0 ].pdgCode () > 0 ? cutMcParticles[0 ] : cutMcParticles[1 ];
9851034 auto negativePion = cutMcParticles[0 ].pdgCode () > 0 ? cutMcParticles[1 ] : cutMcParticles[0 ];
9861035 int localBc = mcCollision.globalBC () % o2::constants::lhc::LHCMaxBunches;
987- int trackSigns[2 ] = {positivePion.pdgCode () / std::abs (positivePion.pdgCode ()), negativePion.pdgCode () / std::abs (negativePion.pdgCode ())};
988- float trackPts[2 ] = {pt (positivePion.px (), positivePion.py ()), pt (negativePion.px (), negativePion.py ())};
989- float trackEtas[2 ] = {eta (positivePion.px (), positivePion.py (), positivePion.pz ()), eta (negativePion.px (), negativePion.py (), negativePion.pz ())};
990- float trackPhis[2 ] = {phi (positivePion.px (), positivePion.py ()), phi (negativePion.px (), negativePion.py ())};
991- mcTree (localBc, runNumber,
992- mcCollision.posX (), mcCollision.posY (), mcCollision.posZ (),
993- phiRandom, phiCharge, trackSigns, trackPts, trackEtas, trackPhis);
1036+ int trackSignPos = positivePion.pdgCode () / std::abs (positivePion.pdgCode ());
1037+ int trackSignNeg = negativePion.pdgCode () / std::abs (negativePion.pdgCode ());
1038+ float trackPtPos = pt (positivePion.px (), positivePion.py ());
1039+ float trackPtNeg = pt (negativePion.px (), negativePion.py ());
1040+ float trackEtaPos = eta (positivePion.px (), positivePion.py (), positivePion.pz ());
1041+ float trackEtaNeg = eta (negativePion.px (), negativePion.py (), negativePion.pz ());
1042+ float trackPhiPos = phi (positivePion.px (), positivePion.py ());
1043+ float trackPhiNeg = phi (negativePion.px (), negativePion.py ());
1044+ mcTree (localBc, runNumber,
1045+ mcCollision.posX (), mcCollision.posY (), mcCollision.posZ (),
1046+ phiRandom, phiCharge,
1047+ trackSignPos, trackSignNeg,
1048+ trackPtPos, trackPtNeg,
1049+ trackEtaPos, trackEtaNeg,
1050+ trackPhiPos, trackPhiNeg);
9941051 }
9951052
9961053 template <typename C>
0 commit comments