@@ -43,8 +43,8 @@ struct JetShapeTask {
4343 Configurable<int > nBinsNSigma{" nBinsNSigma" , 101 , " Number of nsigma bins" };
4444 Configurable<float > nSigmaMin{" nSigmaMin" , -10 .1f , " Min value of nsigma" };
4545 Configurable<float > nSigmaMax{" nSigmaMax" , 10 .1f , " Max value of nsigma" };
46- Configurable<int > nBinsP{ " nBinsP " , 700 , " Number of p bins" };
47- Configurable<int > nBinsPt{ " nBinsPt " , 500 , " Number of pT bins" };
46+ Configurable<int > nBinsPForDedx{ " nBinsPForDedx " , 700 , " Number of p bins" };
47+ Configurable<int > nBinsPForBeta{ " nBinsPForBeta " , 500 , " Number of pT bins" };
4848 Configurable<int > nBinsTpcDedx{" nBinsTpcDedx" , 500 , " Number of DEdx bins" };
4949 Configurable<int > nBinsTofBeta{" nBinsTofBeta" , 350 , " Number of Beta bins" };
5050 Configurable<float > pMax{" pMax" , 7 .0f , " Max value of p" };
@@ -60,11 +60,20 @@ struct JetShapeTask {
6060 {" tofPi" , " tofPi" , {HistType::kTH2F , {{50 , 0 , ptMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}}}},
6161 {" tpcPr" , " tpcPr" , {HistType::kTH2F , {{70 , 0 , pMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}}}},
6262 {" tofPr" , " tofPr" , {HistType::kTH2F , {{50 , 0 , ptMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}}}},
63- {" tpcDedx" , " tpcDedx" , {HistType::kTHnSparseD , {{nBinsP, 0 , pMax}, {nBinsTpcDedx, 0 , 1000 }, {nBinsDistance, 0 , distanceMax}}}},
64- {" tofBeta" , " tofBeta" , {HistType::kTHnSparseD , {{nBinsPt, 0 , ptMax}, {nBinsTofBeta, 0.4 , 1.1 }, {nBinsDistance, 0 , distanceMax}}}},
63+ {" tpcDedx" , " tpcDedx" , {HistType::kTHnSparseD , {{nBinsPForDedx, 0 , pMax}, {nBinsTpcDedx, 0 , 1000 }, {nBinsDistance, 0 , distanceMax}}}},
64+ {" tpcDedxOutOfJet" , " tpcDedxOutOfJet" , {HistType::kTH2F , {{nBinsPForDedx, 0 , pMax}, {nBinsTpcDedx, 0 , 1000 }}}},
65+ {" tofBeta" , " tofBeta" , {HistType::kTHnSparseD , {{nBinsPForBeta, 0 , pMax}, {nBinsTofBeta, 0.4 , 1.1 }, {nBinsDistance, 0 , distanceMax}}}},
6566 {" pVsPtForProton" , " pVsPtForProton" , {HistType::kTHnSparseD , {{70 , 0 , pMax}, {50 , 0 , ptMax}, {nBinsDistance, 0 , distanceMax}}}},
6667 {" pVsPtForPion" , " pVsPtPion" , {HistType::kTHnSparseD , {{70 , 0 , pMax}, {50 , 0 , ptMax}, {nBinsDistance, 0 , distanceMax}}}},
6768 {" tofMass" , " tofMass" , {HistType::kTH1F , {{300 , 0 , 3 }}}},
69+ {" trackPhi" , " trackPhi" , {HistType::kTH1F , {{80 , -1 , 7 }}}},
70+ {" trackEta" , " trackEta" , {HistType::kTH1F , {{100 , -1 , 1 }}}},
71+ {" trackTpcNClsCrossedRows" , " trackTpcNClsCrossedRows" , {HistType::kTH1F , {{50 , 0 , 200 }}}},
72+ {" trackDcaXY" , " trackDcaXY" , {HistType::kTH1F , {{40 , -10 , 10 }}}},
73+ {" trackItsChi2NCl" , " trackItsChi2NCl" , {HistType::kTH1F , {{60 , 0 , 30 }}}},
74+ {" trackTpcChi2NCl" , " trackTpcChi2NCl" , {HistType::kTH1F , {{100 , 0 , 50 }}}},
75+ {" trackTpcNClsFound" , " trackTpcNClsFound" , {HistType::kTH1F , {{100 , 0 , 200 }}}},
76+ {" trackItsNCls" , " trackItsNCls" , {HistType::kTH1F , {{10 , 0 , 10 }}}},
6877 {" jetPt" , " jet pT;#it{p}_{T,jet} (GeV/#it{c});entries" , {HistType::kTH1F , {{200 , 0 ., 200 .}}}},
6978 {" jetEta" , " jet #eta;#eta_{jet};entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
7079 {" jetPhi" , " jet #phi;#phi_{jet};entries" , {HistType::kTH1F , {{80 , -1.0 , 7 .}}}},
@@ -179,6 +188,7 @@ struct JetShapeTask {
179188 float ptCorr = jet.pt () - collision.rho () * jet.area ();
180189
181190 for (const auto & track : tracks) {
191+
182192 float preDeltaPhi1 = track.phi () - jet.phi ();
183193 float deltaPhi1 = RecoDecay::constrainAngle (preDeltaPhi1);
184194 float deltaEta = track.eta () - jet.eta ();
@@ -257,6 +267,16 @@ struct JetShapeTask {
257267
258268 // tracks conditions
259269 for (const auto & track : tracks) {
270+
271+ registry.fill (HIST (" trackTpcNClsCrossedRows" ), track.tpcNClsCrossedRows ());
272+ registry.fill (HIST (" trackDcaXY" ), track.dcaXY ());
273+ registry.fill (HIST (" trackItsChi2NCl" ), track.itsChi2NCl ());
274+ registry.fill (HIST (" trackTpcChi2NCl" ), track.tpcChi2NCl ());
275+ registry.fill (HIST (" trackTpcNClsFound" ), track.tpcNClsFound ());
276+ registry.fill (HIST (" trackItsNCls" ), track.itsNCls ());
277+ registry.fill (HIST (" trackEta" ), track.eta ());
278+ registry.fill (HIST (" trackPhi" ), track.phi ());
279+
260280 if (std::abs (track.eta ()) > etaTrUp)
261281 continue ;
262282 if (track.tpcNClsCrossedRows () < nclcrossTpcMin)
@@ -289,9 +309,29 @@ struct JetShapeTask {
289309 // calculate distance from jet axis
290310 float distance = std::sqrt (deltaEta * deltaEta + deltaPhi1 * deltaPhi1);
291311
312+ // Define perpendicular cone axes in phi
313+ float phiBg1 = jet.phi () + (o2::constants::math::PIHalf);
314+ float phiBg2 = jet.phi () - (o2::constants::math::PIHalf);
315+
316+ // Calculate delta phi for background cones
317+ float preDeltaPhiBg1 = track.phi () - phiBg1;
318+ float preDeltaPhiBg2 = track.phi () - phiBg2;
319+ float deltaPhiBg1 = RecoDecay::constrainAngle (preDeltaPhiBg1);
320+ float deltaPhiBg2 = RecoDecay::constrainAngle (preDeltaPhiBg2);
321+
322+ // Calculate distance to background cone axes
323+ // Note: deltaEta is the same for all cones at the same eta
324+ float distanceBg1 = std::sqrt (deltaEta * deltaEta + deltaPhiBg1 * deltaPhiBg1);
325+ float distanceBg2 = std::sqrt (deltaEta * deltaEta + deltaPhiBg2 * deltaPhiBg2);
326+
327+ // Fill histogram if track is inside one of the perpendicular cones
328+ if (distanceBg1 < jetR || distanceBg2 < jetR) {
329+ registry.fill (HIST (" tpcDedxOutOfJet" ), track.p (), track.tpcSignal ());
330+ }
331+
292332 registry.fill (HIST (" distanceVsTrackpt" ), distance, track.pt ());
293333 registry.fill (HIST (" tpcDedx" ), track.p (), track.tpcSignal (), distance);
294- registry.fill (HIST (" tofBeta" ), track.pt (), track.beta (), distance);
334+ registry.fill (HIST (" tofBeta" ), track.p (), track.beta (), distance);
295335
296336 if (std::abs (track.tofNSigmaPr ()) < nSigmaTofCut) {
297337 registry.fill (HIST (" pVsPtForProton" ), track.p (), track.pt (), distance);
0 commit comments