00001 #ifndef ASSOCIATIONUTILS_TAULOOSEELEOVERLAPTOOL_H
00002 #define ASSOCIATIONUTILS_TAULOOSEELEOVERLAPTOOL_H
00003
00004
00005 #include "AsgTools/AsgTool.h"
00006
00007
00008 #include "xAODTau/TauJetContainer.h"
00009 #include "xAODEgamma/ElectronContainer.h"
00010
00011
00012 #include "AssociationUtils/IOverlapTool.h"
00013 #include "AssociationUtils/BaseOverlapTool.h"
00014 #include "AssociationUtils/DeltaRMatcher.h"
00015
00016 namespace ORUtils
00017 {
00018
00029 class TauLooseEleOverlapTool : public virtual IOverlapTool,
00030 public BaseOverlapTool
00031 {
00032
00034 ASG_TOOL_CLASS(TauLooseEleOverlapTool, IOverlapTool)
00035
00036 public:
00037
00039 TauLooseEleOverlapTool(const std::string& name);
00040
00043 virtual StatusCode
00044 findOverlaps(const xAOD::IParticleContainer& cont1,
00045 const xAOD::IParticleContainer& cont2) const override;
00046
00049 virtual StatusCode
00050 findOverlaps(const xAOD::TauJetContainer& taus,
00051 const xAOD::ElectronContainer& electrons) const;
00052
00053 protected:
00054
00056 virtual StatusCode initializeDerived() override;
00057
00058 protected:
00059
00060 StatusCode checkElectronID(const xAOD::Electron& electron, bool& pass) const;
00061
00062 private:
00063
00064
00065
00066
00067
00069 float m_maxDR;
00071 bool m_useRapidity;
00072
00074 std::string m_eleID;
00075
00078 std::string m_altEleID;
00079
00080
00081
00082
00083
00085 std::unique_ptr<DeltaRMatcher> m_dRMatcher;
00086
00087 };
00088
00089 }
00090
00091 #endif