00001
00002
00003 #ifndef __ASGPHOTONISEMSELECTOR__
00004 #define __ASGPHOTONISEMSELECTOR__
00005
00018
00019 #include "AsgTools/AsgTool.h"
00020
00021
00022 #include "ElectronPhotonSelectorTools/IAsgPhotonIsEMSelector.h"
00023 #include "xAODEgamma/PhotonFwd.h"
00024 #include "xAODEgamma/EgammaFwd.h"
00025 #include "xAODEgamma/ElectronFwd.h"
00026 #include "xAODTracking/VertexFwd.h"
00027
00028
00029 #include "PATCore/TAccept.h"
00030 #include "ElectronPhotonSelectorTools/TPhotonIsEMSelector.h"
00031
00032 class AsgPhotonIsEMSelector : public asg::AsgTool,
00033 virtual public IAsgPhotonIsEMSelector
00034
00035 {
00036 ASG_TOOL_CLASS3(AsgPhotonIsEMSelector, IAsgPhotonIsEMSelector,
00037 IAsgEGammaIsEMSelector,IAsgSelectionTool)
00038
00039 public:
00040
00042 AsgPhotonIsEMSelector(std::string myname);
00043
00045 ~AsgPhotonIsEMSelector();
00046
00048 StatusCode initialize();
00050 StatusCode finalize();
00051
00053 virtual const Root::TAccept& accept( const xAOD::IParticle* part ) const ;
00054
00056 virtual const Root::TAccept& accept( const xAOD::IParticle& part ) const {
00057 return accept(&part);
00058 }
00059
00061 virtual const Root::TAccept& accept( const xAOD::Egamma* part) const ;
00062
00064 virtual const Root::TAccept& accept( const xAOD::Egamma& part) const {
00065 return accept(&part);
00066 }
00067
00069 virtual const Root::TAccept& accept( const xAOD::Photon* part ) const ;
00070
00072 virtual const Root::TAccept& accept( const xAOD::Photon& part ) const {
00073 return accept(&part);
00074 }
00075
00077 virtual const Root::TAccept& accept( const xAOD::Electron* part ) const ;
00078
00080 virtual const Root::TAccept& accept( const xAOD::Electron& part ) const{
00081 return accept(&part);
00082 }
00083
00085 unsigned int IsemValue() const {return m_rootTool->isEM(); };
00086
00088 virtual std::string getOperatingPointName( ) const;
00089
00091 virtual StatusCode execute(const xAOD::Egamma* eg) const;
00092
00094 virtual const Root::TAccept& getTAccept( ) const
00095 {
00096 return m_rootTool->getTAccept();
00097 }
00098
00099
00100 private:
00101
00103 std::string m_WorkingPoint;
00104
00106 std::string m_configFile;
00107
00109 Root::TPhotonIsEMSelector* m_rootTool;
00110
00112 bool m_useF3core;
00113
00115 Root::TAccept m_acceptDummy;
00116
00118 bool m_caloOnly;
00119 float m_trigEtTh;
00120
00121 };
00122
00123 #endif