Skip to content

Commit 9af5f6a

Browse files
fkrizekalibuild
andauthored
Low Pt Track Selection (#5594)
* Low Pt Track Selection * Please consider the following formatting changes --------- Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 34a79eb commit 9af5f6a

File tree

5 files changed

+73
-26
lines changed

5 files changed

+73
-26
lines changed

EventFiltering/PWGJE/jetFilter.cxx

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,17 @@ using namespace o2::framework::expressions;
4444
struct jetFilter {
4545
enum { kJetChLowPt = 0,
4646
kJetChHighPt = 1,
47-
kTrackPt = 2,
48-
kTriggerObjects = 3
47+
kTrackLowPt = 2,
48+
kTrackHighPt = 3,
49+
kTriggerObjects = 4
4950
};
5051

5152
enum { kBinAllEvents = 0,
5253
kBinJetChLowPt = 1,
5354
kBinJetChHighPt = 2,
54-
kBinTrackPt = 3,
55-
kBins = 4
55+
kBinTrackLowPt = 3,
56+
kBinTrackHighPt = 4,
57+
kBins = 5
5658
};
5759

5860
Produces<aod::JetFilters> tags;
@@ -62,7 +64,8 @@ struct jetFilter {
6264

6365
Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections"};
6466
Configurable<float> trackPtMin{"trackPtMin", 0.15, "min track pT in filter"};
65-
Configurable<float> trackPtTriggerThreshold{"trackPtThreshold", 25.0, "pT threshold for track trigger"};
67+
Configurable<float> trackLowPtTriggerThreshold{"trackLowPtThreshold", 10.0, "low pT track trigger threshold"};
68+
Configurable<float> trackHighPtTriggerThreshold{"trackHighPtThreshold", 25.0, "high pT track trigger threshold"};
6669
Configurable<float> jetPtLowThreshold{"jetPtLowThreshold", 30.0, "threshold for low pT jet trigger"};
6770
Configurable<float> jetPtHighThreshold{"jetPtHighThreshold", 50.0, "threshold for high pT jet trigger"};
6871

@@ -107,7 +110,11 @@ struct jetFilter {
107110
{{150, 0., +150., "charged jet #it{p}_{T} (GeV/#it{c})"},
108111
{60, 0, TMath::TwoPi(), "#varphi"}});
109112

110-
spectra.add("ptphiTrackSelected_trackpttrigger", "#it{p}_{T} of selected high pT tracks vs #varphi", HistType::kTH2F,
113+
spectra.add("ptphiTrackSelected_lowtrackpttrigger", "#it{p}_{T} of selected low pT tracks vs #varphi", HistType::kTH2F,
114+
{{150, 0., +150., "track #it{p}_{T} (GeV/#it{c})"},
115+
{60, 0, TMath::TwoPi(), "#varphi"}});
116+
117+
spectra.add("ptphiTrackSelected_hightrackpttrigger", "#it{p}_{T} of selected high pT tracks vs #varphi", HistType::kTH2F,
111118
{{150, 0., +150., "track #it{p}_{T} (GeV/#it{c})"},
112119
{60, 0, TMath::TwoPi(), "#varphi"}});
113120

@@ -119,7 +126,11 @@ struct jetFilter {
119126
{{150, 0., +150., "charged jet #it{p}_{T} (GeV/#it{c})"},
120127
{40, -1.0, 1.0, "#eta"}});
121128

122-
spectra.add("ptetaTrackSelected_trackpttrigger", "#it{p}_{T} of selected high pT tracks vs #eta", HistType::kTH2F,
129+
spectra.add("ptetaTrackSelected_lowtrackpttrigger", "#it{p}_{T} of selected low pT tracks vs #eta", HistType::kTH2F,
130+
{{150, 0., +150., "track #it{p}_{T} (GeV/#it{c})"},
131+
{40, -1.0, 1.0, "#eta"}});
132+
133+
spectra.add("ptetaTrackSelected_hightrackpttrigger", "#it{p}_{T} of selected high pT tracks vs #eta", HistType::kTH2F,
123134
{{150, 0., +150., "track #it{p}_{T} (GeV/#it{c})"},
124135
{40, -1.0, 1.0, "#eta"}});
125136

@@ -134,12 +145,18 @@ struct jetFilter {
134145
jetRFidVolume.push_back(cfgEtaTPC - jetRadiiAxis.binEdges[ir]);
135146
jetIntR.push_back(TMath::Nint(100 * jetRadiiAxis.binEdges[ir]));
136147
}
148+
spectra.add("hLeadingTrackPt", "Leading track pT in |#eta| < 0.9;",
149+
{HistType::kTH1F, {axisTrackPt}});
150+
137151
spectra.add("hEtaVsPtTracksInclusive", "#eta of tracks |#eta| < 0.9;",
138152
{HistType::kTH2F, {axisTrackPt, axisEta}});
139153

140154
spectra.add("hPhiVsPtTracksInclusive", "#varphi of tracks |#eta| < 0.9;",
141155
{HistType::kTH2F, {axisTrackPt, axisPhi}});
142156

157+
spectra.add("hLeadingAKTJetR06Pt", "#it{p}_{T} of AKT R=0.6 charged jets in |#eta| < 0.9;",
158+
{HistType::kTH1F, {axisJetPt}});
159+
143160
spectra.add("hPtAKTJetsInclusive", "#it{p}_{T} of AKT charged jets in |#eta| < 0.9 - #it{R};",
144161
{HistType::kTH2F, {jetRadiiAxis, axisJetPt}});
145162

@@ -157,8 +174,9 @@ struct jetFilter {
157174

158175
hProcessedEvents->GetXaxis()->SetBinLabel(kBinAllEvents + 1, "Processed events");
159176
hProcessedEvents->GetXaxis()->SetBinLabel(kBinJetChLowPt + 1, o2::aod::filtering::JetChLowPt::columnLabel());
160-
hProcessedEvents->GetXaxis()->SetBinLabel(kBinJetChHighPt + 1, o2::aod::filtering::JetChLowPt::columnLabel());
161-
hProcessedEvents->GetXaxis()->SetBinLabel(kBinTrackPt + 1, o2::aod::filtering::TrackHighPt::columnLabel());
177+
hProcessedEvents->GetXaxis()->SetBinLabel(kBinJetChHighPt + 1, o2::aod::filtering::JetChHighPt::columnLabel());
178+
hProcessedEvents->GetXaxis()->SetBinLabel(kBinTrackLowPt + 1, o2::aod::filtering::TrackLowPt::columnLabel());
179+
hProcessedEvents->GetXaxis()->SetBinLabel(kBinTrackHighPt + 1, o2::aod::filtering::TrackHighPt::columnLabel());
162180
}
163181

164182
template <bool withRho, typename T, typename U, typename D>
@@ -168,7 +186,7 @@ struct jetFilter {
168186
// collision process loop
169187
bool keepEvent[kTriggerObjects]{false};
170188
if (!collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) {
171-
tags(keepEvent[kJetChLowPt], keepEvent[kJetChHighPt], keepEvent[kTrackPt]);
189+
tags(keepEvent[kJetChLowPt], keepEvent[kJetChHighPt], keepEvent[kTrackLowPt], keepEvent[kTrackHighPt]);
172190
return;
173191
}
174192

@@ -204,6 +222,7 @@ struct jetFilter {
204222
for (const auto& jet : jets) { // jets are ordered by pT
205223
if (jet.r() != triggerJetR)
206224
continue;
225+
spectra.fill(HIST("hLeadingAKTJetR06Pt"), jet.pt());
207226

208227
if (jet.pt() >= jetPtLowThreshold) {
209228
spectra.fill(HIST("ptphiJetChSelected_lowptjettrigger"), jet.pt(), jet.phi()); // charged jet pT vs phi
@@ -234,20 +253,29 @@ struct jetFilter {
234253
leadingTrackEta = track.eta();
235254
}
236255
}
237-
if (leadingTrackPt > trackPtTriggerThreshold) {
238-
keepEvent[kTrackPt] = true;
239-
spectra.fill(HIST("ptphiTrackSelected_trackpttrigger"), leadingTrackPt, leadingTrackPhi);
240-
spectra.fill(HIST("ptetaTrackSelected_trackpttrigger"), leadingTrackPt, leadingTrackEta);
256+
spectra.fill(HIST("hLeadingTrackPt"), leadingTrackPt);
257+
258+
if (leadingTrackPt > trackLowPtTriggerThreshold) {
259+
keepEvent[kTrackLowPt] = true;
260+
spectra.fill(HIST("ptphiTrackSelected_lowtrackpttrigger"), leadingTrackPt, leadingTrackPhi);
261+
spectra.fill(HIST("ptetaTrackSelected_lowtrackpttrigger"), leadingTrackPt, leadingTrackEta);
262+
}
263+
if (leadingTrackPt > trackHighPtTriggerThreshold) {
264+
keepEvent[kTrackHighPt] = true;
265+
spectra.fill(HIST("ptphiTrackSelected_hightrackpttrigger"), leadingTrackPt, leadingTrackPhi);
266+
spectra.fill(HIST("ptetaTrackSelected_hightrackpttrigger"), leadingTrackPt, leadingTrackEta);
241267
}
242268

243269
if (keepEvent[kJetChLowPt])
244270
hProcessedEvents->Fill(static_cast<float>(kBinJetChLowPt) + 0.1f);
245271
if (keepEvent[kJetChHighPt])
246272
hProcessedEvents->Fill(static_cast<float>(kBinJetChHighPt) + 0.1f);
247-
if (keepEvent[kTrackPt])
248-
hProcessedEvents->Fill(static_cast<float>(kBinTrackPt) + 0.1f);
273+
if (keepEvent[kTrackLowPt])
274+
hProcessedEvents->Fill(static_cast<float>(kBinTrackLowPt) + 0.1f);
275+
if (keepEvent[kTrackHighPt])
276+
hProcessedEvents->Fill(static_cast<float>(kBinTrackHighPt) + 0.1f);
249277

250-
tags(keepEvent[kJetChLowPt], keepEvent[kJetChHighPt], keepEvent[kTrackPt]);
278+
tags(keepEvent[kJetChLowPt], keepEvent[kJetChHighPt], keepEvent[kTrackLowPt], keepEvent[kTrackHighPt]);
251279
}
252280

253281
void processWithoutRho(soa::Join<JetCollisions, aod::EvSels>::iterator const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<JetTracks> const& tracks)

EventFiltering/filterTables.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ DECLARE_SOA_COLUMN(LLL, hasLLL, bool); //! has L-L-L tripletD
6666
// jets
6767
DECLARE_SOA_COLUMN(JetChLowPt, hasJetChLowPt, bool); //! low-pT charged jet
6868
DECLARE_SOA_COLUMN(JetChHighPt, hasJetChHighPt, bool); //! high-pT charged jet
69+
DECLARE_SOA_COLUMN(TrackLowPt, hasTrackLowPt, bool); //! low-pT track
6970
DECLARE_SOA_COLUMN(TrackHighPt, hasTrackHighPt, bool); //! high-pT track
7071

7172
// hf-jets
@@ -179,6 +180,7 @@ using CfFilter = CFFilters::iterator;
179180
DECLARE_SOA_TABLE(JetFilters, "AOD", "JetFilters", //!
180181
filtering::JetChLowPt,
181182
filtering::JetChHighPt,
183+
filtering::TrackLowPt,
182184
filtering::TrackHighPt);
183185

184186
using JetFilter = JetFilters::iterator;

PWGJE/Core/JetDerivedDataUtilities.h

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ enum JTrigSelCh {
9090
noChargedTigger = 0,
9191
chargedLow = 1,
9292
chargedHigh = 2,
93-
trackPt = 3
93+
trackLowPt = 3,
94+
trackHighPt = 4
9495
};
9596

9697
template <typename T>
@@ -110,9 +111,13 @@ int initialiseChargedTriggerSelection(std::string triggerSelection)
110111
if (triggerSelection == "chargedHigh") {
111112
return JTrigSelCh::chargedHigh;
112113
}
113-
if (triggerSelection == "trackPt") {
114-
return JTrigSelCh::trackPt;
114+
if (triggerSelection == "trackLowPt") {
115+
return JTrigSelCh::trackLowPt;
115116
}
117+
if (triggerSelection == "trackHighPt") {
118+
return JTrigSelCh::trackHighPt;
119+
}
120+
116121
return -1;
117122
}
118123

@@ -127,9 +132,13 @@ uint8_t setChargedTriggerSelectionBit(T const& collision)
127132
if (collision.hasJetChHighPt()) {
128133
SETBIT(bit, JTrigSelCh::chargedHigh);
129134
}
135+
if (collision.hasTrackLowPt()) {
136+
SETBIT(bit, JTrigSelCh::trackLowPt);
137+
}
130138
if (collision.hasTrackHighPt()) {
131-
SETBIT(bit, JTrigSelCh::trackPt);
139+
SETBIT(bit, JTrigSelCh::trackHighPt);
132140
}
141+
133142
return bit;
134143
}
135144

PWGJE/Tasks/ChJetTriggerQATask.cxx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ struct ChJetTriggerQATask {
7373

7474
Configurable<bool> bLowPtTrigger{"bLowPtTrigger", false, "charged jet low pT trigger selection"};
7575
Configurable<bool> bHighPtTrigger{"bHighPtTrigger", false, "charged jet high pT trigger selection"};
76-
Configurable<bool> bTrackPtTrigger{"bTrackPtTrigger", false, "track pT trigger selection"};
76+
Configurable<bool> bTrackLowPtTrigger{"bTrackLowPtTrigger", false, "track low pT trigger selection"};
77+
Configurable<bool> bTrackHighPtTrigger{"bTrackHighPtTrigger", false, "track high pT trigger selection"};
7778

7879
Configurable<bool> bAddSupplementHistosToOutput{"bAddAdditionalHistosToOutput", false, "add supplementary histos to the output"};
7980

@@ -144,12 +145,19 @@ struct ChJetTriggerQATask {
144145
return;
145146
}
146147

147-
if ((bLowPtTrigger && jetderiveddatautilities::selectChargedTrigger(collision, jetderiveddatautilities::JTrigSelCh::chargedLow)) || (bHighPtTrigger && jetderiveddatautilities::selectChargedTrigger(collision, jetderiveddatautilities::JTrigSelCh::chargedHigh)) || (bTrackPtTrigger && jetderiveddatautilities::selectChargedTrigger(collision, jetderiveddatautilities::JTrigSelCh::trackPt)) || ((!bLowPtTrigger) && (!bHighPtTrigger) && (!bTrackPtTrigger))) {
148+
bool bLowPtJet = (bLowPtTrigger && jetderiveddatautilities::selectChargedTrigger(collision, jetderiveddatautilities::JTrigSelCh::chargedLow));
149+
bool bHighPtJet = (bHighPtTrigger && jetderiveddatautilities::selectChargedTrigger(collision, jetderiveddatautilities::JTrigSelCh::chargedHigh));
150+
bool bLowPtTrack = (bTrackLowPtTrigger && jetderiveddatautilities::selectChargedTrigger(collision, jetderiveddatautilities::JTrigSelCh::trackLowPt));
151+
bool bHighPtTrack = (bTrackHighPtTrigger && jetderiveddatautilities::selectChargedTrigger(collision, jetderiveddatautilities::JTrigSelCh::trackHighPt));
152+
bool bMinimumBias = ((!bLowPtTrigger) && (!bHighPtTrigger) && (!bTrackLowPtTrigger) && (!bTrackHighPtTrigger));
153+
154+
if (bLowPtJet || bHighPtJet || bLowPtTrack || bHighPtTrack || bMinimumBias) {
148155
// bLowPtTrigger=1 and bHighPtTrigger=0 --> fill histos with low trigger only
149156
// bLowPtTrigger=0 and bHighPtTrigger=1 --> fill histos with high trigger only
150157
// bLowPtTrigger=1 and bHighPtTrigger=1 --> fill histos with mixture of low and high trigger
151-
// bTrackPtTrigger=1 --> fill histos for high pt track trigger
152-
// bLowPtTrigger=0 and bHighPtTrigger=0 and bTrackPtTrigger=0 --> fill histos with minimum bias ie. ignore trigger decision
158+
// bTrackLowPtTrigger=1 --> fill histos for low pt track trigger
159+
// bTrackHighPtTrigger=1 --> fill histos for high pt track trigger
160+
// bLowPtTrigger=0 and bHighPtTrigger=0 and bTrackLowPtTrigger=0 and bTrackHighPtTrigger=0 --> fill histos with minimum bias ie. ignore trigger decision
153161

154162
float leadingJetPt = -1.0;
155163
float leadingJetEta = -2.0;

PWGJE/Tasks/triggerCorrelations.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ struct TriggerCorrelationsTask {
5555

5656
void init(o2::framework::InitContext&)
5757
{
58-
std::vector<std::string> trigSelChLabels = {"chargedLow", "chargedHigh", "trackPt"};
58+
std::vector<std::string> trigSelChLabels = {"chargedLow", "chargedHigh", "trackLowPt", "trackHighPt"};
5959
std::vector<std::string> trigSelFullLabels = {"fullHigh", "fullLow", "neutralHigh", "neutralLow", "gammaVeryHighEMCAL", "gammaHighEMCAL", "gammaLowEMCAL", "gammaVeryLowEMCAL", "gammaVeryHighDCAL", "gammaHighDCAL", "gammaLowDCAL", "gammaVeryLowDCAL"};
6060
std::vector<std::string> trigSelChHFLabels = {"chargedD0Low", "chargedD0High", "chargedLcLow", "chargedLcHigh"};
6161
nChTrigs = trigSelChLabels.size();

0 commit comments

Comments
 (0)