@@ -49,70 +49,64 @@ namespace reco_tree
4949// event info
5050DECLARE_SOA_COLUMN (RecoSetting, recoSetting, uint16_t );
5151DECLARE_SOA_COLUMN (RunNumber, runNumber, int32_t );
52- DECLARE_SOA_COLUMN (LocalBC, localBC, int );
53- DECLARE_SOA_COLUMN (NumContrib, numContrib, int );
54- DECLARE_SOA_COLUMN (PosX, posX, float );
55- DECLARE_SOA_COLUMN (PosY, posY, float );
5652DECLARE_SOA_COLUMN (PosZ, posZ, float );
57- // FIT info
58- DECLARE_SOA_COLUMN (TotalFT0AmplitudeA, totalFT0AmplitudeA, float );
59- DECLARE_SOA_COLUMN (TotalFT0AmplitudeC, totalFT0AmplitudeC, float );
60- DECLARE_SOA_COLUMN (TotalFV0AmplitudeA, totalFV0AmplitudeA, float );
61- DECLARE_SOA_COLUMN (TotalFDDAmplitudeA, totalFDDAmplitudeA, float );
62- DECLARE_SOA_COLUMN (TotalFDDAmplitudeC, totalFDDAmplitudeC, float );
63- DECLARE_SOA_COLUMN (TimeFT0A, timeFT0A, float );
64- DECLARE_SOA_COLUMN (TimeFT0C, timeFT0C, float );
65- DECLARE_SOA_COLUMN (TimeFV0A, timeFV0A, float );
66- DECLARE_SOA_COLUMN (TimeFDDA, timeFDDA, float );
67- DECLARE_SOA_COLUMN (TimeFDDC, timeFDDC, float );
6853// ZDC info
6954DECLARE_SOA_COLUMN (EnergyCommonZNA, energyCommonZNA, float );
7055DECLARE_SOA_COLUMN (EnergyCommonZNC, energyCommonZNC, float );
7156DECLARE_SOA_COLUMN (TimeZNA, timeZNA, float );
7257DECLARE_SOA_COLUMN (TimeZNC, timeZNC, float );
7358DECLARE_SOA_COLUMN (NeutronClass, neutronClass, int );
74- // pion tracks
75- DECLARE_SOA_COLUMN (PhiRandom, phiRandom, float );
76- DECLARE_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 ]);
59+ // tracks
60+ DECLARE_SOA_COLUMN (LeadingTrackSign, leadingTrackSign, int );
61+ DECLARE_SOA_COLUMN (SubleadingTrackSign, subleadingTrackSign, int );
62+ DECLARE_SOA_COLUMN (LeadingTrackPt, leadingTrackPt, float );
63+ DECLARE_SOA_COLUMN (SubleadingTrackPt, subleadingTrackPt, float );
64+ DECLARE_SOA_COLUMN (LeadingTrackEta, leadingTrackEta, float );
65+ DECLARE_SOA_COLUMN (SubleadingTrackEta, subleadingTrackEta, float );
66+ DECLARE_SOA_COLUMN (LeadingTrackPhi, leadingTrackPhi, float );
67+ DECLARE_SOA_COLUMN (SubleadingTrackPhi, subleadingTrackPhi, float );
68+ DECLARE_SOA_COLUMN (LeadingTrackPiPID, leadingTrackPiPID, float );
69+ DECLARE_SOA_COLUMN (SubleadingTrackPiPID, subleadingTrackPiPID, float );
70+ DECLARE_SOA_COLUMN (LeadingTrackElPID, leadingTrackElPID, float );
71+ DECLARE_SOA_COLUMN (SubleadingTrackElPID, subleadingTrackElPID, float );
72+ DECLARE_SOA_COLUMN (LeadingTrackKaPID, leadingTrackKaPID, float );
73+ DECLARE_SOA_COLUMN (SubleadingTrackKaPID, subleadingTrackKaPID, float );
74+ DECLARE_SOA_COLUMN (LeadingTrackPrPID, leadingTrackPrPID, float );
75+ DECLARE_SOA_COLUMN (SubleadingTrackPrPID, subleadingTrackPrPID, float );
8776} // namespace reco_tree
8877DECLARE_SOA_TABLE (RecoTree, " AOD" , " RECOTREE" ,
89- reco_tree::RecoSetting, reco_tree::RunNumber, reco_tree::LocalBC, reco_tree::NumContrib, reco_tree::PosX, reco_tree::PosY, reco_tree::PosZ,
90- reco_tree::TotalFT0AmplitudeA, reco_tree::TotalFT0AmplitudeC, reco_tree::TotalFV0AmplitudeA, reco_tree::TotalFDDAmplitudeA, reco_tree::TotalFDDAmplitudeC,
91- reco_tree::TimeFT0A, reco_tree::TimeFT0C, reco_tree::TimeFV0A, reco_tree::TimeFDDA, reco_tree::TimeFDDC,
78+ reco_tree::RecoSetting, reco_tree::RunNumber, reco_tree::PosZ,
9279 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);
80+ reco_tree::LeadingTrackSign, reco_tree::SubleadingTrackSign,
81+ reco_tree::LeadingTrackPt, reco_tree::SubleadingTrackPt,
82+ reco_tree::LeadingTrackEta, reco_tree::SubleadingTrackEta,
83+ reco_tree::LeadingTrackPhi, reco_tree::SubleadingTrackPhi,
84+ reco_tree::LeadingTrackPiPID, reco_tree::SubleadingTrackPiPID,
85+ reco_tree::LeadingTrackElPID, reco_tree::SubleadingTrackElPID,
86+ reco_tree::LeadingTrackKaPID, reco_tree::SubleadingTrackKaPID,
87+ reco_tree::LeadingTrackPrPID, reco_tree::SubleadingTrackPrPID);
9488
9589namespace mc_tree
9690{
9791// misc event info
98- DECLARE_SOA_COLUMN (LocalBc, localBc, int );
9992DECLARE_SOA_COLUMN (RunNumber, runNumber, int );
100- // event vertex
101- DECLARE_SOA_COLUMN (PosX, posX, float );
102- DECLARE_SOA_COLUMN (PosY, posY, float );
10393DECLARE_SOA_COLUMN (PosZ, posZ, float );
104- // pion tracks
105- DECLARE_SOA_COLUMN (PhiRandom, phiRandom, float );
106- DECLARE_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 ]);
94+ // tracks
95+ DECLARE_SOA_COLUMN (LeadingTrackSign, leadingTrackSign, int );
96+ DECLARE_SOA_COLUMN (SubleadingTrackSign, subleadingTrackSign, int );
97+ DECLARE_SOA_COLUMN (LeadingTrackPt, leadingTrackPt, float );
98+ DECLARE_SOA_COLUMN (SubleadingTrackPt, subleadingTrackPt, float );
99+ DECLARE_SOA_COLUMN (LeadingTrackEta, leadingTrackEta, float );
100+ DECLARE_SOA_COLUMN (SubleadingTrackEta, subleadingTrackEta, float );
101+ DECLARE_SOA_COLUMN (LeadingTrackPhi, leadingTrackPhi, float );
102+ DECLARE_SOA_COLUMN (SubleadingTrackPhi, subleadingTrackPhi, float );
111103} // namespace mc_tree
112104DECLARE_SOA_TABLE (McTree, " AOD" , " MCTREE" ,
113- mc_tree::LocalBc, mc_tree::RunNumber,
114- 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);
105+ mc_tree::RunNumber, mc_tree::PosZ,
106+ mc_tree::LeadingTrackSign, mc_tree::SubleadingTrackSign,
107+ mc_tree::LeadingTrackPt, mc_tree::SubleadingTrackPt,
108+ mc_tree::LeadingTrackEta, mc_tree::SubleadingTrackEta,
109+ mc_tree::LeadingTrackPhi, mc_tree::SubleadingTrackPhi);
116110} // namespace o2::aod
117111
118112struct UpcRhoAnalysis {
@@ -153,7 +147,7 @@ struct UpcRhoAnalysis {
153147 Configurable<float > znTimeCut{" znTimeCut" , 2.0 , " ZN time cut" };
154148
155149 Configurable<float > tracksTpcNSigmaPiCut{" tracksTpcNSigmaPiCut" , 3.0 , " TPC nSigma pion cut" };
156- Configurable<bool > rejectLowerProbPairs{" rejectLowerProbPairs" , false , " reject track pairs with lower El or Ka PID radii" };
150+ Configurable<bool > rejectLowerProbPairs{" rejectLowerProbPairs" , true , " reject track pairs with lower El or Ka PID radii" };
157151 Configurable<float > tracksDcaMaxCut{" tracksDcaMaxCut" , 1.0 , " max DCA cut on tracks" };
158152 Configurable<int > tracksMinItsNClsCut{" tracksMinItsNClsCut" , 4 , " min ITS clusters cut" };
159153 Configurable<float > tracksMaxItsChi2NClCut{" tracksMaxItsChi2NClCut" , 3.0 , " max ITS chi2/Ncls cut" };
@@ -219,6 +213,7 @@ struct UpcRhoAnalysis {
219213 rQC.add (" QC/tracks/all/hTpcNSigmaPi" , " ;TPC #it{n#sigma}(#pi);counts" , kTH1D , {nSigmaAxis});
220214 rQC.add (" QC/tracks/all/hTpcNSigmaEl" , " ;TPC #it{n#sigma}(e);counts" , kTH1D , {nSigmaAxis});
221215 rQC.add (" QC/tracks/all/hTpcNSigmaKa" , " ;TPC #it{n#sigma}(K);counts" , kTH1D , {nSigmaAxis});
216+ rQC.add (" QC/tracks/all/hTpcNSigmaPr" , " ;TPC #it{n#sigma}(p);counts" , kTH1D , {nSigmaAxis});
222217 rQC.add (" QC/tracks/all/hDcaXYZ" , " ;track #it{DCA}_{z} (cm);track #it{DCA}_{xy} (cm);counts" , kTH2D , {{1000 , -5.0 , 5.0 }, {400 , -2.0 , 2.0 }});
223218 rQC.add (" QC/tracks/all/hItsNCls" , " ;ITS #it{N}_{cls};counts" , kTH1D , {{11 , -0.5 , 10.5 }});
224219 rQC.add (" QC/tracks/all/hItsChi2NCl" , " ;ITS #it{#chi}^{2}/#it{N}_{cls};counts" , kTH1D , {{200 , 0.0 , 20.0 }});
@@ -238,6 +233,7 @@ struct UpcRhoAnalysis {
238233 rQC.add (" QC/tracks/trackSelections/hTpcNSigmaPi2D" , " ;TPC #it{n#sigma}(#pi)_{leading};TPC #it{n#sigma}(#pi)_{subleading};counts" , kTH2D , {nSigmaAxis, nSigmaAxis});
239234 rQC.add (" QC/tracks/trackSelections/hTpcNSigmaEl2D" , " ;TPC #it{n#sigma}(e)_{leading};TPC #it{n#sigma}(e)_{subleading};counts" , kTH2D , {nSigmaAxis, nSigmaAxis});
240235 rQC.add (" QC/tracks/trackSelections/hTpcNSigmaKa2D" , " ;TPC #it{n#sigma}(K)_{leading};TPC #it{n#sigma}(K)_{subleading};counts" , kTH2D , {nSigmaAxis, nSigmaAxis});
236+ rQC.add (" QC/tracks/trackSelections/hTpcNSigmaPr2D" , " ;TPC #it{n#sigma}(p)_{leading};TPC #it{n#sigma}(p)_{subleading};counts" , kTH2D , {nSigmaAxis, nSigmaAxis});
241237 // selection counter
242238 std::vector<std::string> trackSelectionCounterLabels = {" all tracks" , " PV contributor" , " ITS hit" , " ITS #it{N}_{cls}" , " itsClusterMap check" , " ITS #it{#chi}^{2}/#it{N}_{cls}" , " TPC hit" , " found TPC #it{N}_{cls}" , " TPC #it{#chi}^{2}/#it{N}_{cls}" , " TPC crossed rows" ,
243239 " TPC crossed rows/#it{N}_{cls}" ,
@@ -261,6 +257,7 @@ struct UpcRhoAnalysis {
261257 rQC.add (" QC/tracks/hPiPIDRadius" , " ;#it{n#sigma}(#pi) radius;counts" , kTH1D , {{1000 , 0.0 , 10.0 }});
262258 rQC.add (" QC/tracks/hElPIDRadius" , " ;#it{n#sigma}(e) radius;counts" , kTH1D , {{1000 , 0.0 , 10.0 }});
263259 rQC.add (" QC/tracks/hKaPIDRadius" , " ;#it{n#sigma}(K) radius;counts" , kTH1D , {{1000 , 0.0 , 10.0 }});
260+ rQC.add (" QC/tracks/hPrPIDRadius" , " ;#it{n#sigma}(p) radius;counts" , kTH1D , {{1000 , 0.0 , 10.0 }});
264261
265262 // TRACKS (2D)
266263 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});
@@ -587,17 +584,19 @@ struct UpcRhoAnalysis {
587584 template <typename T>
588585 bool tracksPassPID (const T& cutTracks) // n-dimensional pion PID cut
589586 {
590- float radiusPi = 0.0 , radiusEl = 0.0 , radiusKa = 0.0 ;
587+ float radiusPi = 0.0 , radiusEl = 0.0 , radiusKa = 0.0 , radiusPr = 0.0 ;
591588 for (const auto & track : cutTracks) {
592589 radiusEl += std::pow (track.tpcNSigmaEl (), 2 );
593590 radiusKa += std::pow (track.tpcNSigmaKa (), 2 );
594591 radiusPi += std::pow (track.tpcNSigmaPi (), 2 );
592+ radiusPr += std::pow (track.tpcNSigmaPr (), 2 );
595593 }
596594 rQC.fill (HIST (" QC/tracks/hPiPIDRadius" ), std::sqrt (radiusPi));
597595 rQC.fill (HIST (" QC/tracks/hElPIDRadius" ), std::sqrt (radiusEl));
598596 rQC.fill (HIST (" QC/tracks/hKaPIDRadius" ), std::sqrt (radiusKa));
597+ rQC.fill (HIST (" QC/tracks/hPrPIDRadius" ), std::sqrt (radiusPr));
599598 if (rejectLowerProbPairs)
600- return ((radiusPi < std::pow (tracksTpcNSigmaPiCut, 2 )) && (radiusPi < radiusEl) && (radiusPi < radiusKa));
599+ return ((radiusPi < std::pow (tracksTpcNSigmaPiCut, 2 )) && (radiusPi < radiusEl) && (radiusPi < radiusKa) && (radiusPi < radiusPr) );
601600 else
602601 return radiusPi < std::pow (tracksTpcNSigmaPiCut, 2 );
603602 }
@@ -642,7 +641,10 @@ struct UpcRhoAnalysis {
642641 double deltaPhi (const ROOT::Math::PxPyPzMVector& p1, const ROOT::Math::PxPyPzMVector& p2)
643642 {
644643 double dPhi = p1.Phi () - p2.Phi ();
645- dPhi = std::fmod (dPhi + o2::constants::math::PI, o2::constants::math::TwoPI) - o2::constants::math::PI; // normalize to (-pi, pi)
644+ while (dPhi >= o2::constants::math::PI)
645+ dPhi -= o2::constants::math::TwoPI;
646+ while (dPhi < -o2::constants::math::PI)
647+ dPhi += o2::constants::math::TwoPI;
646648 return dPhi;
647649 }
648650
@@ -750,6 +752,7 @@ struct UpcRhoAnalysis {
750752 rQC.fill (HIST (" QC/tracks/trackSelections/hTpcNSigmaPi2D" ), cutTracks[0 ].tpcNSigmaPi (), cutTracks[1 ].tpcNSigmaPi ());
751753 rQC.fill (HIST (" QC/tracks/trackSelections/hTpcNSigmaEl2D" ), cutTracks[0 ].tpcNSigmaEl (), cutTracks[1 ].tpcNSigmaEl ());
752754 rQC.fill (HIST (" QC/tracks/trackSelections/hTpcNSigmaKa2D" ), cutTracks[0 ].tpcNSigmaKa (), cutTracks[1 ].tpcNSigmaKa ());
755+ rQC.fill (HIST (" QC/tracks/trackSelections/hTpcNSigmaPr2D" ), cutTracks[0 ].tpcNSigmaPr (), cutTracks[1 ].tpcNSigmaPr ());
753756
754757 // create a vector of 4-vectors for selected tracks
755758 std::vector<ROOT::Math::PxPyPzMVector> cutTracksLVs;
@@ -758,38 +761,29 @@ struct UpcRhoAnalysis {
758761 }
759762
760763 // differentiate leading- and subleading-momentum tracks
761- 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 ];
762- auto subleadingMomentumTrack = (leadingMomentumTrack == cutTracks[0 ]) ? cutTracks[1 ] : cutTracks[0 ];
763-
764- auto positiveTrack = cutTracks[0 ].sign () > 0 ? cutTracks[0 ] : cutTracks[1 ];
765- auto negativeTrack = cutTracks[0 ].sign () > 0 ? cutTracks[1 ] : cutTracks[0 ];
766-
767- float leadingPt = leadingMomentumTrack.pt ();
768- float subleadingPt = subleadingMomentumTrack.pt ();
769- float leadingEta = eta (leadingMomentumTrack.px (), leadingMomentumTrack.py (), leadingMomentumTrack.pz ());
770- float subleadingEta = eta (subleadingMomentumTrack.px (), subleadingMomentumTrack.py (), subleadingMomentumTrack.pz ());
771- float leadingPhi = phi (leadingMomentumTrack.px (), leadingMomentumTrack.py ());
772- float subleadingPhi = phi (subleadingMomentumTrack.px (), subleadingMomentumTrack.py ());
764+ 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 ];
765+ auto subleadingTrack = (leadingTrack == cutTracks[0 ]) ? cutTracks[1 ] : cutTracks[0 ];
766+
767+ float leadingPt = leadingTrack.pt ();
768+ float subleadingPt = subleadingTrack.pt ();
769+ float leadingEta = eta (leadingTrack.px (), leadingTrack.py (), leadingTrack.pz ());
770+ float subleadingEta = eta (subleadingTrack.px (), subleadingTrack.py (), subleadingTrack.pz ());
771+ float leadingPhi = phi (leadingTrack.px (), leadingTrack.py ());
772+ float subleadingPhi = phi (subleadingTrack.px (), subleadingTrack.py ());
773773 float phiRandom = getPhiRandom (cutTracksLVs);
774774 float phiCharge = getPhiCharge (cutTracks, cutTracksLVs);
775775
776776 // fill recoTree
777- int localBc = collision.globalBC () % o2::constants::lhc::LHCMaxBunches;
778- int trackSigns[2 ] = {positiveTrack.sign (), negativeTrack.sign ()};
779- float trackPts[2 ] = {positiveTrack.pt (), negativeTrack.pt ()};
780- float trackEtas[2 ] = {eta (positiveTrack.px (), positiveTrack.py (), positiveTrack.pz ()), eta (negativeTrack.px (), negativeTrack.py (), negativeTrack.pz ())};
781- float trackPhis[2 ] = {phi (positiveTrack.px (), positiveTrack.py ()), phi (negativeTrack.px (), negativeTrack.py ())};
782- float trackPiPIDs[2 ] = {positiveTrack.tpcNSigmaPi (), negativeTrack.tpcNSigmaPi ()};
783- float trackElPIDs[2 ] = {positiveTrack.tpcNSigmaEl (), negativeTrack.tpcNSigmaEl ()};
784- float trackKaPIDs[2 ] = {positiveTrack.tpcNSigmaKa (), negativeTrack.tpcNSigmaKa ()};
785- float trackDcaXYs[2 ] = {positiveTrack.dcaXY (), negativeTrack.dcaXY ()};
786- float trackDcaZs[2 ] = {positiveTrack.dcaZ (), negativeTrack.dcaZ ()};
787- float trackTpcSignals[2 ] = {positiveTrack.tpcSignal (), negativeTrack.tpcSignal ()};
788- recoTree (collision.flags (), collision.runNumber (), localBc, collision.numContrib (), collision.posX (), collision.posY (), collision.posZ (),
789- collision.totalFT0AmplitudeA (), collision.totalFT0AmplitudeC (), collision.totalFV0AmplitudeA (), collision.totalFDDAmplitudeA (), collision.totalFDDAmplitudeC (),
790- collision.timeFT0A (), collision.timeFT0C (), collision.timeFV0A (), collision.timeFDDA (), collision.timeFDDC (),
777+ recoTree (collision.flags (), collision.runNumber (), collision.posZ (),
791778 energyCommonZNA, energyCommonZNC, timeZNA, timeZNC, neutronClass,
792- phiRandom, phiCharge, trackSigns, trackPts, trackEtas, trackPhis, trackPiPIDs, trackElPIDs, trackKaPIDs, trackDcaXYs, trackDcaZs, trackTpcSignals);
779+ leadingTrack.sign (), subleadingTrack.sign (),
780+ leadingPt, subleadingPt,
781+ leadingEta, subleadingEta,
782+ leadingPhi, subleadingPhi,
783+ leadingTrack.tpcNSigmaPi (), subleadingTrack.tpcNSigmaPi (),
784+ leadingTrack.tpcNSigmaEl (), subleadingTrack.tpcNSigmaEl (),
785+ leadingTrack.tpcNSigmaKa (), subleadingTrack.tpcNSigmaKa (),
786+ leadingTrack.tpcNSigmaPr (), subleadingTrack.tpcNSigmaPr ());
793787
794788 if (!tracksPassPID (cutTracks)) // apply PID cut
795789 return ;
@@ -799,7 +793,7 @@ struct UpcRhoAnalysis {
799793 rQC.fill (HIST (" QC/tracks/hSelectionCounterPerRun" ), 16 , runIndex);
800794 fillTrackQcHistos<1 >(cutTrack); // fill QC histograms after cuts
801795 }
802- rQC.fill (HIST (" QC/tracks/hTofHitCheck" ), leadingMomentumTrack .hasTOF (), subleadingMomentumTrack .hasTOF ());
796+ rQC.fill (HIST (" QC/tracks/hTofHitCheck" ), leadingTrack .hasTOF (), subleadingTrack .hasTOF ());
803797 fillCollisionQcHistos<1 >(collision); // fill QC histograms after track selections
804798
805799 ROOT::Math::PxPyPzMVector system = reconstructSystem (cutTracksLVs);
@@ -947,11 +941,11 @@ struct UpcRhoAnalysis {
947941 float phiRandom = getPhiRandom (mcParticlesLVs);
948942 float phiCharge = getPhiChargeMC (cutMcParticles, mcParticlesLVs);
949943
950- 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 ];
951- auto subleadingMomentumPion = (leadingMomentumPion == cutMcParticles[0 ]) ? cutMcParticles[1 ] : cutMcParticles[0 ];
952- rMC.fill (HIST (" MC/tracks/hPt" ), pt (leadingMomentumPion .px (), leadingMomentumPion .py ()), pt (subleadingMomentumPion .px (), subleadingMomentumPion .py ()));
953- rMC.fill (HIST (" MC/tracks/hEta" ), eta (leadingMomentumPion .px (), leadingMomentumPion .py (), leadingMomentumPion .pz ()), eta (subleadingMomentumPion .px (), subleadingMomentumPion .py (), subleadingMomentumPion .pz ()));
954- rMC.fill (HIST (" MC/tracks/hPhi" ), phi (leadingMomentumPion .px (), leadingMomentumPion .py ()), phi (subleadingMomentumPion .px (), subleadingMomentumPion .py ()));
944+ 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 ];
945+ auto subleadingPion = (leadingPion == cutMcParticles[0 ]) ? cutMcParticles[1 ] : cutMcParticles[0 ];
946+ rMC.fill (HIST (" MC/tracks/hPt" ), pt (leadingPion .px (), leadingPion .py ()), pt (subleadingPion .px (), subleadingPion .py ()));
947+ rMC.fill (HIST (" MC/tracks/hEta" ), eta (leadingPion .px (), leadingPion .py (), leadingPion .pz ()), eta (subleadingPion .px (), subleadingPion .py (), subleadingPion .pz ()));
948+ rMC.fill (HIST (" MC/tracks/hPhi" ), phi (leadingPion .px (), leadingPion .py ()), phi (subleadingPion .px (), subleadingPion .py ()));
955949
956950 rMC.fill (HIST (" MC/system/hM" ), mass);
957951 rMC.fill (HIST (" MC/system/hPt" ), pT);
@@ -978,16 +972,11 @@ struct UpcRhoAnalysis {
978972 }
979973
980974 // fill mcTree
981- auto positivePion = cutMcParticles[0 ].pdgCode () > 0 ? cutMcParticles[0 ] : cutMcParticles[1 ];
982- auto negativePion = cutMcParticles[0 ].pdgCode () > 0 ? cutMcParticles[1 ] : cutMcParticles[0 ];
983- int localBc = mcCollision.globalBC () % o2::constants::lhc::LHCMaxBunches;
984- int trackSigns[2 ] = {positivePion.pdgCode () / std::abs (positivePion.pdgCode ()), negativePion.pdgCode () / std::abs (negativePion.pdgCode ())};
985- float trackPts[2 ] = {pt (positivePion.px (), positivePion.py ()), pt (negativePion.px (), negativePion.py ())};
986- float trackEtas[2 ] = {eta (positivePion.px (), positivePion.py (), positivePion.pz ()), eta (negativePion.px (), negativePion.py (), negativePion.pz ())};
987- float trackPhis[2 ] = {phi (positivePion.px (), positivePion.py ()), phi (negativePion.px (), negativePion.py ())};
988- mcTree (localBc, runNumber,
989- mcCollision.posX (), mcCollision.posY (), mcCollision.posZ (),
990- phiRandom, phiCharge, trackSigns, trackPts, trackEtas, trackPhis);
975+ mcTree (runNumber, mcCollision.posZ (),
976+ leadingPion.pdgCode () / std::abs (leadingPion.pdgCode ()), subleadingPion.pdgCode () / std::abs (subleadingPion.pdgCode ()),
977+ pt (leadingPion.px (), leadingPion.py ()), pt (subleadingPion.px (), subleadingPion.py ()),
978+ eta (leadingPion.px (), leadingPion.py (), leadingPion.pz ()), eta (subleadingPion.px (), subleadingPion.py (), subleadingPion.pz ()),
979+ phi (leadingPion.px (), leadingPion.py ()), phi (subleadingPion.px (), subleadingPion.py ()));
991980 }
992981
993982 template <typename C>
0 commit comments