1313// / \author Yuto Nishida <yuto.nishida@cern.ch>
1414// / \brief Task for measuring the dependence of the jet shape function rho(r) on the distance r from the jet axis.
1515
16- #include " PWGJE/Core/FastJetUtilities.h"
17- #include " PWGJE/Core/JetDerivedDataUtilities.h"
18- #include " PWGJE/Core/JetUtilities.h"
19- #include " PWGJE/DataModel/Jet.h"
16+ #include < string>
17+ #include < vector>
18+ #include < cmath>
19+
20+ #include " Framework/ASoA.h"
21+ #include " Framework/AnalysisDataModel.h"
22+ #include " Framework/AnalysisTask.h"
23+ #include " Framework/HistogramRegistry.h"
2024
2125#include " Common/Core/RecoDecay.h"
2226#include " Common/Core/TrackSelection.h"
2327#include " Common/Core/TrackSelectionDefaults.h"
2428#include " Common/DataModel/EventSelection.h"
2529#include " Common/DataModel/TrackSelectionTables.h"
2630
27- #include " Framework/ASoA.h"
28- #include " Framework/AnalysisDataModel.h"
29- #include " Framework/AnalysisTask.h"
30- #include " Framework/HistogramRegistry.h"
31- #include " Framework/runDataProcessing.h"
31+ #include " PWGJE/Core/FastJetUtilities.h"
32+ #include " PWGJE/Core/JetUtilities.h"
33+ #include " PWGJE/Core/JetDerivedDataUtilities.h"
34+ #include " PWGJE/DataModel/Jet.h"
3235
33- #include < cmath>
34- #include < string>
35- #include < vector>
36+ #include " Framework/runDataProcessing.h"
3637
3738using namespace o2 ;
3839using namespace o2 ::framework;
@@ -58,7 +59,7 @@ struct JetShapeTask {
5859 Configurable<float > tpcNSigmaPiMax{" tpcNSigmaPiMax" , 3 .5f , " Max value of tpcNsigmaPion" };
5960
6061 HistogramRegistry registry{" registry" ,
61- {{" tpcTofPi" , " tpcTofPi" , {HistType::kTHnSparseD , {{35 , 0 , pMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}, {nBinsDistance, 0 , distanceMax}}}},
62+ {{" tpcTofPi" , " tpcTofPi" , {HistType::kTHnSparseD , {{35 , 0 , pMax}, {nBinsNSigma, nSigmaMin, nSigmaMax},{nBinsDistance, 0 , distanceMax}}}},
6263 {" tpcTofPr" , " tpcTofPr" , {HistType::kTHnSparseD , {{35 , 0 , pMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}, {nBinsDistance, 0 , distanceMax}}}},
6364 {" tpcTofPiOutOfJet" , " tpcTofPiOutOfJet" , {HistType::kTH2F , {{35 , 0 , pMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}}}},
6465 {" tpcTofPrOutOfJet" , " tpcTofPrOutOfJet" , {HistType::kTH2F , {{35 , 0 , pMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}}}},
@@ -78,7 +79,7 @@ struct JetShapeTask {
7879 {" trackEta" , " trackEta" , {HistType::kTH1F , {{100 , -1 , 1 }}}},
7980 {" trackTpcNClsCrossedRows" , " trackTpcNClsCrossedRows" , {HistType::kTH1F , {{50 , 0 , 200 }}}},
8081 {" trackDcaXY" , " trackDcaXY" , {HistType::kTH1F , {{40 , -10 , 10 }}}},
81- {" trackItsChi2NCl" , " trackItsChi2NCl" , {HistType::kTH1F , {{60 , 0 , 30 }}}},
82+ {" trackItsChi2NCl" , " trackItsChi2NCl" , {HistType::kTH1F , { {60 , 0 , 30 }}}},
8283 {" trackTpcChi2NCl" , " trackTpcChi2NCl" , {HistType::kTH1F , {{100 , 0 , 50 }}}},
8384 {" trackTpcNClsFound" , " trackTpcNClsFound" , {HistType::kTH1F , {{100 , 0 , 200 }}}},
8485 {" trackItsNCls" , " trackItsNCls" , {HistType::kTH1F , {{10 , 0 , 10 }}}},
@@ -183,6 +184,7 @@ struct JetShapeTask {
183184 void processJetShape (soa::Filtered<soa::Join<aod::JetCollisions, aod::BkgChargedRhos>>::iterator const & collision, aod::JetTracks const & tracks, soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const & jets)
184185 {
185186
187+
186188 std::vector<float > ptDensity (distanceCategory->size () - 1 , 0 .f );
187189 std::vector<float > ptDensityBg1 (distanceCategory->size () - 1 , 0 .f );
188190 std::vector<float > ptDensityBg2 (distanceCategory->size () - 1 , 0 .f );
@@ -268,37 +270,39 @@ struct JetShapeTask {
268270
269271 registry.fill (HIST (" event/vertexz" ), collision.posZ ());
270272
273+ std::vector<typename std::decay_t <decltype (tracks)>::iterator> goodTracks;
274+ for (auto it = tracks.begin (); it != tracks.end () ; ++it){
275+ const auto & track = *it;
276+
277+ registry.fill (HIST (" trackTpcNClsCrossedRows" ), track.tpcNClsCrossedRows ());
278+ registry.fill (HIST (" trackDcaXY" ), track.dcaXY ());
279+ registry.fill (HIST (" trackItsChi2NCl" ), track.itsChi2NCl ());
280+ registry.fill (HIST (" trackTpcChi2NCl" ), track.tpcChi2NCl ());
281+ registry.fill (HIST (" trackTpcNClsFound" ), track.tpcNClsFound ());
282+ registry.fill (HIST (" trackItsNCls" ), track.itsNCls ());
283+ registry.fill (HIST (" trackEta" ),track.eta ());
284+ registry.fill (HIST (" trackPhi" ),track.phi ());
285+
286+ if (std::abs (track.eta ()) > etaTrUp) continue ;
287+ if (track.tpcNClsCrossedRows () < nclcrossTpcMin) continue ;
288+ if (std::abs (track.dcaXY ()) > dcaxyMax) continue ;
289+ if (track.itsChi2NCl () > chi2ItsMax) continue ;
290+ if (track.tpcChi2NCl () > chi2TpcMax) continue ;
291+ if (track.tpcNClsFound () < nclTpcMin) continue ;
292+ if (track.itsNCls () < nclItsMin) continue ;
293+
294+ goodTracks.push_back (it);
295+ }
296+
271297 for (auto const & jet : jets) {
272298 if (!isAcceptedJet<aod::JetTracks>(jet)) {
273299 continue ;
274300 }
275301
276302 // tracks conditions
277- for (const auto & track : tracks) {
278-
279- registry.fill (HIST (" trackTpcNClsCrossedRows" ), track.tpcNClsCrossedRows ());
280- registry.fill (HIST (" trackDcaXY" ), track.dcaXY ());
281- registry.fill (HIST (" trackItsChi2NCl" ), track.itsChi2NCl ());
282- registry.fill (HIST (" trackTpcChi2NCl" ), track.tpcChi2NCl ());
283- registry.fill (HIST (" trackTpcNClsFound" ), track.tpcNClsFound ());
284- registry.fill (HIST (" trackItsNCls" ), track.itsNCls ());
285- registry.fill (HIST (" trackEta" ), track.eta ());
286- registry.fill (HIST (" trackPhi" ), track.phi ());
287-
288- if (std::abs (track.eta ()) > etaTrUp)
289- continue ;
290- if (track.tpcNClsCrossedRows () < nclcrossTpcMin)
291- continue ;
292- if (std::abs (track.dcaXY ()) > dcaxyMax)
293- continue ;
294- if (track.itsChi2NCl () > chi2ItsMax)
295- continue ;
296- if (track.tpcChi2NCl () > chi2TpcMax)
297- continue ;
298- if (track.tpcNClsFound () < nclTpcMin)
299- continue ;
300- if (track.itsNCls () < nclItsMin)
301- continue ;
303+ for (const auto & track_it : goodTracks) {
304+
305+ const auto & track = *track_it;
302306
303307 // PID check
304308 registry.fill (HIST (" tofMass" ), track.mass ());
@@ -333,15 +337,15 @@ struct JetShapeTask {
333337 if (distanceBg1 < jetR || distanceBg2 < jetR) {
334338 registry.fill (HIST (" tpcDedxOutOfJet" ), track.p (), track.tpcSignal ());
335339
336- if (std::abs (track.tofNSigmaPi ()) < nSigmaTofCut) {
340+ if (std::abs (track.tofNSigmaPi ()) < nSigmaTofCut){
337341 registry.fill (HIST (" tpcTofPiOutOfJet" ), track.p (), track.tpcNSigmaPi ());
338- if (track.tpcNSigmaPi () > tpcNSigmaPiMin && track.tpcNSigmaPi () < tpcNSigmaPiMax) {
339- registry.fill (HIST (" pVsPtForPiOutOfJet" ), track.p (), track.pt ());
340- }
342+ if (track.tpcNSigmaPi ()> tpcNSigmaPiMin && track.tpcNSigmaPi ()< tpcNSigmaPiMax){
343+ registry.fill (HIST (" pVsPtForPiOutOfJet" ), track.p (), track.pt ());
344+ }
341345 }
342- if (std::abs (track.tofNSigmaPr ()) < nSigmaTofCut) {
346+ if (std::abs (track.tofNSigmaPr ()) < nSigmaTofCut){
343347 registry.fill (HIST (" tpcTofPrOutOfJet" ), track.p (), track.tpcNSigmaPr ());
344- if (track.tpcNSigmaPr () > tpcNSigmaPrMin && track.tpcNSigmaPr () < tpcNSigmaPrMax) {
348+ if (track.tpcNSigmaPr ()> tpcNSigmaPrMin && track.tpcNSigmaPr ()< tpcNSigmaPrMax){
345349 registry.fill (HIST (" pVsPtForPrOutOfJet" ), track.p (), track.pt ());
346350 }
347351 }
@@ -351,16 +355,16 @@ struct JetShapeTask {
351355 registry.fill (HIST (" tpcDedx" ), track.p (), track.tpcSignal (), distance);
352356 registry.fill (HIST (" tofBeta" ), track.p (), track.beta ());
353357
354- if (std::abs (track.tofNSigmaPr ()) < nSigmaTofCut) {
358+ if (std::abs (track.tofNSigmaPr ()) < nSigmaTofCut){
355359 registry.fill (HIST (" tpcTofPr" ), track.p (), track.tpcNSigmaPr (), distance);
356- if (track.tpcNSigmaPr () > tpcNSigmaPrMin && track.tpcNSigmaPr () < tpcNSigmaPrMax) {
360+ if (track.tpcNSigmaPr ()> tpcNSigmaPrMin && track.tpcNSigmaPr ()< tpcNSigmaPrMax){
357361 registry.fill (HIST (" pVsPtForPr" ), track.p (), track.pt (), distance);
358362 }
359363 }
360364
361- if (std::abs (track.tofNSigmaPi ()) < nSigmaTofCut) {
365+ if (std::abs (track.tofNSigmaPi ()) < nSigmaTofCut){
362366 registry.fill (HIST (" tpcTofPi" ), track.p (), track.tpcNSigmaPi (), distance);
363- if (track.tpcNSigmaPi () > tpcNSigmaPiMin && track.tpcNSigmaPi () < tpcNSigmaPiMax) {
367+ if (track.tpcNSigmaPi ()> tpcNSigmaPiMin && track.tpcNSigmaPi ()< tpcNSigmaPiMax){
364368 registry.fill (HIST (" pVsPtForPi" ), track.p (), track.pt (), distance);
365369 }
366370 }
@@ -371,3 +375,4 @@ struct JetShapeTask {
371375};
372376
373377WorkflowSpec defineDataProcessing (ConfigContext const & cfgc) { return WorkflowSpec{adaptAnalysisTask<JetShapeTask>(cfgc)}; }
378+
0 commit comments