Skip to content

Commit 1cc0061

Browse files
nzardoshNima Zardoshti
andauthored
PWGJE : Adding more QA options (#2740)
* PWGJE : Adding more QA options * fixing eta bug --------- Co-authored-by: Nima Zardoshti <nzardosh@alicecerno2.cern.ch>
1 parent 19f8da7 commit 1cc0061

3 files changed

Lines changed: 71 additions & 24 deletions

File tree

PWGJE/TableProducer/jetfinder.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ struct JetFinderTask {
3333
// track level configurables
3434
Configurable<float> trackPtMin{"trackPtMin", 0.15, "minimum track pT"};
3535
Configurable<float> trackPtMax{"trackPtMax", 1000.0, "maximum track pT"};
36-
Configurable<float> trackEtaMin{"trackEtaMin", -0.8, "minimum track eta"};
37-
Configurable<float> trackEtaMax{"trackEtaMax", 0.8, "maximum track eta"};
36+
Configurable<float> trackEtaMin{"trackEtaMin", -0.9, "minimum track eta"};
37+
Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum track eta"};
3838
Configurable<float> trackPhiMin{"trackPhiMin", -999, "minimum track phi"};
3939
Configurable<float> trackPhiMax{"trackPhiMax", 999, "maximum track phi"};
4040
Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections"};

PWGJE/TableProducer/jetfinderhf.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ struct JetFinderHFTask {
3434
// track level configurables
3535
Configurable<float> trackPtMin{"trackPtMin", 0.15, "minimum track pT"};
3636
Configurable<float> trackPtMax{"trackPtMax", 1000.0, "maximum track pT"};
37-
Configurable<float> trackEtaMin{"trackEtaMin", -0.8, "minimum track eta"};
38-
Configurable<float> trackEtaMax{"trackEtaMax", 0.8, "maximum track eta"};
37+
Configurable<float> trackEtaMin{"trackEtaMin", -0.9, "minimum track eta"};
38+
Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum track eta"};
3939
Configurable<float> trackPhiMin{"trackPhiMin", -999, "minimum track phi"};
4040
Configurable<float> trackPhiMax{"trackPhiMax", 999, "maximum track phi"};
4141
Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections"};

PWGJE/Tasks/jetfinderQA.cxx

Lines changed: 67 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
//
1414
// Authors: Nima Zardoshti
1515

16+
#include <string>
17+
1618
#include "Framework/ASoA.h"
1719
#include "Framework/AnalysisDataModel.h"
1820
#include "Framework/AnalysisTask.h"
@@ -101,12 +103,24 @@ struct JetFinderQATask {
101103
Configurable<float> triggeredJetsRadius{"triggeredJetsRadius", 0.6, "resolution parameter for triggered jets"};
102104
Configurable<float> vertexZCut{"vertexZCut", 10.0f, "Accepted z-vertex range"};
103105
Configurable<std::vector<double>> jetRadii{"jetRadii", std::vector<double>{0.2, 0.3, 0.4, 0.5, 0.6}, "jet resolution parameters"};
104-
Configurable<float> etaMin{"etaMin", -0.9, "minimum eta acceptance"};
105-
Configurable<float> etaMax{"etaMax", 0.9, "maximum eta acceptance"};
106+
Configurable<float> trackEtaMin{"trackEtaMin", -0.9, "minimum eta acceptance for tracks"};
107+
Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum eta acceptance for tracks"};
108+
Configurable<float> trackPtMin{"trackPtMin", -0.9, "minimum pT acceptance for tracks"};
109+
Configurable<float> trackPtMax{"trackPtMax", 0.9, "maximum pT acceptance for tracks"};
110+
Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections"};
111+
std::string trackSelection;
112+
std::vector<double> minJetPt;
113+
std::vector<double> jetRadiiValues;
106114

107115
void init(o2::framework::InitContext&)
108116
{
117+
trackSelection = static_cast<std::string>(trackSelections);
118+
jetRadiiValues = (std::vector<double>)jetRadii;
119+
for (auto iJetRadius = 0; iJetRadius < jetRadiiValues.size(); iJetRadius++) {
120+
minJetPt.push_back(0.0);
121+
}
109122
auto jetRadiiBins = (std::vector<double>)jetRadii;
123+
jetRadiiBins.push_back(jetRadiiBins[jetRadiiBins.size() - 1] + 0.1);
110124
registry.add("h3_jet_radius_jet_pt_collision", "jet radius;#it{p}_{T,jet} (GeV/#it{c});collision trigger status", {HistType::kTH3F, {{jetRadiiBins, ""}, {200, 0., 200.}, {2, 0.0, 2.0}}});
111125
registry.add("h3_jet_radius_jet_eta_collision", "jet radius;#eta_{jet};collision trigger status", {HistType::kTH3F, {{jetRadiiBins, ""}, {100, -1.0, 1.0}, {2, 0.0, 2.0}}});
112126
registry.add("h3_jet_radius_jet_phi_collision", "jet radius;#phi_{jet};collision trigger status", {HistType::kTH3F, {{jetRadiiBins, ""}, {80, -1.0, 7.}, {2, 0.0, 2.0}}});
@@ -121,6 +135,23 @@ struct JetFinderQATask {
121135

122136
using JetTracks = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection>;
123137

138+
template <typename T>
139+
bool selectTrack(T const& track)
140+
{
141+
if (trackSelection == "globalTracks" && !track.isGlobalTrackWoPtEta()) {
142+
return false;
143+
}
144+
if (trackSelection == "globalTracks" && (track.pt() < trackPtMin || track.pt() >= trackPtMax || track.eta() < trackEtaMin || track.eta() >= trackEtaMax)) {
145+
return false;
146+
}
147+
if (trackSelection == "QualityTracks" && !track.isQualityTrack()) {
148+
return false;
149+
}
150+
if (trackSelection == "hybridTracksJE" && !track.trackCutFlagFb5()) { // isQualityTrack
151+
return false;
152+
}
153+
return true;
154+
}
124155
template <typename T>
125156
void fillHistograms(T const& jet, float weight = 1.0)
126157
{
@@ -275,36 +306,52 @@ struct JetFinderQATask {
275306
if (collision.hasJetChHighPt() >= 1)
276307
registry.fill(HIST("h_collision_trigger_events"), 3.5); // events with triggered jets
277308

309+
for (auto iJetRadius = 0; iJetRadius < jetRadiiValues.size(); iJetRadius++) {
310+
minJetPt[iJetRadius] = 0.0;
311+
}
278312
for (auto& jet : jets) {
279-
for (float pt = jet.pt(); pt < 200.0; pt += 1.0) {
280-
registry.fill(HIST("h2_jet_radius_jet_pT_triggered"), jet.r() / 100.0, pt); // print out this line
313+
for (auto iJetRadius = 0; iJetRadius < jetRadiiValues.size(); iJetRadius++) {
314+
if (jet.r() == round(jetRadiiValues[iJetRadius] * 100.0f)) {
315+
for (double pt = jet.pt(); pt > minJetPt[iJetRadius]; pt -= 1.0) {
316+
registry.fill(HIST("h2_jet_radius_jet_pT_triggered"), jet.r() / 100.0, pt);
317+
}
318+
if (jet.pt() > minJetPt[iJetRadius]) {
319+
minJetPt[iJetRadius] = jet.pt();
320+
}
321+
break;
322+
}
281323
}
282-
if ((jet.eta() < (etaMin + jet.r() / 100.0)) || (jet.eta() < (etaMax - jet.r() / 100.0)))
324+
325+
if ((jet.eta() < (trackEtaMin + jet.r() / 100.0)) || (jet.eta() > (trackEtaMax - jet.r() / 100.0))) {
283326
continue;
284-
registry.fill(HIST("h3_jet_radius_jet_pt_collision"), jet.r() / 100.0, jet.pt(), collision.hasJetChHighPt()); // print out this line
285-
registry.fill(HIST("h3_jet_radius_jet_eta_collision"), jet.r() / 100.0, jet.eta(), collision.hasJetChHighPt()); // print out this line
286-
registry.fill(HIST("h3_jet_radius_jet_phi_collision"), jet.r() / 100.0, jet.phi(), collision.hasJetChHighPt()); // print out this line
327+
}
328+
registry.fill(HIST("h3_jet_radius_jet_pt_collision"), jet.r() / 100.0, jet.pt(), collision.hasJetChHighPt());
329+
registry.fill(HIST("h3_jet_radius_jet_eta_collision"), jet.r() / 100.0, jet.eta(), collision.hasJetChHighPt());
330+
registry.fill(HIST("h3_jet_radius_jet_phi_collision"), jet.r() / 100.0, jet.phi(), collision.hasJetChHighPt());
287331

288332
for (auto& constituent : jet.template tracks_as<JetTracks>()) {
289-
registry.fill(HIST("h3_jet_radius_jet_pt_track_pt_MB"), jet.r() / 100.0, jet.pt(), constituent.pt()); // print out this line
290-
registry.fill(HIST("h3_jet_radius_jet_pt_track_eta_MB"), jet.r() / 100.0, jet.pt(), constituent.eta()); // print out this line
291-
registry.fill(HIST("h3_jet_radius_jet_pt_track_phi_MB"), jet.r() / 100.0, jet.pt(), constituent.phi()); // print out this line
333+
registry.fill(HIST("h3_jet_radius_jet_pt_track_pt_MB"), jet.r() / 100.0, jet.pt(), constituent.pt());
334+
registry.fill(HIST("h3_jet_radius_jet_pt_track_eta_MB"), jet.r() / 100.0, jet.pt(), constituent.eta());
335+
registry.fill(HIST("h3_jet_radius_jet_pt_track_phi_MB"), jet.r() / 100.0, jet.pt(), constituent.phi());
292336
if (collision.hasJetChHighPt() >= 1) {
293-
registry.fill(HIST("h3_jet_radius_jet_pt_track_pt_Triggered"), jet.r() / 100.0, jet.pt(), constituent.pt()); // print out this line
294-
registry.fill(HIST("h3_jet_radius_jet_pt_track_eta_Triggered"), jet.r() / 100.0, jet.pt(), constituent.eta()); // print out this line
295-
registry.fill(HIST("h3_jet_radius_jet_pt_track_phi_Triggered"), jet.r() / 100.0, jet.pt(), constituent.phi()); // print out this line
337+
registry.fill(HIST("h3_jet_radius_jet_pt_track_pt_Triggered"), jet.r() / 100.0, jet.pt(), constituent.pt());
338+
registry.fill(HIST("h3_jet_radius_jet_pt_track_eta_Triggered"), jet.r() / 100.0, jet.pt(), constituent.eta());
339+
registry.fill(HIST("h3_jet_radius_jet_pt_track_phi_Triggered"), jet.r() / 100.0, jet.pt(), constituent.phi());
296340
}
297341
}
298342
}
299343

300344
for (auto& track : tracks) {
301-
registry.fill(HIST("h_track_pt_MB"), track.pt()); // print out this line
302-
registry.fill(HIST("h_track_eta_MB"), track.eta()); // print out this line
303-
registry.fill(HIST("h_track_phi_MB"), track.phi()); // print out this line
345+
if (!selectTrack(track)) {
346+
continue;
347+
}
348+
registry.fill(HIST("h_track_pt_MB"), track.pt());
349+
registry.fill(HIST("h_track_eta_MB"), track.eta());
350+
registry.fill(HIST("h_track_phi_MB"), track.phi());
304351
if (collision.hasJetChHighPt() >= 1) {
305-
registry.fill(HIST("h_track_pt_Triggered"), track.pt()); // print out this line
306-
registry.fill(HIST("h_track_eta_Triggered"), track.eta()); // print out this line
307-
registry.fill(HIST("h_track_phi_Triggered"), track.phi()); // print out this line
352+
registry.fill(HIST("h_track_pt_Triggered"), track.pt());
353+
registry.fill(HIST("h_track_eta_Triggered"), track.eta());
354+
registry.fill(HIST("h_track_phi_Triggered"), track.phi());
308355
}
309356
}
310357
}

0 commit comments

Comments
 (0)