00001 #ifndef ASSOCIATIONUTILS_ELEJETOVERLAPTOOL_H
00002 #define ASSOCIATIONUTILS_ELEJETOVERLAPTOOL_H
00003
00004
00005 #include "AsgTools/AsgTool.h"
00006
00007
00008 #include "xAODEgamma/ElectronContainer.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/DeltaRMatcher.h"
00016
00017 namespace ORUtils
00018 {
00019
00034 class EleJetOverlapTool : public virtual IOverlapTool,
00035 public BaseOverlapTool
00036 {
00037
00039 ASG_TOOL_CLASS(EleJetOverlapTool, IOverlapTool)
00040
00041 public:
00042
00044 EleJetOverlapTool(const std::string& name);
00045
00050 virtual StatusCode
00051 findOverlaps(const xAOD::IParticleContainer& cont1,
00052 const xAOD::IParticleContainer& cont2) const override;
00053
00056 virtual StatusCode
00057 findOverlaps(const xAOD::ElectronContainer& electrons,
00058 const xAOD::JetContainer& jets) const;
00059
00060 protected:
00061
00063 virtual StatusCode initializeDerived() override;
00064
00065 private:
00066
00069
00071 std::string m_bJetLabel;
00072
00074 bool m_applyPtRatio;
00076 bool m_eleJetPtRatio;
00077
00079 float m_innerDR;
00081 float m_outerDR;
00082
00084 bool m_useSlidingDR;
00086 double m_slidingDRC1;
00088 double m_slidingDRC2;
00090 double m_slidingDRMaxCone;
00091
00093 bool m_useRapidity;
00094
00096
00099
00101 std::unique_ptr<BJetHelper> m_bJetHelper;
00102
00104 std::unique_ptr<IParticleAssociator> m_dRMatchCone1;
00106 std::unique_ptr<IParticleAssociator> m_dRMatchCone2;
00107
00109
00110 };
00111
00112 }
00113
00114 #endif