@@ -43,15 +43,19 @@ 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" };
5151 Configurable<float > ptMax{" ptMax" , 5 .0f , " Max value of pT" };
5252 Configurable<int > nBinsDistance{" nBinsDistance" , 7 , " Number of distance bins" };
5353 Configurable<float > distanceMax{" distanceMax" , 0 .7f , " Max value of distance" };
5454 Configurable<float > nSigmaTofCut{" nSigmaTofCut" , 2 .0f , " Number of sigma cut for TOF PID" };
55+ Configurable<float > tpcNSigmaPrMin{" tpcNSigmaPrMin" , -3 .5f , " Min value of tpcNsigmaProton" };
56+ Configurable<float > tpcNSigmaPrMax{" tpcNSigmaPrMax" , 0 .5f , " Max value of tpcNsigmaProton" };
57+ Configurable<float > tpcNSigmaPiMin{" tpcNSigmaPiMin" , -0 .5f , " Min value of tpcNsigmaPion" };
58+ Configurable<float > tpcNSigmaPiMax{" tpcNSigmaPiMax" , 3 .5f , " Max value of tpcNsigmaPion" };
5559
5660 HistogramRegistry registry{" registry" ,
5761 {{" tpcTofPi" , " tpcTofPi" , {HistType::kTHnSparseD , {{35 , 0 , pMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}, {nBinsDistance, 0 , distanceMax}}}},
@@ -60,11 +64,20 @@ struct JetShapeTask {
6064 {" tofPi" , " tofPi" , {HistType::kTH2F , {{50 , 0 , ptMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}}}},
6165 {" tpcPr" , " tpcPr" , {HistType::kTH2F , {{70 , 0 , pMax}, {nBinsNSigma, nSigmaMin, nSigmaMax}}}},
6266 {" 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}}}},
67+ {" tpcDedx" , " tpcDedx" , {HistType::kTHnSparseD , {{nBinsPForDedx, 0 , pMax}, {nBinsTpcDedx, 0 , 1000 }, {nBinsDistance, 0 , distanceMax}}}},
68+ {" tpcDedxOutOfJet" , " tpcDedxOutOfJet" , {HistType::kTH2F , {{nBinsPForDedx, 0 , pMax}, {nBinsTpcDedx, 0 , 1000 }}}},
69+ {" tofBeta" , " tofBeta" , {HistType::kTHnSparseD , {{nBinsPForBeta, 0 , pMax}, {nBinsTofBeta, 0.4 , 1.1 }, {nBinsDistance, 0 , distanceMax}}}},
6570 {" pVsPtForProton" , " pVsPtForProton" , {HistType::kTHnSparseD , {{70 , 0 , pMax}, {50 , 0 , ptMax}, {nBinsDistance, 0 , distanceMax}}}},
6671 {" pVsPtForPion" , " pVsPtPion" , {HistType::kTHnSparseD , {{70 , 0 , pMax}, {50 , 0 , ptMax}, {nBinsDistance, 0 , distanceMax}}}},
6772 {" tofMass" , " tofMass" , {HistType::kTH1F , {{300 , 0 , 3 }}}},
73+ {" trackPhi" , " trackPhi" , {HistType::kTH1F , {{80 , -1 , 7 }}}},
74+ {" trackEta" , " trackEta" , {HistType::kTH1F , {{100 , -1 , 1 }}}},
75+ {" trackTpcNClsCrossedRows" , " trackTpcNClsCrossedRows" , {HistType::kTH1F , {{50 , 0 , 200 }}}},
76+ {" trackDcaXY" , " trackDcaXY" , {HistType::kTH1F , {{40 , -10 , 10 }}}},
77+ {" trackItsChi2NCl" , " trackItsChi2NCl" , {HistType::kTH1F , {{60 , 0 , 30 }}}},
78+ {" trackTpcChi2NCl" , " trackTpcChi2NCl" , {HistType::kTH1F , {{100 , 0 , 50 }}}},
79+ {" trackTpcNClsFound" , " trackTpcNClsFound" , {HistType::kTH1F , {{100 , 0 , 200 }}}},
80+ {" trackItsNCls" , " trackItsNCls" , {HistType::kTH1F , {{10 , 0 , 10 }}}},
6881 {" jetPt" , " jet pT;#it{p}_{T,jet} (GeV/#it{c});entries" , {HistType::kTH1F , {{200 , 0 ., 200 .}}}},
6982 {" jetEta" , " jet #eta;#eta_{jet};entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
7083 {" jetPhi" , " jet #phi;#phi_{jet};entries" , {HistType::kTH1F , {{80 , -1.0 , 7 .}}}},
@@ -179,6 +192,7 @@ struct JetShapeTask {
179192 float ptCorr = jet.pt () - collision.rho () * jet.area ();
180193
181194 for (const auto & track : tracks) {
195+
182196 float preDeltaPhi1 = track.phi () - jet.phi ();
183197 float deltaPhi1 = RecoDecay::constrainAngle (preDeltaPhi1);
184198 float deltaEta = track.eta () - jet.eta ();
@@ -200,8 +214,8 @@ struct JetShapeTask {
200214 float preDeltaPhiBg1 = track.phi () - phiBg1;
201215 float preDeltaPhiBg2 = track.phi () - phiBg2;
202216
203- float deltaPhiBg1 = RecoDecay::constrainAngle (preDeltaPhiBg1);
204- float deltaPhiBg2 = RecoDecay::constrainAngle (preDeltaPhiBg2);
217+ float deltaPhiBg1 = RecoDecay::constrainAngle (preDeltaPhiBg1, -o2::constants::math::PI );
218+ float deltaPhiBg2 = RecoDecay::constrainAngle (preDeltaPhiBg2, -o2::constants::math::PI );
205219
206220 float distanceBg1 = std::sqrt (deltaEta * deltaEta + deltaPhiBg1 * deltaPhiBg1);
207221 float distanceBg2 = std::sqrt (deltaEta * deltaEta + deltaPhiBg2 * deltaPhiBg2);
@@ -257,6 +271,16 @@ struct JetShapeTask {
257271
258272 // tracks conditions
259273 for (const auto & track : tracks) {
274+
275+ registry.fill (HIST (" trackTpcNClsCrossedRows" ), track.tpcNClsCrossedRows ());
276+ registry.fill (HIST (" trackDcaXY" ), track.dcaXY ());
277+ registry.fill (HIST (" trackItsChi2NCl" ), track.itsChi2NCl ());
278+ registry.fill (HIST (" trackTpcChi2NCl" ), track.tpcChi2NCl ());
279+ registry.fill (HIST (" trackTpcNClsFound" ), track.tpcNClsFound ());
280+ registry.fill (HIST (" trackItsNCls" ), track.itsNCls ());
281+ registry.fill (HIST (" trackEta" ), track.eta ());
282+ registry.fill (HIST (" trackPhi" ), track.phi ());
283+
260284 if (std::abs (track.eta ()) > etaTrUp)
261285 continue ;
262286 if (track.tpcNClsCrossedRows () < nclcrossTpcMin)
@@ -289,18 +313,42 @@ struct JetShapeTask {
289313 // calculate distance from jet axis
290314 float distance = std::sqrt (deltaEta * deltaEta + deltaPhi1 * deltaPhi1);
291315
316+ // Define perpendicular cone axes in phi
317+ float phiBg1 = jet.phi () + (o2::constants::math::PIHalf);
318+ float phiBg2 = jet.phi () - (o2::constants::math::PIHalf);
319+
320+ // Calculate delta phi for background cones
321+ float preDeltaPhiBg1 = track.phi () - phiBg1;
322+ float preDeltaPhiBg2 = track.phi () - phiBg2;
323+ float deltaPhiBg1 = RecoDecay::constrainAngle (preDeltaPhiBg1, -o2::constants::math::PI);
324+ float deltaPhiBg2 = RecoDecay::constrainAngle (preDeltaPhiBg2, -o2::constants::math::PI);
325+
326+ // Calculate distance to background cone axes
327+ // Note: deltaEta is the same for all cones at the same eta
328+ float distanceBg1 = std::sqrt (deltaEta * deltaEta + deltaPhiBg1 * deltaPhiBg1);
329+ float distanceBg2 = std::sqrt (deltaEta * deltaEta + deltaPhiBg2 * deltaPhiBg2);
330+
331+ // Fill histogram if track is inside one of the perpendicular cones
332+ if (distanceBg1 < jetR || distanceBg2 < jetR) {
333+ registry.fill (HIST (" tpcDedxOutOfJet" ), track.p (), track.tpcSignal ());
334+ }
335+
292336 registry.fill (HIST (" distanceVsTrackpt" ), distance, track.pt ());
293337 registry.fill (HIST (" tpcDedx" ), track.p (), track.tpcSignal (), distance);
294- registry.fill (HIST (" tofBeta" ), track.pt (), track.beta (), distance);
338+ registry.fill (HIST (" tofBeta" ), track.p (), track.beta (), distance);
295339
296340 if (std::abs (track.tofNSigmaPr ()) < nSigmaTofCut) {
297- registry.fill (HIST (" pVsPtForProton" ), track.p (), track.pt (), distance);
298341 registry.fill (HIST (" tpcTofPr" ), track.p (), track.tpcNSigmaPr (), distance);
342+ if (track.tpcNSigmaPr () > tpcNSigmaPrMin && track.tpcNSigmaPr () < tpcNSigmaPrMax) {
343+ registry.fill (HIST (" pVsPtForProton" ), track.p (), track.pt (), distance);
344+ }
299345 }
300346
301347 if (std::abs (track.tofNSigmaPi ()) < nSigmaTofCut) {
302- registry.fill (HIST (" pVsPtForPion" ), track.p (), track.pt (), distance);
303348 registry.fill (HIST (" tpcTofPi" ), track.p (), track.tpcNSigmaPi (), distance);
349+ if (track.tpcNSigmaPi () > tpcNSigmaPiMin && track.tpcNSigmaPi () < tpcNSigmaPiMax) {
350+ registry.fill (HIST (" pVsPtForPion" ), track.p (), track.pt (), distance);
351+ }
304352 }
305353 }
306354 }
0 commit comments