Skip to content

Commit 24f8b3b

Browse files
authored
[PWGJE] Adding outlier cut QA (#12225)
1 parent 0409cd9 commit 24f8b3b

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

PWGJE/Tasks/jetHadronRecoil.cxx

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)