00001 #ifndef ASSOCIATIONUTILS_SHAREDTRKOVERLAPTOOL_H 00002 #define ASSOCIATIONUTILS_SHAREDTRKOVERLAPTOOL_H 00003 00004 // Framework includes 00005 #include "AsgTools/AsgTool.h" 00006 00007 // EDM includes 00008 #include "xAODEgamma/ElectronContainer.h" 00009 #include "xAODMuon/MuonContainer.h" 00010 00011 // Local includes 00012 #include "AssociationUtils/IOverlapTool.h" 00013 #include "AssociationUtils/BaseOverlapTool.h" 00014 00015 namespace ORUtils 00016 { 00017 00027 class EleMuSharedTrkOverlapTool : public virtual IOverlapTool, 00028 public BaseOverlapTool 00029 { 00030 00032 ASG_TOOL_CLASS(EleMuSharedTrkOverlapTool, IOverlapTool) 00033 00034 public: 00035 00037 EleMuSharedTrkOverlapTool(const std::string& name); 00038 00041 virtual StatusCode 00042 findOverlaps(const xAOD::IParticleContainer& cont1, 00043 const xAOD::IParticleContainer& cont2) const override; 00044 00046 StatusCode 00047 findOverlaps(const xAOD::ElectronContainer& electrons, 00048 const xAOD::MuonContainer& muons) const; 00049 00050 protected: 00051 00053 virtual StatusCode initializeDerived() override; 00054 00055 private: 00056 00057 // 00058 // Configurable properties 00059 // 00060 00062 bool m_removeCaloMuons; 00063 00064 // 00065 // Utilities 00066 // 00067 00068 }; // class EleMuSharedTrkOverlapTool 00069 00070 } // namespace ORUtils 00071 00072 #endif