ATLAS Offline Software
Loading...
Searching...
No Matches
ConstituentsLoaderTauTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
4 This is a subclass of IConstituentsLoader. It is used to load the TauTracks from the tau
5 and extract their features for the NN evaluation.
6*/
7
8#pragma once
9
10// local includes
13
14// EDM includes
15#include <xAODTau/TauJet.h>
16#include <xAODTau/TauTrack.h>
17
18// STL includes
19#include <string>
20#include <vector>
21#include <functional>
22
23
24namespace TauTrackVars {
25
26// Functions to calculate input variables for each track
27// Returns a status code indicating success
28
29bool pt_log(
30 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
31
32bool trackPt(
33 const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
34
35bool trackEta(
36 const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
37
38bool trackPhi(
39 const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
40
41bool pt_tau_log(
42 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
43
45 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
46
47bool d0_abs_log(
48 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
49
51 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
52
54 const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
55
57 const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
58
59bool d0TJVA(
60 const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
61
62bool d0SigTJVA(
63 const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
64
65bool dEta(
66 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
67
69 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
70
71bool dPhi(
72 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
73
75 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
76
78 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
79
80bool nPixelHits(
81 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
82
83bool nSCTHits(
84 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
85
86// trigger variants
87bool nIBLHitsAndExp (
88 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
89
91 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
92
94 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
95
97 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
98
100 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
101
102bool eProbabilityNN(
103 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
104
106 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
107
108bool chargedScoreRNN(
109 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
110
112 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
113
115 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
116
117bool fakeScoreRNN(
118 const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out);
119
120//Extension - variables for GNTau
121bool numberOfInnermostPixelLayerHits(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
122bool numberOfPixelHits(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
123bool numberOfPixelSharedHits(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
124bool numberOfPixelDeadSensors(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
125bool numberOfSCTHits(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
126bool numberOfSCTSharedHits(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
127bool numberOfSCTDeadSensors(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
128bool numberOfTRTHighThresholdHits(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
129bool numberOfTRTHits(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
130bool nSiHits(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
131bool expectInnermostPixelLayerHit(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
132bool expectNextToInnermostPixelLayerHit(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
133bool numberOfContribPixelLayers(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
134bool numberOfPixelHoles(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
135bool d0_old(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
136bool qOverP(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
137bool theta(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
138bool z0TJVA(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
139bool charge(const xAOD::TauJet& tau, const xAOD::TauTrack &track, float &out);
140
141} // namespace TrackVars
142
143
144namespace FlavorTagInference {
145 // Subclass for IParticles loader inherited from abstract IConstituentsLoader class
147 public:
149
150 std::tuple<Inputs, std::vector<const xAOD::IParticle*>> getData(const xAOD::IParticle& p) const override ;
151 const FTagDataDependencyNames& getDependencies() const override;
152 const std::set<std::string>& getUsedRemap() const override;
153 const std::string& getName() const override;
154 const ConstituentsType& getType() const override;
155 private:
156 using FeatureFunc_t = std::function<float(const xAOD::TauTrack&, const xAOD::TauJet&)>;
157 using FeatureFuncAsReference_t = std::function<bool(const xAOD::TauJet&, const xAOD::TauTrack&, float&)>;
158 std::vector<FeatureFunc_t> m_feature_extractors;
159 FeatureFunc_t getFeatureExtractor(const std::string& var_name) const;
160 std::vector<const xAOD::TauTrack*> getTauTracks(const xAOD::TauJet* tau) const;
161 Inputs getFeatures(const xAOD::TauJet* tau, const std::vector<const xAOD::TauTrack*>& tau_trks) const;
162 inline static const std::unordered_map<std::string, FeatureFuncAsReference_t> m_func_map = {
163 {"pt_log", TauTrackVars::pt_log},
164 {"trackPt", TauTrackVars::trackPt},
165 {"trackEta", TauTrackVars::trackEta},
166 {"trackPhi", TauTrackVars::trackPhi},
167 {"pt_tau_log", TauTrackVars::pt_tau_log},
168 {"pt_jetseed_log", TauTrackVars::pt_jetseed_log},
169 {"d0_abs_log", TauTrackVars::d0_abs_log},
170 {"z0sinThetaTJVA_abs_log", TauTrackVars::z0sinThetaTJVA_abs_log},
171 {"z0sinthetaTJVA", TauTrackVars::z0sinthetaTJVA},
172 {"z0sinthetaSigTJVA", TauTrackVars::z0sinthetaSigTJVA},
173 {"d0TJVA", TauTrackVars::d0TJVA},
174 {"d0SigTJVA", TauTrackVars::d0SigTJVA},
175 {"dEta", TauTrackVars::dEta},
176 {"dEtaJetSeedAxis", TauTrackVars::dEtaJetSeedAxis},
177 {"dPhi", TauTrackVars::dPhi},
178 {"dPhiJetSeedAxis", TauTrackVars::dPhiJetSeedAxis},
179 {"nInnermostPixelHits", TauTrackVars::nInnermostPixelHits},
180 {"numberOfInnermostPixelLayerHits", TauTrackVars::numberOfInnermostPixelLayerHits},
181 {"nPixelHits", TauTrackVars::nPixelHits},
182 {"nSCTHits", TauTrackVars::nSCTHits},
183 {"nIBLHitsAndExp", TauTrackVars::nIBLHitsAndExp},
184 {"nPixelHitsPlusDeadSensors", TauTrackVars::nPixelHitsPlusDeadSensors},
185 {"nSCTHitsPlusDeadSensors", TauTrackVars::nSCTHitsPlusDeadSensors},
186 {"eProbabilityHT", TauTrackVars::eProbabilityHT},
187 {"eProbabilityHT_noTRT", TauTrackVars::eProbabilityHT_noTRT}
188 };
189 };
190}
191
Scalar theta() const
theta method
std::function< bool(const xAOD::TauJet &, const xAOD::TauTrack &, float &)> FeatureFuncAsReference_t
std::vector< const xAOD::TauTrack * > getTauTracks(const xAOD::TauJet *tau) const
std::function< float(const xAOD::TauTrack &, const xAOD::TauJet &)> FeatureFunc_t
const FTagDataDependencyNames & getDependencies() const override
std::tuple< Inputs, std::vector< const xAOD::IParticle * > > getData(const xAOD::IParticle &p) const override
ConstituentLoaderTauTrack(const ConstituentsInputConfig &cfg)
const std::set< std::string > & getUsedRemap() const override
const ConstituentsType & getType() const override
Inputs getFeatures(const xAOD::TauJet *tau, const std::vector< const xAOD::TauTrack * > &tau_trks) const
FeatureFunc_t getFeatureExtractor(const std::string &var_name) const
static const std::unordered_map< std::string, FeatureFuncAsReference_t > m_func_map
Class providing the definition of the 4-vector interface.
This file contains "getter" functions used for accessing tagger inputs from the EDM.
std::pair< std::vector< float >, std::vector< int64_t > > Inputs
bool nSCTHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfSCTSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nInnermostPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfPixelSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool nSiHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool expectNextToInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool isolationScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, float &out)
bool numberOfTRTHighThresholdHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityHT_noTRT(const xAOD::TauJet &, const xAOD::TauTrack &, float &out)
bool numberOfInnermostPixelLayerHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityHT(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nIBLHitsAndExp(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0sinthetaTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, float &out)
bool numberOfPixelHoles(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfTRTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0TJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool qOverP(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool expectInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool pt_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dEtaJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfSCTDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfPixelDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool conversionScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfContribPixelLayers(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dPhiJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool fakeScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool chargedScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0_old(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0TJVA(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool charge(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0SigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool nPixelHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0sinThetaTJVA_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityNNorHT(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
TauTrack_v1 TauTrack
Definition of the current version.
Definition TauTrack.h:16
TauJet_v3 TauJet
Definition of the current "tau version".