ATLAS Offline Software
IInDetTrackSelectionTool.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef INDETTRACKSELECTIONTOOL_IINDETTRACKSELECTIONTOOL_H
8 #define INDETTRACKSELECTIONTOOL_IINDETTRACKSELECTIONTOOL_H
9 
10 // Framework include(s):
12 
13 // EDM include(s):
15 #include "xAODTracking/VertexFwd.h"
16 
17 // forward declarations
18 namespace asg {
19  class AcceptInfo;
20  class AcceptData;
21 }
22 #ifndef XAOD_ANALYSIS
23 namespace Trk {
24  class Track;
25  class Vertex;
26  class TrackParticleBase;
27  class FitQuality;
28 }
29 #endif
30 
31 namespace InDet {
32 
33  // define the flags to select cut level of tool
34  // see https://twiki.cern.ch/twiki/bin/view/AtlasProtected/InDetTrackingPerformanceGuidelines
35  // if you add levels, make sure to add entries to the map in InDetTrackSelectionTool.cxx
36  // so that they can be set from athena as well.
37  enum class
38  CutLevel {
39  NoCut, Loose, LoosePrimary, TightPrimary,
40  LooseMuon, LooseElectron, LooseTau,
41  MinBias, HILoose, HITight,
42  HITightOptimized, HILooseOptimized
43  };
44 
51 {
54 
55  public:
57  virtual StatusCode initialize() = 0;
59  virtual StatusCode finalize() = 0;
60 
62  virtual const asg::AcceptInfo& getAcceptInfo() const = 0;
63 
65  virtual asg::AcceptData accept( const xAOD::IParticle* p ) const = 0;
66 
69  const xAOD::Vertex* vertex = 0 ) const = 0;
70 
71 #ifndef XAOD_ANALYSIS
73  const Trk::Vertex* vertex = 0 ) const = 0;
74 #endif
75 
77  // This function should not be public in Athena, as the cut level should be
78  // set in the job options. Allow it for now, so as to not break compatibility
79  virtual void setCutLevel( InDet::CutLevel level, bool overwrite = true )
80  __attribute__ ((deprecated("The cut level should be set in the job options through the \"CutLevel\" property.")))
81  = 0;
82 
83  }; // class IInDetTrackSelectionTool
84 
85 } // namespace InDet
86 
87 #endif // INDETTRACKSELECTIONTOOL_IINDETTRACKSELECTIONTOOL_H
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
HelloWorldOptions.job
job
Definition: HelloWorldOptions.py:18
InDet::IInDetTrackSelectionTool::setCutLevel
virtual void setCutLevel(InDet::CutLevel level, bool overwrite=true) __attribute__((deprecated("The cut level should be set in the job options through the \"CutLevel\" property.")))=0
Set the selection to a pre-defined standard set of cuts.
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
asg
Definition: DataHandleTestTool.h:28
IAsgSelectionTool
Definition: IAsgSelectionTool.h:28
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
IAsgSelectionTool.h
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
InDet::IInDetTrackSelectionTool
Interface for track selection tool.
Definition: IInDetTrackSelectionTool.h:51
InDet::IInDetTrackSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::TrackParticle &track, const xAOD::Vertex *vertex=0) const =0
Decide whether the track in question is a "good track" or not.
InDet::IInDetTrackSelectionTool::finalize
virtual StatusCode finalize()=0
Function finalizing the tool.
InDet::IInDetTrackSelectionTool::getAcceptInfo
virtual const asg::AcceptInfo & getAcceptInfo() const =0
Get an object describing the "selection steps" of the tool.
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
InDet::IInDetTrackSelectionTool::accept
virtual asg::AcceptData accept(const Trk::Track &track, const Trk::Vertex *vertex=0) const =0
asg::AcceptInfo
Definition: AcceptInfo.h:28
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
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
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:378
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
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:232
ReadBchFromCrest.be
be
Definition: ReadBchFromCrest.py:253
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDet::IInDetTrackSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::IParticle *p) const =0
Get the decision using a generic IParticle pointer.
Vertex
boost::graph_traits< boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS > >::vertex_descriptor Vertex
Definition: FPGATrackSimGNNRoadMakerTool.h:35
VertexFwd.h
InDet::IInDetTrackSelectionTool::initialize
virtual StatusCode initialize()=0
Declare the interface that the class provides.
runJobs.deprecated
deprecated
Definition: runJobs.py:190
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
AcceptData
Object to encode the result of several cuts.
TrackParticleFwd.h
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:44
AcceptInfo
Object to describe a series of cuts.
asg::AcceptData
Definition: AcceptData.h:30
python.Dumpers.FitQuality
FitQuality
Definition: Dumpers.py:62
InDet::CutLevel
CutLevel
Definition: IInDetTrackSelectionTool.h:38