ATLAS Offline Software
TauGNNUtils.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 #include <algorithm>
8 #include <iostream>
9 #define GeV 1000
10 
11 namespace TauGNNUtils {
12 
13 GNNVarCalc::GNNVarCalc() : asg::AsgMessaging("TauGNNUtils::GNNVarCalc") {
14 }
15 
16 bool GNNVarCalc::compute(const std::string &name, const xAOD::TauJet &tau,
17  double &out) const {
18  // Retrieve calculator function
19  ScalarCalc func = nullptr;
20  try {
21  func = m_scalar_map.at(name);
22  } catch (const std::out_of_range &e) {
23  ATH_MSG_ERROR("Variable '" << name << "' not defined");
24  throw;
25  }
26 
27  // Calculate variable
28  return func(tau, out);
29 }
30 
31 bool GNNVarCalc::compute(const std::string &name, const xAOD::TauJet &tau,
32  const std::vector<const xAOD::TauTrack *> &tracks,
33  std::vector<double> &out) const {
34  out.clear();
35  out.reserve(tracks.size());
36 
37  // Retrieve calculator function
38  TrackCalc func = nullptr;
39  try {
40  func = m_track_map.at(name);
41  } catch (const std::out_of_range &e) {
42  ATH_MSG_ERROR("Variable '" << name << "' not defined");
43  throw;
44  }
45 
46  // Calculate variables for selected tracks
47  bool success = true;
48  double value;
49  for (const auto *const trk : tracks) {
50  success = success && func(tau, *trk, value);
51  out.push_back(value);
52  }
53 
54  return success;
55 }
56 
57 bool GNNVarCalc::compute(const std::string &name, const xAOD::TauJet &tau,
58  const std::vector<xAOD::CaloVertexedTopoCluster> &clusters,
59  std::vector<double> &out) const {
60  out.clear();
61  out.reserve(clusters.size());
62 
63  // Retrieve calculator function
64  ClusterCalc func = nullptr;
65  try {
66  func = m_cluster_map.at(name);
67  } catch (const std::out_of_range &e) {
68  ATH_MSG_ERROR("Variable '" << name << "' not defined");
69  throw;
70  }
71 
72  // Calculate variables for selected clusters
73  bool success = true;
74  double value;
75  for (const xAOD::CaloVertexedTopoCluster& cluster : clusters) {
76  success = success && func(tau, cluster, value);
77  out.push_back(value);
78  }
79 
80  return success;
81 }
82 
83 void GNNVarCalc::insert(const std::string &name, ScalarCalc func, const std::vector<std::string>& scalar_vars) {
84  if (std::find(scalar_vars.begin(), scalar_vars.end(), name) == scalar_vars.end()) {
85  return;
86  }
87  if (!func) {
88  throw std::invalid_argument("Nullptr passed to GNNVarCalc::insert");
89  }
90  m_scalar_map[name] = func;
91 }
92 
93 void GNNVarCalc::insert(const std::string &name, TrackCalc func, const std::vector<std::string>& track_vars) {
94  if (std::find(track_vars.begin(), track_vars.end(), name) == track_vars.end()) {
95  return;
96  }
97  if (!func) {
98  throw std::invalid_argument("Nullptr passed to GNNVarCalc::insert");
99  }
100  m_track_map[name] = func;
101 }
102 
103 void GNNVarCalc::insert(const std::string &name, ClusterCalc func, const std::vector<std::string>& cluster_vars) {
104  if (std::find(cluster_vars.begin(), cluster_vars.end(), name) == cluster_vars.end()) {
105  return;
106  }
107  if (!func) {
108  throw std::invalid_argument("Nullptr passed to GNNVarCalc::insert");
109  }
110  m_cluster_map[name] = func;
111 }
112 
113 std::unique_ptr<GNNVarCalc> get_calculator(const std::vector<std::string>& scalar_vars,
114  const std::vector<std::string>& track_vars,
115  const std::vector<std::string>& cluster_vars) {
116  auto calc = std::make_unique<GNNVarCalc>();
117 
118  // Scalar variable calculator functions
119  calc->insert("absEta", Variables::absEta, scalar_vars);
120  calc->insert("isolFrac", Variables::isolFrac, scalar_vars);
121  calc->insert("centFrac", Variables::centFrac, scalar_vars);
122  calc->insert("etOverPtLeadTrk", Variables::etOverPtLeadTrk, scalar_vars);
123  calc->insert("innerTrkAvgDist", Variables::innerTrkAvgDist, scalar_vars);
124  calc->insert("absipSigLeadTrk", Variables::absipSigLeadTrk, scalar_vars);
125  calc->insert("SumPtTrkFrac", Variables::SumPtTrkFrac, scalar_vars);
126  calc->insert("sumEMCellEtOverLeadTrkPt", Variables::sumEMCellEtOverLeadTrkPt, scalar_vars);
127  calc->insert("EMPOverTrkSysP", Variables::EMPOverTrkSysP, scalar_vars);
128  calc->insert("ptRatioEflowApprox", Variables::ptRatioEflowApprox, scalar_vars);
129  calc->insert("mEflowApprox", Variables::mEflowApprox, scalar_vars);
130  calc->insert("dRmax", Variables::dRmax, scalar_vars);
131  calc->insert("trFlightPathSig", Variables::trFlightPathSig, scalar_vars);
132  calc->insert("massTrkSys", Variables::massTrkSys, scalar_vars);
133  calc->insert("pt", Variables::pt, scalar_vars);
134  calc->insert("pt_tau_log", Variables::pt_tau_log, scalar_vars);
135  calc->insert("ptDetectorAxis", Variables::ptDetectorAxis, scalar_vars);
136  calc->insert("ptIntermediateAxis", Variables::ptIntermediateAxis, scalar_vars);
137  //---added for the eVeto
138  calc->insert("ptJetSeed_log", Variables::ptJetSeed_log, scalar_vars);
139  calc->insert("absleadTrackEta", Variables::absleadTrackEta, scalar_vars);
140  calc->insert("leadTrackDeltaEta", Variables::leadTrackDeltaEta, scalar_vars);
141  calc->insert("leadTrackDeltaPhi", Variables::leadTrackDeltaPhi, scalar_vars);
142  calc->insert("leadTrackProbNNorHT", Variables::leadTrackProbNNorHT, scalar_vars);
143  calc->insert("EMFracFixed", Variables::EMFracFixed, scalar_vars);
144  calc->insert("etHotShotWinOverPtLeadTrk", Variables::etHotShotWinOverPtLeadTrk, scalar_vars);
145  calc->insert("hadLeakFracFixed", Variables::hadLeakFracFixed, scalar_vars);
146  calc->insert("PSFrac", Variables::PSFrac, scalar_vars);
147  calc->insert("ClustersMeanCenterLambda", Variables::ClustersMeanCenterLambda, scalar_vars);
148  calc->insert("ClustersMeanFirstEngDens", Variables::ClustersMeanFirstEngDens, scalar_vars);
149  calc->insert("ClustersMeanPresamplerFrac", Variables::ClustersMeanPresamplerFrac, scalar_vars);
150 
151  // Track variable calculator functions
152  calc->insert("pt_log", Variables::Track::pt_log, track_vars);
153  calc->insert("trackPt", Variables::Track::trackPt, track_vars);
154  calc->insert("trackEta", Variables::Track::trackEta, track_vars);
155  calc->insert("trackPhi", Variables::Track::trackPhi, track_vars);
156  calc->insert("pt_tau_log", Variables::Track::pt_tau_log, track_vars);
157  calc->insert("pt_jetseed_log", Variables::Track::pt_jetseed_log, track_vars);
158  calc->insert("d0_abs_log", Variables::Track::d0_abs_log, track_vars);
159  calc->insert("z0sinThetaTJVA_abs_log", Variables::Track::z0sinThetaTJVA_abs_log, track_vars);
160  calc->insert("z0sinthetaTJVA", Variables::Track::z0sinthetaTJVA, track_vars);
161  calc->insert("z0sinthetaSigTJVA", Variables::Track::z0sinthetaSigTJVA, track_vars);
162  calc->insert("d0TJVA", Variables::Track::d0TJVA, track_vars);
163  calc->insert("d0SigTJVA", Variables::Track::d0SigTJVA, track_vars);
164  calc->insert("dEta", Variables::Track::dEta, track_vars);
165  calc->insert("dEtaJetSeedAxis", Variables::Track::dEtaJetSeedAxis, track_vars);
166  calc->insert("dPhi", Variables::Track::dPhi, track_vars);
167  calc->insert("dPhiJetSeedAxis", Variables::Track::dPhiJetSeedAxis, track_vars);
168  calc->insert("nInnermostPixelHits", Variables::Track::nInnermostPixelHits, track_vars);
169  calc->insert("nPixelHits", Variables::Track::nPixelHits, track_vars);
170  calc->insert("nSCTHits", Variables::Track::nSCTHits, track_vars);
171  calc->insert("nIBLHitsAndExp", Variables::Track::nIBLHitsAndExp, track_vars);
172  calc->insert("nPixelHitsPlusDeadSensors", Variables::Track::nPixelHitsPlusDeadSensors, track_vars);
173  calc->insert("nSCTHitsPlusDeadSensors", Variables::Track::nSCTHitsPlusDeadSensors, track_vars);
174  calc->insert("eProbabilityHT", Variables::Track::eProbabilityHT, track_vars);
175  calc->insert("eProbabilityNN", Variables::Track::eProbabilityNN, track_vars);
176  calc->insert("eProbabilityNNorHT", Variables::Track::eProbabilityNNorHT, track_vars);
177  calc->insert("chargedScoreRNN", Variables::Track::chargedScoreRNN, track_vars);
178  calc->insert("isolationScoreRNN", Variables::Track::isolationScoreRNN, track_vars);
179  calc->insert("conversionScoreRNN", Variables::Track::conversionScoreRNN, track_vars);
180  calc->insert("fakeScoreRNN", Variables::Track::fakeScoreRNN, track_vars);
181  //Extension - variables for GNTau
182  calc->insert("numberOfInnermostPixelLayerHits", Variables::Track::numberOfInnermostPixelLayerHits, track_vars);
183  calc->insert("numberOfPixelHits", Variables::Track::numberOfPixelHits, track_vars);
184  calc->insert("numberOfPixelSharedHits", Variables::Track::numberOfPixelSharedHits, track_vars);
185  calc->insert("numberOfPixelDeadSensors", Variables::Track::numberOfPixelDeadSensors, track_vars);
186  calc->insert("numberOfSCTHits", Variables::Track::numberOfSCTHits, track_vars);
187  calc->insert("numberOfSCTSharedHits", Variables::Track::numberOfSCTSharedHits, track_vars);
188  calc->insert("numberOfSCTDeadSensors", Variables::Track::numberOfSCTDeadSensors, track_vars);
189  calc->insert("numberOfTRTHighThresholdHits", Variables::Track::numberOfTRTHighThresholdHits, track_vars);
190  calc->insert("numberOfTRTHits", Variables::Track::numberOfTRTHits, track_vars);
191  calc->insert("nSiHits", Variables::Track::nSiHits, track_vars);
192  calc->insert("expectInnermostPixelLayerHit", Variables::Track::expectInnermostPixelLayerHit, track_vars);
193  calc->insert("expectNextToInnermostPixelLayerHit", Variables::Track::expectNextToInnermostPixelLayerHit, track_vars);
194  calc->insert("numberOfContribPixelLayers", Variables::Track::numberOfContribPixelLayers, track_vars);
195  calc->insert("numberOfPixelHoles", Variables::Track::numberOfPixelHoles, track_vars);
196  calc->insert("d0_old", Variables::Track::d0_old, track_vars);
197  calc->insert("qOverP", Variables::Track::qOverP, track_vars);
198  calc->insert("theta", Variables::Track::theta, track_vars);
199  calc->insert("z0TJVA", Variables::Track::z0TJVA, track_vars);
200  calc->insert("charge", Variables::Track::charge, track_vars);
201  calc->insert("dz0_TV_PV0", Variables::Track::dz0_TV_PV0, track_vars);
202  calc->insert("log_sumpt_TV", Variables::Track::log_sumpt_TV, track_vars);
203  calc->insert("log_sumpt2_TV", Variables::Track::log_sumpt2_TV, track_vars);
204  calc->insert("log_sumpt_PV0", Variables::Track::log_sumpt_PV0, track_vars);
205  calc->insert("log_sumpt2_PV0", Variables::Track::log_sumpt2_PV0, track_vars);
206 
207  // Cluster variable calculator functions
208  calc->insert("et_log", Variables::Cluster::et_log, cluster_vars);
209  calc->insert("pt_tau_log", Variables::Cluster::pt_tau_log, cluster_vars);
210  calc->insert("pt_jetseed_log", Variables::Cluster::pt_jetseed_log, cluster_vars);
211  calc->insert("dEta", Variables::Cluster::dEta, cluster_vars);
212  calc->insert("dPhi", Variables::Cluster::dPhi, cluster_vars);
213  calc->insert("SECOND_R", Variables::Cluster::SECOND_R, cluster_vars);
214  calc->insert("SECOND_LAMBDA", Variables::Cluster::SECOND_LAMBDA, cluster_vars);
215  calc->insert("CENTER_LAMBDA", Variables::Cluster::CENTER_LAMBDA, cluster_vars);
216  //---added for the eVeto
217  calc->insert("SECOND_LAMBDAOverClustersMeanSecondLambda", Variables::Cluster::SECOND_LAMBDAOverClustersMeanSecondLambda, cluster_vars);
218  calc->insert("CENTER_LAMBDAOverClustersMeanCenterLambda", Variables::Cluster::CENTER_LAMBDAOverClustersMeanCenterLambda, cluster_vars);
219  calc->insert("FirstEngDensOverClustersMeanFirstEngDens" , Variables::Cluster::FirstEngDensOverClustersMeanFirstEngDens, cluster_vars);
220 
221  //Extension - Variables for GNTau
222  calc->insert("e", Variables::Cluster::e, cluster_vars);
223  calc->insert("et", Variables::Cluster::et, cluster_vars);
224  calc->insert("FIRST_ENG_DENS", Variables::Cluster::FIRST_ENG_DENS, cluster_vars);
225  calc->insert("EM_PROBABILITY", Variables::Cluster::EM_PROBABILITY, cluster_vars);
226  calc->insert("CENTER_MAG", Variables::Cluster::CENTER_MAG, cluster_vars);
227  return calc;
228 }
229 
230 
231 namespace Variables {
233 
234 bool absEta(const xAOD::TauJet &tau, double &out) {
235  out = std::abs(tau.eta());
236  return true;
237 }
238 
239 bool centFrac(const xAOD::TauJet &tau, double &out) {
240  float centFrac;
241  const auto success = tau.detail(TauDetail::centFrac, centFrac);
242  //out = std::min(centFrac, 1.0f);
243  out = centFrac;
244  return success;
245 }
246 
247 bool isolFrac(const xAOD::TauJet &tau, double &out) {
248  float isolFrac;
249  const auto success = tau.detail(TauDetail::isolFrac, isolFrac);
250  //out = std::min(isolFrac, 1.0f);
251  out = isolFrac;
252  return success;
253 }
254 
255 bool etOverPtLeadTrk(const xAOD::TauJet &tau, double &out) {
256  float etOverPtLeadTrk;
257  const auto success = tau.detail(TauDetail::etOverPtLeadTrk, etOverPtLeadTrk);
259  return success;
260 }
261 
262 bool innerTrkAvgDist(const xAOD::TauJet &tau, double &out) {
263  float innerTrkAvgDist;
264  const auto success = tau.detail(TauDetail::innerTrkAvgDist, innerTrkAvgDist);
266  return success;
267 }
268 
269 bool absipSigLeadTrk(const xAOD::TauJet &tau, double &out) {
270  float ipSigLeadTrk = (tau.nTracks()>0) ? tau.track(0)->d0SigTJVA() : 0.;
271  //out = std::min(std::abs(ipSigLeadTrk), 30.0f);
272  out = std::abs(ipSigLeadTrk);
273  return true;
274 }
275 
276 bool sumEMCellEtOverLeadTrkPt(const xAOD::TauJet &tau, double &out) {
280  return success;
281 }
282 
283 bool SumPtTrkFrac(const xAOD::TauJet &tau, double &out) {
284  float SumPtTrkFrac;
285  const auto success = tau.detail(TauDetail::SumPtTrkFrac, SumPtTrkFrac);
286  out = SumPtTrkFrac;
287  return success;
288 }
289 
290 bool EMPOverTrkSysP(const xAOD::TauJet &tau, double &out) {
291  float EMPOverTrkSysP;
292  const auto success = tau.detail(TauDetail::EMPOverTrkSysP, EMPOverTrkSysP);
294  return success;
295 }
296 
297 bool ptRatioEflowApprox(const xAOD::TauJet &tau, double &out) {
298  float ptRatioEflowApprox;
299  const auto success = tau.detail(TauDetail::ptRatioEflowApprox, ptRatioEflowApprox);
300  //out = std::min(ptRatioEflowApprox, 4.0f);
302  return success;
303 }
304 
305 bool mEflowApprox(const xAOD::TauJet &tau, double &out) {
306  float mEflowApprox;
307  const auto success = tau.detail(TauDetail::mEflowApprox, mEflowApprox);
308  out = mEflowApprox;
309  return success;
310 }
311 
312 bool dRmax(const xAOD::TauJet &tau, double &out) {
313  float dRmax;
314  const auto success = tau.detail(TauDetail::dRmax, dRmax);
315  out = dRmax;
316  return success;
317 }
318 
319 bool trFlightPathSig(const xAOD::TauJet &tau, double &out) {
320  float trFlightPathSig;
321  const auto success = tau.detail(TauDetail::trFlightPathSig, trFlightPathSig);
323  return success;
324 }
325 
326 bool massTrkSys(const xAOD::TauJet &tau, double &out) {
327  float massTrkSys;
328  const auto success = tau.detail(TauDetail::massTrkSys, massTrkSys);
329  out = massTrkSys;
330  return success;
331 }
332 
333 bool pt(const xAOD::TauJet &tau, double &out) {
334  out = tau.pt();
335  return true;
336 }
337 
338 bool pt_tau_log(const xAOD::TauJet &tau, double &out) {
339  out = std::log10(std::max(tau.pt() / GeV, 1e-6));
340  return true;
341 }
342 
343 bool ptDetectorAxis(const xAOD::TauJet &tau, double &out) {
344  out = tau.ptDetectorAxis();
345  return true;
346 }
347 
348 bool ptIntermediateAxis(const xAOD::TauJet &tau, double &out) {
349  out = tau.ptIntermediateAxis();
350  return true;
351 }
352 
353 bool ptJetSeed_log(const xAOD::TauJet &tau, double &out) {
354  out = std::log10(std::max(tau.ptJetSeed(), 1e-3));
355  return true;
356 }
357 
358 bool absleadTrackEta(const xAOD::TauJet &tau, double &out){
359  static const SG::ConstAccessor<float> acc_absEtaLeadTrack("ABS_ETA_LEAD_TRACK");
360  float absEtaLeadTrack = acc_absEtaLeadTrack(tau);
361  out = std::max(0.f, absEtaLeadTrack);
362  return true;
363 }
364 
365 bool leadTrackDeltaEta(const xAOD::TauJet &tau, double &out){
366  static const SG::ConstAccessor<float> acc_absDeltaEta("TAU_ABSDELTAETA");
367  float absDeltaEta = acc_absDeltaEta(tau);
368  out = std::max(0.f, absDeltaEta);
369  return true;
370 }
371 
372 bool leadTrackDeltaPhi(const xAOD::TauJet &tau, double &out){
373  static const SG::ConstAccessor<float> acc_absDeltaPhi("TAU_ABSDELTAPHI");
374  float absDeltaPhi = acc_absDeltaPhi(tau);
375  out = std::max(0.f, absDeltaPhi);
376  return true;
377 }
378 
379 bool leadTrackProbNNorHT(const xAOD::TauJet &tau, double &out){
380  auto tracks = tau.allTracks();
381 
382  // Sort tracks in descending pt order
383  if (!tracks.empty()) {
384  auto cmp_pt = [](const xAOD::TauTrack *lhs, const xAOD::TauTrack *rhs) {
385  return lhs->pt() > rhs->pt();
386  };
387  std::sort(tracks.begin(), tracks.end(), cmp_pt);
388 
389  const xAOD::TauTrack* tauLeadTrack = tracks.at(0);
390  const xAOD::TrackParticle* xTrackParticle = tauLeadTrack->track();
392  static const SG::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
393  float eProbabilityNN = acc_eProbabilityNN(*xTrackParticle);
394  out = (tauLeadTrack->pt()>2000.) ? eProbabilityNN : eProbabilityHT;
395  }
396  else {
397  out = 0.;
398  }
399  return true;
400 }
401 
402 bool EMFracFixed(const xAOD::TauJet &tau, double &out){
403  static const SG::ConstAccessor<float> acc_emFracFixed("EMFracFixed");
404  float emFracFixed = acc_emFracFixed(tau);
405  out = std::max(emFracFixed, 0.0f);
406  return true;
407 }
408 
409 bool etHotShotWinOverPtLeadTrk(const xAOD::TauJet &tau, double &out){
410  static const SG::ConstAccessor<float> acc_etHotShotWinOverPtLeadTrk("etHotShotWinOverPtLeadTrk");
411  float etHotShotWinOverPtLeadTrk = acc_etHotShotWinOverPtLeadTrk(tau);
413  return true;
414 }
415 
416 bool hadLeakFracFixed(const xAOD::TauJet &tau, double &out){
417  static const SG::ConstAccessor<float> acc_hadLeakFracFixed("hadLeakFracFixed");
418  float hadLeakFracFixed = acc_hadLeakFracFixed(tau);
420  return true;
421 }
422 
423 bool PSFrac(const xAOD::TauJet &tau, double &out){
424  float PSFrac;
425  const auto success = tau.detail(TauDetail::PSSFraction, PSFrac);
426  out = std::max(0.f,PSFrac);
427  return success;
428 }
429 
430 bool ClustersMeanCenterLambda(const xAOD::TauJet &tau, double &out){
434  return success;
435 }
436 
437 bool ClustersMeanEMProbability(const xAOD::TauJet &tau, double &out){
441  return success;
442 }
443 
444 bool ClustersMeanFirstEngDens(const xAOD::TauJet &tau, double &out){
448  return success;
449 }
450 
451 bool ClustersMeanPresamplerFrac(const xAOD::TauJet &tau, double &out){
455  return success;
456 }
457 
458 bool ClustersMeanSecondLambda(const xAOD::TauJet &tau, double &out){
462  return success;
463 }
464 
465 namespace Track {
466 
467 bool pt_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
468  out = std::log10(track.pt());
469  return true;
470 }
471 
472 bool trackPt(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
473  out = track.pt();
474  return true;
475 }
476 
477 bool trackEta(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
478  out = track.eta();
479  return true;
480 }
481 
482 bool trackPhi(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
483  out = track.phi();
484  return true;
485 }
486 
487 bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack& /*track*/, double &out) {
488  out = std::log10(std::max(tau.pt(), 1e-6));
489  return true;
490 }
491 
492 bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack& /*track*/, double &out) {
493  out = std::log10(tau.ptJetSeed());
494  return true;
495 }
496 
497 bool d0_abs_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
498  out = std::log10(std::abs(track.d0TJVA()) + 1e-6);
499  return true;
500 }
501 
502 bool z0sinThetaTJVA_abs_log(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
503  out = std::log10(std::abs(track.z0sinthetaTJVA()) + 1e-6);
504  return true;
505 }
506 
507 bool z0sinthetaTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
508  out = track.z0sinthetaTJVA();
509  return true;
510 }
511 
512 bool z0sinthetaSigTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
513  out = track.z0sinthetaSigTJVA();
514  return true;
515 }
516 
517 bool d0TJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
518  out = track.d0TJVA();
519  return true;
520 }
521 
522 bool d0SigTJVA(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
523  out = track.d0SigTJVA();
524  return true;
525 }
526 
527 bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out) {
528  out = track.eta() - tau.eta();
529  return true;
530 }
531 
532 bool dEtaJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out) {
533  TLorentzVector tlvSeedJet = tau.p4(xAOD::TauJetParameters::JetSeed);
534  out = std::abs(tlvSeedJet.Eta() - track.eta());
535  return true;
536 }
537 
538 bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out) {
539  out = track.p4().DeltaPhi(tau.p4());
540  return true;
541 }
542 
543 bool dPhiJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out) {
544  TLorentzVector tlvSeedJet = tau.p4(xAOD::TauJetParameters::JetSeed);
545  out = tlvSeedJet.DeltaPhi(track.p4());
546  return true;
547 }
548 
549 bool nInnermostPixelHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
550  uint8_t inner_pixel_hits;
551  const auto success = track.track()->summaryValue(inner_pixel_hits, xAOD::numberOfInnermostPixelLayerHits);
552  out = inner_pixel_hits;
553  return success;
554 }
555 
556 bool nPixelHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
557  uint8_t pixel_hits;
558  const auto success = track.track()->summaryValue(pixel_hits, xAOD::numberOfPixelHits);
559  out = pixel_hits;
560  return success;
561 }
562 
563 bool nSCTHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
564  uint8_t sct_hits;
565  const auto success = track.track()->summaryValue(sct_hits, xAOD::numberOfSCTHits);
566  out = sct_hits;
567  return success;
568 }
569 
570 // same as in tau track classification for trigger
571 bool nIBLHitsAndExp(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
572  uint8_t inner_pixel_hits, inner_pixel_exp;
573  const auto success1 = track.track()->summaryValue(inner_pixel_hits, xAOD::numberOfInnermostPixelLayerHits);
574  const auto success2 = track.track()->summaryValue(inner_pixel_exp, xAOD::expectInnermostPixelLayerHit);
575  out = inner_pixel_exp ? inner_pixel_hits : 1.;
576  return success1 && success2;
577 }
578 
579 bool nPixelHitsPlusDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
580  uint8_t pixel_hits, pixel_dead;
581  const auto success1 = track.track()->summaryValue(pixel_hits, xAOD::numberOfPixelHits);
582  const auto success2 = track.track()->summaryValue(pixel_dead, xAOD::numberOfPixelDeadSensors);
583  out = pixel_hits + pixel_dead;
584  return success1 && success2;
585 }
586 
587 bool nSCTHitsPlusDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
588  uint8_t sct_hits, sct_dead;
589  const auto success1 = track.track()->summaryValue(sct_hits, xAOD::numberOfSCTHits);
590  const auto success2 = track.track()->summaryValue(sct_dead, xAOD::numberOfSCTDeadSensors);
591  out = sct_hits + sct_dead;
592  return success1 && success2;
593 }
594 
595 bool eProbabilityHT(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
596  float eProbabilityHT;
597  const auto success = track.track()->summaryValue(eProbabilityHT, xAOD::eProbabilityHT);
599  return success;
600 }
601 
602 bool eProbabilityNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
603  static const SG::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
604  out = acc_eProbabilityNN(track);
605  return true;
606 }
607 
608 bool eProbabilityNNorHT(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
609  auto atrack = track.track();
610  float eProbabilityHT = atrack->summaryValue(eProbabilityHT, xAOD::eProbabilityHT);
611  static const SG::ConstAccessor<float> acc_eProbabilityNN("eProbabilityNN");
612  float eProbabilityNN = acc_eProbabilityNN(*atrack);
613  out = (atrack->pt()>2000.) ? eProbabilityNN : eProbabilityHT;
614  return true;
615 }
616 
617 bool chargedScoreRNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
618  static const SG::ConstAccessor<float> acc_chargedScoreRNN("rnn_chargedScore");
619  out = acc_chargedScoreRNN(track);
620  return true;
621 }
622 
623 bool isolationScoreRNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
624  static const SG::ConstAccessor<float> acc_isolationScoreRNN("rnn_isolationScore");
625  out = acc_isolationScoreRNN(track);
626  return true;
627 }
628 
629 bool conversionScoreRNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
630  static const SG::ConstAccessor<float> acc_conversionScoreRNN("rnn_conversionScore");
631  out = acc_conversionScoreRNN(track);
632  return true;
633 }
634 
635 bool fakeScoreRNN(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
636  static const SG::ConstAccessor<float> acc_fakeScoreRNN("rnn_fakeScore");
637  out = acc_fakeScoreRNN(track);
638  return true;
639 }
640 
641 //Extension - variables for GNTau
642 bool numberOfInnermostPixelLayerHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
643  uint8_t trk_val = 0;
644  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfInnermostPixelLayerHits);
645  out = trk_val;
646  return success;
647 }
648 
649 bool numberOfPixelHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
650  uint8_t trk_val = 0;
651  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfPixelHits);
652  out = trk_val;
653  return success;
654 }
655 
656 bool numberOfPixelSharedHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
657  uint8_t trk_val = 0;
658  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfPixelSharedHits);
659  out = trk_val;
660  return success;
661 }
662 
663 bool numberOfPixelDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
664  uint8_t trk_val = 0;
665  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfPixelDeadSensors);
666  out = trk_val;
667  return success;
668 }
669 
670 bool numberOfSCTHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
671  uint8_t trk_val = 0;
672  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfSCTHits);
673  out = trk_val;
674  return success;
675 }
676 
677 bool numberOfSCTSharedHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
678  uint8_t trk_val = 0;
679  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfSCTSharedHits);
680  out = trk_val;
681  return success;
682 }
683 
684 bool numberOfSCTDeadSensors(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
685  uint8_t trk_val = 0;
686  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfSCTDeadSensors);
687  out = trk_val;
688  return success;
689 }
690 
691 bool numberOfTRTHighThresholdHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
692  uint8_t trk_val = 0;
693  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfTRTHighThresholdHits);
694  out = trk_val;
695  return success;
696 }
697 
698 bool numberOfTRTHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
699  uint8_t trk_val = 0;
700  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfTRTHits);
701  out = trk_val;
702  return success;
703 }
704 
705 bool nSiHits(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
706  uint8_t pix_hit = 0;uint8_t pix_dead = 0;uint8_t sct_hit = 0;uint8_t sct_dead = 0;
707  const auto success1 = track.track()->summaryValue(pix_hit, xAOD::numberOfPixelHits);
708  const auto success2 = track.track()->summaryValue(pix_dead, xAOD::numberOfPixelDeadSensors);
709  const auto success3 = track.track()->summaryValue(sct_hit, xAOD::numberOfSCTHits);
710  const auto success4 = track.track()->summaryValue(sct_dead, xAOD::numberOfSCTDeadSensors);
711  out = pix_hit + pix_dead + sct_hit + sct_dead;
712  return success1 && success2 && success3 && success4;
713 }
714 
715 bool expectInnermostPixelLayerHit(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
716  uint8_t trk_val = 0;
717  const auto success = track.track()->summaryValue(trk_val, xAOD::expectInnermostPixelLayerHit);
718  out = trk_val;
719  return success;
720 }
721 
723  uint8_t trk_val = 0;
724  const auto success = track.track()->summaryValue(trk_val, xAOD::expectNextToInnermostPixelLayerHit);
725  out = trk_val;
726  return success;
727 }
728 
729 bool numberOfContribPixelLayers(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
730  uint8_t trk_val = 0;
731  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfContribPixelLayers);
732  out = trk_val;
733  return success;
734 }
735 
736 bool numberOfPixelHoles(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
737  uint8_t trk_val = 0;
738  const auto success = track.track()->summaryValue(trk_val, xAOD::numberOfPixelHoles);
739  out = trk_val;
740  return success;
741 }
742 
743 bool d0_old(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
744  out = track.track()->d0();
745  //out = trk_val;
746  return true;
747 }
748 
749 bool qOverP(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
750  out = track.track()->qOverP();
751  return true;
752 }
753 
754 bool theta(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
755  out = track.track()->theta();
756  return true;
757 }
758 
759 bool z0TJVA(const xAOD::TauJet& tau, const xAOD::TauTrack &track, double &out) {
760  out = track.track()->z0() + track.track()->vz() - tau.vertex()->z();
761  return true;
762 }
763 
764 bool charge(const xAOD::TauJet& /*tau*/, const xAOD::TauTrack &track, double &out) {
765  out = track.track()->charge();
766  return true;
767 }
768 
769 bool dz0_TV_PV0(const xAOD::TauJet& tau, const xAOD::TauTrack &/*track*/, double &out) {
770  static const SG::ConstAccessor<float> acc_dz0TVPV0("dz0_TV_PV0");
771  out = acc_dz0TVPV0.withDefault(tau, 0);
772  return true;
773 }
774 
775 bool log_sumpt_TV(const xAOD::TauJet& tau, const xAOD::TauTrack &/*track*/, double &out) {
776  static const SG::ConstAccessor<float> acc_logsumptTV("log_sumpt_TV");
777  out = acc_logsumptTV.withDefault(tau, 0);
778  return true;
779 }
780 
781 bool log_sumpt2_TV(const xAOD::TauJet& tau, const xAOD::TauTrack &/*track*/, double &out) {
782  static const SG::ConstAccessor<float> acc_logsumpt2TV("log_sumpt2_TV");
783  out = acc_logsumpt2TV.withDefault(tau, 0);
784  return true;
785 }
786 
787 bool log_sumpt_PV0(const xAOD::TauJet& tau, const xAOD::TauTrack &/*track*/, double &out) {
788  static const SG::ConstAccessor<float> acc_logsumptPV0("log_sumpt_PV0");
789  out = acc_logsumptPV0.withDefault(tau, 0);
790  return true;
791 }
792 
793 bool log_sumpt2_PV0(const xAOD::TauJet& tau, const xAOD::TauTrack &/*track*/, double &out) {
794  static const SG::ConstAccessor<float> acc_logsumpt2PV0("log_sumpt2_PV0");
795  out = acc_logsumpt2PV0.withDefault(tau, 0);
796  return true;
797 }
798 
799 } // namespace Track
800 
801 
802 namespace Cluster {
804 
805 bool et_log(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
806  out = std::log10(cluster.p4().Et());
807  return true;
808 }
809 
810 bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster& /*cluster*/, double &out) {
811  out = std::log10(std::max(tau.pt(), 1e-6));
812  return true;
813 }
814 
815 bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster& /*cluster*/, double &out) {
816  out = std::log10(tau.ptJetSeed());
817  return true;
818 }
819 
820 bool dEta(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
821  out = cluster.eta() - tau.eta();
822  return true;
823 }
824 
825 bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
826  out = cluster.p4().DeltaPhi(tau.p4());
827  return true;
828 }
829 
830 bool SECOND_R(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
831  const auto success = cluster.clust().retrieveMoment(MomentType::SECOND_R, out);
832  return success;
833 }
834 
835 bool SECOND_LAMBDA(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
836  const auto success = cluster.clust().retrieveMoment(MomentType::SECOND_LAMBDA, out);
837  return success;
838 }
839 
840 bool CENTER_LAMBDA(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
841  const auto success = cluster.clust().retrieveMoment(MomentType::CENTER_LAMBDA, out);
842  return success;
843 }
844 
846  static const SG::ConstAccessor<float> acc_ClustersMeanSecondLambda("ClustersMeanSecondLambda");
847  float ClustersMeanSecondLambda = acc_ClustersMeanSecondLambda(tau);
848  double secondLambda(0);
849  const auto success = cluster.clust().retrieveMoment(MomentType::SECOND_LAMBDA, secondLambda);
850  out = (ClustersMeanSecondLambda != 0.) ? secondLambda/ClustersMeanSecondLambda : 0.;
851  return success;
852 }
853 
855  static const SG::ConstAccessor<float> acc_ClustersMeanCenterLambda("ClustersMeanCenterLambda");
856  float ClustersMeanCenterLambda = acc_ClustersMeanCenterLambda(tau);
857  double centerLambda(0);
858  const auto success = cluster.clust().retrieveMoment(MomentType::CENTER_LAMBDA, centerLambda);
859  if (ClustersMeanCenterLambda == 0.){
860  out = 250.;
861  }else {
862  out = centerLambda/ClustersMeanCenterLambda;
863  }
864 
865  out = std::min(out, 250.);
866 
867  return success;
868 }
869 
870 
872  // the ClustersMeanFirstEngDens is the log10 of the energy weighted average of the First_ENG_DENS
873  // divided by ETot to make it dimension-less,
874  // so we need to evaluate the difference of log10(clusterFirstEngDens/clusterTotalEnergy) and the ClustersMeanFirstEngDens
875  double clusterFirstEngDens = 0.0;
876  bool status = cluster.clust().retrieveMoment(MomentType::FIRST_ENG_DENS, clusterFirstEngDens);
877  if (clusterFirstEngDens < 1e-6) clusterFirstEngDens = 1e-6;
878 
879  static const SG::ConstAccessor<float> acc_ClusterTotalEnergy("ClusterTotalEnergy");
880  float clusterTotalEnergy = acc_ClusterTotalEnergy(tau);
881  if (clusterTotalEnergy < 1e-6) clusterTotalEnergy = 1e-6;
882 
883  static const SG::ConstAccessor<float> acc_ClustersMeanFirstEngDens("ClustersMeanFirstEngDens");
884  float clustersMeanFirstEngDens = acc_ClustersMeanFirstEngDens(tau);
885 
886  out = std::log10(clusterFirstEngDens/clusterTotalEnergy) - clustersMeanFirstEngDens;
887 
888  return status;
889 }
890 
891 //Extension - Variables for GNTau
892 bool e(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
893  out = cluster.p4().E();
894  return true;
895 }
896 
897 bool et(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
898  out = cluster.p4().Et();
899  return true;
900 }
901 
902 bool FIRST_ENG_DENS(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
903  double clusterFirstEngDens = 0.0;
904  bool status = cluster.clust().retrieveMoment(MomentType::FIRST_ENG_DENS, clusterFirstEngDens);
905  out = clusterFirstEngDens;
906  return status;
907 }
908 
909 bool EM_PROBABILITY(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
910  double clusterEMprob = 0.0;
911  bool status = cluster.clust().retrieveMoment(MomentType::EM_PROBABILITY, clusterEMprob);
912  out = clusterEMprob;
913  return status;
914 }
915 
916 bool CENTER_MAG(const xAOD::TauJet& /*tau*/, const xAOD::CaloVertexedTopoCluster &cluster, double &out) {
917  double clusterCenterMag = 0.0;
918  bool status = cluster.clust().retrieveMoment(MomentType::CENTER_MAG, clusterCenterMag);
919  out = clusterCenterMag;
920  return status;
921 }
922 
923 } // namespace Cluster
924 } // namespace Variables
925 } // namespace TauGNNUtils
TauGNNUtils::Variables::Cluster::dPhi
bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:825
TauGNNUtils::Variables::Track::numberOfPixelHoles
bool numberOfPixelHoles(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:736
TauGNNUtils::GNNVarCalc::ScalarCalc
bool(*)(const xAOD::TauJet &, double &) ScalarCalc
Definition: TauGNNUtils.h:34
TauGNNUtils::Variables::Track::log_sumpt2_TV
bool log_sumpt2_TV(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
Definition: TauGNNUtils.cxx:781
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:261
TauGNNUtils::Variables::Cluster::CENTER_LAMBDA
bool CENTER_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:840
TauGNNUtils::Variables::Track::numberOfPixelDeadSensors
bool numberOfPixelDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:663
xAOD::CaloVertexedClusterBase::p4
virtual FourMom_t p4() const final
The full 4-momentum of the particle.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloVertexedClusterBase.h:88
TauGNNUtils::Variables::centFrac
bool centFrac(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:239
TauGNNUtils::Variables::ClustersMeanFirstEngDens
bool ClustersMeanFirstEngDens(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:444
TauGNNUtils::Variables::Cluster::et_log
bool et_log(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:805
xAOD::numberOfSCTSharedHits
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:272
TauGNNUtils::get_calculator
std::unique_ptr< GNNVarCalc > get_calculator(const std::vector< std::string > &scalar_vars, const std::vector< std::string > &track_vars, const std::vector< std::string > &cluster_vars)
Definition: TauGNNUtils.cxx:113
TauGNNUtils::Variables::ptRatioEflowApprox
bool ptRatioEflowApprox(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:297
TauGNNUtils::Variables::Track::log_sumpt_PV0
bool log_sumpt_PV0(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
Definition: TauGNNUtils.cxx:787
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
TauGNNUtils
Definition: TauGNNUtils.cxx:11
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
TauGNNUtils::Variables::Cluster::EM_PROBABILITY
bool EM_PROBABILITY(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:909
TauGNNUtils::Variables::absipSigLeadTrk
bool absipSigLeadTrk(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:269
xAOD::TauTrack_v1::d0SigTJVA
float d0SigTJVA() const
Definition: TauTrack_v1.cxx:129
xAOD::TauJet_v3::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
GeV
#define GeV
Definition: TauGNNUtils.cxx:9
TauGNNUtils::Variables::Track::nPixelHits
bool nPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:556
TauGNNUtils::Variables::Track::dEtaJetSeedAxis
bool dEtaJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:532
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
TauGNNUtils::Variables::EMFracFixed
bool EMFracFixed(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:402
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
TauGNNUtils.h
TauGNNUtils::Variables::Track::dz0_TV_PV0
bool dz0_TV_PV0(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
Definition: TauGNNUtils.cxx:769
xAOD::TrackParticle_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Definition: TrackParticle_v1.cxx:736
xAOD::TauJet_v3::nTracks
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition: TauJet_v3.cxx:526
TauGNNUtils::Variables::Track::chargedScoreRNN
bool chargedScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:617
asg
Definition: DataHandleTestTool.h:28
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
TauGNNUtils::Variables::Track::numberOfSCTHits
bool numberOfSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:670
TauGNNUtils::Variables::Track::expectNextToInnermostPixelLayerHit
bool expectNextToInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:722
TauGNNUtils::Variables::Track::eProbabilityNNorHT
bool eProbabilityNNorHT(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:608
TauGNNUtils::Variables::Cluster::FirstEngDensOverClustersMeanFirstEngDens
bool FirstEngDensOverClustersMeanFirstEngDens(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:871
TauGNNUtils::Variables::innerTrkAvgDist
bool innerTrkAvgDist(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:262
athena.value
value
Definition: athena.py:124
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:236
xAOD::CaloVertexedClusterBase::eta
virtual double eta() const final
The pseudorapidity ( ) of the particle.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloVertexedClusterBase.h:77
TauGNNUtils::Variables::absleadTrackEta
bool absleadTrackEta(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:358
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
TauGNNUtils::Variables::Cluster::CENTER_LAMBDAOverClustersMeanCenterLambda
bool CENTER_LAMBDAOverClustersMeanCenterLambda(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:854
TauGNNUtils::Variables::isolFrac
bool isolFrac(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:247
SG::ConstAccessor< float >
TauGNNUtils::Variables::Cluster::et
bool et(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:897
TauGNNUtils::Variables::ptIntermediateAxis
bool ptIntermediateAxis(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:348
TauGNNUtils::Variables::massTrkSys
bool massTrkSys(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:326
TauGNNUtils::Variables::hadLeakFracFixed
bool hadLeakFracFixed(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:416
TauGNNUtils::Variables::Track::d0_old
bool d0_old(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:743
xAOD::CaloVertexedClusterBase::clust
const CaloCluster & clust() const
Return the cluster being proxied,.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloVertexedClusterBase.h:69
TauGNNUtils::Variables::Track::d0_abs_log
bool d0_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:497
xAOD::TauJet_v3::ptJetSeed
double ptJetSeed() const
xAOD::TauJet_v3::ptDetectorAxis
double ptDetectorAxis() const
TauGNNUtils::Variables::trFlightPathSig
bool trFlightPathSig(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:319
TauGNNUtils::Variables::etHotShotWinOverPtLeadTrk
bool etHotShotWinOverPtLeadTrk(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:409
xAOD::TauJetParameters::ipSigLeadTrk
@ ipSigLeadTrk
Definition: TauDefs.h:160
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:278
TauGNNUtils::GNNVarCalc::ClusterCalc
bool(*)(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &, double &) ClusterCalc
Definition: TauGNNUtils.h:40
TauGNNUtils::Variables::ClustersMeanEMProbability
bool ClustersMeanEMProbability(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:437
xAOD::CaloCluster_v1::MomentType
MomentType
Enums to identify different moments.
Definition: CaloCluster_v1.h:120
TauGNNUtils::Variables::Track::pt_jetseed_log
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
Definition: TauGNNUtils.cxx:492
xAOD::TauJet_v3::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
xAOD::TauJetParameters::Detail
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
Definition: TauDefs.h:156
TauGNNUtils::GNNVarCalc::TrackCalc
bool(*)(const xAOD::TauJet &, const xAOD::TauTrack &, double &) TrackCalc
Definition: TauGNNUtils.h:37
TauGNNUtils::Variables::PSFrac
bool PSFrac(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:423
xAOD::numberOfPixelSharedHits
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:262
TauGNNUtils::Variables::Track::nSiHits
bool nSiHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:705
TauGNNUtils::Variables::Track::eProbabilityHT
bool eProbabilityHT(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:595
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::expectNextToInnermostPixelLayerHit
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
Definition: TrackingPrimitives.h:247
TauGNNUtils::Variables::Track::isolationScoreRNN
bool isolationScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:623
TauGNNUtils::Variables::Track::z0sinthetaTJVA
bool z0sinthetaTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:507
TauGNNUtils::Variables::pt_tau_log
bool pt_tau_log(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:338
TauGNNUtils::Variables::leadTrackDeltaPhi
bool leadTrackDeltaPhi(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:372
TauGNNUtils::Variables::Track::z0sinthetaSigTJVA
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:512
TauGNNUtils::Variables::Track::charge
bool charge(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:764
TauGNNUtils::Variables::Track::expectInnermostPixelLayerHit
bool expectInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:715
TauGNNUtils::Variables::Track::dPhi
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:538
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
xAOD::TauJet_v3::track
const TauTrack * track(size_t i, TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged, int *container_index=0) const
Get the pointer to a given tauTrack associated with this tau /*container index needed by trackNonCons...
Definition: TauJet_v3.cxx:450
TauGNNUtils::Variables::Track::nInnermostPixelHits
bool nInnermostPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:549
TauGNNUtils::GNNVarCalc::compute
bool compute(const std::string &name, const xAOD::TauJet &tau, double &out) const
Definition: TauGNNUtils.cxx:16
TauGNNUtils::Variables::Track::log_sumpt_TV
bool log_sumpt_TV(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
Definition: TauGNNUtils.cxx:775
TauGNNUtils::Variables::Track::numberOfSCTDeadSensors
bool numberOfSCTDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:684
hist_file_dump.f
f
Definition: hist_file_dump.py:135
xAOD::CaloCluster_v1::retrieveMoment
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
Definition: CaloCluster_v1.cxx:738
TauGNNUtils::Variables::ptJetSeed_log
bool ptJetSeed_log(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:353
xAOD::Vertex_v1::z
float z() const
Returns the z position.
TauGNNUtils::Variables::Cluster::SECOND_LAMBDA
bool SECOND_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:835
TauGNNUtils::Variables::ClustersMeanSecondLambda
bool ClustersMeanSecondLambda(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:458
TauGNNUtils::Variables::Cluster::pt_jetseed_log
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &, double &out)
Definition: TauGNNUtils.cxx:815
TauGNNUtils::GNNVarCalc::m_track_map
std::unordered_map< std::string, TrackCalc > m_track_map
Definition: TauGNNUtils.h:69
TauGNNUtils::Variables::leadTrackDeltaEta
bool leadTrackDeltaEta(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:365
TauGNNUtils::Variables::Track::numberOfSCTSharedHits
bool numberOfSCTSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:677
TauGNNUtils::Variables::mEflowApprox
bool mEflowApprox(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:305
TauGNNUtils::Variables::Track::trackPt
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:472
TauGNNUtils::Variables::ClustersMeanPresamplerFrac
bool ClustersMeanPresamplerFrac(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:451
xAOD::TauJet_v3::detail
bool detail(TauJetParameters::Detail detail, int &value) const
Set veto flag.
Definition: TauJet_v3.cxx:292
TauGNNUtils::Variables::Track::dPhiJetSeedAxis
bool dPhiJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:543
xAOD::TauTrack_v1::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TauGNNUtils::Variables::SumPtTrkFrac
bool SumPtTrkFrac(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:283
TauGNNUtils::GNNVarCalc::m_cluster_map
std::unordered_map< std::string, ClusterCalc > m_cluster_map
Definition: TauGNNUtils.h:70
TauGNNUtils::Variables::Track::numberOfPixelHits
bool numberOfPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:649
TauGNNUtils::Variables::Cluster::SECOND_R
bool SECOND_R(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:830
TauGNNUtils::Variables::Track::nSCTHits
bool nSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:563
TauGNNUtils::Variables::Cluster::e
bool e(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:892
TauGNNUtils::Variables::Track::qOverP
bool qOverP(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:749
TauGNNUtils::Variables::sumEMCellEtOverLeadTrkPt
bool sumEMCellEtOverLeadTrkPt(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:276
TauGNNUtils::Variables::Track::nPixelHitsPlusDeadSensors
bool nPixelHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:579
TauGNNUtils::Variables::Track::numberOfPixelSharedHits
bool numberOfPixelSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:656
TauGNNUtils::Variables::dRmax
bool dRmax(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:312
TauGNNUtils::Variables::EMPOverTrkSysP
bool EMPOverTrkSysP(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:290
TauGNNUtils::Variables::Track::theta
bool theta(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:754
TauGNNUtils::GNNVarCalc::insert
void insert(const std::string &name, ScalarCalc func, const std::vector< std::string > &scalar_vars)
Definition: TauGNNUtils.cxx:83
TauGNNUtils::Variables::Track::numberOfContribPixelLayers
bool numberOfContribPixelLayers(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:729
TauGNNUtils::Variables::Cluster::CENTER_MAG
bool CENTER_MAG(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:916
TauGNNUtils::Variables::etOverPtLeadTrk
bool etOverPtLeadTrk(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:255
TauGNNUtils::Variables::Track::fakeScoreRNN
bool fakeScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:635
TauGNNUtils::Variables::Track::pt_log
bool pt_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:467
TauGNNUtils::Variables::leadTrackProbNNorHT
bool leadTrackProbNNorHT(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:379
TauGNNUtils::Variables::ClustersMeanCenterLambda
bool ClustersMeanCenterLambda(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:430
TauGNNUtils::Variables::Track::nSCTHitsPlusDeadSensors
bool nSCTHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:587
TauGNNUtils::Variables::Track::numberOfTRTHighThresholdHits
bool numberOfTRTHighThresholdHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:691
xAOD::TauJet_v3::vertex
const Vertex * vertex() const
xAOD::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:273
xAOD::TauTrack_v1
Definition: TauTrack_v1.h:27
TauGNNUtils::Variables::Track::eProbabilityNN
bool eProbabilityNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:602
xAOD::TauJet_v3::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: TauJet_v3.cxx:97
TauGNNUtils::Variables::Track::conversionScoreRNN
bool conversionScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:629
GlobalVariables.Variables
Variables
Definition: GlobalVariables.py:276
TauGNNUtils::GNNVarCalc::GNNVarCalc
GNNVarCalc()
Definition: TauGNNUtils.cxx:13
HelperFunctions.h
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
TauGNNUtils::Variables::Cluster::FIRST_ENG_DENS
bool FIRST_ENG_DENS(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:902
TauGNNUtils::Variables::absEta
bool absEta(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:234
xAOD::eProbabilityHT
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
Definition: TrackingPrimitives.h:301
TauGNNUtils::Variables::Cluster::SECOND_LAMBDAOverClustersMeanSecondLambda
bool SECOND_LAMBDAOverClustersMeanSecondLambda(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:845
TauGNNUtils::Variables::Track::pt_tau_log
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
Definition: TauGNNUtils.cxx:487
TauGNNUtils::Variables::pt
bool pt(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:333
xAOD::numberOfContribPixelLayers
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
Definition: TrackingPrimitives.h:230
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
TauGNNUtils::Variables::Track::z0TJVA
bool z0TJVA(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:759
TauGNNUtils::Variables::Track::numberOfTRTHits
bool numberOfTRTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:698
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
TauGNNUtils::Variables::Track::trackPhi
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:482
merge.status
status
Definition: merge.py:17
xAOD::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:266
xAOD::TauTrack_v1::track
const TrackParticle * track() const
TauGNNUtils::Variables::Track::d0TJVA
bool d0TJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:517
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
TauGNNUtils::Variables::Track::z0sinThetaTJVA_abs_log
bool z0sinThetaTJVA_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:502
xAOD::CaloVertexedTopoCluster
Evaluate cluster kinematics with a different vertex / signal state.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloVertexedTopoCluster.h:38
xAOD::TauJet_v3::ptIntermediateAxis
double ptIntermediateAxis() const
TauGNNUtils::Variables::ptDetectorAxis
bool ptDetectorAxis(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:343
TauGNNUtils::Variables::Track::dEta
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:527
xAOD::TauJetParameters::PSSFraction
@ PSSFraction
Definition: TauDefs.h:277
beamspotnt.calc
calc
Definition: bin/beamspotnt.py:1252
TauGNNUtils::Variables::Track::numberOfInnermostPixelLayerHits
bool numberOfInnermostPixelLayerHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:642
TauGNNUtils::Variables::Cluster::dEta
bool dEta(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Definition: TauGNNUtils.cxx:820
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:514
TauGNNUtils::Variables::Cluster::pt_tau_log
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &, double &out)
Definition: TauGNNUtils.cxx:810
TauGNNUtils::Variables::Track::d0SigTJVA
bool d0SigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:522
TauGNNUtils::Variables::Track::nIBLHitsAndExp
bool nIBLHitsAndExp(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:571
TauGNNUtils::Variables::Track::trackEta
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:477
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237
SG::ConstAccessor::withDefault
const_reference_type withDefault(const ELT &e, const T &deflt) const
Fetch the variable for one element, as a const reference, with a default.
TauGNNUtils::Variables::Track::log_sumpt2_PV0
bool log_sumpt2_PV0(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
Definition: TauGNNUtils.cxx:793
TauGNNUtils::GNNVarCalc::m_scalar_map
std::unordered_map< std::string, ScalarCalc > m_scalar_map
Definition: TauGNNUtils.h:68