@@ -129,6 +129,8 @@ struct JetHadronRecoil {
129129 {" hEtaTrack" , " Track #eta;#eta;entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
130130 {" hPhiTrack" , " Track #phi;#phi;entries" , {HistType::kTH1F , {{100 , 0.0 , o2::constants::math::TwoPI}}}},
131131 {" 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}}}},
132+ {" hTrackPtHard" , " Tracks vs pThard;#frac{p_{T}}{#hat{p}};p_{T}" , {HistType::kTH2F , {{20 , 0 , 5 }, {200 , 0 , 200 }}}},
133+ {" hPartPtHard" , " Part vs pThard;#frac{p_{T}}{#hat{p}};p_{T}" , {HistType::kTH2F , {{20 , 0 , 5 }, {200 , 0 , 200 }}}},
132134 {" hPtTrackPtHard" , " Track p_{T} vs #hat{p};p_{T};#frac{p_{T}}{#hat{p}}" , {HistType::kTH2F , {{200 , 0 , 200 }, {20 , 0 , 5 }}}},
133135 {" 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}}}},
134136 {" hReferencePtDPhi" , " jet p_{T} vs DPhi;#Delta#phi;p_{T,jet}" , {HistType::kTH2F , {{100 , 0 , o2::constants::math::TwoPI}, {500 , -100 , 400 }}}},
@@ -146,6 +148,8 @@ struct JetHadronRecoil {
146148 {" hJetEta" , " jet #eta;#eta_{jet};entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
147149 {" hJetPhi" , " jet #phi;#phi_{jet};entries" , {HistType::kTH1F , {{100 , 0.0 , o2::constants::math::TwoPI}}}},
148150 {" 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}}}},
151+ {" 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 }}}},
152+ {" 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 }}}},
149153 {" hPtPart" , " Particle p_{T};p_{T};entries" , {HistType::kTH1F , {{200 , 0 , 200 }}}},
150154 {" hEtaPart" , " Particle #eta;#eta;entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
151155 {" hPhiPart" , " Particle #phi;#phi;entries" , {HistType::kTH1F , {{100 , 0.0 , o2::constants::math::TwoPI}}}},
@@ -177,7 +181,7 @@ struct JetHadronRecoil {
177181 {" hPtMatched1d" , " p_{T} matching 1d;p_{T,part}" , {HistType::kTH1F , {{400 , 0 , 400 }}}},
178182 {" hDeltaRMatched1d" , " #DeltaR matching 1d;#DeltaR_{part}" , {HistType::kTH1F , {dRAxisPart}}},
179183 {" hPtResolution" , " p_{T} resolution;p_{T,part};Relative Resolution" , {HistType::kTH2F , {{400 , 0 , 400 }, {1000 , -5.0 , 5.0 }}}},
180- {" hPhiResolution" , " #phi resolution;#p {T,part};Resolution" , {HistType::kTH2F , {{400 , 0 , 400 }, {1000 , -7.0 , 7.0 }}}},
184+ {" hPhiResolution" , " #phi resolution;#p_ {T,part};Resolution" , {HistType::kTH2F , {{400 , 0 , 400 }, {1000 , -7.0 , 7.0 }}}},
181185 {" hDeltaRResolution" , " #DeltaR Resolution;p_{T,part};Resolution" , {HistType::kTH2F , {{400 , 0 , 400 }, {1000 , -0.15 , 0.15 }}}},
182186 {" hFullMatching" , " Full 6D matching;p_{T,det};p_{T,part};#phi_{det};#phi_{part};#DeltaR_{det};#DeltaR_{part}" , {HistType::kTHnSparseD , {ptAxisDet, ptAxisPart, phiAxisDet, phiAxisPart, dRAxisDet, dRAxisPart}}}}};
183187
@@ -210,11 +214,16 @@ struct JetHadronRecoil {
210214 bool isSigCol;
211215 std::vector<double > phiTTAr;
212216 std::vector<double > ptTTAr;
217+ std::vector<double > tracksAr;
213218 double phiTT = 0 ;
214219 double ptTT = 0 ;
220+ double ptRandTrack = 0 ;
215221 int trigNumber = 0 ;
222+ int trackNumber = 0 ;
216223 int nTT = 0 ;
217224 double leadingPT = 0 ;
225+ double leadingTrackPt = 0 ;
226+ double leadingJetPt = 0 ;
218227 float rhoReference = rho + rhoReferenceShift;
219228
220229 float dice = rand->Rndm ();
@@ -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 if (outlierRejectEvent) {
232245 return ;
@@ -253,6 +266,10 @@ struct JetHadronRecoil {
253266 registry.fill (HIST (" hPtTrackPtHard" ), track.pt (), track.pt () / pTHat, weight);
254267 }
255268
269+ trackNumber = rand->Integer (tracksAr.size ());
270+ ptRandTrack = tracksAr[trackNumber];
271+ registry.fill (HIST (" hTrackPtHard" ), ptRandTrack / pTHat, ptRandTrack, weight);
272+
256273 if (nTT > 0 ) {
257274 trigNumber = rand->Integer (nTT);
258275 phiTT = phiTTAr[trigNumber];
@@ -274,6 +291,9 @@ struct JetHadronRecoil {
274291 }
275292 }
276293 for (const auto & jet : jets) {
294+ if (jet.pt () > leadingJetPt) {
295+ leadingJetPt = jet.pt ();
296+ }
277297 if (jet.pt () > pTHatMaxMCD * pTHat) {
278298 if (outlierRejectEvent) {
279299 return ;
@@ -335,6 +355,7 @@ struct JetHadronRecoil {
335355 }
336356 }
337357 }
358+ registry.fill (HIST (" hTracksvsJets" ), leadingTrackPt, leadingJetPt, pTHat, weight);
338359 }
339360
340361 template <typename T, typename W, typename U>
@@ -343,18 +364,26 @@ struct JetHadronRecoil {
343364 bool isSigCol;
344365 std::vector<double > phiTTAr;
345366 std::vector<double > ptTTAr;
367+ std::vector<double > partAr;
346368 double phiTT = 0 ;
347369 double ptTT = 0 ;
370+ double ptRandPart = 0 ;
348371 int trigNumber = 0 ;
372+ int partNumber = 0 ;
349373 int nTT = 0 ;
350-
374+ double leadingPartPt = 0 ;
375+ double leadingJetPt = 0 ;
351376 float dice = rand->Rndm ();
352377 if (dice < fracSig)
353378 isSigCol = true ;
354379 else
355380 isSigCol = false ;
356381
357382 for (const auto & particle : particles) {
383+ partAr.push_back (particle.pt ());
384+ if (particle.pt () > leadingPartPt) {
385+ leadingPartPt = particle.pt ();
386+ }
358387 if (particle.pt () > pTHatTrackMaxMCD * pTHat) {
359388 if (outlierRejectEvent) {
360389 return ;
@@ -386,6 +415,10 @@ struct JetHadronRecoil {
386415 registry.fill (HIST (" hPtPartPtHard" ), particle.pt (), particle.pt () / pTHat, weight);
387416 }
388417
418+ partNumber = rand->Integer (partAr.size ());
419+ ptRandPart = partAr[partNumber];
420+ registry.fill (HIST (" hPartPtHard" ), ptRandPart / pTHat, ptRandPart, weight);
421+
389422 if (nTT > 0 ) {
390423 trigNumber = rand->Integer (nTT);
391424 phiTT = phiTTAr[trigNumber];
@@ -403,6 +436,9 @@ struct JetHadronRecoil {
403436 }
404437
405438 for (const auto & jet : jets) {
439+ if (jet.pt () > leadingJetPt) {
440+ leadingJetPt = jet.pt ();
441+ }
406442 if (jet.pt () > pTHatMaxMCP * pTHat) {
407443 if (outlierRejectEvent) {
408444 return ;
@@ -450,6 +486,7 @@ struct JetHadronRecoil {
450486 }
451487 }
452488 }
489+ registry.fill (HIST (" hPartvsJets" ), leadingPartPt, leadingJetPt, pTHat, weight);
453490 }
454491
455492 template <typename T, typename V, typename W, typename U, typename X, typename Y>
0 commit comments