00001 #ifndef ASSOCIATIONUTILS_ELEELEOVERLAPTOOL_H 00002 #define ASSOCIATIONUTILS_ELEELEOVERLAPTOOL_H 00003 00004 // EDM includes 00005 #include "xAODEgamma/ElectronContainer.h" 00006 00007 // Local includes 00008 #include "AssociationUtils/IOverlapTool.h" 00009 #include "AssociationUtils/BaseOverlapTool.h" 00010 00011 namespace ORUtils 00012 { 00013 00030 class EleEleOverlapTool : public virtual IOverlapTool, 00031 public BaseOverlapTool 00032 { 00033 00035 ASG_TOOL_CLASS(EleEleOverlapTool, IOverlapTool) 00036 00037 public: 00038 00040 EleEleOverlapTool(const std::string& name); 00041 00044 virtual StatusCode 00045 findOverlaps(const xAOD::IParticleContainer& cont1, 00046 const xAOD::IParticleContainer& cont2) const override; 00047 00050 virtual StatusCode 00051 findOverlaps(const xAOD::ElectronContainer& electrons) const; 00052 00053 protected: 00054 00056 virtual StatusCode initializeDerived() override; 00057 00058 private: 00059 00061 bool electronsMatch(const xAOD::Electron& el1, const xAOD::Electron& el2) const; 00062 00064 bool rejectFirst(const xAOD::Electron& el1, const xAOD::Electron& el2) const; 00065 00068 00070 bool m_useTrackMatch; 00071 00073 bool m_useClusterMatch; 00074 00076 double m_clusterDeltaEta; 00077 00079 double m_clusterDeltaPhi; 00080 00082 00083 }; // class EleEleOverlapTool 00084 00085 } // namespace ORUtils 00086 00087 #endif