@@ -39,16 +39,24 @@ using namespace o2::framework;
3939using namespace o2 ::framework::expressions;
4040
4141struct JetShapeTask {
42+
43+ Configurable<int > nBinsTpcNSigma{" nBinsTpcNSigma" , 101 , " Number of TPC-nsigma bins" };
44+ Configurable<float > tpcNSigmaMin{" tpcNSigmaMin" , -10 .1f , " Min value of Tpc-nsigma" };
45+ Configurable<float > tpcNSigmaMax{" tpcNSigmaMax" , 10 .1f , " Max value of Tpc-nsigma" };
46+ Configurable<int > nBinsTofNSigma{" nBinsTofNSigma" , 10 , " Number of TOF-nsigma bins" };
47+ Configurable<float > tofNSigmaMin{" tofNSigmaMin" , -10 , " Min value of Tof-nsigma" };
48+ Configurable<float > tofNSigmaMax{" tofNSigmaMax" , 10 , " Max value of Tof-nsigma" };
49+
4250 HistogramRegistry registry{" registry" ,
43- {{" tpcTofPi" , " tpcTofPi" , {HistType::kTHnSparseD , {{101 , - 10 . 1f , 10 . 1f }, {20 , - 10 , 10 }, {25 , 0 , 5 }, {14 , 0 , 0.7 }}}},
44- {" tpcPi" , " tpcPi" , {HistType::kTH2F , {{100 , 0 , 5 }, {401 , -10 .025f , 10 .025f }}}},
45- {" tofPi" , " tofPi" , {HistType::kTH2F , {{100 , 0 , 5 }, {401 , -10 .025f , 10 .025f }}}},
46- {" tpcTofPr" , " tpcTofPr" , {HistType::kTHnSparseD , {{101 , - 10 . 1f , 10 . 1f }, {20 , - 10 , 10 }, {25 , 0 , 5 }, {14 , 0 , 0.7 }}}},
47- {" tpcPr" , " tpcPr" , {HistType::kTH2F , {{100 , 0 , 5 }, {401 , -10 .025f , 10 .025f }}}},
48- {" tofPr" , " tofPr" , {HistType::kTH2F , {{100 , 0 , 5 }, {401 , -10 .025f , 10 .025f }}}},
49- {" tpcDedx" , " tpcDedx" , {HistType::kTH2F , {{500 , 0 , 5 }, {1000 , 0 , 1000 }}}},
50- {" tofBeta" , " tofBeta" , {HistType::kTH2F , {{500 , 0 , 5 }, {450 , 0.2 , 1.1 }}}},
51- {" tofMass" , " tofMass" , {HistType::kTH1F , {{3000 , 0 , 3 }}}},
51+ {{" tpcTofPi" , " tpcTofPi" , {HistType::kTHnSparseD , {{nBinsTpcNSigma, tpcNSigmaMin, tpcNSigmaMax }, {nBinsTofNSigma, tofNSigmaMin, tofNSigmaMax }, {25 , 0 , 5 }, {14 , 0 , 0.7 }}}},
52+ {" tpcPi" , " tpcPi" , {HistType::kTH2F , {{100 , 0 , 5 }, {101 , -10 .1f , 10 .1f }}}},
53+ {" tofPi" , " tofPi" , {HistType::kTH2F , {{100 , 0 , 5 }, {101 , -10 .1f , 10 .1f }}}},
54+ {" tpcTofPr" , " tpcTofPr" , {HistType::kTHnSparseD , {{nBinsTpcNSigma, tpcNSigmaMin, tpcNSigmaMax }, {nBinsTofNSigma, tofNSigmaMin, tofNSigmaMax }, {25 , 0 , 5 }, {14 , 0 , 0.7 }}}},
55+ {" tpcPr" , " tpcPr" , {HistType::kTH2F , {{50 , 0 , 5 }, {101 , -10 .1f , 10 .1f }}}},
56+ {" tofPr" , " tofPr" , {HistType::kTH2F , {{50 , 0 , 5 }, {101 , -10 .1f , 10 .1f }}}},
57+ {" tpcDedx" , " tpcDedx" , {HistType::kTHnSparseD , {{100 , 0 , 5 }, {500 , 0 , 1000 }, { 7 , 0 , 0.7 }}}},
58+ {" tofBeta" , " tofBeta" , {HistType::kTHnSparseD , {{100 , 0 , 5 }, {350 , 0.4 , 1.1 }, { 7 , 0 , 0.7 }}}},
59+ {" tofMass" , " tofMass" , {HistType::kTH1F , {{300 , 0 , 3 }}}},
5260 {" jetPt" , " jet pT;#it{p}_{T,jet} (GeV/#it{c});entries" , {HistType::kTH1F , {{200 , 0 ., 200 .}}}},
5361 {" jetEta" , " jet #eta;#eta_{jet};entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
5462 {" jetPhi" , " jet #phi;#phi_{jet};entries" , {HistType::kTH1F , {{80 , -1.0 , 7 .}}}},
@@ -150,21 +158,18 @@ struct JetShapeTask {
150158 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)
151159 {
152160
161+ std::vector<float > ptDensity (distanceCategory->size () - 1 , 0 .f );
162+ std::vector<float > ptDensityBg1 (distanceCategory->size () - 1 , 0 .f );
163+ std::vector<float > ptDensityBg2 (distanceCategory->size () - 1 , 0 .f );
164+
153165 for (auto const & jet : jets) {
154166 if (!isAcceptedJet<aod::JetTracks>(jet)) {
155167 continue ;
156168 }
157169
158- std::vector<float > trackPtSum (distanceCategory->size () - 1 , 0 .f );
159- std::vector<float > trackPtSumBg1 (distanceCategory->size () - 1 , 0 .f );
160- std::vector<float > trackPtSumBg2 (distanceCategory->size () - 1 , 0 .f );
161-
162170 // Get underlying event subtracted jet.pt() as ptCorr
163171 float ptCorr = jet.pt () - collision.rho () * jet.area ();
164172
165- float phiBg1 = jet.phi () + (o2::constants::math::PIHalf);
166- float phiBg2 = jet.phi () - (o2::constants::math::PIHalf);
167-
168173 for (const auto & track : tracks) {
169174 float preDeltaPhi1 = track.phi () - jet.phi ();
170175 float deltaPhi1 = RecoDecay::constrainAngle (preDeltaPhi1);
@@ -177,13 +182,20 @@ struct JetShapeTask {
177182 registry.fill (HIST (" ptVsCentrality" ), collision.centrality (), track.pt ());
178183
179184 // calculate compornents of jetshapefunction rho(r)
185+ std::vector<float > trackPtSum (distanceCategory->size () - 1 , 0 .f );
186+ std::vector<float > trackPtSumBg1 (distanceCategory->size () - 1 , 0 .f );
187+ std::vector<float > trackPtSumBg2 (distanceCategory->size () - 1 , 0 .f );
180188
181- float preDeltaPhiBg1 = track.phi () - phiBg1;
182- float deltaPhiBg1 = RecoDecay::constrainAngle (preDeltaPhiBg1);
183- float distanceBg1 = std::sqrt (deltaEta * deltaEta + deltaPhiBg1 * deltaPhiBg1);
189+ float phiBg1 = jet.phi () + (o2::constants::math::PIHalf);
190+ float phiBg2 = jet.phi () - (o2::constants::math::PIHalf);
184191
192+ float preDeltaPhiBg1 = track.phi () - phiBg1;
185193 float preDeltaPhiBg2 = track.phi () - phiBg2;
194+
195+ float deltaPhiBg1 = RecoDecay::constrainAngle (preDeltaPhiBg1);
186196 float deltaPhiBg2 = RecoDecay::constrainAngle (preDeltaPhiBg2);
197+
198+ float distanceBg1 = std::sqrt (deltaEta * deltaEta + deltaPhiBg1 * deltaPhiBg1);
187199 float distanceBg2 = std::sqrt (deltaEta * deltaEta + deltaPhiBg2 * deltaPhiBg2);
188200
189201 for (size_t i = 0 ; i < distanceCategory->size () - 1 ; i++) {
@@ -194,16 +206,12 @@ struct JetShapeTask {
194206 if (distanceCategory->at (i) <= distanceBg2 && distanceBg2 < distanceCategory->at (i + 1 ))
195207 trackPtSumBg2[i] += track.pt ();
196208 }
197- }
198209
199- std::vector<float > ptDensity (distanceCategory->size () - 1 , 0 .f );
200- std::vector<float > ptDensityBg1 (distanceCategory->size () - 1 , 0 .f );
201- std::vector<float > ptDensityBg2 (distanceCategory->size () - 1 , 0 .f );
202-
203- for (size_t i = 0 ; i < distanceCategory->size () - 1 ; i++) {
204- ptDensity[i] += trackPtSum[i] / ((distanceCategory->at (i + 1 ) - distanceCategory->at (i)) * ptCorr);
205- ptDensityBg1[i] += trackPtSumBg1[i] / ((distanceCategory->at (i + 1 ) - distanceCategory->at (i)) * ptCorr);
206- ptDensityBg2[i] += trackPtSumBg2[i] / ((distanceCategory->at (i + 1 ) - distanceCategory->at (i)) * ptCorr);
210+ for (size_t i = 0 ; i < distanceCategory->size () - 1 ; i++) {
211+ ptDensity[i] += trackPtSum[i] / ((distanceCategory->at (i + 1 ) - distanceCategory->at (i)) * ptCorr);
212+ ptDensityBg1[i] += trackPtSumBg1[i] / ((distanceCategory->at (i + 1 ) - distanceCategory->at (i)) * ptCorr);
213+ ptDensityBg2[i] += trackPtSumBg2[i] / ((distanceCategory->at (i + 1 ) - distanceCategory->at (i)) * ptCorr);
214+ }
207215 }
208216
209217 registry.fill (HIST (" jetPt" ), jet.pt ());
@@ -257,8 +265,6 @@ struct JetShapeTask {
257265 continue ;
258266
259267 // PID check
260- registry.fill (HIST (" tpcDedx" ), track.pt (), track.tpcSignal ());
261- registry.fill (HIST (" tofBeta" ), track.pt (), track.beta ());
262268 registry.fill (HIST (" tofMass" ), track.mass ());
263269
264270 // for calculate purity
@@ -276,6 +282,8 @@ struct JetShapeTask {
276282 float distance = std::sqrt (deltaEta * deltaEta + deltaPhi1 * deltaPhi1);
277283
278284 registry.fill (HIST (" distanceVsTrackpt" ), distance, track.pt ());
285+ registry.fill (HIST (" tpcDedx" ), track.pt (), track.tpcSignal (), distance);
286+ registry.fill (HIST (" tofBeta" ), track.pt (), track.beta (), distance);
279287 registry.fill (HIST (" tpcTofPi" ), track.tpcNSigmaPi (), track.tofNSigmaPi (), track.pt (), distance);
280288 registry.fill (HIST (" tpcTofPr" ), track.tpcNSigmaPr (), track.tofNSigmaPr (), track.pt (), distance);
281289 }
0 commit comments