Skip to content

Commit d35b525

Browse files
authored
[PWGJE] simplyfing tracking efficiencies (#14926)
1 parent cfb602d commit d35b525

File tree

10 files changed

+71
-157
lines changed

10 files changed

+71
-157
lines changed

PWGJE/Core/JetFindingUtilities.h

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ constexpr bool isEMCALClusterTable()
9191
*/
9292

9393
template <typename T, typename U>
94-
bool isTrackSelected(T const& track, int trackSelection, bool applyTrackingEfficiency, const std::vector<double>& trackingEfficiency, const std::vector<double>& trackingEfficiencyPtBinning, const U* candidate = nullptr)
94+
bool isTrackSelected(T const& track, int trackSelection, const U* candidate = nullptr)
9595
{
9696

9797
if (!jetderiveddatautilities::selectTrack(track, trackSelection)) {
@@ -102,16 +102,6 @@ bool isTrackSelected(T const& track, int trackSelection, bool applyTrackingEffic
102102
return false;
103103
}
104104
}
105-
if (applyTrackingEfficiency) {
106-
auto iter = std::upper_bound(trackingEfficiencyPtBinning.begin(), trackingEfficiencyPtBinning.end(), track.pt());
107-
if (iter != trackingEfficiencyPtBinning.begin() && iter != trackingEfficiencyPtBinning.end()) {
108-
std::size_t index = std::distance(trackingEfficiencyPtBinning.begin(), iter) - 1;
109-
TRandom3 randomNumber(0);
110-
if (randomNumber.Rndm() > trackingEfficiency[index]) {
111-
return false;
112-
}
113-
}
114-
}
115105
return true;
116106
}
117107

@@ -125,10 +115,10 @@ bool isTrackSelected(T const& track, int trackSelection, bool applyTrackingEffic
125115
*/
126116

127117
template <typename T, typename U>
128-
void analyseTracks(std::vector<fastjet::PseudoJet>& inputParticles, T const& tracks, int trackSelection, bool applyTrackingEfficiency, const std::vector<double>& trackingEfficiency, const std::vector<double>& trackingEfficiencyPtBinning, const U* candidate = nullptr)
118+
void analyseTracks(std::vector<fastjet::PseudoJet>& inputParticles, T const& tracks, int trackSelection, const U* candidate = nullptr)
129119
{
130120
for (auto& track : tracks) {
131-
if (isTrackSelected(track, trackSelection, applyTrackingEfficiency, trackingEfficiency, trackingEfficiencyPtBinning, candidate)) {
121+
if (isTrackSelected(track, trackSelection, candidate)) {
132122
fastjetutilities::fillTracks(track, inputParticles, track.globalIndex());
133123
}
134124
}
@@ -144,7 +134,7 @@ void analyseTracks(std::vector<fastjet::PseudoJet>& inputParticles, T const& tra
144134
*/
145135

146136
template <typename T, typename U>
147-
void analyseTracksMultipleCandidates(std::vector<fastjet::PseudoJet>& inputParticles, T const& tracks, int trackSelection, bool applyTrackingEfficiency, const std::vector<double>& trackingEfficiency, const std::vector<double>& trackingEfficiencyPtBinning, U const& candidates)
137+
void analyseTracksMultipleCandidates(std::vector<fastjet::PseudoJet>& inputParticles, T const& tracks, int trackSelection, U const& candidates)
148138
{
149139
for (auto& track : tracks) {
150140
if (!jetderiveddatautilities::selectTrack(track, trackSelection)) {
@@ -155,16 +145,6 @@ void analyseTracksMultipleCandidates(std::vector<fastjet::PseudoJet>& inputParti
155145
continue;
156146
}
157147
}
158-
if (applyTrackingEfficiency) {
159-
auto iter = std::upper_bound(trackingEfficiencyPtBinning.begin(), trackingEfficiencyPtBinning.end(), track.pt());
160-
if (iter != trackingEfficiencyPtBinning.begin() && iter != trackingEfficiencyPtBinning.end()) {
161-
std::size_t index = std::distance(trackingEfficiencyPtBinning.begin(), iter) - 1;
162-
TRandom3 randomNumber(0);
163-
if (randomNumber.Rndm() > trackingEfficiency[index]) {
164-
continue;
165-
}
166-
}
167-
}
168148
fastjetutilities::fillTracks(track, inputParticles, track.globalIndex());
169149
}
170150
}

PWGJE/JetFinders/jetFinder.h

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,6 @@ struct JetFinderTask {
7272
o2::framework::Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum track eta"};
7373
o2::framework::Configurable<float> trackPhiMin{"trackPhiMin", -999, "minimum track phi"};
7474
o2::framework::Configurable<float> trackPhiMax{"trackPhiMax", 999, "maximum track phi"};
75-
o2::framework::Configurable<bool> applyTrackingEfficiency{"applyTrackingEfficiency", {false}, "configurable to decide whether to apply artificial tracking efficiency (discarding tracks) in jet finding"};
76-
o2::framework::Configurable<std::vector<double>> trackingEfficiencyPtBinning{"trackingEfficiencyPtBinning", {0., 10, 999.}, "pt binning of tracking efficiency array if applyTrackingEfficiency is true"};
77-
o2::framework::Configurable<std::vector<double>> trackingEfficiency{"trackingEfficiency", {1.0, 1.0}, "tracking efficiency array applied to jet finding if applyTrackingEfficiency is true"};
7875
o2::framework::Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections"};
7976
o2::framework::Configurable<std::string> particleSelections{"particleSelections", "PhysicalPrimary", "set particle selections"};
8077

@@ -182,15 +179,6 @@ struct JetFinderTask {
182179
registry.add("hJetMCP", "sparse for mcp jets", {o2::framework::HistType::kTHnD, {{jetRadiiBins, ""}, {jetPtBinNumber, jetPtMinDouble, jetPtMaxDouble}, {40, -1.0, 1.0}, {18, 0.0, 7.0}}});
183180
registry.add("hJetEWSMCP", "sparse for mcp event-wise subtracted jets", {o2::framework::HistType::kTHnD, {{jetRadiiBins, ""}, {jetPtBinNumber, jetPtMinDouble, jetPtMaxDouble}, {40, -1.0, 1.0}, {18, 0.0, 7.0}}});
184181
}
185-
186-
if (applyTrackingEfficiency) {
187-
if (trackingEfficiencyPtBinning->size() < 2) {
188-
LOGP(fatal, "jetFinder workflow: trackingEfficiencyPtBinning configurable should have at least two bin edges");
189-
}
190-
if (trackingEfficiency->size() + 1 != trackingEfficiencyPtBinning->size()) {
191-
LOGP(fatal, "jetFinder workflow: trackingEfficiency configurable should have exactly one less entry than the number of bin edges set in trackingEfficiencyPtBinning configurable");
192-
}
193-
}
194182
}
195183

196184
o2::framework::expressions::Filter collisionFilter = (nabs(o2::aod::jcollision::posZ) < vertexZCut && o2::aod::jcollision::centFT0M >= centralityMin && o2::aod::jcollision::centFT0M < centralityMax && o2::aod::jcollision::trackOccupancyInTimeRange <= trackOccupancyInTimeRangeMax); // should we add a posZ vtx cut here or leave it to analysers?
@@ -206,7 +194,7 @@ struct JetFinderTask {
206194
return;
207195
}
208196
inputParticles.clear();
209-
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracks>, o2::soa::Filtered<o2::aod::JetTracks>::iterator>(inputParticles, tracks, trackSelection, applyTrackingEfficiency, trackingEfficiency, trackingEfficiencyPtBinning);
197+
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracks>, o2::soa::Filtered<o2::aod::JetTracks>::iterator>(inputParticles, tracks, trackSelection);
210198
jetfindingutilities::findJets(jetFinder, inputParticles, jetPtMin, jetPtMax, jetRadius, jetAreaFractionMin, collision, jetsTable, constituentsTable, fillTHnSparse ? registry.get<THn>(HIST("hJet")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
211199
}
212200

@@ -219,7 +207,7 @@ struct JetFinderTask {
219207
return;
220208
}
221209
inputParticles.clear();
222-
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracksSub>, o2::soa::Filtered<o2::aod::JetTracksSub>::iterator>(inputParticles, tracks, trackSelection, applyTrackingEfficiency, trackingEfficiency, trackingEfficiencyPtBinning);
210+
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracksSub>, o2::soa::Filtered<o2::aod::JetTracksSub>::iterator>(inputParticles, tracks, trackSelection);
223211
jetfindingutilities::findJets(jetFinder, inputParticles, jetEWSPtMin, jetEWSPtMax, jetRadius, jetAreaFractionMin, collision, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, fillTHnSparse ? registry.get<THn>(HIST("hJetEWS")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
224212
}
225213

@@ -245,7 +233,7 @@ struct JetFinderTask {
245233
return;
246234
}
247235
inputParticles.clear();
248-
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracks>, o2::soa::Filtered<o2::aod::JetTracks>::iterator>(inputParticles, tracks, trackSelection, applyTrackingEfficiency, trackingEfficiency, trackingEfficiencyPtBinning);
236+
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracks>, o2::soa::Filtered<o2::aod::JetTracks>::iterator>(inputParticles, tracks, trackSelection);
249237
jetfindingutilities::analyseClusters(inputParticles, &clusters, hadronicCorrectionType);
250238
jetfindingutilities::findJets(jetFinder, inputParticles, jetPtMin, jetPtMax, jetRadius, jetAreaFractionMin, collision, jetsTable, constituentsTable, fillTHnSparse ? registry.get<THn>(HIST("hJet")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
251239
}

PWGJE/JetFinders/jetFinderHF.h

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,6 @@ struct JetFinderHFTask {
7171
o2::framework::Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum track eta"};
7272
o2::framework::Configurable<float> trackPhiMin{"trackPhiMin", -999, "minimum track phi"};
7373
o2::framework::Configurable<float> trackPhiMax{"trackPhiMax", 999, "maximum track phi"};
74-
o2::framework::Configurable<bool> applyTrackingEfficiency{"applyTrackingEfficiency", {false}, "configurable to decide whether to apply artificial tracking efficiency (discarding tracks) in jet finding"};
75-
o2::framework::Configurable<std::vector<double>> trackingEfficiencyPtBinning{"trackingEfficiencyPtBinning", {0., 10, 999.}, "pt binning of tracking efficiency array if applyTrackingEfficiency is true"};
76-
o2::framework::Configurable<std::vector<double>> trackingEfficiency{"trackingEfficiency", {1.0, 1.0}, "tracking efficiency array applied to jet finding if applyTrackingEfficiency is true"};
7774
o2::framework::Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections"};
7875
o2::framework::Configurable<std::string> particleSelections{"particleSelections", "PhysicalPrimary", "set particle selections"};
7976

@@ -184,15 +181,6 @@ struct JetFinderHFTask {
184181

185182
registry.add("hJet", "sparse for data or mcd jets", {o2::framework::HistType::kTHnD, {{jetRadiiBins, ""}, {jetPtBinNumber, jetPtMinDouble, jetPtMaxDouble}, {40, -1.0, 1.0}, {18, 0.0, 7.0}}});
186183
registry.add("hJetMCP", "sparse for mcp jets", {o2::framework::HistType::kTHnD, {{jetRadiiBins, ""}, {jetPtBinNumber, jetPtMinDouble, jetPtMaxDouble}, {40, -1.0, 1.0}, {18, 0.0, 7.0}}});
187-
188-
if (applyTrackingEfficiency) {
189-
if (trackingEfficiencyPtBinning->size() < 2) {
190-
LOGP(fatal, "jetFinderHF workflow: trackingEfficiencyPtBinning configurable should have at least two bin edges");
191-
}
192-
if (trackingEfficiency->size() + 1 != trackingEfficiencyPtBinning->size()) {
193-
LOGP(fatal, "jetFinderHF workflow: trackingEfficiency configurable should have exactly one less entry than the number of bin edges set in trackingEfficiencyPtBinning configurable");
194-
}
195-
}
196184
}
197185

198186
o2::framework::expressions::Filter collisionFilter = (nabs(o2::aod::jcollision::posZ) < vertexZCut && o2::aod::jcollision::centFT0M >= centralityMin && o2::aod::jcollision::centFT0M < centralityMax && o2::aod::jcollision::trackOccupancyInTimeRange <= trackOccupancyInTimeRangeMax);
@@ -242,9 +230,9 @@ struct JetFinderHFTask {
242230
}
243231
}
244232
if constexpr (isEvtWiseSub) {
245-
jetfindingutilities::analyseTracks<U, typename U::iterator>(inputParticles, tracks, trackSelection, applyTrackingEfficiency, trackingEfficiency, trackingEfficiencyPtBinning);
233+
jetfindingutilities::analyseTracks<U, typename U::iterator>(inputParticles, tracks, trackSelection);
246234
} else {
247-
jetfindingutilities::analyseTracks(inputParticles, tracks, trackSelection, applyTrackingEfficiency, trackingEfficiency, trackingEfficiencyPtBinning, &candidate);
235+
jetfindingutilities::analyseTracks(inputParticles, tracks, trackSelection, &candidate);
248236
}
249237
jetfindingutilities::findJets(jetFinder, inputParticles, minJetPt, maxJetPt, jetRadius, jetAreaFractionMin, collision, jetsTableInput, constituentsTableInput, registry.get<THn>(HIST("hJet")), fillTHnSparse, true);
250238
}

PWGJE/JetFinders/jetFinderHFHFBar.h

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,6 @@ struct JetFinderHFHFBarTask {
7171
o2::framework::Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum track eta"};
7272
o2::framework::Configurable<float> trackPhiMin{"trackPhiMin", -999, "minimum track phi"};
7373
o2::framework::Configurable<float> trackPhiMax{"trackPhiMax", 999, "maximum track phi"};
74-
o2::framework::Configurable<bool> applyTrackingEfficiency{"applyTrackingEfficiency", {false}, "configurable to decide whether to apply artificial tracking efficiency (discarding tracks) in jet finding"};
75-
o2::framework::Configurable<std::vector<double>> trackingEfficiencyPtBinning{"trackingEfficiencyPtBinning", {0., 10, 999.}, "pt binning of tracking efficiency array if applyTrackingEfficiency is true"};
76-
o2::framework::Configurable<std::vector<double>> trackingEfficiency{"trackingEfficiency", {1.0, 1.0}, "tracking efficiency array applied to jet finding if applyTrackingEfficiency is true"};
7774
o2::framework::Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections"};
7875
o2::framework::Configurable<std::string> particleSelections{"particleSelections", "PhysicalPrimary", "set particle selections"};
7976

@@ -181,15 +178,6 @@ struct JetFinderHFHFBarTask {
181178

182179
registry.add("hJet", "sparse for data or mcd jets", {o2::framework::HistType::kTHnD, {{jetRadiiBins, ""}, {jetPtBinNumber, jetPtMinDouble, jetPtMaxDouble}, {40, -1.0, 1.0}, {18, 0.0, 7.0}}});
183180
registry.add("hJetMCP", "sparse for mcp jets", {o2::framework::HistType::kTHnD, {{jetRadiiBins, ""}, {jetPtBinNumber, jetPtMinDouble, jetPtMaxDouble}, {40, -1.0, 1.0}, {18, 0.0, 7.0}}});
184-
185-
if (applyTrackingEfficiency) {
186-
if (trackingEfficiencyPtBinning->size() < 2) {
187-
LOGP(fatal, "jetFinderHF workflow: trackingEfficiencyPtBinning configurable should have at least two bin edges");
188-
}
189-
if (trackingEfficiency->size() + 1 != trackingEfficiencyPtBinning->size()) {
190-
LOGP(fatal, "jetFinderHF workflow: trackingEfficiency configurable should have exactly one less entry than the number of bin edges set in trackingEfficiencyPtBinning configurable");
191-
}
192-
}
193181
}
194182

195183
o2::aod::EMCALClusterDefinition clusterDefinition = o2::aod::emcalcluster::getClusterDefinitionFromString(clusterDefinitionS.value);
@@ -247,7 +235,7 @@ struct JetFinderHFHFBarTask {
247235
return;
248236
}
249237
}
250-
jetfindingutilities::analyseTracks(inputParticles, tracks, trackSelection, applyTrackingEfficiency, trackingEfficiency, trackingEfficiencyPtBinning, &candidate);
238+
jetfindingutilities::analyseTracks(inputParticles, tracks, trackSelection, &candidate);
251239

252240
jetfindingutilities::findJets(jetFinder, inputParticles, minJetPt, maxJetPt, jetRadius, jetAreaFractionMin, collision, jetsTableInput, constituentsTableInput, registry.get<THn>(HIST("hJet")), fillTHnSparse, true);
253241
}

PWGJE/JetFinders/jetFinderV0.h

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,6 @@ struct JetFinderV0Task {
6666
o2::framework::Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum track eta"};
6767
o2::framework::Configurable<float> trackPhiMin{"trackPhiMin", -999, "minimum track phi"};
6868
o2::framework::Configurable<float> trackPhiMax{"trackPhiMax", 999, "maximum track phi"};
69-
o2::framework::Configurable<bool> applyTrackingEfficiency{"applyTrackingEfficiency", {false}, "configurable to decide whether to apply artificial tracking efficiency (discarding tracks) in jet finding"};
70-
o2::framework::Configurable<std::vector<double>> trackingEfficiencyPtBinning{"trackingEfficiencyPtBinning", {0., 10, 999.}, "pt binning of tracking efficiency array if applyTrackingEfficiency is true"};
71-
o2::framework::Configurable<std::vector<double>> trackingEfficiency{"trackingEfficiency", {1.0, 1.0}, "tracking efficiency array applied to jet finding if applyTrackingEfficiency is true"};
7269
o2::framework::Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections"};
7370
o2::framework::Configurable<std::string> particleSelections{"particleSelections", "PhysicalPrimary", "set particle selections"};
7471

@@ -172,15 +169,6 @@ struct JetFinderV0Task {
172169

173170
registry.add("hJet", "sparse for data or mcd jets", {o2::framework::HistType::kTHnD, {{jetRadiiBins, ""}, {jetPtBinNumber, jetPtMinDouble, jetPtMaxDouble}, {40, -1.0, 1.0}, {18, 0.0, 7.0}}});
174171
registry.add("hJetMCP", "sparse for mcp jets", {o2::framework::HistType::kTHnD, {{jetRadiiBins, ""}, {jetPtBinNumber, jetPtMinDouble, jetPtMaxDouble}, {40, -1.0, 1.0}, {18, 0.0, 7.0}}});
175-
176-
if (applyTrackingEfficiency) {
177-
if (trackingEfficiencyPtBinning->size() < 2) {
178-
LOGP(fatal, "jetFinderV0 workflow: trackingEfficiencyPtBinning configurable should have at least two bin edges");
179-
}
180-
if (trackingEfficiency->size() + 1 != trackingEfficiencyPtBinning->size()) {
181-
LOGP(fatal, "jetFinderV0 workflow: trackingEfficiency configurable should have exactly one less entry than the number of bin edges set in trackingEfficiencyPtBinning configurable");
182-
}
183-
}
184172
}
185173

186174
o2::framework::expressions::Filter collisionFilter = (nabs(o2::aod::jcollision::posZ) < vertexZCut && o2::aod::jcollision::centFT0M >= centralityMin && o2::aod::jcollision::centFT0M < centralityMax && o2::aod::jcollision::trackOccupancyInTimeRange <= trackOccupancyInTimeRangeMax);
@@ -209,7 +197,7 @@ struct JetFinderV0Task {
209197
}
210198
}
211199
*/
212-
jetfindingutilities::analyseTracksMultipleCandidates(inputParticles, tracks, trackSelection, applyTrackingEfficiency, trackingEfficiency, trackingEfficiencyPtBinning, candidates);
200+
jetfindingutilities::analyseTracksMultipleCandidates(inputParticles, tracks, trackSelection, candidates);
213201

214202
jetfindingutilities::findJets(jetFinder, inputParticles, minJetPt, maxJetPt, jetRadius, jetAreaFractionMin, collision, jetsTableInput, constituentsTableInput, registry.get<THn>(HIST("hJet")), fillTHnSparse, saveJetsWithCandidatesOnly);
215203
}

0 commit comments

Comments
 (0)