00001 #ifndef ASSOCIATIONUTILS_ALTMUJETOVERLAPTOOL_H
00002 #define ASSOCIATIONUTILS_ALTMUJETOVERLAPTOOL_H
00003
00004
00005 #include "xAODMuon/MuonContainer.h"
00006 #include "xAODJet/JetContainer.h"
00007
00008
00009 #include "AssociationUtils/IOverlapTool.h"
00010 #include "AssociationUtils/BaseOverlapTool.h"
00011 #include "AssociationUtils/BJetHelper.h"
00012 #include "AssociationUtils/IObjectAssociator.h"
00013
00014 namespace ORUtils
00015 {
00016
00040 class AltMuJetOverlapTool : public virtual IOverlapTool,
00041 public BaseOverlapTool
00042 {
00043
00045 ASG_TOOL_CLASS(AltMuJetOverlapTool, IOverlapTool)
00046
00047 public:
00048
00050 AltMuJetOverlapTool(const std::string& name);
00051
00056 virtual StatusCode
00057 findOverlaps(const xAOD::IParticleContainer& cont1,
00058 const xAOD::IParticleContainer& cont2) const override;
00059
00062 virtual StatusCode
00063 findOverlaps(const xAOD::MuonContainer& muons,
00064 const xAOD::JetContainer& jets) const;
00065
00066 protected:
00067
00069 virtual StatusCode initializeDerived() override;
00070
00073 const xAOD::Vertex* getPrimVtx() const;
00074
00078 int getNumTracks(const xAOD::Jet* jet) const;
00079
00080 private:
00081
00082
00083
00084
00085
00087 std::string m_bJetLabel;
00088
00090 int m_numJetTrk;
00092 float m_muJetPtRatio;
00093
00095 float m_innerDR;
00097 double m_slidingDRC1;
00099 double m_slidingDRC2;
00101 double m_slidingDRMaxCone;
00103 bool m_useRapidity;
00104
00105
00106
00107
00108
00110 std::unique_ptr<BJetHelper> m_bJetHelper;
00111
00113 std::unique_ptr<IParticleAssociator> m_dRMatchCone1;
00115 std::unique_ptr<IParticleAssociator> m_dRMatchCone2;
00116
00117 };
00118
00119 }
00120
00121 #endif