00001 #ifndef QUICK_ANA__TOPOVERLAPREMOVALTOOL_H 00002 #define QUICK_ANA__TOPOVERLAPREMOVALTOOL_H 00003 00004 #include <QuickAna/Global.h> 00005 00006 #include <AssociationUtils/OverlapRemovalTool.h> 00007 00008 namespace ana 00009 { 00010 00011 // Put the tool in a namespace? 00012 00022 class TopOverlapRemovalTool : public OverlapRemovalTool 00023 { 00024 00026 ASG_TOOL_CLASS(TopOverlapRemovalTool, IOverlapRemovalTool) 00027 00028 public: 00029 00031 TopOverlapRemovalTool(const std::string& name); 00033 ~TopOverlapRemovalTool(); 00034 00037 00046 virtual StatusCode removeEleJetOverlap(const xAOD::ElectronContainer& electrons, 00047 const xAOD::JetContainer& jets); 00048 00051 virtual StatusCode removeMuonJetOverlap(const xAOD::MuonContainer& muons, 00052 const xAOD::JetContainer& jets); 00053 //bool use_vari_dR = false); 00054 00056 00057 00058 private: 00059 00062 bool objectsOverlapEtaPhi(const xAOD::IParticle* p1, const xAOD::IParticle* p2, 00063 double dRMax, double dRMin = 0); 00064 00069 double dR2EtaPhi(const xAOD::IParticle* p1, const xAOD::IParticle* p2); 00071 double dREtaPhi(const xAOD::IParticle* p1, const xAOD::IParticle* p2); 00072 00074 float m_electronJetDREtaPhi; 00076 float m_jetElectronDREtaPhi; 00078 float m_muonJetDREtaPhi; 00079 00081 bool m_muORJetVariDR; 00082 00083 }; // class TopOverlapRemovalTool 00084 00085 } 00086 00087 #endif