ATLAS Offline Software
Loading...
Searching...
No Matches
StableDeltaRMatchingTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef INDETTRACKPERFMON_STABLEDELTARMATCHINGTOOL_H
6#define INDETTRACKPERFMON_STABLEDELTARMATCHINGTOOL_H
7
14
16#include "AsgTools/AsgTool.h"
17#include "StableMatchingBase.h"
18
20#include "ITrackMatchingTool.h"
21
22namespace IDTPM {
23
24 template<typename T, typename R>
26 public:
28 StableDeltaRMatchingTool(const std::string& name)
29 : StableMatchingBase<T,R>(name) {}
30
32 virtual StatusCode initialize() override {
33 ATH_MSG_DEBUG("Initializing " << this->name());
35
36 if (m_dRmax < 0) {
37 ATH_MSG_ERROR("No DeltaRMax criteria requested");
38 return StatusCode::FAILURE;
39 }
40 return StatusCode::SUCCESS;
41 }
42
43 protected:
44
45 virtual float distance(const T& t, const R& r) const override {
46 float dR = deltaR(t, r);
47 // Return -1 if distance exceeds threshold
48 return (dR > m_dRmax) ? -1 : dR;
49 }
50
51 FloatProperty m_dRmax { this, "dRmax", 0.05, "Maximum DeltaR cone size for DeltaR-matching (disabled if <0)" };
52 };
53
58 public StableDeltaRMatchingTool<xAOD::TrackParticle, xAOD::TrackParticle>,
59 public virtual ITrackMatchingTool
60 {
61 public:
63
65 StableDeltaRMatchingTool_trk(const std::string& name)
66 : StableDeltaRMatchingTool<xAOD::TrackParticle, xAOD::TrackParticle>(name) {}
67
69 virtual StatusCode match(TrackAnalysisCollections& trkAnaColls,
70 const std::string& chainRoIName,
71 const std::string& roiStr) const override;
72
74
78
79 virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& vTest,
80 const std::vector<const xAOD::TrackParticle*>& vRef,
81 ITrackMatchingLookup& matches) const override {
82 ATH_MSG_DEBUG("Doing Track->Track stable DeltaR matching");
83 ATH_CHECK(matchVectors(vTest, vRef, matches));
84 return StatusCode::SUCCESS;
85 }
86
88 virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& /*vTest*/,
89 const std::vector<const xAOD::TruthParticle*>& /*vRef*/,
90 ITrackMatchingLookup& /*matches*/) const override {
91 ATH_MSG_WARNING("Track->Truth matching not supported by this tool.");
92 return StatusCode::SUCCESS;
93 }
94
96 virtual StatusCode match(const std::vector<const xAOD::TruthParticle*>& /*vTest*/,
97 const std::vector<const xAOD::TrackParticle*>& /*vRef*/,
98 ITrackMatchingLookup& /*matches*/) const override {
99 ATH_MSG_WARNING("Truth->Track matching not supported by this tool.");
100 return StatusCode::SUCCESS;
101 }
102 };
103
108 public StableDeltaRMatchingTool<xAOD::TrackParticle, xAOD::TruthParticle>,
109 public virtual ITrackMatchingTool
110 {
111 public:
113
115 StableDeltaRMatchingTool_trkTruth(const std::string& name)
116 : StableDeltaRMatchingTool<xAOD::TrackParticle, xAOD::TruthParticle>(name) {}
117
119 virtual StatusCode match(TrackAnalysisCollections& trkAnaColls,
120 const std::string& chainRoIName,
121 const std::string& roiStr) const override;
122
124
126 virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& /*vTest*/,
127 const std::vector<const xAOD::TrackParticle*>& /*vRef*/,
128 ITrackMatchingLookup& /*matches*/) const override {
129 ATH_MSG_WARNING("Track->Track matching not supported by this tool.");
130 return StatusCode::SUCCESS;
131 }
132
134 virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& vTest,
135 const std::vector<const xAOD::TruthParticle*>& vRef,
136 ITrackMatchingLookup& matches) const override {
137 ATH_MSG_DEBUG("Doing Track->Truth stable DeltaR matching.");
138 ATH_CHECK(matchVectors(vTest, vRef, matches));
139 return StatusCode::SUCCESS;
140 }
141
143 virtual StatusCode match(const std::vector<const xAOD::TruthParticle*>& /*vTest*/,
144 const std::vector<const xAOD::TrackParticle*>& /*vRef*/,
145 ITrackMatchingLookup& /*matches*/) const override {
146 ATH_MSG_WARNING("Truth->Track matching not supported by this tool.");
147 return StatusCode::SUCCESS;
148 }
149 };
150
155 public StableDeltaRMatchingTool<xAOD::TruthParticle, xAOD::TrackParticle>,
156 public virtual ITrackMatchingTool
157 {
158 public:
160
162 StableDeltaRMatchingTool_truthTrk(const std::string& name)
163 : StableDeltaRMatchingTool<xAOD::TruthParticle, xAOD::TrackParticle>(name) {}
164
166 virtual StatusCode match(TrackAnalysisCollections& trkAnaColls,
167 const std::string& chainRoIName,
168 const std::string& roiStr) const override;
169
171
173 virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& /*vTest*/,
174 const std::vector<const xAOD::TrackParticle*>& /*vRef*/,
175 ITrackMatchingLookup& /*matches*/) const override {
176 ATH_MSG_WARNING("Track->Track matching not supported by this tool.");
177 return StatusCode::SUCCESS;
178 }
179
181 virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& /*vTest*/,
182 const std::vector<const xAOD::TruthParticle*>& /*vRef*/,
183 ITrackMatchingLookup& /*matches*/) const override {
184 ATH_MSG_WARNING("Track->Truth matching not supported by this tool.");
185 return StatusCode::SUCCESS;
186 }
187
189 virtual StatusCode match(const std::vector<const xAOD::TruthParticle*>& vTest,
190 const std::vector<const xAOD::TrackParticle*>& vRef,
191 ITrackMatchingLookup& matches) const override {
192 ATH_MSG_DEBUG("Doing Truth->Track stable DeltaR matching.");
193 ATH_CHECK(matchVectors(vTest, vRef, matches));
194 return StatusCode::SUCCESS;
195 }
196 };
197
198} // end of namespace IDTPM
199
200#endif // > !INDETTRACKPERFMON_STABLEDELTARMATCHINGTOOL_H
201
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
interface for track matching tools in this package
StableDeltaRMatchingTool_trkTruth(const std::string &name)
Constructor.
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
Specific matching methods, via test/reference vectors.
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
truth -> track matching (disabled)
ASG_TOOL_CLASS(StableDeltaRMatchingTool_trkTruth, ITrackMatchingTool)
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &vTest, const std::vector< const xAOD::TruthParticle * > &vRef, ITrackMatchingLookup &matches) const override
track -> truth matching
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections.
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections.
ASG_TOOL_CLASS(StableDeltaRMatchingTool_trk, ITrackMatchingTool)
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
truth -> track matching (disabled)
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TruthParticle * > &, ITrackMatchingLookup &) const override
track -> truth matching (disabled)
StableDeltaRMatchingTool_trk(const std::string &name)
Constructor.
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &vTest, const std::vector< const xAOD::TrackParticle * > &vRef, ITrackMatchingLookup &matches) const override
Specific matching methods, via test/reference vectors.
StableDeltaRMatchingTool_truthTrk(const std::string &name)
Constructor.
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TruthParticle * > &, ITrackMatchingLookup &) const override
track -> truth matching (disabled)
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
Specific matching methods, via test/reference vectors.
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections.
ASG_TOOL_CLASS(StableDeltaRMatchingTool_truthTrk, ITrackMatchingTool)
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &vTest, const std::vector< const xAOD::TrackParticle * > &vRef, ITrackMatchingLookup &matches) const override
truth -> track matching
virtual StatusCode initialize() override
Initialize.
virtual float distance(const T &t, const R &r) const override
StableDeltaRMatchingTool(const std::string &name)
Constructor.
StableMatchingBase(const std::string &name)
virtual StatusCode matchVectors(const std::vector< const xAOD::TrackParticle * > &vTest, const std::vector< const xAOD::TrackParticle * > &vRef, ITrackMatchingLookup &matches) const
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition AsgTool.h:133
int r
Definition globals.cxx:22
Athena include(s).
float deltaR(const U1 &p1, const U2 &p2)
Accessor utility function for getting the DeltaR betwen two tracks.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.