ATLAS Offline Software
IInDetTrackSelectionTool.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2017 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 #include "PATCore/AcceptData.h"
13 #include "PATCore/AcceptInfo.h"
14 
15 // EDM include(s):
17 #include "xAODTracking/Vertex.h"
18 
19 #ifndef XAOD_ANALYSIS
21 #endif
22 
23 // forward declarations
24 #ifndef XAOD_ANALYSIS
25 namespace Trk {
26  class Track;
27  class Vertex;
28  class TrackParticleBase;
29  class FitQuality;
30 }
31 #endif
32 
33 namespace InDet {
34 
35  // define the flags to select cut level of tool
36  // see https://twiki.cern.ch/twiki/bin/view/AtlasProtected/InDetTrackingPerformanceGuidelines
37  // if you add levels, make sure to add entries to the map in InDetTrackSelectionTool.cxx
38  // so that they can be set from athena as well.
39  enum class
40  CutLevel {
41  NoCut, Loose, LoosePrimary, TightPrimary,
42  LooseMuon, LooseElectron, LooseTau,
43  MinBias, HILoose, HITight,
44  HITightOptimized, HILooseOptimized
45  };
46 
53 {
56 
57  public:
59  virtual StatusCode initialize() = 0;
61  virtual StatusCode finalize() = 0;
62 
64  virtual const asg::AcceptInfo& getAcceptInfo() const = 0;
65 
67  virtual asg::AcceptData accept( const xAOD::IParticle* p ) const = 0;
68 
71  const xAOD::Vertex* vertex = 0 ) const = 0;
72 
73 #ifndef XAOD_ANALYSIS
75  const Trk::Vertex* vertex = 0 ) const = 0;
76 #endif
77 
79  // This function should not be public in Athena, as the cut level should be
80  // set in the job options. Allow it for now, so as to not break compatibility
81  virtual void setCutLevel( InDet::CutLevel level, Bool_t overwrite = true )
82  __attribute__ ((deprecated("The cut level should be set in the job options through the \"CutLevel\" property.")))
83  = 0;
84 
85  }; // class IInDetTrackSelectionTool
86 
87 } // namespace InDet
88 
89 #endif // INDETTRACKSELECTIONTOOL_IINDETTRACKSELECTIONTOOL_H
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
TrackParameters.h
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition: Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
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:53
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::setCutLevel
virtual void setCutLevel(InDet::CutLevel level, Bool_t 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.
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:210
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:379
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
Vertex.h
AcceptData.h
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
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.
InDet::IInDetTrackSelectionTool::initialize
virtual StatusCode initialize()=0
Declare the interface that the class provides.
runJobs.deprecated
deprecated
Definition: runJobs.py:191
TrackParticle.h
AcceptInfo.h
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
test_interactive_athena.job
job
Definition: test_interactive_athena.py:6
asg::AcceptData
Definition: AcceptData.h:30
PlotCalibFromCool.be
be
Definition: PlotCalibFromCool.py:398
python.Dumpers.FitQuality
FitQuality
Definition: Dumpers.py:63
InDet::CutLevel
CutLevel
Definition: IInDetTrackSelectionTool.h:40