00001 #ifndef ASSOCIATIONUTILS_TAUJETOVERLAPTOOL_H
00002 #define ASSOCIATIONUTILS_TAUJETOVERLAPTOOL_H
00003
00004
00005 #include "AsgTools/AsgTool.h"
00006
00007
00008 #include "xAODTau/TauJetContainer.h"
00009 #include "xAODJet/JetContainer.h"
00010
00011
00012 #include "AssociationUtils/IOverlapTool.h"
00013 #include "AssociationUtils/BaseOverlapTool.h"
00014 #include "AssociationUtils/BJetHelper.h"
00015 #include "AssociationUtils/IObjectAssociator.h"
00016
00017 namespace ORUtils
00018 {
00019
00034 class TauJetOverlapTool : public virtual IOverlapTool,
00035 public BaseOverlapTool
00036 {
00037
00039 ASG_TOOL_CLASS(TauJetOverlapTool, IOverlapTool)
00040
00041 public:
00042
00044 TauJetOverlapTool(const std::string& name);
00045
00047 virtual StatusCode
00048 findOverlaps(const xAOD::IParticleContainer& cont1,
00049 const xAOD::IParticleContainer& cont2) const override;
00050
00053 virtual StatusCode
00054 findOverlaps(const xAOD::JetContainer& jets,
00055 const xAOD::TauJetContainer& taus) const;
00056
00057 protected:
00058
00060 virtual StatusCode initializeDerived() override;
00061
00062 private:
00063
00066
00068 std::string m_bJetLabel;
00069
00071 float m_dR;
00073 bool m_useRapidity;
00074
00076
00079
00081 std::unique_ptr<BJetHelper> m_bJetHelper;
00082
00084 std::unique_ptr<IParticleAssociator> m_dRMatcher;
00085
00087
00088 };
00089
00090 }
00091
00092 #endif