ATLAS Offline Software
Loading...
Searching...
No Matches
ConstituentLoaderTauTrack.cxx
Go to the documentation of this file.
1/*
2Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7namespace FlavorTagInference {
8 using FeatureFunc_t = std::function<float(const xAOD::TauTrack&, const xAOD::TauJet&)>;
9 using FeatureFuncAsReference_t = std::function<bool(const xAOD::TauJet&, const xAOD::TauTrack&, float&)>;
12 {
13 for (const InputVariableConfig& input_var : cfg.inputs) {
14 m_feature_extractors.push_back(getFeatureExtractor(input_var.name));
15 }
16 }
17
18 std::vector<const xAOD::TauTrack*> ConstituentLoaderTauTrack::getTauTracks( const xAOD::TauJet* tau ) const
19 {
20 std::vector<const xAOD::TauTrack*> out = tau->allTracks();
21
22 // Skip unclassified tracks:
23 // - the track is a LRT and classifyLRT = false
24 // - the track is not among the MaxNtracks highest-pt tracks in the track classifier
25 // - track classification is not run (trigger)
27 std::vector<const xAOD::TauTrack*> classified_tracks;
28 std::copy_if(out.begin(), out.end(), std::back_inserter(classified_tracks),
29 [](const xAOD::TauTrack* track) {
30 return !track->flag(xAOD::TauJetParameters::unclassified);
31 }
32 );
33 out = std::move(classified_tracks);
34 }
35
36 // Sort by descending pt
38 std::sort(out.begin(), out.end(),
39 [](const xAOD::TauTrack* lhs, const xAOD::TauTrack* rhs) {
40 return lhs->pt() > rhs->pt();
41 }
42 );
43 } else {
44 // throw
45 throw std::runtime_error("Unsupported sorting order");
46 }
47 // Truncate tracks
48 if (static_cast<size_t>(out.size()) > m_config.max_n_constituents) {
49 out.resize(m_config.max_n_constituents, out[0]);
50 }
51 return out;
52 }
53
54 Inputs ConstituentLoaderTauTrack::getFeatures(const xAOD::TauJet* tau, const std::vector<const xAOD::TauTrack*>& tau_trks) const {
55 std::vector<int64_t> features_dim = {static_cast<int64_t>(tau_trks.size()), static_cast<int64_t>(m_feature_extractors.size())};
56 std::vector<float> features;
57 features.reserve(tau_trks.size() * m_feature_extractors.size());
58 for (const auto* trk : tau_trks) {
59 for (const auto& extractor : m_feature_extractors) {
60 features.push_back(extractor(*trk, *tau));
61 }
62 }
63 return Inputs{std::move(features), std::move(features_dim)};
64 }
65
67 auto tau = static_cast<const xAOD::TauJet*>(&i_tau);
68 std::vector<const xAOD::TauTrack*> sorted_tau_trks = getTauTracks(tau);
69 return getFeatures(tau, sorted_tau_trks);
70 }
71
73 FeatureFuncAsReference_t func_as_ref = nullptr;
74 try {
75 func_as_ref = m_func_map.at(var_name);
76 } catch (const std::out_of_range &e) {
77 throw std::runtime_error("Variable '" + var_name + "' not defined");
78 }
79 //coverity[COPY_INSTEAD_OF_MOVE]
80 return [func_as_ref](const xAOD::TauTrack& trk, const xAOD::TauJet& tau) {
81 float out;
82 bool success = func_as_ref(tau, trk, out);
83 if (!success) {
84 throw std::runtime_error("Error in track variable calculation");
85 }
86 return out;
87 };
88 }
89
90 const std::string& ConstituentLoaderTauTrack::getName() const {
91 return m_name;
92 }
94 return m_config.type;
95 }
99 const std::set<std::string>& ConstituentLoaderTauTrack::getUsedRemap() const {
100 return m_used_remap;
101 }
102
103}
104
105namespace TauTrackVars {
106
107bool pt_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
108 out = std::log10(track.pt());
109 return true;
110}
111
112bool trackPt(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
113 out = track.pt();
114 return true;
115}
116
117bool trackEta(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
118 out = track.eta();
119 return true;
120}
121
122bool trackPhi(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
123 out = track.phi();
124 return true;
125}
126
127bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack& /*track*/, float &out) {
128 out = std::log10(std::max(tau.pt(), 1e-6));
129 return true;
130}
131
132bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack& /*track*/, float &out) {
133 out = std::log10(tau.ptJetSeed());
134 return true;
135}
136
137bool d0_abs_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
138 out = std::log10(std::abs(track.d0TJVA()) + 1e-6);
139 return true;
140}
141
142bool z0sinThetaTJVA_abs_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
143 out = std::log10(std::abs(track.z0sinthetaTJVA()) + 1e-6);
144 return true;
145}
146
147bool z0sinthetaTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
148 out = track.z0sinthetaTJVA();
149 return true;
150}
151
152bool z0sinthetaSigTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
153 out = track.z0sinthetaSigTJVA();
154 return true;
155}
156
157bool d0TJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
158 out = track.d0TJVA();
159 return true;
160}
161
162bool d0SigTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
163 out = track.d0SigTJVA();
164 return true;
165}
166
167bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out) {
168 out = track.eta() - tau.eta();
169 return true;
170}
171
172bool dEtaJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out) {
173 TLorentzVector tlvSeedJet = tau.p4(xAOD::TauJetParameters::JetSeed);
174 out = std::abs(tlvSeedJet.Eta() - track.eta());
175 return true;
176}
177
178bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out) {
179 out = track.p4().DeltaPhi(tau.p4());
180 return true;
181}
182
183bool dPhiJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out) {
184 TLorentzVector tlvSeedJet = tau.p4(xAOD::TauJetParameters::JetSeed);
185 out = tlvSeedJet.DeltaPhi(track.p4());
186 return true;
187}
188
189bool nInnermostPixelHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
190 uint8_t inner_pixel_hits;
191 const auto success = track.track()->summaryValue(inner_pixel_hits, xAOD::numberOfInnermostPixelLayerHits);
192 out = inner_pixel_hits;
193 return success;
194}
195
196bool nPixelHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
197 uint8_t pixel_hits;
198 const auto success = track.track()->summaryValue(pixel_hits, xAOD::numberOfPixelHits);
199 out = pixel_hits;
200 return success;
201}
202
203bool nSCTHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
204 uint8_t sct_hits;
205 const auto success = track.track()->summaryValue(sct_hits, xAOD::numberOfSCTHits);
206 out = sct_hits;
207 return success;
208}
209
210// same as in tau track classification for trigger
211bool nIBLHitsAndExp(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
212 uint8_t inner_pixel_hits, inner_pixel_exp;
213 const auto success1 = track.track()->summaryValue(inner_pixel_hits, xAOD::numberOfInnermostPixelLayerHits);
214 const auto success2 = track.track()->summaryValue(inner_pixel_exp, xAOD::expectInnermostPixelLayerHit);
215 out = inner_pixel_exp ? inner_pixel_hits : 1.;
216 return success1 && success2;
217}
218
219bool nPixelHitsPlusDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
220 uint8_t pixel_hits, pixel_dead;
221 const auto success1 = track.track()->summaryValue(pixel_hits, xAOD::numberOfPixelHits);
222 const auto success2 = track.track()->summaryValue(pixel_dead, xAOD::numberOfPixelDeadSensors);
223 out = pixel_hits + pixel_dead;
224 return success1 && success2;
225}
226
227bool nSCTHitsPlusDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
228 uint8_t sct_hits, sct_dead;
229 const auto success1 = track.track()->summaryValue(sct_hits, xAOD::numberOfSCTHits);
230 const auto success2 = track.track()->summaryValue(sct_dead, xAOD::numberOfSCTDeadSensors);
231 out = sct_hits + sct_dead;
232 return success1 && success2;
233}
234
235bool eProbabilityHT(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
236 float eProbabilityHT;
237 const auto success = track.track()->summaryValue(eProbabilityHT, xAOD::eProbabilityHT);
238 out = eProbabilityHT;
239 return success;
240}
241
242bool eProbabilityHT_noTRT(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &/*track*/, float &out) {
243 // Dummy eProbHT = 1.
244 out = 1.;
245 return true;
246}
247
248bool eProbabilityNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
249 auto atrack = track.track();
250 static const SG::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
251 out = acc_eProbabilityNN(*atrack);
252 return true;
253}
254
255bool eProbabilityNNorHT(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
256 auto atrack = track.track();
257 float eProbabilityHT = atrack->summaryValue(eProbabilityHT, xAOD::eProbabilityHT);
258 static const SG::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
259 float eProbabilityNN = acc_eProbabilityNN(*atrack);
260 out = (atrack->pt()>2000.) ? eProbabilityNN : eProbabilityHT;
261 return true;
262}
263
264bool chargedScoreRNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
265 static const SG::ConstAccessor<float> acc_chargedScoreRNN("rnn_chargedScore");
266 out = acc_chargedScoreRNN(track);
267 return true;
268}
269
270bool isolationScoreRNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
271 static const SG::ConstAccessor<float> acc_isolationScoreRNN("rnn_isolationScore");
272 out = acc_isolationScoreRNN(track);
273 return true;
274}
275
276bool conversionScoreRNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
277 static const SG::ConstAccessor<float> acc_conversionScoreRNN("rnn_conversionScore");
278 out = acc_conversionScoreRNN(track);
279 return true;
280}
281
282bool fakeScoreRNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
283 static const SG::ConstAccessor<float> acc_fakeScoreRNN("rnn_fakeScore");
284 out = acc_fakeScoreRNN(track);
285 return true;
286}
287
288//Extension - variables for GNTau
289bool numberOfInnermostPixelLayerHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
290 uint8_t trk_val = 0;
291 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfInnermostPixelLayerHits);
292 out = trk_val;
293 return success;
294}
295
296bool numberOfPixelHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
297 uint8_t trk_val = 0;
298 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfPixelHits);
299 out = trk_val;
300 return success;
301}
302
303bool numberOfPixelSharedHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
304 uint8_t trk_val = 0;
305 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfPixelSharedHits);
306 out = trk_val;
307 return success;
308}
309
310bool numberOfPixelDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
311 uint8_t trk_val = 0;
312 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfPixelDeadSensors);
313 out = trk_val;
314 return success;
315}
316
317bool numberOfSCTHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
318 uint8_t trk_val = 0;
319 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfSCTHits);
320 out = trk_val;
321 return success;
322}
323
324bool numberOfSCTSharedHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
325 uint8_t trk_val = 0;
326 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfSCTSharedHits);
327 out = trk_val;
328 return success;
329}
330
331bool numberOfSCTDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
332 uint8_t trk_val = 0;
333 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfSCTDeadSensors);
334 out = trk_val;
335 return success;
336}
337
338bool numberOfTRTHighThresholdHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
339 uint8_t trk_val = 0;
340 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfTRTHighThresholdHits);
341 out = trk_val;
342 return success;
343}
344
345bool numberOfTRTHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
346 uint8_t trk_val = 0;
347 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfTRTHits);
348 out = trk_val;
349 return success;
350}
351
352bool nSiHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
353 uint8_t pix_hit = 0;uint8_t pix_dead = 0;uint8_t sct_hit = 0;uint8_t sct_dead = 0;
354 const auto success1 = track.track()->summaryValue(pix_hit, xAOD::numberOfPixelHits);
355 const auto success2 = track.track()->summaryValue(pix_dead, xAOD::numberOfPixelDeadSensors);
356 const auto success3 = track.track()->summaryValue(sct_hit, xAOD::numberOfSCTHits);
357 const auto success4 = track.track()->summaryValue(sct_dead, xAOD::numberOfSCTDeadSensors);
358 out = pix_hit + pix_dead + sct_hit + sct_dead;
359 return success1 && success2 && success3 && success4;
360}
361
362bool expectInnermostPixelLayerHit(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
363 uint8_t trk_val = 0;
364 const auto success = track.track()->summaryValue(trk_val, xAOD::expectInnermostPixelLayerHit);
365 out = trk_val;
366 return success;
367}
368
369bool expectNextToInnermostPixelLayerHit(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
370 uint8_t trk_val = 0;
371 const auto success = track.track()->summaryValue(trk_val, xAOD::expectNextToInnermostPixelLayerHit);
372 out = trk_val;
373 return success;
374}
375
376bool numberOfContribPixelLayers(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
377 uint8_t trk_val = 0;
378 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfContribPixelLayers);
379 out = trk_val;
380 return success;
381}
382
383bool numberOfPixelHoles(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
384 uint8_t trk_val = 0;
385 const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfPixelHoles);
386 out = trk_val;
387 return success;
388}
389
390bool d0_old(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
391 out = track.track()->d0();
392 //out = trk_val;
393 return true;
394}
395
396bool qOverP(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
397 out = track.track()->qOverP();
398 return true;
399}
400
401bool theta(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
402 out = track.track()->theta();
403 return true;
404}
405
406bool z0TJVA(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out) {
407 out = track.track()->z0() + track.track()->vz() - tau.vertex()->z();
408 return true;
409}
410
411bool charge(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
412 out = track.track()->charge();
413 return true;
414}
415
416} // namespace TrackVars
Scalar theta() const
theta method
std::function< bool(const xAOD::TauJet &, const xAOD::TauTrack &, float &)> FeatureFuncAsReference_t
std::vector< const xAOD::TauTrack * > getTauTracks(const xAOD::TauJet *tau) const
std::function< float(const xAOD::TauTrack &, const xAOD::TauJet &)> FeatureFunc_t
const FTagDataDependencyNames & getDependencies() const override
ConstituentLoaderTauTrack(const ConstituentsInputConfig &cfg)
const std::set< std::string > & getUsedRemap() const override
const ConstituentsType & getType() const override
Inputs getData(const xAOD::IParticle &p) const override
Inputs getFeatures(const xAOD::TauJet *tau, const std::vector< const xAOD::TauTrack * > &tau_trks) const
FeatureFunc_t getFeatureExtractor(const std::string &var_name) const
static const std::unordered_map< std::string, FeatureFuncAsReference_t > m_func_map
Helper class to provide constant type-safe access to aux data.
Class providing the definition of the 4-vector interface.
This file contains "getter" functions used for accessing tagger inputs from the EDM.
std::function< float(const xAOD::CaloVertexedTopoCluster &, const xAOD::TauJet &)> FeatureFunc_t
std::function< bool(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &, float &)> FeatureFuncAsReference_t
bool nSCTHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfSCTSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nInnermostPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfPixelSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool nSiHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool expectNextToInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool isolationScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, float &out)
bool numberOfTRTHighThresholdHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityHT_noTRT(const xAOD::TauJet &, const xAOD::TauTrack &, float &out)
bool numberOfInnermostPixelLayerHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityHT(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nIBLHitsAndExp(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0sinthetaTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, float &out)
bool numberOfPixelHoles(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfTRTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0TJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool qOverP(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool expectInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool pt_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dEtaJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfSCTDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfPixelDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool conversionScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfContribPixelLayers(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dPhiJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool fakeScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool chargedScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0_old(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0TJVA(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool charge(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0SigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nPixelHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0sinThetaTJVA_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityNNorHT(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
TauTrack_v1 TauTrack
Definition of the current version.
Definition TauTrack.h:16
TauJet_v3 TauJet
Definition of the current "tau version".
Definition TauJet.h:17
setBGCode setTAP setLVL2ErrorBits bool
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].