00001 #ifndef ASSOCIATIONUTILS_OVERLAPTOOLDR_H
00002 #define ASSOCIATIONUTILS_OVERLAPTOOLDR_H
00003
00004
00005 #include "AssociationUtils/IOverlapTool.h"
00006 #include "AssociationUtils/BaseOverlapTool.h"
00007 #include "AssociationUtils/DeltaRMatcher.h"
00008
00009 namespace ORUtils
00010 {
00011
00019 class DeltaROverlapTool : public virtual IOverlapTool,
00020 public BaseOverlapTool
00021 {
00022
00024 ASG_TOOL_CLASS(DeltaROverlapTool, IOverlapTool)
00025
00026 public:
00027
00029 DeltaROverlapTool(const std::string& name);
00030
00034 virtual StatusCode
00035 findOverlaps(const xAOD::IParticleContainer& cont1,
00036 const xAOD::IParticleContainer& cont2) const override;
00037
00038 protected:
00039
00041 virtual StatusCode initializeDerived() override;
00042
00043 private:
00044
00047
00049 float m_dR;
00051 bool m_useRapidity;
00052
00058 bool m_swapContainerPrecedence;
00059
00061
00064
00066 std::unique_ptr<DeltaRMatcher> m_dRMatcher;
00067
00069
00070 };
00071
00072 }
00073
00074 #endif