00001
00002 #ifndef INDETTRACKSELECTIONTOOL_IINDETTRACKSELECTIONTOOL_H
00003 #define INDETTRACKSELECTIONTOOL_IINDETTRACKSELECTIONTOOL_H
00004
00005
00006 #include "PATCore/IAsgSelectionTool.h"
00007
00008
00009 #include "xAODTracking/TrackParticle.h"
00010 #include "xAODTracking/Vertex.h"
00011
00012 #ifndef XAOD_ANALYSIS
00013 #include "TrkParameters/TrackParameters.h"
00014 #endif
00015
00016
00017 #ifndef XAOD_ANALYSIS
00018 namespace Trk {
00019 class Track;
00020 class Vertex;
00021 class TrackParticleBase;
00022 class FitQuality;
00023 }
00024 #endif
00025
00026 namespace InDet {
00027
00028
00029
00030
00031
00032 enum
00033 #if __cplusplus > 201100L
00034 class
00035 #endif
00036 CutLevel {
00037 NoCut, Loose, LoosePrimary, TightPrimary,
00038 LooseMuon, LooseElectron, LooseTau,
00039 MinBias, HILoose, HITight
00040 };
00041
00047 class IInDetTrackSelectionTool : public virtual ::IAsgSelectionTool {
00048
00050 ASG_TOOL_INTERFACE( InDet::IInDetTrackSelectionTool )
00051
00052 public:
00054 virtual StatusCode initialize() = 0;
00056 virtual StatusCode finalize() = 0;
00057
00059 virtual const Root::TAccept& getTAccept() const = 0;
00060
00062 virtual const Root::TAccept& accept( const xAOD::IParticle* p ) const = 0;
00063
00065 virtual const Root::TAccept& accept( const xAOD::TrackParticle& track,
00066 const xAOD::Vertex* vertex = 0 ) const = 0;
00067
00068 #ifndef XAOD_ANALYSIS
00069 virtual const Root::TAccept& accept( const Trk::Track& track,
00070 const Trk::Vertex* vertex = 0 ) const = 0;
00071 #endif
00072
00074
00075
00076 virtual void setCutLevel( InDet::CutLevel level, Bool_t overwrite = true )
00077 __attribute__ ((deprecated("The cut level should be set in the job options through the \"CutLevel\" property.")))
00078 = 0;
00079
00080 };
00081
00082 }
00083
00084 #endif // INDETTRACKSELECTIONTOOL_IINDETTRACKSELECTIONTOOL_H