ATLAS Offline Software
ConstituentLoaderTauTrack.cxx
Go to the documentation of this file.
1 /*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 namespace 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 (auto 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 
66  std::tuple<Inputs, std::vector<const xAOD::IParticle*>> ConstituentLoaderTauTrack::getData(const xAOD::IParticle& i_tau) const {
67  auto tau = dynamic_cast<const xAOD::TauJet*>(&i_tau);
68  std::vector<const xAOD::TauTrack*> sorted_tau_trks = getTauTracks(tau);
69  std::vector<const xAOD::IParticle*> i_sorted_tau_trks(sorted_tau_trks.begin(), sorted_tau_trks.end());
70 
71  return std::make_tuple(getFeatures(tau, sorted_tau_trks), i_sorted_tau_trks);
72  }
73 
75  FeatureFuncAsReference_t func_as_ref = nullptr;
76  try {
77  func_as_ref = m_func_map.at(var_name);
78  } catch (const std::out_of_range &e) {
79  throw std::runtime_error("Variable '" + var_name + "' not defined");
80  }
81  return [func_as_ref](const xAOD::TauTrack& trk, const xAOD::TauJet& tau) {
82  float out;
83  bool success = func_as_ref(tau, trk, out);
84  if (!success) {
85  throw std::runtime_error("Error in track variable calculation");
86  }
87  return out;
88  };
89  }
90 
91  const std::string& ConstituentLoaderTauTrack::getName() const {
92  return m_name;
93  }
95  return m_config.type;
96  }
98  return m_deps;
99  }
100  const std::set<std::string>& ConstituentLoaderTauTrack::getUsedRemap() const {
101  return m_used_remap;
102  }
103 
104 }
105 
106 namespace TauTrackVars {
107 
108 bool pt_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
109  out = std::log10(track.pt());
110  return true;
111 }
112 
113 bool trackPt(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
114  out = track.pt();
115  return true;
116 }
117 
118 bool trackEta(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
119  out = track.eta();
120  return true;
121 }
122 
123 bool trackPhi(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
124  out = track.phi();
125  return true;
126 }
127 
128 bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack& /*track*/, float &out) {
129  out = std::log10(std::max(tau.pt(), 1e-6));
130  return true;
131 }
132 
133 bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack& /*track*/, float &out) {
134  out = std::log10(tau.ptJetSeed());
135  return true;
136 }
137 
138 bool d0_abs_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
139  out = std::log10(std::abs(track.d0TJVA()) + 1e-6);
140  return true;
141 }
142 
143 bool z0sinThetaTJVA_abs_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
144  out = std::log10(std::abs(track.z0sinthetaTJVA()) + 1e-6);
145  return true;
146 }
147 
148 bool z0sinthetaTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
149  out = track.z0sinthetaTJVA();
150  return true;
151 }
152 
153 bool z0sinthetaSigTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
154  out = track.z0sinthetaSigTJVA();
155  return true;
156 }
157 
158 bool d0TJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
159  out = track.d0TJVA();
160  return true;
161 }
162 
163 bool d0SigTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
164  out = track.d0SigTJVA();
165  return true;
166 }
167 
168 bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out) {
169  out = track.eta() - tau.eta();
170  return true;
171 }
172 
173 bool dEtaJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out) {
174  TLorentzVector tlvSeedJet = tau.p4(xAOD::TauJetParameters::JetSeed);
175  out = std::abs(tlvSeedJet.Eta() - track.eta());
176  return true;
177 }
178 
179 bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out) {
180  out = track.p4().DeltaPhi(tau.p4());
181  return true;
182 }
183 
184 bool dPhiJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out) {
185  TLorentzVector tlvSeedJet = tau.p4(xAOD::TauJetParameters::JetSeed);
186  out = tlvSeedJet.DeltaPhi(track.p4());
187  return true;
188 }
189 
190 bool nInnermostPixelHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
191  uint8_t inner_pixel_hits;
192  const auto success = track.track()->summaryValue(inner_pixel_hits, xAOD::numberOfInnermostPixelLayerHits);
193  out = inner_pixel_hits;
194  return success;
195 }
196 
197 bool nPixelHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
198  uint8_t pixel_hits;
199  const auto success = track.track()->summaryValue(pixel_hits, xAOD::numberOfPixelHits);
200  out = pixel_hits;
201  return success;
202 }
203 
204 bool nSCTHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
205  uint8_t sct_hits;
206  const auto success = track.track()->summaryValue(sct_hits, xAOD::numberOfSCTHits);
207  out = sct_hits;
208  return success;
209 }
210 
211 // same as in tau track classification for trigger
212 bool nIBLHitsAndExp(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
213  uint8_t inner_pixel_hits, inner_pixel_exp;
214  const auto success1 = track.track()->summaryValue(inner_pixel_hits, xAOD::numberOfInnermostPixelLayerHits);
215  const auto success2 = track.track()->summaryValue(inner_pixel_exp, xAOD::expectInnermostPixelLayerHit);
216  out = inner_pixel_exp ? inner_pixel_hits : 1.;
217  return success1 && success2;
218 }
219 
220 bool nPixelHitsPlusDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
221  uint8_t pixel_hits, pixel_dead;
222  const auto success1 = track.track()->summaryValue(pixel_hits, xAOD::numberOfPixelHits);
223  const auto success2 = track.track()->summaryValue(pixel_dead, xAOD::numberOfPixelDeadSensors);
224  out = pixel_hits + pixel_dead;
225  return success1 && success2;
226 }
227 
228 bool nSCTHitsPlusDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
229  uint8_t sct_hits, sct_dead;
230  const auto success1 = track.track()->summaryValue(sct_hits, xAOD::numberOfSCTHits);
231  const auto success2 = track.track()->summaryValue(sct_dead, xAOD::numberOfSCTDeadSensors);
232  out = sct_hits + sct_dead;
233  return success1 && success2;
234 }
235 
236 bool eProbabilityHT(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
237  float eProbabilityHT;
238  const auto success = track.track()->summaryValue(eProbabilityHT, xAOD::eProbabilityHT);
240  return success;
241 }
242 
243 bool eProbabilityHT_noTRT(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &/*track*/, float &out) {
244  // Dummy eProbHT = 1.
245  out = 1.;
246  return true;
247 }
248 
249 bool eProbabilityNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
250  static const SG::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
251  out = acc_eProbabilityNN(track);
252  return true;
253 }
254 
255 bool 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 
264 bool 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 
270 bool 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 
276 bool 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 
282 bool 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
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 
296 bool 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 
303 bool 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 
310 bool 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 
317 bool 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 
324 bool 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 
331 bool 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 
338 bool 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 
345 bool 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 
352 bool 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 
362 bool 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 
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 
376 bool 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 
383 bool 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 
390 bool 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 
396 bool qOverP(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
397  out = track.track()->qOverP();
398  return true;
399 }
400 
401 bool theta(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
402  out = track.track()->theta();
403  return true;
404 }
405 
406 bool 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 
411 bool charge(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, float &out) {
412  out = track.track()->charge();
413  return true;
414 }
415 
416 } // namespace TrackVars
TauTrackVars::isolationScoreRNN
bool isolationScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:270
TauTrackVars::trackPhi
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:123
TauTrackVars::d0_old
bool d0_old(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:390
TauTrackVars::nIBLHitsAndExp
bool nIBLHitsAndExp(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:212
TauTrackVars::nInnermostPixelHits
bool nInnermostPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:190
FlavorTagInference::ConstituentsInputConfig::max_n_constituents
size_t max_n_constituents
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:69
TauTrackVars::nPixelHits
bool nPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:197
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:262
FlavorTagInference::ConstituentLoaderTauTrack::getUsedRemap
const std::set< std::string > & getUsedRemap() const override
Definition: ConstituentLoaderTauTrack.cxx:100
ConstituentsLoaderTauTrack.h
FlavorTagInference::IConstituentsLoader
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:81
FlavorTagInference::ConstituentLoaderTauTrack::FeatureFunc_t
std::function< float(const xAOD::TauTrack &, const xAOD::TauJet &)> FeatureFunc_t
Definition: ConstituentsLoaderTauTrack.h:156
xAOD::numberOfSCTSharedHits
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:273
TauTrackVars::qOverP
bool qOverP(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:396
FlavorTagInference
This file contains "getter" functions used for accessing tagger inputs from the EDM.
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:27
TauTrackVars::dPhi
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:179
TauTrackVars::d0TJVA
bool d0TJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:158
TauTrackVars::z0sinthetaSigTJVA
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:153
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:558
TauTrackVars::trackEta
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:118
TauTrackVars::numberOfContribPixelLayers
bool numberOfContribPixelLayers(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:376
FlavorTagInference::ConstituentsInputConfig::selection
ConstituentsSelection selection
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:70
xAOD::TauJet_v3::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
TauTrackVars::dPhiJetSeedAxis
bool dPhiJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:184
TauTrackVars::chargedScoreRNN
bool chargedScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:264
FlavorTagInference::ConstituentLoaderTauTrack::m_feature_extractors
std::vector< FeatureFunc_t > m_feature_extractors
Definition: ConstituentsLoaderTauTrack.h:158
CheckAppliedSFs.var_name
var_name
Definition: CheckAppliedSFs.py:241
TauTrackVars::trackPt
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:113
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
TauTrackVars::nSCTHits
bool nSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:204
TauTrackVars::numberOfPixelHits
bool numberOfPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:296
TauTrackVars::d0_abs_log
bool d0_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:138
FlavorTagInference::ConstituentLoaderTauTrack::getName
const std::string & getName() const override
Definition: ConstituentLoaderTauTrack.cxx:91
FlavorTagInference::ConstituentsSortOrder::PT_DESCENDING
@ PT_DESCENDING
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:70
TauTrackVars::numberOfTRTHits
bool numberOfTRTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:345
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:260
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:237
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:276
TauTrackVars::dEta
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:168
SG::ConstAccessor< float >
xAOD::TauJet_v3::ptJetSeed
double ptJetSeed() const
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
TauTrackVars::numberOfPixelDeadSensors
bool numberOfPixelDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:310
TauTrackVars::z0sinThetaTJVA_abs_log
bool z0sinThetaTJVA_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:143
TauTrackVars::dEtaJetSeedAxis
bool dEtaJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:173
xAOD::TauJetParameters::JetSeed
@ JetSeed
Definition: TauDefs.h:336
xAOD::numberOfTRTHighThresholdHits
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
Definition: TrackingPrimitives.h:279
TauTrackVars::pt_tau_log
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, float &out)
Definition: ConstituentLoaderTauTrack.cxx:128
TauTrackVars::expectNextToInnermostPixelLayerHit
bool expectNextToInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:369
xAOD::TauJet_v3::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
TauTrackVars::numberOfPixelSharedHits
bool numberOfPixelSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:303
xAOD::numberOfPixelSharedHits
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:263
FlavorTagInference::ConstituentLoaderTauTrack::m_func_map
static const std::unordered_map< std::string, FeatureFuncAsReference_t > m_func_map
Definition: ConstituentsLoaderTauTrack.h:162
xAOD::expectNextToInnermostPixelLayerHit
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
Definition: TrackingPrimitives.h:248
FlavorTagInference::ConstituentLoaderTauTrack::FeatureFuncAsReference_t
std::function< bool(const xAOD::TauJet &, const xAOD::TauTrack &, float &)> FeatureFuncAsReference_t
Definition: ConstituentsLoaderTauTrack.h:157
TauTrackVars::numberOfSCTSharedHits
bool numberOfSCTSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:324
TauTrackVars::fakeScoreRNN
bool fakeScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:282
FlavorTagInference::ConstituentsInputConfig::order
ConstituentsSortOrder order
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:68
FlavorTagInference::IConstituentsLoader::m_deps
FTagDataDependencyNames m_deps
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:95
FlavorTagInference::ConstituentsInputConfig
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:64
FlavorTagInference::ConstituentLoaderTauTrack::getType
const ConstituentsType & getType() const override
Definition: ConstituentLoaderTauTrack.cxx:94
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
FlavorTagInference::ConstituentLoaderTauTrack::getDependencies
const FTagDataDependencyNames & getDependencies() const override
Definition: ConstituentLoaderTauTrack.cxx:97
TauTrackVars::z0sinthetaTJVA
bool z0sinthetaTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:148
TauTrackVars::conversionScoreRNN
bool conversionScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:276
TauTrackVars::expectInnermostPixelLayerHit
bool expectInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:362
TauTrackVars::d0SigTJVA
bool d0SigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:163
AnalysisUtils::copy_if
Out copy_if(In first, const In &last, Out res, const Pred &p)
Definition: IFilterUtils.h:30
FlavorTagInference::FTagDataDependencyNames
Definition: FTagDataDependencyNames.h:12
TauTrackVars::z0TJVA
bool z0TJVA(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:406
FlavorTagInference::FeatureFunc_t
std::function< float(const xAOD::CaloVertexedTopoCluster &, const xAOD::TauJet &)> FeatureFunc_t
Definition: ConstituentLoaderTauCluster.cxx:8
xAOD::Vertex_v1::z
float z() const
Returns the z position.
TauTrackVars::pt_log
bool pt_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:108
TauTrackVars::numberOfPixelHoles
bool numberOfPixelHoles(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:383
TauTrackVars
Definition: ConstituentLoaderTauTrack.cxx:106
FlavorTagInference::ConstituentLoaderTauTrack::getFeatureExtractor
FeatureFunc_t getFeatureExtractor(const std::string &var_name) const
Definition: ConstituentLoaderTauTrack.cxx:74
TauTrackVars::numberOfTRTHighThresholdHits
bool numberOfTRTHighThresholdHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:338
FlavorTagInference::ConstituentsType
ConstituentsType
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:48
TauTrackVars::charge
bool charge(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:411
TauTrackVars::eProbabilityNN
bool eProbabilityNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:249
TauTrackVars::pt_jetseed_log
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, float &out)
Definition: ConstituentLoaderTauTrack.cxx:133
TauTrackVars::numberOfInnermostPixelLayerHits
bool numberOfInnermostPixelLayerHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:289
WriteCaloSwCorrections.cfg
cfg
Definition: WriteCaloSwCorrections.py:23
TauTrackVars::numberOfSCTHits
bool numberOfSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:317
TauTrackVars::numberOfSCTDeadSensors
bool numberOfSCTDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:331
TauTrackVars::eProbabilityHT
bool eProbabilityHT(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:236
FlavorTagInference::IConstituentsLoader::m_config
ConstituentsInputConfig m_config
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:96
xAOD::TauJet_v3::vertex
const Vertex * vertex() const
xAOD::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:274
xAOD::TauTrack_v1
Definition: TauTrack_v1.h:27
xAOD::TauJet_v3::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: TauJet_v3.cxx:96
TauTrackVars::nSCTHitsPlusDeadSensors
bool nSCTHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:228
FlavorTagInference::FeatureFuncAsReference_t
std::function< bool(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &, float &)> FeatureFuncAsReference_t
Definition: ConstituentLoaderTauCluster.cxx:9
TauTrackVars::nSiHits
bool nSiHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:352
TauTrackVars::theta
bool theta(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:401
TauTrackVars::nPixelHitsPlusDeadSensors
bool nPixelHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:220
xAOD::eProbabilityHT
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
Definition: TrackingPrimitives.h:302
FlavorTagInference::ConstituentLoaderTauTrack::getTauTracks
std::vector< const xAOD::TauTrack * > getTauTracks(const xAOD::TauJet *tau) const
Definition: ConstituentLoaderTauTrack.cxx:18
xAOD::numberOfContribPixelLayers
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
Definition: TrackingPrimitives.h:231
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:269
FlavorTagInference::ConstituentLoaderTauTrack::getFeatures
Inputs getFeatures(const xAOD::TauJet *tau, const std::vector< const xAOD::TauTrack * > &tau_trks) const
Definition: ConstituentLoaderTauTrack.cxx:54
FlavorTagInference::ConstituentsInputConfig::type
ConstituentsType type
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:67
xAOD::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:267
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
FlavorTagInference::Inputs
std::pair< std::vector< float >, std::vector< int64_t > > Inputs
Definition: ISaltModel.h:22
TauTrackVars::eProbabilityNNorHT
bool eProbabilityNNorHT(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
Definition: ConstituentLoaderTauTrack.cxx:255
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
FlavorTagInference::ConstituentsSelection::TAUTRACK_CLASSIFIED
@ TAUTRACK_CLASSIFIED
FlavorTagInference::ConstituentLoaderTauTrack::getData
std::tuple< Inputs, std::vector< const xAOD::IParticle * > > getData(const xAOD::IParticle &p) const override
Definition: ConstituentLoaderTauTrack.cxx:66
FlavorTagInference::IConstituentsLoader::m_used_remap
std::set< std::string > m_used_remap
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:97
xAOD::TauJet_v3::allTracks
std::vector< const TauTrack * > allTracks() const
Get the v<const pointer> to all tracks associated with this tau, regardless of classification.
Definition: TauJet_v3.cxx:482
FlavorTagInference::IConstituentsLoader::m_name
std::string m_name
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:98
FlavorTagInference::ConstituentLoaderTauTrack::ConstituentLoaderTauTrack
ConstituentLoaderTauTrack(const ConstituentsInputConfig &cfg)
Definition: ConstituentLoaderTauTrack.cxx:10
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:238
TauTrackVars::eProbabilityHT_noTRT
bool eProbabilityHT_noTRT(const xAOD::TauJet &, const xAOD::TauTrack &, float &out)
Definition: ConstituentLoaderTauTrack.cxx:243
python.LArMinBiasAlgConfig.float
float
Definition: LArMinBiasAlgConfig.py:65