ATLAS Offline Software
Loading...
Searching...
No Matches
TrigTauPrecisionIDHypoTool Class Reference

Precision step hypothesis tool for applying ID cuts (standard chains) More...

#include <TrigTauPrecisionIDHypoTool.h>

Inheritance diagram for TrigTauPrecisionIDHypoTool:
Collaboration diagram for TrigTauPrecisionIDHypoTool:

Public Member Functions

 TrigTauPrecisionIDHypoTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
virtual StatusCode decide (std::vector< ITrigTauJetHypoTool::ToolInfo > &input) const override
virtual bool decide (const ITrigTauJetHypoTool::ToolInfo &i) const override

Private Types

enum  IDMethod { Disabled = 0 , RNN = 1 , Decorator = 2 }
enum  IDWP {
  None = -1 , VeryLoose = 0 , Loose = 1 , Medium = 2 ,
  Tight = 3
}

Private Attributes

HLT::Identifier m_decisionId
Gaudi::Property< float > m_ptMin {this, "PtMin", 0, "Tau pT minimum cut"}
Gaudi::Property< int > m_numTrackMin {this, "NTracksMin", 0, "Minimum number of tracks"}
Gaudi::Property< int > m_numTrackMax {this, "NTracksMax", 5, "Maximum number of tracks"}
Gaudi::Property< int > m_numIsoTrackMax {this, "NIsoTracksMax", 999, "Maximum number of isolation tracks"}
Gaudi::Property< float > m_trackPtCut {this, "TrackPtCut", -1, "Only count tracks above this pT threshold (override the 1 GeV cut in the InDetTrackSelectorTool)"}
Gaudi::Property< int > m_idMethod {this, "IDMethod", IDMethod::Disabled, "ID WP evaluation method (0: Disabled, 1: RNN, 2: Decorator)"}
Gaudi::Property< int > m_idWP {this, "IDWP", IDWP::None, "Minimum ID Working Point (-1: None, 0: VeryLoose, 1: Loose, 2: Medium, 3: Tight)"}
Gaudi::Property< std::vector< std::string > > m_idWPNames {this, "IDWPNames", {}, "ID WP decorated variable names; use with IDMethod=2"}
Gaudi::Property< float > m_highPtTrkThr {this, "HighPtSelectionTrkThr", 200000, "Tau pT threshold for disabling the NTrackMin and NIsoTrackMax cuts" }
Gaudi::Property< float > m_highPtLooseIDThr {this, "HighPtSelectionLooseIDThr", 280000, "Tau pT threshold for loosening the IDWP cut to Loose (IDWP=1)"}
Gaudi::Property< float > m_highPtJetThr {this, "HighPtSelectionJetThr", 440000, "Tau pT threshold for disabling IDWP and NTrackMax cuts"}
Gaudi::Property< bool > m_acceptAll {this, "AcceptAll", false, "Ignore selection"}
ToolHandle< GenericMonitoringToolm_monTool {this, "MonTool", "", "Monitoring tool"}
Gaudi::Property< std::map< std::string, std::pair< std::string, std::string > > > m_monitoredIdScores {this, "MonitoredIDScores", {}, "Pairs of the TauID score and signal-transformed scores for each TauID algorithm to be monitored"}
std::map< std::string, std::pair< SG::ConstAccessor< float >, SG::ConstAccessor< float > > > m_monitoredIdAccessors

Detailed Description

Precision step hypothesis tool for applying ID cuts (standard chains)

Definition at line 21 of file TrigTauPrecisionIDHypoTool.h.

Member Enumeration Documentation

◆ IDMethod

◆ IDWP

Constructor & Destructor Documentation

◆ TrigTauPrecisionIDHypoTool()

TrigTauPrecisionIDHypoTool::TrigTauPrecisionIDHypoTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 15 of file TrigTauPrecisionIDHypoTool.cxx.

16 : base_class(type, name, parent),
18{
19
20}
static HLT::Identifier fromToolName(const std::string &tname)

Member Function Documentation

◆ decide() [1/2]

bool TrigTauPrecisionIDHypoTool::decide ( const ITrigTauJetHypoTool::ToolInfo & i) const
overridevirtual

Definition at line 77 of file TrigTauPrecisionIDHypoTool.cxx.

78{
79 ATH_MSG_DEBUG(name() << ": in execute()");
80
81 auto NInputTaus = Monitored::Scalar<int>("NInputTaus", -1);
82 auto passedCuts = Monitored::Scalar<int>("CutCounter", 0);
83 auto PtAccepted = Monitored::Scalar<float>("PtAccepted", -1);
84 auto NTracksAccepted = Monitored::Scalar<int>("NTracksAccepted", -1);
85 auto NIsoTracksAccepted = Monitored::Scalar<int>("NIsoTracksAccepted", -1);
86
87 std::map<std::string, Monitored::Scalar<float>> monitoredIdVariables;
88 for(const auto& [key, p] : m_monitoredIdScores) {
89 monitoredIdVariables.emplace(key + "_TauJetScoreAccepted_0p", Monitored::Scalar<float>(key + "_TauJetScoreAccepted_0p", -1));
90 monitoredIdVariables.emplace(key + "_TauJetScoreTransAccepted_0p", Monitored::Scalar<float>(key + "_TauJetScoreTransAccepted_0p", -1));
91 monitoredIdVariables.emplace(key + "_TauJetScoreAccepted_1p", Monitored::Scalar<float>(key + "_TauJetScoreAccepted_1p", -1));
92 monitoredIdVariables.emplace(key + "_TauJetScoreTransAccepted_1p", Monitored::Scalar<float>(key + "_TauJetScoreTransAccepted_1p", -1));
93 monitoredIdVariables.emplace(key + "_TauJetScoreAccepted_mp", Monitored::Scalar<float>(key + "_TauJetScoreAccepted_mp", -1));
94 monitoredIdVariables.emplace(key + "_TauJetScoreTransAccepted_mp", Monitored::Scalar<float>(key + "_TauJetScoreTransAccepted_mp", -1));
95 }
96
97 std::vector<std::reference_wrapper<Monitored::IMonitoredVariable>> monVars = {
98 std::ref(NInputTaus), std::ref(passedCuts), std::ref(PtAccepted), std::ref(NTracksAccepted), std::ref(NIsoTracksAccepted)
99 };
100 for(auto& [key, var] : monitoredIdVariables) monVars.push_back(std::ref(var));
101 auto monitorIt = Monitored::Group(m_monTool, monVars);
102
103
104 // Tau pass flag
105 bool pass = false;
106
107 if(m_acceptAll) {
108 pass = true;
109 ATH_MSG_DEBUG("AcceptAll property is set: taking all events");
110 }
111
112 // Debugging location of the TauJet RoI
113 ATH_MSG_DEBUG("Input RoI eta: " << input.roi->eta() << ", phi: " << input.roi->phi() << ", z: " << input.roi->zed());
114
115 const xAOD::TauJetContainer* TauContainer = input.tauContainer;
116 NInputTaus = TauContainer->size();
117 // There should only be a single TauJet in the TauJetContainer; just in case we still run the loop
118 for(const xAOD::TauJet* Tau : *TauContainer) {
119 ATH_MSG_DEBUG(" New HLT TauJet candidate:");
120
121 float pT = Tau->pt();
122
123 //---------------------------------------------------------
124 // Calibrated tau pT cut ('idperf' step)
125 //---------------------------------------------------------
126 ATH_MSG_DEBUG(" pT: " << pT / Gaudi::Units::GeV);
127
128 if(!(pT > m_ptMin)) continue;
129 passedCuts++;
130 PtAccepted = pT / Gaudi::Units::GeV;
131
132
133 //---------------------------------------------------------
134 // Track counting ('perf' step)
135 //---------------------------------------------------------
136 int numTrack = 0, numIsoTrack = 0;
137 if(m_trackPtCut > 0.) {
138 // Raise the track pT threshold when counting tracks in the 'perf' step, to reduce sensitivity to pileup tracks
139 // Overrides the default 1 GeV cut by the InDetTrackSelectorTool used during the TauJet construction
140 for(const auto* track : Tau->tracks(xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)) {
141 if(track->pt() > m_trackPtCut) numTrack++;
142 }
143 for(const auto* track : Tau->tracks(xAOD::TauJetParameters::TauTrackFlag::classifiedIsolation)) {
144 if(track->pt() > m_trackPtCut) numIsoTrack++;
145 }
146 } else {
147 // Use the default 1 GeV selection in the InDetTrackSelectorTool, executed during the TauJet construction
148 numTrack = Tau->nTracks();
149 numIsoTrack = Tau->nTracksIsolation();
150 }
151
152 ATH_MSG_DEBUG(" N Tracks: " << numTrack);
153 ATH_MSG_DEBUG(" N Iso Tracks: " << numIsoTrack);
154
155 // Apply track multiplicity cuts, except for idperf
156 if(!m_acceptAll) {
157 // NTrackMin and NIsoTracksMax
158 if(pT < m_highPtTrkThr) {
159 if(numTrack < m_numTrackMin) continue;
160 if(numIsoTrack > m_numIsoTrackMax) continue;
161 }
162 // NTrackMax
163 if(pT < m_highPtJetThr) {
164 if(numTrack > m_numTrackMax) continue;
165 }
166 }
167 // Note: we disabled the track selection for high pT taus
168
169 passedCuts++;
170 NTracksAccepted = numTrack;
171 NIsoTracksAccepted = numIsoTrack;
172
173
174 //---------------------------------------------------------
175 // ID WP selection (ID step)
176 //---------------------------------------------------------
177 int local_idWP = m_idWP;
178
179 // Loosen/disable the ID WP cut for high pT taus
180 if(pT > m_highPtLooseIDThr && m_idWP > IDWP::Loose) local_idWP = IDWP::Loose; // Set ID WP to Loose
181 if(pT > m_highPtJetThr) local_idWP = IDWP::None; // Disable the ID WP cut
182
183 ATH_MSG_DEBUG(" Local Tau ID WP: " << local_idWP);
184
185 if(m_idMethod == IDMethod::RNN) { // RNN/DeepSet scores
186 if(!Tau->hasDiscriminant(xAOD::TauJetParameters::RNNJetScoreSigTrans)) {
187 ATH_MSG_WARNING(" RNNJetScoreSigTrans not available. Make sure the TauWPDecorator is run for the RNN Tau ID!");
188 }
189
190 if(!m_acceptAll && local_idWP != IDWP::None) {
192 continue;
193 } else if(local_idWP == IDWP::Loose && !Tau->isTau(xAOD::TauJetParameters::JetRNNSigLoose)) {
194 continue;
195 } else if(local_idWP == IDWP::Medium && !Tau->isTau(xAOD::TauJetParameters::JetRNNSigMedium)) {
196 continue;
197 } else if(local_idWP == IDWP::Tight && !Tau->isTau(xAOD::TauJetParameters::JetRNNSigTight)) {
198 continue;
199 }
200 }
201
202 } else if(m_idMethod == IDMethod::Decorator) { // Decorated scores (e.g. for GNTau)
203 const static SG::ConstAccessor<char> tauid_veryloose(m_idWPNames[0]);
204 const static SG::ConstAccessor<char> tauid_loose(m_idWPNames[1]);
205 const static SG::ConstAccessor<char> tauid_medium(m_idWPNames[2]);
206 const static SG::ConstAccessor<char> tauid_tight(m_idWPNames[3]);
207
208 if(!tauid_veryloose.isAvailable(*Tau) || !tauid_loose.isAvailable(*Tau) || !tauid_medium.isAvailable(*Tau) || !tauid_tight.isAvailable(*Tau))
209 ATH_MSG_WARNING("The TauID WP variables for the current configuration are missing! Make sure the correct inferences are included in the chain reconstruction sequence!");
210
211 if(!m_acceptAll && local_idWP != IDWP::None) {
212 if(local_idWP == IDWP::VeryLoose && !tauid_veryloose(*Tau)) {
213 continue;
214 } else if(local_idWP == IDWP::Loose && !tauid_loose(*Tau)) {
215 continue;
216 } else if(local_idWP == IDWP::Medium && !tauid_medium(*Tau)) {
217 continue;
218 } else if(local_idWP == IDWP::Tight && !tauid_tight(*Tau)) {
219 continue;
220 }
221 }
222
223
224 }
225
226 // TauID Score monitoring
227 for(const auto& [key, p] : m_monitoredIdAccessors) {
228 if(!p.first.isAvailable(*Tau))
229 ATH_MSG_WARNING("TauID Score " << m_monitoredIdScores.value().at(key).first << " is not available. Make sure the correct inferences are included in the chain reconstruction sequence!");
230
231 if(!p.second.isAvailable(*Tau))
232 ATH_MSG_WARNING("TauID ScoreSigTrans " << m_monitoredIdScores.value().at(key).second << " is not available. Make sure the correct inferences are included in the chain reconstruction sequence!");
233
234 ATH_MSG_DEBUG(" TauID \"" << key << "\" ScoreSigTrans: " << p.second(*Tau));
235
236 // Monitor ID scores
237 if(Tau->nTracks() == 0) {
238 monitoredIdVariables.at(key + "_TauJetScoreAccepted_0p") = p.first(*Tau);
239 monitoredIdVariables.at(key + "_TauJetScoreTransAccepted_0p") = p.second(*Tau);
240 } else if(Tau->nTracks() == 1) {
241 monitoredIdVariables.at(key + "_TauJetScoreAccepted_1p") = p.first(*Tau);
242 monitoredIdVariables.at(key + "_TauJetScoreTransAccepted_1p") = p.second(*Tau);
243 } else { // MP tau
244 monitoredIdVariables.at(key + "_TauJetScoreAccepted_mp") = p.first(*Tau);
245 monitoredIdVariables.at(key + "_TauJetScoreTransAccepted_mp") = p.second(*Tau);
246 }
247 }
248
249 passedCuts++;
250
251
252 //---------------------------------------------------------
253 // At least one Tau passed all the cuts. Accept the event!
254 //---------------------------------------------------------
255 pass = true;
256
257 ATH_MSG_DEBUG(" Pass hypo tool: " << pass);
258 }
259
260 return pass;
261}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Property< std::map< std::string, std::pair< std::string, std::string > > > m_monitoredIdScores
Gaudi::Property< int > m_numIsoTrackMax
Gaudi::Property< float > m_trackPtCut
Gaudi::Property< float > m_highPtLooseIDThr
std::map< std::string, std::pair< SG::ConstAccessor< float >, SG::ConstAccessor< float > > > m_monitoredIdAccessors
Gaudi::Property< float > m_highPtJetThr
ToolHandle< GenericMonitoringTool > m_monTool
Gaudi::Property< float > m_highPtTrkThr
Gaudi::Property< std::vector< std::string > > m_idWPNames
@ Tau
The object is a tau (jet)
Definition ObjectType.h:49
@ RNNJetScoreSigTrans
RNN score which is signal transformed/flattened.
Definition TauDefs.h:92
TauJet_v3 TauJet
Definition of the current "tau version".
TauJetContainer_v3 TauJetContainer
Definition of the current "taujet container version".

◆ decide() [2/2]

StatusCode TrigTauPrecisionIDHypoTool::decide ( std::vector< ITrigTauJetHypoTool::ToolInfo > & input) const
overridevirtual

Definition at line 264 of file TrigTauPrecisionIDHypoTool.cxx.

264 {
265 for(ITrigTauJetHypoTool::ToolInfo& i : input) {
266 if(passed(m_decisionId.numeric(), i.previousDecisionIDs)) {
267 if(decide(i)) {
268 addDecisionID(m_decisionId, i.decision);
269 }
270 }
271 }
272
273 return StatusCode::SUCCESS;
274}
virtual StatusCode decide(std::vector< ITrigTauJetHypoTool::ToolInfo > &input) const override
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.

◆ initialize()

StatusCode TrigTauPrecisionIDHypoTool::initialize ( )
overridevirtual

Definition at line 23 of file TrigTauPrecisionIDHypoTool.cxx.

24{
25 ATH_MSG_DEBUG(name() << ": in initialize()");
26
27 ATH_MSG_DEBUG("TrigTauPrecisionIDHypoTool will cut on:");
28 ATH_MSG_DEBUG(" - PtMin: " << m_ptMin.value());
29 ATH_MSG_DEBUG(" - NTracksMin: " << m_numTrackMin.value());
30 ATH_MSG_DEBUG(" - NTracksMax: " << m_numTrackMax.value());
31 ATH_MSG_DEBUG(" - NIsoTracksMax: " << m_numIsoTrackMax.value());
32 if(m_trackPtCut >= 0) ATH_MSG_DEBUG(" - trackPtCut: " << m_trackPtCut.value());
33 ATH_MSG_DEBUG(" - IDMethod: " << m_idMethod.value());
34 ATH_MSG_DEBUG(" - IDWP: " << m_idWP.value());
35 if(m_idMethod == IDMethod::Decorator) ATH_MSG_DEBUG(" - IDWPNames: " << m_idWPNames.value());
36 ATH_MSG_DEBUG(" - HighPtSelectionTrkThr: " << m_highPtTrkThr.value());
37 ATH_MSG_DEBUG(" - HighPtSelectionLooseIDThr: " << m_highPtLooseIDThr.value());
38 ATH_MSG_DEBUG(" - HighPtSelectionJetThr: " << m_highPtJetThr.value());
39
41 ATH_MSG_ERROR("Invalid tool configuration!");
42 return StatusCode::FAILURE;
43 }
44
46 ATH_MSG_ERROR("Invalid IDMethod value, " << m_idMethod.value());
47 return StatusCode::FAILURE;
49 ATH_MSG_ERROR("Invalid IDWP value, " << m_idWP.value());
50 return StatusCode::FAILURE;
52 ATH_MSG_ERROR("IDMethod=0 must be set together with IDWP=-1");
53 return StatusCode::FAILURE;
54 } else if(m_idMethod == IDMethod::Decorator && m_idWPNames.size() != 4) {
55 ATH_MSG_ERROR("There need to be 4 TauID WPs passed to IDWPNames if using IDMethod=2 (Decorator)");
56 return StatusCode::FAILURE;
57 }
58
59 // Now create the "cache" of TauID score accessors for the Monitoring...
60 ATH_MSG_DEBUG("TauID score monitoring: ");
61 for(const auto& [key, p] : m_monitoredIdScores) {
62 ATH_MSG_DEBUG(" - IDName: " << key);
63 ATH_MSG_DEBUG(" - IDScoreName: " << p.first);
64 ATH_MSG_DEBUG(" - IDScoreSigTransName: " << p.second);
65 if(p.first.empty() || p.second.empty()) {
66 ATH_MSG_ERROR("Invalid score variable names; skipping this entry for the monitoring!");
67 continue;
68 }
69
70 m_monitoredIdAccessors.emplace(key, std::make_pair(SG::ConstAccessor<float>(p.first), SG::ConstAccessor<float>(p.second)));
71 }
72
73 return StatusCode::SUCCESS;
74}
#define ATH_MSG_ERROR(x)

Member Data Documentation

◆ m_acceptAll

Gaudi::Property<bool> TrigTauPrecisionIDHypoTool::m_acceptAll {this, "AcceptAll", false, "Ignore selection"}
private

Definition at line 63 of file TrigTauPrecisionIDHypoTool.h.

63{this, "AcceptAll", false, "Ignore selection"};

◆ m_decisionId

HLT::Identifier TrigTauPrecisionIDHypoTool::m_decisionId
private

Definition at line 45 of file TrigTauPrecisionIDHypoTool.h.

◆ m_highPtJetThr

Gaudi::Property<float> TrigTauPrecisionIDHypoTool::m_highPtJetThr {this, "HighPtSelectionJetThr", 440000, "Tau pT threshold for disabling IDWP and NTrackMax cuts"}
private

Definition at line 61 of file TrigTauPrecisionIDHypoTool.h.

61{this, "HighPtSelectionJetThr", 440000, "Tau pT threshold for disabling IDWP and NTrackMax cuts"};

◆ m_highPtLooseIDThr

Gaudi::Property<float> TrigTauPrecisionIDHypoTool::m_highPtLooseIDThr {this, "HighPtSelectionLooseIDThr", 280000, "Tau pT threshold for loosening the IDWP cut to Loose (IDWP=1)"}
private

Definition at line 60 of file TrigTauPrecisionIDHypoTool.h.

60{this, "HighPtSelectionLooseIDThr", 280000, "Tau pT threshold for loosening the IDWP cut to Loose (IDWP=1)"};

◆ m_highPtTrkThr

Gaudi::Property<float> TrigTauPrecisionIDHypoTool::m_highPtTrkThr {this, "HighPtSelectionTrkThr", 200000, "Tau pT threshold for disabling the NTrackMin and NIsoTrackMax cuts" }
private

Definition at line 59 of file TrigTauPrecisionIDHypoTool.h.

59{this, "HighPtSelectionTrkThr", 200000, "Tau pT threshold for disabling the NTrackMin and NIsoTrackMax cuts" };

◆ m_idMethod

Gaudi::Property<int> TrigTauPrecisionIDHypoTool::m_idMethod {this, "IDMethod", IDMethod::Disabled, "ID WP evaluation method (0: Disabled, 1: RNN, 2: Decorator)"}
private

Definition at line 54 of file TrigTauPrecisionIDHypoTool.h.

54{this, "IDMethod", IDMethod::Disabled, "ID WP evaluation method (0: Disabled, 1: RNN, 2: Decorator)"};

◆ m_idWP

Gaudi::Property<int> TrigTauPrecisionIDHypoTool::m_idWP {this, "IDWP", IDWP::None, "Minimum ID Working Point (-1: None, 0: VeryLoose, 1: Loose, 2: Medium, 3: Tight)"}
private

Definition at line 55 of file TrigTauPrecisionIDHypoTool.h.

55{this, "IDWP", IDWP::None, "Minimum ID Working Point (-1: None, 0: VeryLoose, 1: Loose, 2: Medium, 3: Tight)"};

◆ m_idWPNames

Gaudi::Property<std::vector<std::string> > TrigTauPrecisionIDHypoTool::m_idWPNames {this, "IDWPNames", {}, "ID WP decorated variable names; use with IDMethod=2"}
private

Definition at line 56 of file TrigTauPrecisionIDHypoTool.h.

56{this, "IDWPNames", {}, "ID WP decorated variable names; use with IDMethod=2"};

◆ m_monitoredIdAccessors

std::map<std::string, std::pair<SG::ConstAccessor<float>, SG::ConstAccessor<float> > > TrigTauPrecisionIDHypoTool::m_monitoredIdAccessors
private

Definition at line 67 of file TrigTauPrecisionIDHypoTool.h.

◆ m_monitoredIdScores

Gaudi::Property<std::map<std::string, std::pair<std::string, std::string> > > TrigTauPrecisionIDHypoTool::m_monitoredIdScores {this, "MonitoredIDScores", {}, "Pairs of the TauID score and signal-transformed scores for each TauID algorithm to be monitored"}
private

Definition at line 66 of file TrigTauPrecisionIDHypoTool.h.

66{this, "MonitoredIDScores", {}, "Pairs of the TauID score and signal-transformed scores for each TauID algorithm to be monitored"};

◆ m_monTool

ToolHandle<GenericMonitoringTool> TrigTauPrecisionIDHypoTool::m_monTool {this, "MonTool", "", "Monitoring tool"}
private

Definition at line 65 of file TrigTauPrecisionIDHypoTool.h.

65{this, "MonTool", "", "Monitoring tool"};

◆ m_numIsoTrackMax

Gaudi::Property<int> TrigTauPrecisionIDHypoTool::m_numIsoTrackMax {this, "NIsoTracksMax", 999, "Maximum number of isolation tracks"}
private

Definition at line 51 of file TrigTauPrecisionIDHypoTool.h.

51{this, "NIsoTracksMax", 999, "Maximum number of isolation tracks"};

◆ m_numTrackMax

Gaudi::Property<int> TrigTauPrecisionIDHypoTool::m_numTrackMax {this, "NTracksMax", 5, "Maximum number of tracks"}
private

Definition at line 50 of file TrigTauPrecisionIDHypoTool.h.

50{this, "NTracksMax", 5, "Maximum number of tracks"};

◆ m_numTrackMin

Gaudi::Property<int> TrigTauPrecisionIDHypoTool::m_numTrackMin {this, "NTracksMin", 0, "Minimum number of tracks"}
private

Definition at line 49 of file TrigTauPrecisionIDHypoTool.h.

49{this, "NTracksMin", 0, "Minimum number of tracks"};

◆ m_ptMin

Gaudi::Property<float> TrigTauPrecisionIDHypoTool::m_ptMin {this, "PtMin", 0, "Tau pT minimum cut"}
private

Definition at line 47 of file TrigTauPrecisionIDHypoTool.h.

47{this, "PtMin", 0, "Tau pT minimum cut"};

◆ m_trackPtCut

Gaudi::Property<float> TrigTauPrecisionIDHypoTool::m_trackPtCut {this, "TrackPtCut", -1, "Only count tracks above this pT threshold (override the 1 GeV cut in the InDetTrackSelectorTool)"}
private

Definition at line 52 of file TrigTauPrecisionIDHypoTool.h.

52{this, "TrackPtCut", -1, "Only count tracks above this pT threshold (override the 1 GeV cut in the InDetTrackSelectorTool)"};

The documentation for this class was generated from the following files: