ATLAS Offline Software
Loading...
Searching...
No Matches
DeltaROverlapTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ASSOCIATIONUTILS_OVERLAPTOOLDR_H
6#define ASSOCIATIONUTILS_OVERLAPTOOLDR_H
7
8// Framework includes
10
11// Local includes
15
16namespace ADD_CMODE(ORUtils)
17{
18
26 class DeltaROverlapTool : public virtual IOverlapTool,
27 public BaseOverlapTool
28 {
29
32
33 public:
34
36 DeltaROverlapTool(const std::string& name);
37
41 virtual StatusCode
42 findOverlaps(columnar::Particle1Range cont1,
44 columnar::EventContextId eventContext) const override;
45 using IOverlapTool::findOverlaps;
46
47 protected:
48
50 virtual StatusCode initializeDerived() override;
51
52 private:
53
56
58 float m_dR;
60 bool m_useRapidity;
61
67 bool m_swapContainerPrecedence;
68
69 Gaudi::Property<unsigned> m_objectType1{this, "ObjectType1", 0,
70 "The xAOD::Type::ObjectType enum value for the first particle type"};
71 Gaudi::Property<unsigned> m_objectType2{this, "ObjectType2", 0,
72 "The xAOD::Type::ObjectType enum value for the second particle type"};
73
75
78
80 std::unique_ptr<DeltaRMatcher> m_dRMatcher;
81
83
84 template<columnar::ContainerIdConcept CI1,columnar::RegularContainerIdConcept CI2>
85 StatusCode internalFindOverlaps(columnar::ObjectRange<CI1> testCont, columnar::ObjectRange<CI2> refCont) const;
86
87 }; // class DeltaROverlapTool
88
89} // namespace ADD_CMODE(ORUtils)
90
91#endif
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
a class representing a continuous sequence of objects (a.k.a. a container)
ObjectId< EventContextDef > EventContextId
ObjectRange< Particle2Def > Particle2Range
Definition ParticleDef.h:50
ObjectRange< Particle1Def > Particle1Range
Definition ParticleDef.h:44