ATLAS Offline Software
Loading...
Searching...
No Matches
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):
16
17// forward declarations
18namespace asg {
19 class AcceptInfo;
20 class AcceptData;
21}
22#ifndef XAOD_ANALYSIS
23namespace Trk {
24 class Track;
25 class Vertex;
27 class FitQuality;
28}
29#endif
30
31namespace 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 HILoosePixMod
44 };
45
52{
55
56 public:
58 virtual StatusCode initialize() = 0;
60 virtual StatusCode finalize() = 0;
61
63 virtual const asg::AcceptInfo& getAcceptInfo() const = 0;
64
66 virtual asg::AcceptData accept( const xAOD::IParticle* p ) const = 0;
67
70 const xAOD::Vertex* vertex = 0 ) const = 0;
71
72#ifndef XAOD_ANALYSIS
73 virtual asg::AcceptData accept( const Trk::Track& track,
74 const Trk::Vertex* vertex = 0 ) const = 0;
75#endif
76
78 // This function should not be public in Athena, as the cut level should be
79 // set in the job options. Allow it for now, so as to not break compatibility
80 virtual void setCutLevel( InDet::CutLevel level, bool overwrite = true )
81 __attribute__ ((deprecated("The cut level should be set in the job options through the \"CutLevel\" property.")))
82 = 0;
83
84 }; // class IInDetTrackSelectionTool
85
86} // namespace InDet
87
88#endif // INDETTRACKSELECTIONTOOL_IINDETTRACKSELECTIONTOOL_H
#define ASG_TOOL_INTERFACE(CLASSNAME)
__attribute__((always_inline)) inline uint16_t TileCalibDrawerBase
Interface for track selection tool.
virtual const asg::AcceptInfo & getAcceptInfo() const =0
Get an object describing the "selection steps" of the tool.
virtual StatusCode finalize()=0
Function finalizing the tool.
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.
virtual asg::AcceptData accept(const Trk::Track &track, const Trk::Vertex *vertex=0) const =0
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.
virtual StatusCode initialize()=0
Declare the interface that the class provides.
virtual asg::AcceptData accept(const xAOD::IParticle *p) const =0
Get the decision using a generic IParticle pointer.
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition FitQuality.h:97
This class is a simplest representation of a vertex candidate.
Class providing the definition of the 4-vector interface.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.