3939#include < TPDGCode.h>
4040#include < TVector3.h>
4141
42+ #include < Rtypes.h>
43+
4244#include < cmath>
4345#include < set>
4446#include < string>
@@ -123,12 +125,12 @@ struct jetHadronsPid {
123125 registryData.add (" n_events_raw" , " All events" , HistType::kTH1F , {{1 , 0.5 , 1.5 , " " }});
124126
125127 registryData.add (" jet_pt" , " Jet pT " , HistType::kTH1F , {{100 , 0.0 , 20.0 , " #it{p}_{T}^{raw} (GeV/#it{c})" }});
126- registryData.add (" jet_pt_subtracted" , " Jet pT subtracted" , HistType::kTH1F , {{200 , 0.0 , 200 .0 , " #it{p}_{T}^{sub} (GeV/#it{c})" }});
128+ registryData.add (" jet_pt_subtracted" , " Jet pT subtracted" , HistType::kTH1F , {{200 , 0.0 , 10 .0 , " #it{p}_{T}^{sub} (GeV/#it{c})" }});
127129 registryData.add (" jet_pt_raw_vs_sub" , " Raw vs sub jet pT" , HistType::kTH2F , {{200 , 0 , 200 }, {200 , 0 , 200 }});
128130 registryData.add (" jet_eta" , " Jet eta" , HistType::kTH1F , {{100 , -1.0 , 1.0 , " #eta_{jet}" }});
129131 registryData.add (" jet_phi" , " Jet phi" , HistType::kTH1F , {{100 , 0.0 , TwoPI, " #phi_{jet}" }});
130132 registryData.add (" jet_area" , " Jet area" , HistType::kTH1F , {{100 , 0.0 , 1.5 , " Area" }});
131- registryData.add (" jet_n_constituents" , " Jet multiplicity" , HistType::kTH1I , {{100 , 0 , 100 , " N_{constituents}" }});
133+ registryData.add (" jet_n_constituents" , " Jet multiplicity" , HistType::kTH1I , {{100 , 0 , 30 , " N_{constituents}" }});
132134
133135 registryData.add (" pion_pure_tpc" , " TPC Pion PID" , HistType::kTH2F , {{120 , 0.0 , 4.0 , " #it{p}_{T} (GeV/#it{c})" }, {200 , -3.0 , 3.0 , " n#sigma_{TPC}" }});
134136 registryData.add (" pion_pure_tof" , " TOF Pion PID" , HistType::kTH2F , {{120 , 0.0 , 4.0 , " #it{p}_{T} (GeV/#it{c})" }, {200 , -3.0 , 3.0 , " n#sigma_{TOF}" }});
@@ -234,12 +236,11 @@ struct jetHadronsPid {
234236 template <typename TrackIts>
235237 bool hasITSLayerHit (const TrackIts& track, int layer)
236238 {
237- int ibit = layer - 1 ;
238- return (track.itsClusterMap () & (1 << ibit)) != 0 ;
239+ return TESTBIT (track.itsClusterMap (), layer - 1 );
239240 }
240241
241- template <typename PionTrack >
242- bool passedTrackSelection (const PionTrack & track)
242+ template <typename TrackType >
243+ bool passedTrackSelection (const TrackType & track)
243244 {
244245 if (requirePvContributor && !(track.isPVContributor ()))
245246 return false ;
@@ -259,6 +260,8 @@ struct jetHadronsPid {
259260 return false ;
260261 if (track.pt () < minPt || track.pt () > maxPt)
261262 return false ;
263+ if (std::abs (track.dcaXY ()) > maxDcaxy || std::abs (track.dcaZ ()) > maxDcaz)
264+ return false ;
262265 return true ;
263266 }
264267
@@ -282,8 +285,6 @@ struct jetHadronsPid {
282285 for (auto const & track : globalTracks) {
283286 if (!passedTrackSelection (track))
284287 continue ;
285- if (std::abs (track.dcaXY ()) > maxDcaxy || std::abs (track.dcaZ ()) > maxDcaz)
286- continue ;
287288
288289 double pt = track.pt ();
289290 double eta = track.eta ();
@@ -359,9 +360,7 @@ struct jetHadronsPid {
359360
360361 double centralRho = collision.rho ();
361362
362- int baseCollId = collision.collisionId ();
363-
364- auto collTracks = globalTracks.sliceBy (tracksPerCollision, baseCollId);
363+ auto collTracks = globalTracks.sliceBy (tracksPerCollision, collision.collisionId ());
365364
366365 for (auto const & jet : jets) {
367366
@@ -391,10 +390,14 @@ struct jetHadronsPid {
391390 registryData.fill (HIST (" jet_area" ), jet.area ());
392391 registryData.fill (HIST (" jet_pt" ), jet.pt ());
393392
393+ const double MagnitudeThreshold = 1e-9 ;
394394 TVector3 jetAxis (jet.px (), jet.py (), jet.pz ());
395395 TVector3 ueAxis1 (0 , 0 , 0 ), ueAxis2 (0 , 0 , 0 );
396396 getPerpendicularDirections (jetAxis, ueAxis1, ueAxis2);
397397
398+ if (ueAxis1.Mag () < MagnitudeThreshold || ueAxis2.Mag () < MagnitudeThreshold)
399+ continue ;
400+
398401 int constituentCount = 0 ;
399402 std::set<int > tracksInJetsSet;
400403
@@ -406,8 +409,6 @@ struct jetHadronsPid {
406409
407410 if (!passedTrackSelection (track))
408411 continue ;
409- if (std::abs (track.dcaXY ()) > maxDcaxy || std::abs (track.dcaZ ()) > maxDcaz)
410- continue ;
411412
412413 double pt = track.pt ();
413414 double eta = track.eta ();
@@ -462,9 +463,6 @@ struct jetHadronsPid {
462463 }
463464 registryData.fill (HIST (" jet_n_constituents" ), constituentCount);
464465
465- if (ueAxis1.Mag () == 0 || ueAxis2.Mag () == 0 )
466- continue ;
467-
468466 int nTracksOut = 0 ;
469467
470468 for (auto const & track : collTracks) {
@@ -476,8 +474,6 @@ struct jetHadronsPid {
476474
477475 if (!passedTrackSelection (track))
478476 continue ;
479- if (std::abs (track.dcaXY ()) > maxDcaxy || std::abs (track.dcaZ ()) > maxDcaz)
480- continue ;
481477
482478 double deltaEtaUe1 = track.eta () - ueAxis1.Eta ();
483479 double deltaPhiUe1 = RecoDecay::constrainAngle (track.phi () - ueAxis1.Phi (), -PI);
@@ -569,8 +565,6 @@ struct jetHadronsPid {
569565
570566 if (!passedTrackSelection (track))
571567 continue ;
572- if (std::abs (track.dcaXY ()) > maxDcaxy || std::abs (track.dcaZ ()) > maxDcaz)
573- continue ;
574568
575569 double pt = track.pt ();
576570
0 commit comments