ATLAS Offline Software
InDetTrackSelectionTool.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef INDETTRACKSELECTIONTOOL_INDETTRACKSELECTIONTOOL_H
8 #define INDETTRACKSELECTIONTOOL_INDETTRACKSELECTIONTOOL_H
9 
10 // Local include(s):
12 // Framework include(s):
13 #include "AsgTools/AsgTool.h"
15 #ifndef XAOD_ANALYSIS
16 #include "GaudiKernel/ToolHandle.h"
17 #include "GaudiKernel/ServiceHandle.h"
20 #endif
21 
22 #include <atomic>
23 #include <limits>
24 #include <map>
25 #include <mutex>
26 #include <unordered_map>
27 #include <string>
28 #include <sstream>
29 #include <algorithm>
30 #include <iterator>
31 
32 namespace InDetAccessor {
33 
34  class TrackParticleHelper;
35 
36 #ifndef XAOD_ANALYSIS
37  class TrkTrackHelper;
38 #endif
39 }
40 
41 namespace InDet {
42 
43  // forward declaration of helper classes
44  class TrackAccessor;
45  class TrackCut;
46 
50  public virtual IInDetTrackSelectionTool,
51  public asg::AsgTool {
52 
53  friend class TrackCut;
54 
59 
60  public:
62  InDetTrackSelectionTool( const std::string& name, const std::string& cutLevel = "" );
63 
64  // The default destructor is OK but it must be defined in the
65  // implementation file in order to forward declare with unique_ptr
67 
70 
72  virtual StatusCode initialize() override;
74  virtual StatusCode finalize() override;
75 
77 
80 
82  virtual const asg::AcceptInfo& getAcceptInfo() const override;
83 
85  virtual asg::AcceptData accept( const xAOD::IParticle* ) const override;
86 
88 
91 
94  const xAOD::Vertex* vertex = nullptr ) const override;
95 
96 #ifndef XAOD_ANALYSIS
97  virtual asg::AcceptData accept( const Trk::Track& track,
98  const Trk::Vertex* vertex = nullptr ) const override;
99 #endif
100 
102 
103  virtual void setCutLevel( InDet::CutLevel level, Bool_t overwrite = true ) override
104  __attribute__ ((deprecated("For consistency with the athena interface, the cut level is best set through the \"CutLevel\" property.")));
105 
106  private:
107  bool m_isInitialized = false; // flag whether or not the tool has been initialized, to check erroneous use cases.
108  mutable std::atomic_bool m_warnInit = false; // flag to keep track of whether we have warned about a lack of initialization
109 
110  // this is the setCutLevel function that actually does the work, so that it doesn't warn if called in athena.
111  void setCutLevelPrivate( InDet::CutLevel level, Bool_t overwrite = true );
112 
113  // helper method to setup the cut functions for TrackParticles and Trk::Tracks
114  template <int VERBOSE, class Trk_Helper>
115  StatusCode setupCuts(std::map< std::string, std::vector< std::function<bool(Trk_Helper helper, const asg::AsgMessaging &msgHelper)> > > &trackCuts);
116 
117  template <class Trk_Helper>
118  asg::AcceptData accept(Trk_Helper helper, const std::map< std::string, std::vector< std::function<bool(Trk_Helper helper, const asg::AsgMessaging &msgHelper)> > > &trackCuts) const;
119 
120  std::unordered_map< std::string, std::shared_ptr<TrackAccessor> > m_trackAccessors;
121 
122  std::unique_ptr<asg::AsgMessaging> m_msgHelper;
123  std::map< std::string, std::vector< std::function<bool(InDetAccessor::TrackParticleHelper helper, const asg::AsgMessaging &msgHelper)> > >
125 #ifndef XAOD_ANALYSIS
126  std::map< std::string, std::vector< std::function<bool(InDetAccessor::TrkTrackHelper helper, const asg::AsgMessaging &msgHelper)> > >
128 #endif
129 
130  mutable std::atomic<ULong64_t> m_numTracksProcessed = 0;
131  mutable std::atomic<ULong64_t> m_numTracksPassed = 0;
132  mutable std::vector<ULong64_t> m_numTracksPassedCuts ATLAS_THREAD_SAFE;
134 
135  static inline bool maxDoubleIsSet(Double_t cutValue) {return cutValue < InDet::InDetTrackSelectionTool::LOCAL_MAX_DOUBLE && cutValue >= 0.;}
136  static inline bool maxIntIsSet(Int_t cutValue){return cutValue < InDet::InDetTrackSelectionTool::LOCAL_MAX_INT && cutValue >= 0;}
137  constexpr static Double_t LOCAL_MAX_DOUBLE = 1.0e16;
138  constexpr static Int_t LOCAL_MAX_INT = std::numeric_limits<Int_t>::max();
139 
140  Double_t m_minPt = -1.;
156  Int_t m_minNSiHits = -1;
160  Int_t m_minNPixelHits = -1;
165  Bool_t m_maxOneSharedModule = false;
166  Bool_t m_useEtaDependentMaxChiSq = false;
167  Double_t m_minP = -1.;
168  Int_t m_minNSiHitsPhysical = -1;
171  Int_t m_minNSctHits = -1;
176  Double_t m_maxEtaForTrtHitCuts = -1.;
177  Int_t m_minNTrtHits = -1;
186  Double_t m_minProb = -1.;
188  Double_t m_minProbAbovePtCutoff = -1.;
189  Int_t m_minNUsedHitsdEdx = -1;
191  Bool_t m_eProbHTonlyForXe = false;
192  Double_t m_minEProbabilityHT = -1.;
194 #ifndef XAOD_ANALYSIS
195  Int_t m_minNSiHitsMod = -1;
196  Int_t m_minNSiHitsModTop = -1;
198 #endif
199  std::vector< Double_t > m_vecEtaCutoffsForSiHitsCut;
200  std::vector< Int_t > m_vecMinNSiHitsAboveEta;
201  std::vector< Double_t > m_vecEtaCutoffsForPtCut;
202  std::vector< Double_t > m_vecMinPtAboveEta;
203 
204  std::vector< Double_t > m_vecPtCutoffsForSctHitsCut;
205  std::vector< Int_t > m_vecMinNSctHitsAbovePt;
206 
207  std::vector< Double_t > m_vecEtaCutoffsForZ0SinThetaCut;
208  std::vector< Double_t > m_vecPtCutoffsForZ0SinThetaCut;
209  std::vector< std::vector< Double_t >> m_vecvecMaxZ0SinThetaAboveEtaPt;
210 
211  std::vector< Double_t > m_vecEtaCutoffsForD0Cut;
212  std::vector< Double_t > m_vecPtCutoffsForD0Cut;
213  std::vector< std::vector< Double_t >> m_vecvecMaxD0AboveEtaPt;
214 
215  std::vector< Double_t > m_vecEtaCutoffsForSctHolesCut;
216  std::vector< Double_t > m_vecPtCutoffsForSctHolesCut;
217  std::vector< std::vector< Double_t >> m_vecvecMaxSctHolesAboveEtaPt;
218 
219  std::vector< Double_t > m_vecEtaCutoffsForSctHitsPlusDeadCut;
220  std::vector< Double_t > m_vecPtCutoffsForSctHitsPlusDeadCut;
221  std::vector< std::vector< Double_t >> m_vecvecMinSctHitsPlusDeadAboveEtaPt;
222 
225 
226  // to set to a pre-defined cut level in Athena, we need to save the cut level
227  // as a string so we can do a soft set in initialize()
228  std::string m_cutLevel;
229 
230  // we need a map from strings (for use in Athena) to the CutLevel enum
231  static const std::unordered_map<std::string, CutLevel> s_mapCutLevel;
232 
233 #ifndef XAOD_ANALYSIS
234  Bool_t m_initTrkTools = false;
235  Bool_t m_trackSumToolAvailable = false;
236  ToolHandle<Trk::ITrackSummaryTool> m_trackSumTool;
237  ToolHandle<Trk::IExtrapolator> m_extrapolator;
238 
239 #endif // XAOD_ANALYSIS
240 
241  }; // class InDetTrackSelectionTool
242 
243 } // namespace InDet
244 
245 #endif // INDETTRACKSELECTIONTOOL_INDETTRACKSELECTIONTOOL_H
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
InDetAccessor
Definition: InDetTrackSelectionTool.h:32
athena
Definition: athena.py:1
InDet::InDetTrackSelectionTool::ATLAS_THREAD_SAFE
std::vector< ULong64_t > m_numTracksPassedCuts ATLAS_THREAD_SAFE
tracks the number of tracks that passed each cut family.
Definition: InDetTrackSelectionTool.h:132
InDet::InDetTrackSelectionTool::m_trackSumToolAvailable
Bool_t m_trackSumToolAvailable
Whether the summary tool is available
Definition: InDetTrackSelectionTool.h:235
InDet::InDetTrackSelectionTool::m_minNSctHits
Int_t m_minNSctHits
Minimum number of SCT hits (plus dead sensors)
Definition: InDetTrackSelectionTool.h:171
ITrackSummaryTool.h
InDet::InDetTrackSelectionTool::m_trackSumTool
ToolHandle< Trk::ITrackSummaryTool > m_trackSumTool
Track summary tool.
Definition: InDetTrackSelectionTool.h:236
InDet::InDetTrackSelectionTool::m_vecvecMaxZ0SinThetaAboveEtaPt
std::vector< std::vector< Double_t > > m_vecvecMaxZ0SinThetaAboveEtaPt
Maximum values of z0*sin(theta) above each eta-pT level.
Definition: InDetTrackSelectionTool.h:209
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
InDet::InDetTrackSelectionTool::m_minNInnermostLayerHits
Int_t m_minNInnermostLayerHits
Minimum number of innermost pixel layer hits.
Definition: InDetTrackSelectionTool.h:151
InDet::InDetTrackSelectionTool::m_maxNInnermostLayerSharedHits
Int_t m_maxNInnermostLayerSharedHits
Maximum number of shared innermost pixel layer hits.
Definition: InDetTrackSelectionTool.h:154
InDet::InDetTrackSelectionTool::getAcceptInfo
virtual const asg::AcceptInfo & getAcceptInfo() const override
Get an object describing the "selection steps" of the tool.
Definition: InDetTrackSelectionTool.cxx:1127
max
#define max(a, b)
Definition: cfImp.cxx:41
InDet::InDetTrackSelectionTool::m_warnInit
std::atomic_bool m_warnInit
Definition: InDetTrackSelectionTool.h:108
InDet::InDetTrackSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::IParticle *) const override
Get the decision using a generic IParticle pointer.
Definition: InDetTrackSelectionTool.cxx:1144
InDet::InDetTrackSelectionTool::m_cutLevel
std::string m_cutLevel
The string version of the cut level so that it can be set via jobOptions.
Definition: InDetTrackSelectionTool.h:228
InDet::InDetTrackSelectionTool::maxDoubleIsSet
static bool maxDoubleIsSet(Double_t cutValue)
Definition: InDetTrackSelectionTool.h:135
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet::InDetTrackSelectionTool::m_trkTrackCuts
std::map< std::string, std::vector< std::function< bool(InDetAccessor::TrkTrackHelper helper, const asg::AsgMessaging &msgHelper)> > > m_trkTrackCuts
First element is the name of the cut family, second element is the set of cuts.
Definition: InDetTrackSelectionTool.h:127
InDet::InDetTrackSelectionTool::m_useMinBiasInnermostLayersCut
Int_t m_useMinBiasInnermostLayersCut
Use the Minimum-Bias definition of the IBL/BL cut.
Definition: InDetTrackSelectionTool.h:155
InDet::InDetTrackSelectionTool::m_minNSiHitsPhysical
Int_t m_minNSiHitsPhysical
Minimum number of physical (pixel + SCT) hits (no dead sensors)
Definition: InDetTrackSelectionTool.h:168
InDet::InDetTrackSelectionTool::m_minPt
Double_t m_minPt
Minimum p_T of tracks.
Definition: InDetTrackSelectionTool.h:140
ASG_TOOL_CLASS2
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
Definition: AsgToolMacros.h:77
InDet::InDetTrackSelectionTool::m_maxTrtEtaAcceptance
Double_t m_maxTrtEtaAcceptance
Pseudorapidity below which TRT hit cuts will not be applied.
Definition: InDetTrackSelectionTool.h:175
InDet::InDetTrackSelectionTool::m_maxNPixelHoles
Int_t m_maxNPixelHoles
Maximum number of pixel layers without a hit.
Definition: InDetTrackSelectionTool.h:162
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
InDet::InDetTrackSelectionTool::m_maxNSctHoles
Int_t m_maxNSctHoles
Maximum number of holes in SCT.
Definition: InDetTrackSelectionTool.h:173
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::InDetTrackSelectionTool::m_maxZ0SinTheta
Double_t m_maxZ0SinTheta
Maximum |z0*sin(theta)| of tracks.
Definition: InDetTrackSelectionTool.h:142
InDet::InDetTrackSelectionTool::property
virtual void the cut level is best set through the CutLevel property
Definition: InDetTrackSelectionTool.h:104
InDet::InDetTrackSelectionTool::m_minNTrtHitsPlusOutliers
Int_t m_minNTrtHitsPlusOutliers
Minimum number of TRT hits plus outliers.
Definition: InDetTrackSelectionTool.h:178
InDet::InDetTrackSelectionTool::m_minNSiHitsIfSiSharedHits
Int_t m_minNSiHitsIfSiSharedHits
Minimum number of silicon hits if the track has shared hits.
Definition: InDetTrackSelectionTool.h:158
taskman.template
dictionary template
Definition: taskman.py:317
InDet::InDetTrackSelectionTool::m_vecPtCutoffsForSctHitsCut
std::vector< Double_t > m_vecPtCutoffsForSctHitsCut
Above each of these pT levels a new SCT hits + dead sensors will be applied.
Definition: InDetTrackSelectionTool.h:204
asg
Definition: DataHandleTestTool.h:28
InDet::InDetTrackSelectionTool::initialize
virtual StatusCode initialize() override
Function initialising the tool.
Definition: InDetTrackSelectionTool.cxx:241
InDetAccessor::TrackParticleHelper
Definition: InDetAccessor.h:50
IExtrapolator.h
InDet::InDetTrackSelectionTool::m_minProbAbovePtCutoff
Double_t m_minProbAbovePtCutoff
Minimum probability above Pt cutoff.
Definition: InDetTrackSelectionTool.h:188
InDet::InDetTrackSelectionTool::m_minPtForProbCut
Double_t m_minPtForProbCut
Pt above which a Prob(chiSq, ndf) cut is applied.
Definition: InDetTrackSelectionTool.h:187
InDet::InDetTrackSelectionTool::m_minNSiHitsModBottom
Int_t m_minNSiHitsModBottom
Min number of Si hits on bottom half (pixel counting twice)
Definition: InDetTrackSelectionTool.h:197
InDet::InDetTrackSelectionTool::s_mapCutLevel
static const std::unordered_map< std::string, CutLevel > s_mapCutLevel
Definition: InDetTrackSelectionTool.h:231
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
InDet::InDetTrackSelectionTool::setupCuts
StatusCode setupCuts(std::map< std::string, std::vector< std::function< bool(Trk_Helper helper, const asg::AsgMessaging &msgHelper)> > > &trackCuts)
Definition: InDetTrackSelectionTool.cxx:318
InDet::InDetTrackSelectionTool::m_maxChiSq
Double_t m_maxChiSq
Maximum fit chi squared.
Definition: InDetTrackSelectionTool.h:184
IAsgSelectionTool
Definition: IAsgSelectionTool.h:28
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
InDet::InDetTrackSelectionTool::m_mutex
std::mutex m_mutex
Definition: InDetTrackSelectionTool.h:133
InDet::InDetTrackSelectionTool::m_maxNSiSharedHits
Int_t m_maxNSiSharedHits
Maximum number of silicon sensors shared with other track.
Definition: InDetTrackSelectionTool.h:157
InDet::InDetTrackSelectionTool::m_minNPixelHitsPhysical
Int_t m_minNPixelHitsPhysical
Minimum number of physical pixel hits (no dead sensors)
Definition: InDetTrackSelectionTool.h:169
InDet::InDetTrackSelectionTool::m_maxD0
Double_t m_maxD0
Maximum |d0| of tracks.
Definition: InDetTrackSelectionTool.h:144
InDet::InDetTrackSelectionTool::m_maxTrtHighEFraction
Double_t m_maxTrtHighEFraction
Maximum fraction of TRT hits that are high threshold.
Definition: InDetTrackSelectionTool.h:181
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
InDet::InDetTrackSelectionTool::m_minNOverflowHitsdEdx
Int_t m_minNOverflowHitsdEdx
Minimum number of IBL overflow hits for dEdx.
Definition: InDetTrackSelectionTool.h:190
InDet::InDetTrackSelectionTool::maxIntIsSet
static bool maxIntIsSet(Int_t cutValue)
Definition: InDetTrackSelectionTool.h:136
InDet::IInDetTrackSelectionTool
Interface for track selection tool.
Definition: IInDetTrackSelectionTool.h:53
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
InDet::InDetTrackSelectionTool::m_vecEtaCutoffsForZ0SinThetaCut
std::vector< Double_t > m_vecEtaCutoffsForZ0SinThetaCut
Above each of these eta levels a new z0*sin(theta) cut will be applied.
Definition: InDetTrackSelectionTool.h:207
InDet::InDetTrackSelectionTool::m_minEtaForStrictNSiHitsCut
Double_t m_minEtaForStrictNSiHitsCut
Eta cutoff above which a tighter cut on NSiHits applies.
Definition: InDetTrackSelectionTool.h:163
AsgMessaging.h
InDet::InDetTrackSelectionTool::m_vecEtaCutoffsForPtCut
std::vector< Double_t > m_vecEtaCutoffsForPtCut
Above each of these eta levels a new pT cut will be applied
Definition: InDetTrackSelectionTool.h:201
InDet::InDetTrackSelectionTool::m_minProb
Double_t m_minProb
Minimum fit probability.
Definition: InDetTrackSelectionTool.h:186
InDet::InDetTrackSelectionTool::m_maxTrtOutlierFraction
Double_t m_maxTrtOutlierFraction
Maximum fraction of TRT outliers over TRT hits + outliers.
Definition: InDetTrackSelectionTool.h:183
InDet::InDetTrackSelectionTool::setCutLevelPrivate
void setCutLevelPrivate(InDet::CutLevel level, Bool_t overwrite=true)
Definition: InDetTrackSelectionTool.cxx:1304
InDet::InDetTrackSelectionTool::m_initTrkTools
Bool_t m_initTrkTools
Whether to initialize the Trk::Track tools.
Definition: InDetTrackSelectionTool.h:234
InDet::InDetTrackSelectionTool::m_minNTrtHighThresholdHits
Int_t m_minNTrtHighThresholdHits
Minimum number of high E TRT hits.
Definition: InDetTrackSelectionTool.h:179
InDet::InDetTrackSelectionTool::m_minNBothInnermostLayersHits
Int_t m_minNBothInnermostLayersHits
Minimum number of two innermost pixel layer hits.
Definition: InDetTrackSelectionTool.h:153
InDet::InDetTrackSelectionTool::m_vecEtaCutoffsForSctHitsPlusDeadCut
std::vector< Double_t > m_vecEtaCutoffsForSctHitsPlusDeadCut
Above each of these eta levels a new SCT hits cut will be applied.
Definition: InDetTrackSelectionTool.h:219
InDet::InDetTrackSelectionTool::m_minP
Double_t m_minP
Minimum p = p_T/cos(theta)
Definition: InDetTrackSelectionTool.h:167
asg::AcceptInfo
Definition: AcceptInfo.h:28
InDet::InDetTrackSelectionTool::m_maxNSctSharedHits
Int_t m_maxNSctSharedHits
Maximum number of SCT sensors shared with another track.
Definition: InDetTrackSelectionTool.h:172
InDet::InDetTrackSelectionTool::m_vecMinPtAboveEta
std::vector< Double_t > m_vecMinPtAboveEta
the minimum transverse momentum above each eta level
Definition: InDetTrackSelectionTool.h:202
InDet::InDetTrackSelectionTool::m_minNSiHitsModTop
Int_t m_minNSiHitsModTop
Min number of Si hits on top half (pixel counting twice)
Definition: InDetTrackSelectionTool.h:196
InDet::InDetTrackSelectionTool::m_maxSigmaZ0
Double_t m_maxSigmaZ0
Maximum sigma of z0.
Definition: InDetTrackSelectionTool.h:146
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
InDet::InDetTrackSelectionTool::LOCAL_MAX_DOUBLE
constexpr static Double_t LOCAL_MAX_DOUBLE
Definition: InDetTrackSelectionTool.h:137
InDet::InDetTrackSelectionTool::m_maxEtaForTrtHitCuts
Double_t m_maxEtaForTrtHitCuts
Pseudorapidity above which TRT hit cuts will not be applied.
Definition: InDetTrackSelectionTool.h:176
InDet::InDetTrackSelectionTool::m_vecEtaCutoffsForD0Cut
std::vector< Double_t > m_vecEtaCutoffsForD0Cut
Above each of these eta levels a new d0 cut will be applied.
Definition: InDetTrackSelectionTool.h:211
InDet::InDetTrackSelectionTool::m_vecPtCutoffsForSctHitsPlusDeadCut
std::vector< Double_t > m_vecPtCutoffsForSctHitsPlusDeadCut
Above each of these pT levels a new SCT hits cut will be applied.
Definition: InDetTrackSelectionTool.h:220
BindingsTest.cut
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
Definition: BindingsTest.py:13
InDet::InDetTrackSelectionTool::TrackCut
friend class TrackCut
Definition: InDetTrackSelectionTool.h:53
python.utils.best
def best(iterable, priorities=[3, 2, 1, -1, 0])
Definition: DataQuality/DQUtils/python/utils.py:50
InDet::InDetTrackSelectionTool::m_maxNSiHoles
Int_t m_maxNSiHoles
Maximum number of silicon sensors without a hit.
Definition: InDetTrackSelectionTool.h:159
InDet::InDetTrackSelectionTool::m_numTracksProcessed
std::atomic< ULong64_t > m_numTracksProcessed
a counter of the number of tracks proccessed
Definition: InDetTrackSelectionTool.h:130
InDet::InDetTrackSelectionTool::m_vecPtCutoffsForSctHolesCut
std::vector< Double_t > m_vecPtCutoffsForSctHolesCut
Above each of these pT levels a new SCT holes cut will be applied.
Definition: InDetTrackSelectionTool.h:216
InDet::InDetTrackSelectionTool::m_maxZ0SinThetaoverSigmaZ0SinTheta
Double_t m_maxZ0SinThetaoverSigmaZ0SinTheta
Maximum |z0*sin(theta)|/sigma_z0sinTheta.
Definition: InDetTrackSelectionTool.h:150
InDet::InDetTrackSelectionTool::m_maxNSctDoubleHoles
Int_t m_maxNSctDoubleHoles
Maximum number of double holes in SCT.
Definition: InDetTrackSelectionTool.h:174
InDet::InDetTrackSelectionTool::m_minNSiHitsAboveEtaCutoff
Int_t m_minNSiHitsAboveEtaCutoff
Tighter cut on NSiHits above a certain eta.
Definition: InDetTrackSelectionTool.h:164
InDet::InDetTrackSelectionTool::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Extrapolator tool.
Definition: InDetTrackSelectionTool.h:237
InDet::InDetTrackSelectionTool::m_vecEtaCutoffsForSiHitsCut
std::vector< Double_t > m_vecEtaCutoffsForSiHitsCut
Above each of these eta levels a new SCT hits + pix hits will be applied.
Definition: InDetTrackSelectionTool.h:199
InDet::InDetTrackSelectionTool::m_numTracksPassed
std::atomic< ULong64_t > m_numTracksPassed
a counter of the number of tracks that passed all cuts
Definition: InDetTrackSelectionTool.h:131
IInDetTrackSelectionTool.h
InDet::InDetTrackSelectionTool::m_useExperimentalInnermostLayersCut
Int_t m_useExperimentalInnermostLayersCut
use (NPixHoles == 0) but allow 1 hole if a BLayer hit is expected but not present
Definition: InDetTrackSelectionTool.h:193
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:224
InDet::InDetTrackSelectionTool::m_minNSiHitsMod
Int_t m_minNSiHitsMod
Minimum number of Si hits, with pixel hits counting twice.
Definition: InDetTrackSelectionTool.h:195
InDet::InDetTrackSelectionTool::m_isInitialized
bool m_isInitialized
Definition: InDetTrackSelectionTool.h:107
InDet::InDetTrackSelectionTool::setCutLevel
virtual void setCutLevel(InDet::CutLevel level, Bool_t overwrite=true) override __attribute__((deprecated("For consistency with the athena interface
Function to set the cut level within standalone ROOT.
Definition: InDetTrackSelectionTool.cxx:1289
InDet::InDetTrackSelectionTool::m_maxChiSqperNdf
Double_t m_maxChiSqperNdf
Maximum chi squared per degree of freedom.
Definition: InDetTrackSelectionTool.h:185
InDet::InDetTrackSelectionTool::m_vecvecMinSctHitsPlusDeadAboveEtaPt
std::vector< std::vector< Double_t > > m_vecvecMinSctHitsPlusDeadAboveEtaPt
Minimum numbers of SCT hits plus dead sensors above each eta-pT level.
Definition: InDetTrackSelectionTool.h:221
InDet::InDetTrackSelectionTool::m_maxTrtHighEFractionWithOutliers
Double_t m_maxTrtHighEFractionWithOutliers
Maximum fraction of TRT hits that are high threshold, including outliers.
Definition: InDetTrackSelectionTool.h:182
InDet::InDetTrackSelectionTool::m_trackAccessors
std::unordered_map< std::string, std::shared_ptr< TrackAccessor > > m_trackAccessors
list of the accessors that need to be run for each track
Definition: InDetTrackSelectionTool.h:120
InDet::InDetTrackSelectionTool::finalize
virtual StatusCode finalize() override
Function finalizing the tool.
Definition: InDetTrackSelectionTool.cxx:1096
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDet::InDetTrackSelectionTool::LOCAL_MAX_INT
constexpr static Int_t LOCAL_MAX_INT
Definition: InDetTrackSelectionTool.h:138
InDet::InDetTrackSelectionTool::m_maxZ0overSigmaZ0
Double_t m_maxZ0overSigmaZ0
Maximum |z0|/sigma_z0 of tracks.
Definition: InDetTrackSelectionTool.h:149
asg::AsgMessaging
Class mimicking the AthMessaging class from the offline software.
Definition: AsgMessaging.h:40
InDet::InDetTrackSelectionTool::m_maxSigmaZ0SinTheta
Double_t m_maxSigmaZ0SinTheta
Maximum sigma of z0*sin(theta)
Definition: InDetTrackSelectionTool.h:147
InDet::InDetTrackSelectionTool::m_useEtaDependentMaxChiSq
Bool_t m_useEtaDependentMaxChiSq
Flag whether we use the eta-dependent chi^2/dof cut.
Definition: InDetTrackSelectionTool.h:166
runJobs.deprecated
deprecated
Definition: runJobs.py:191
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
InDet::InDetTrackSelectionTool::m_minNSiHits
Int_t m_minNSiHits
Minimum number of silicon hits (pixel + SCT)
Definition: InDetTrackSelectionTool.h:156
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::InDetTrackSelectionTool::m_minNPixelHits
Int_t m_minNPixelHits
Minimum number of pixel hits.
Definition: InDetTrackSelectionTool.h:160
InDet::InDetTrackSelectionTool::m_msgHelper
std::unique_ptr< asg::AsgMessaging > m_msgHelper
Definition: InDetTrackSelectionTool.h:122
InDet::InDetTrackSelectionTool::m_minNTrtHighThresholdHitsPlusOutliers
Int_t m_minNTrtHighThresholdHitsPlusOutliers
Minimum number of high E TRT hits including outliers.
Definition: InDetTrackSelectionTool.h:180
InDetAccessor::TrkTrackHelper
Definition: InDetAccessor.h:71
InDet::InDetTrackSelectionTool::m_maxNPixelSharedHits
Int_t m_maxNPixelSharedHits
Maximum number of pixels shared with other track.
Definition: InDetTrackSelectionTool.h:161
AcceptData
Object to encode the result of several cuts.
InDet::InDetTrackSelectionTool::m_vecvecMaxD0AboveEtaPt
std::vector< std::vector< Double_t > > m_vecvecMaxD0AboveEtaPt
Maximum values of d0 above each eta-pT level.
Definition: InDetTrackSelectionTool.h:213
InDet::InDetTrackSelectionTool::m_vecMinNSctHitsAbovePt
std::vector< Int_t > m_vecMinNSctHitsAbovePt
the minimum SCT hits above each pt level
Definition: InDetTrackSelectionTool.h:205
InDet::InDetTrackSelectionTool::m_minNSctHitsPhysical
Int_t m_minNSctHitsPhysical
Minimum number of physical SCT hits (no dead sensors)
Definition: InDetTrackSelectionTool.h:170
InDet::InDetTrackSelectionTool::m_acceptInfo
asg::AcceptInfo m_acceptInfo
Object used to store the last decision.
Definition: InDetTrackSelectionTool.h:224
InDet::InDetTrackSelectionTool
Implementation of the track selector tool.
Definition: InDetTrackSelectionTool.h:51
InDet::InDetTrackSelectionTool::m_vecPtCutoffsForD0Cut
std::vector< Double_t > m_vecPtCutoffsForD0Cut
Above each of these pT levels a new d0 cut will be applied.
Definition: InDetTrackSelectionTool.h:212
InDet::InDetTrackSelectionTool::m_vecEtaCutoffsForSctHolesCut
std::vector< Double_t > m_vecEtaCutoffsForSctHolesCut
Above each of these eta levels a new SCT holes cut will be applied.
Definition: InDetTrackSelectionTool.h:215
InDet::InDetTrackSelectionTool::m_maxD0overSigmaD0
Double_t m_maxD0overSigmaD0
Maximum |d0|/sigma_d0 of tracks.
Definition: InDetTrackSelectionTool.h:148
InDet::InDetTrackSelectionTool::m_vecvecMaxSctHolesAboveEtaPt
std::vector< std::vector< Double_t > > m_vecvecMaxSctHolesAboveEtaPt
Maximum numbers of SCT holes above each eta-pT level.
Definition: InDetTrackSelectionTool.h:217
InDet::InDetTrackSelectionTool::m_maxOneSharedModule
Bool_t m_maxOneSharedModule
Flag whether to reject if more than one of 1 shared pixel hit or 2 shared SCT hits.
Definition: InDetTrackSelectionTool.h:165
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
AsgTool.h
InDet::InDetTrackSelectionTool::m_vecPtCutoffsForZ0SinThetaCut
std::vector< Double_t > m_vecPtCutoffsForZ0SinThetaCut
Above each of these pT levels a new z0*sin(theta) cut will be applied.
Definition: InDetTrackSelectionTool.h:208
InDet::InDetTrackSelectionTool::m_maxAbsEta
Double_t m_maxAbsEta
Maximum magnitude of pseudorapidity.
Definition: InDetTrackSelectionTool.h:141
InDet::InDetTrackSelectionTool::m_eProbHTonlyForXe
Bool_t m_eProbHTonlyForXe
Flag whether to only check eProbabilityHT if all TRT hits are Xenon hits.
Definition: InDetTrackSelectionTool.h:191
asg::AcceptData
Definition: AcceptData.h:30
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
InDet::InDetTrackSelectionTool::m_maxSigmaD0
Double_t m_maxSigmaD0
Maximum sigma of d0.
Definition: InDetTrackSelectionTool.h:145
InDet::InDetTrackSelectionTool::m_minNUsedHitsdEdx
Int_t m_minNUsedHitsdEdx
Minimum number of dEdx hits used.
Definition: InDetTrackSelectionTool.h:189
InDet::InDetTrackSelectionTool::m_trackParticleCuts
std::map< std::string, std::vector< std::function< bool(InDetAccessor::TrackParticleHelper helper, const asg::AsgMessaging &msgHelper)> > > m_trackParticleCuts
First element is the name of the cut family, second element is the set of cuts.
Definition: InDetTrackSelectionTool.h:124
InDet::InDetTrackSelectionTool::m_maxZ0
Double_t m_maxZ0
Maximum |z0| of tracks.
Definition: InDetTrackSelectionTool.h:143
InDet::InDetTrackSelectionTool::m_minEProbabilityHT
Double_t m_minEProbabilityHT
Minimum eProbabiltyHT.
Definition: InDetTrackSelectionTool.h:192
InDet::InDetTrackSelectionTool::m_minNNextToInnermostLayerHits
Int_t m_minNNextToInnermostLayerHits
Minimum number of next to innermost pixel layer hits.
Definition: InDetTrackSelectionTool.h:152
InDet::CutLevel
CutLevel
Definition: IInDetTrackSelectionTool.h:40
InDet::InDetTrackSelectionTool::m_minNTrtHits
Int_t m_minNTrtHits
Minimum number of TRT hits.
Definition: InDetTrackSelectionTool.h:177
InDet::InDetTrackSelectionTool::m_vecMinNSiHitsAboveEta
std::vector< Int_t > m_vecMinNSiHitsAboveEta
the minimum Si hits above each eta level
Definition: InDetTrackSelectionTool.h:200