00001 #ifndef ASSOCIATIONUTILS_MUJETOVERLAPTOOL_H
00002 #define ASSOCIATIONUTILS_MUJETOVERLAPTOOL_H
00003
00004
00005 #include "AsgTools/AsgTool.h"
00006
00007
00008 #include "xAODMuon/MuonContainer.h"
00009 #include "xAODJet/JetContainer.h"
00010 #include "xAODTracking/VertexContainer.h"
00011
00012
00013 #include "AssociationUtils/IOverlapTool.h"
00014 #include "AssociationUtils/BaseOverlapTool.h"
00015 #include "AssociationUtils/BJetHelper.h"
00016 #include "AssociationUtils/IObjectAssociator.h"
00017
00018 namespace ORUtils
00019 {
00020
00057 class MuJetOverlapTool : public virtual IOverlapTool,
00058 public BaseOverlapTool
00059 {
00060
00062 ASG_TOOL_CLASS(MuJetOverlapTool, IOverlapTool)
00063
00064 public:
00065
00067 MuJetOverlapTool(const std::string& name);
00068
00073 virtual StatusCode
00074 findOverlaps(const xAOD::IParticleContainer& cont1,
00075 const xAOD::IParticleContainer& cont2) const override;
00076
00079 virtual StatusCode
00080 findOverlaps(const xAOD::MuonContainer& muons,
00081 const xAOD::JetContainer& jets) const;
00082
00083 protected:
00084
00086 virtual StatusCode initializeDerived() override;
00087
00088 protected:
00089
00091 const xAOD::Vertex* getPrimVtx() const;
00092
00094 int getNumTracks(const xAOD::Jet& jet, size_t vtxIdx) const;
00095
00097 float getSumTrackPt(const xAOD::Jet& jet, size_t vtxIdx) const;
00098
00099 private:
00100
00103
00105 std::string m_bJetLabel;
00106
00108 int m_numJetTrk;
00111 bool m_applyRelPt;
00113 float m_muJetPtRatio;
00115 float m_muJetTrkPtRatio;
00116
00118 std::string m_jetNumTrkDec;
00120 std::string m_jetSumTrkPtDec;
00121
00123 bool m_useGhostAssociation;
00124
00126 float m_innerDR;
00129 float m_outerDR;
00130
00132 bool m_useSlidingDR;
00134 double m_slidingDRC1;
00136 double m_slidingDRC2;
00138 double m_slidingDRMaxCone;
00139
00141 bool m_useRapidity;
00142
00144
00147
00149 std::unique_ptr<BJetHelper> m_bJetHelper;
00150
00152 std::unique_ptr<IParticleAssociator> m_dRMatchCone1;
00154 std::unique_ptr<IParticleAssociator> m_dRMatchCone2;
00155
00157
00158 };
00159
00160 }
00161
00162 #endif