00001 // Dear emacs, this is -*-c++-*- 00002 00003 #ifndef __IASGEGAMMAISEMSELECTOR__ 00004 #define __IASGEGAMMAISEMSELECTOR__ 00005 00016 // Include the interfaces 00017 #include "PATCore/IAsgSelectionTool.h" 00018 #include "ElectronPhotonSelectorTools/egammaPIDdefs.h" 00019 00020 // Forward declarations 00021 namespace Root{ 00022 class TAccept; 00023 } 00024 #include "xAODEgamma/EgammaFwd.h" 00025 #include "xAODEgamma/PhotonFwd.h" 00026 #include "xAODEgamma/ElectronFwd.h" 00027 00028 class IAsgEGammaIsEMSelector : virtual public IAsgSelectionTool 00029 { 00030 00031 ASG_TOOL_INTERFACE(IAsgEGammaIsEMSelector) 00032 00033 public: 00034 00036 virtual ~IAsgEGammaIsEMSelector() {}; 00037 00039 virtual const Root::TAccept& accept( const xAOD::IParticle* part ) const = 0; 00040 00042 virtual const Root::TAccept& accept( const xAOD::IParticle& part ) const = 0; 00043 00045 00047 virtual const Root::TAccept& accept( const xAOD::Egamma* part) const = 0; 00048 00050 virtual const Root::TAccept& accept( const xAOD::Egamma& part) const = 0; 00051 00052 virtual unsigned int IsemValue() const =0; 00053 00055 virtual std::string getOperatingPointName( ) const =0; 00056 00057 }; // End: class definition 00058 00059 00060 #endif 00061