00001 // Dear emacs, this is -*-c++-*- 00002 00003 #ifndef __IASGELECTRONMULTILEPTONSELECTOR__ 00004 #define __IASGELECTRONMULTILEPTONSELECTOR__ 00005 00013 // Include the interfaces 00014 #include "PATCore/IAsgSelectionTool.h" 00015 // Forward declarations 00016 namespace Root{ 00017 class TAccept; 00018 } 00019 #include "xAODEgamma/ElectronFwd.h" 00020 00021 class IAsgElectronMultiLeptonSelector : virtual public IAsgSelectionTool 00022 { 00023 00024 ASG_TOOL_INTERFACE(IAsgElectronMultiLeptonSelector) 00025 00026 public: 00027 00029 virtual ~IAsgElectronMultiLeptonSelector() {}; 00030 00032 virtual const Root::TAccept& accept( const xAOD::IParticle* part ) const = 0; 00033 00035 virtual const Root::TAccept& accept( const xAOD::Electron* part ) const = 0; 00037 virtual const Root::TAccept& accept( const xAOD::IParticle& part ) const = 0; 00038 00040 virtual const Root::TAccept& accept( const xAOD::Electron& part ) const = 0; 00041 00043 virtual std::string getOperatingPointName( ) const=0; 00044 00045 }; // End: class definition 00046 00047 #endif 00048