@@ -128,6 +128,8 @@ struct JetHadronRecoil {
128128 {" hEtaTrack" , " Track #eta;#eta;entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
129129 {" hPhiTrack" , " Track #phi;#phi;entries" , {HistType::kTH1F , {{100 , 0.0 , o2::constants::math::TwoPI}}}},
130130 {" hTrack3D" , " 3D tracks histogram;p_{T};#eta;#phi" , {HistType::kTH3F , {{200 , 0 , 200 }, {100 , -1.0 , 1.0 }, {100 , 0.0 , o2::constants::math::TwoPI}}}},
131+ {" hTrackPtHard" , " Tracks vs pThard;#frac{p_{T}}{#hat{p}};p_{T}" , {HistType:kTH3F , {{20 , 0 , 5 }, {200 , 0 , 200 }}}},
132+ {" hPartPtHard" , " Part vs pThard;#frac{p_{T}}{#hat{p}};p_{T}" , {HistType:kTH3F , {{20 , 0 , 5 }, {200 , 0 , 200 }}}},
131133 {" hPtTrackPtHard" , " Track p_{T} vs #hat{p};p_{T};#frac{p_{T}}{#hat{p}}" , {HistType::kTH2F , {{200 , 0 , 200 }, {20 , 0 , 5 }}}},
132134 {" hConstituents3D" , " 3D constituents histogram;p_{T};#eta;#phi" , {HistType::kTH3F , {{200 , 0 , 200 }, {100 , -1.0 , 1.0 }, {100 , 0.0 , o2::constants::math::TwoPI}}}},
133135 {" hReferencePtDPhi" , " jet p_{T} vs DPhi;#Delta#phi;p_{T,jet}" , {HistType::kTH2F , {{100 , 0 , o2::constants::math::TwoPI}, {500 , -100 , 400 }}}},
@@ -145,6 +147,8 @@ struct JetHadronRecoil {
145147 {" hJetEta" , " jet #eta;#eta_{jet};entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
146148 {" hJetPhi" , " jet #phi;#phi_{jet};entries" , {HistType::kTH1F , {{100 , 0.0 , o2::constants::math::TwoPI}}}},
147149 {" hJet3D" , " 3D jet distribution;p_{T};#eta;#phi" , {HistType::kTH3F , {{500 , -100 , 400 }, {100 , -1.0 , 1.0 }, {100 , 0.0 , o2::constants::math::TwoPI}}}},
150+ {" hTracksvsJets" " comparing leading tracks and jets;p_{T,track};p_{T,jet};#hat{p}" , {HistType:kTH3F , {{200 , 0 , 200 }, {500 , -100 , 400 }, {195 , 5 , 200 }}}},
151+ {" hPartvsJets" " comparing leading particles and jets;p_{T,part};p_{T,jet};#hat{p}" , {HistType:kTH3F , {{200 , 0 , 200 }, {500 , -100 , 400 }, {195 , 5 , 200 }}}},
148152 {" hPtPart" , " Particle p_{T};p_{T};entries" , {HistType::kTH1F , {{200 , 0 , 200 }}}},
149153 {" hEtaPart" , " Particle #eta;#eta;entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
150154 {" hPhiPart" , " Particle #phi;#phi;entries" , {HistType::kTH1F , {{100 , 0.0 , o2::constants::math::TwoPI}}}},
@@ -209,11 +213,16 @@ struct JetHadronRecoil {
209213 bool isSigCol;
210214 std::vector<double > phiTTAr;
211215 std::vector<double > ptTTAr;
216+ std::vector<double > tracksAr;
212217 double phiTT = 0 ;
213218 double ptTT = 0 ;
219+ double ptRandTrack = 0 ;
214220 int trigNumber = 0 ;
221+ int trackNumber = 0 ;
215222 int nTT = 0 ;
216223 double leadingPT = 0 ;
224+ double leadingTrackPt = 0 ;
225+ double leadingJetPt = 0 ;
217226 float pTHat = 10 . / (std::pow (weight, 1.0 / pTHatExponent));
218227 float rhoReference = rho + rhoReferenceShift;
219228
@@ -227,6 +236,10 @@ struct JetHadronRecoil {
227236 if (!jetderiveddatautilities::selectTrack (track, trackSelection)) {
228237 continue ;
229238 }
239+ tracksAr.push_back (track.pt ());
240+ if (track.pt () > leadingTrackPt) {
241+ leadingTrackPt = track.pt ();
242+ }
230243 if (track.pt () > pTHatTrackMaxMCD * pTHat) {
231244 return ;
232245 }
@@ -249,6 +262,10 @@ struct JetHadronRecoil {
249262 registry.fill (HIST (" hPtTrackPtHard" ), track.pt (), track.pt () / pTHat, weight);
250263 }
251264
265+ trackNumber = rand->Integer (tracksAr.size ());
266+ ptRandTrack = tracksAr[trackNumber];
267+ registry.fill (HIST (" hTrackPtHard" ), ptRandTrack / pTHat, ptRandTrack, weight);
268+
252269 if (nTT > 0 ) {
253270 trigNumber = rand->Integer (nTT);
254271 phiTT = phiTTAr[trigNumber];
@@ -271,6 +288,9 @@ struct JetHadronRecoil {
271288 }
272289
273290 for (const auto & jet : jets) {
291+ if (jet.pt () > leadingJetPt) {
292+ leadingJetPt = jet.pt ();
293+ }
274294 if (jet.pt () > pTHatMaxMCD * pTHat) {
275295 return ;
276296 }
@@ -328,6 +348,7 @@ struct JetHadronRecoil {
328348 }
329349 }
330350 }
351+ registry.fill (HIST (" hTracksvsJets" ), leadingTrackPt, leadingJetPt, pTHat, weight);
331352 }
332353
333354 template <typename T, typename W, typename U>
@@ -336,10 +357,15 @@ struct JetHadronRecoil {
336357 bool isSigCol;
337358 std::vector<double > phiTTAr;
338359 std::vector<double > ptTTAr;
360+ std::vector<double > partAr;
339361 double phiTT = 0 ;
340362 double ptTT = 0 ;
363+ double ptRandPart = 0 ;
341364 int trigNumber = 0 ;
365+ int partNumber = 0 ;
342366 int nTT = 0 ;
367+ double leadingPartPt = 0 ;
368+ double leadingJetPt = 0 ;
343369 float pTHat = 10 . / (std::pow (weight, 1.0 / pTHatExponent));
344370
345371 float dice = rand->Rndm ();
@@ -349,6 +375,10 @@ struct JetHadronRecoil {
349375 isSigCol = false ;
350376
351377 for (const auto & particle : particles) {
378+ partAr.push_back (particle.pt ());
379+ if (particle.pt () > leadingPartPt) {
380+ leadingPartPt = particle.pt ();
381+ }
352382 if (particle.pt () > pTHatTrackMaxMCD * pTHat) {
353383 return ;
354384 }
@@ -376,6 +406,10 @@ struct JetHadronRecoil {
376406 registry.fill (HIST (" hPtPartPtHard" ), particle.pt (), particle.pt () / pTHat, weight);
377407 }
378408
409+ partNumber = rand->Integer (partAr.size ());
410+ ptRandPart = partAr[partNumber];
411+ registry.fill (HIST (" hPartPtHard" ), ptRandPart / pTHat, ptRandPart, weight);
412+
379413 if (nTT > 0 ) {
380414 trigNumber = rand->Integer (nTT);
381415 phiTT = phiTTAr[trigNumber];
@@ -393,6 +427,9 @@ struct JetHadronRecoil {
393427 }
394428
395429 for (const auto & jet : jets) {
430+ if (jet.pt () > leadingJetPt) {
431+ leadingJetPt = jet.pt ();
432+ }
396433 if (jet.pt () > pTHatMaxMCP * pTHat) {
397434 return ;
398435 }
@@ -436,6 +473,7 @@ struct JetHadronRecoil {
436473 }
437474 }
438475 }
476+ registry.fill (HIST (" hPartvsJets" ), leadingPartPt, leadingJetPt, pTHat, weight);
439477 }
440478
441479 template <typename T, typename V, typename W, typename U, typename X, typename Y>
0 commit comments