00001 #ifndef ASSOCIATIONUTILS_TAULOOSEMUOVERLAPTOOL_H
00002 #define ASSOCIATIONUTILS_TAULOOSEMUOVERLAPTOOL_H
00003
00004
00005 #include "AsgTools/AsgTool.h"
00006
00007
00008 #include "xAODTau/TauJetContainer.h"
00009 #include "xAODMuon/MuonContainer.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 TauLooseMuOverlapTool : public virtual IOverlapTool,
00030 public BaseOverlapTool
00031 {
00032
00034 ASG_TOOL_CLASS(TauLooseMuOverlapTool, IOverlapTool)
00035
00036 public:
00037
00039 TauLooseMuOverlapTool(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::MuonContainer& muons) const;
00052
00053 protected:
00054
00056 virtual StatusCode initializeDerived() override;
00057
00058 private:
00059
00060
00061
00062
00063
00065 float m_maxDR;
00067 bool m_useRapidity;
00068
00070 float m_minMuPt;
00072 float m_minTauPtMuComb;
00073
00074
00075
00076
00077
00079 std::unique_ptr<DeltaRMatcher> m_dRMatcher;
00080
00081 };
00082
00083 }
00084
00085 #endif