ATLAS Offline Software
Loading...
Searching...
No Matches
IVertexFitter.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// IVertexFitter.h, (c) ATLAS Detector software 2005
8
9#ifndef TRKVERTEXFITTERINTERFACE_IVERTEXFITTER_H
10#define TRKVERTEXFITTERINTERFACE_IVERTEXFITTER_H
11
12#include "GaudiKernel/IAlgTool.h"
13#include "GaudiKernel/ThreadLocalContext.h"
16#include <vector>
17
18// xAOD includes
19#include "memory"
22#include "xAODTracking/Vertex.h"
23
51
52namespace Trk {
53class IVertexFitter : virtual public IAlgTool
54{
55
56public:
58
62 virtual ~IVertexFitter() = default;
63
64 /*
65 * First the context aware methods.
66 * If this set is not overloaded , it
67 * will call the methods without EventContext
68 */
69
70 //------ Event Context aware methods ---------
71
72 // 1
77 virtual std::unique_ptr<xAOD::Vertex> fit(
78 const EventContext& ctx,
79 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
80 const Amg::Vector3D& startingPoint) const
81 {
82 (void)(ctx);
83 return std::unique_ptr<xAOD::Vertex>(fit(vectorTrk, startingPoint));
84 }
85
86 // 2
91 virtual std::unique_ptr<xAOD::Vertex> fit(
92 const EventContext& ctx,
93 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
94 const std::vector<const xAOD::NeutralParticle*>& vectorNeu,
95 const Amg::Vector3D& startingPoint) const
96 {
97 (void)(ctx);
98 return std::unique_ptr<xAOD::Vertex>(
99 fit(vectorTrk, vectorNeu, startingPoint));
100 }
101
102 // 3
108 virtual std::unique_ptr<xAOD::Vertex> fit(
109 const EventContext& ctx,
110 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
111 const std::vector<const xAOD::NeutralParticle*>& vectorNeu,
112 const xAOD::Vertex& constraint) const
113 {
114 (void)(ctx);
115 return std::unique_ptr<xAOD::Vertex>(fit(vectorTrk, vectorNeu, constraint));
116 }
117
118 // 4
124 virtual std::unique_ptr<xAOD::Vertex> fit(
125 const EventContext& ctx,
126 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
127 const xAOD::Vertex& constraint) const
128 {
129 (void)(ctx);
130 return std::unique_ptr<xAOD::Vertex>(fit(vectorTrk, constraint));
131 }
132
133 // 5
138 virtual std::unique_ptr<xAOD::Vertex> fit(
139 const EventContext& ctx,
140 const std::vector<const Trk::TrackParameters*>& perigeeList,
141 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
142 const Amg::Vector3D& startingPoint) const
143 {
144 (void)(ctx);
145 return std::unique_ptr<xAOD::Vertex>(
146 fit(perigeeList, neutralPerigeeList, startingPoint));
147 }
148
149 // 6
154 virtual std::unique_ptr<xAOD::Vertex> fit(
155 const EventContext& ctx,
156 const std::vector<const Trk::TrackParameters*>& perigeeList,
157 const Amg::Vector3D& startingPoint) const
158 {
159 (void)(ctx);
160 return std::unique_ptr<xAOD::Vertex>(fit(perigeeList, startingPoint));
161 }
162
163 // 7
169 virtual std::unique_ptr<xAOD::Vertex> fit(
170 const EventContext& ctx,
171 const std::vector<const Trk::TrackParameters*>& perigeeList,
172 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
173 const xAOD::Vertex& constraint) const
174 {
175 (void)(ctx);
176 return std::unique_ptr<xAOD::Vertex>(
177 fit(perigeeList, neutralPerigeeList, constraint));
178 }
179 // 8
185 virtual std::unique_ptr<xAOD::Vertex> fit(
186 const EventContext& ctx,
187 const std::vector<const Trk::TrackParameters*>& perigeeList,
188 const xAOD::Vertex& constraint) const
189 {
190 (void)(ctx);
191 return std::unique_ptr<xAOD::Vertex>(fit(perigeeList, constraint));
192 }
193
194 // 9
200 virtual std::unique_ptr<xAOD::Vertex> fit(
201 const EventContext& ctx,
202 const std::vector<const Trk::TrackParameters*>& perigeeList,
203 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList) const
204 {
205 (void)(ctx);
206 return std::unique_ptr<xAOD::Vertex>(fit(perigeeList, neutralPerigeeList));
207 }
208
209 // 10
215 virtual std::unique_ptr<xAOD::Vertex> fit(
216 const EventContext& ctx,
217 const std::vector<const Trk::TrackParameters*>& perigeeList) const
218 {
219 (void)(ctx);
220 return std::unique_ptr<xAOD::Vertex>(fit(perigeeList));
221 }
222
223 //------------ Event Context unaware methods ---------
224
225 // 1
230 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
231 const Amg::Vector3D& startingPoint) const
232 {
233 return fit(Gaudi::Hive::currentContext(), vectorTrk, startingPoint)
234 .release();
235 }
236
237 // 2
243 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
244 const std::vector<const xAOD::NeutralParticle*>& vectorNeu,
245 const Amg::Vector3D& startingPoint) const
246 {
247 return fit(
248 Gaudi::Hive::currentContext(), vectorTrk, vectorNeu, startingPoint)
249 .release();
250 }
251
252 // 3
258 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
259 const std::vector<const xAOD::NeutralParticle*>& vectorNeu,
260 const xAOD::Vertex& constraint) const
261 {
262 return fit(Gaudi::Hive::currentContext(), vectorTrk, vectorNeu, constraint)
263 .release();
264 }
265
266 // 4
272 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
273 const xAOD::Vertex& constraint) const
274 {
275 return fit(Gaudi::Hive::currentContext(), vectorTrk, constraint).release();
276 }
277
278 // 5
283 const std::vector<const Trk::TrackParameters*>& perigeeList,
284 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
285 const Amg::Vector3D& startingPoint) const
286 {
287 return fit(Gaudi::Hive::currentContext(),
288 perigeeList,
289 neutralPerigeeList,
290 startingPoint)
291 .release();
292 }
293
294 // 6
299 const std::vector<const Trk::TrackParameters*>& perigeeList,
300 const Amg::Vector3D& startingPoint) const
301 {
302 return fit(Gaudi::Hive::currentContext(), perigeeList, startingPoint)
303 .release();
304 }
305
306 // 7
312 const std::vector<const Trk::TrackParameters*>& perigeeList,
313 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
314 const xAOD::Vertex& constraint) const
315 {
316 return fit(Gaudi::Hive::currentContext(),
317 perigeeList,
318 neutralPerigeeList,
319 constraint)
320 .release();
321 }
322
323 // 8
329 const std::vector<const Trk::TrackParameters*>& perigeeList,
330 const xAOD::Vertex& constraint) const
331 {
332 return fit(Gaudi::Hive::currentContext(), perigeeList, constraint)
333 .release();
334 }
335
336 // 9
343 const std::vector<const Trk::TrackParameters*>& perigeeList,
344 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList) const
345 {
346 return fit(Gaudi::Hive::currentContext(), perigeeList, neutralPerigeeList)
347 .release();
348 }
349
350 // 10
357 const std::vector<const Trk::TrackParameters*>& perigeeList) const
358 {
359 return fit(Gaudi::Hive::currentContext(), perigeeList).release();
360 }
361};
362}
363#endif
364
Interface class for vertex fitting AlgTools, for more detailed information, take a look at the header...
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const xAOD::Vertex &constraint) const
Interface for xAOD::TrackParticle with vertex constraint the position of the constraint is ALWAYS the...
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList) const
Fit method using the VertexSeedFinder to estimate initial position of the vertex and taking it as a f...
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const Amg::Vector3D &startingPoint) const
Interface for TrackParameters with starting point Event Context aware method.
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeu, const xAOD::Vertex &constraint) const
Interface for xAOD::TrackParticle and xAOD::NeutralParticle with vertex constraint the position of th...
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const Amg::Vector3D &startingPoint) const
Interface for TrackParameters and NeutralParameters with starting point.
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeu, const xAOD::Vertex &constraint) const
Interface for xAOD::TrackParticle and xAOD::NeutralParticle with vertex constraint the position of th...
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList) const
Fit method using the VertexSeedFinder to estimate initial position of the vertex and taking it as a f...
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex &constraint) const
Interface for TrackParameters with vertex constraint the position of the constraint is ALWAYS the sta...
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const
Interface for xAOD::TrackParticle with starting point.
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex &constraint) const
Interface for TrackParameters with vertex constraint the position of the constraint is ALWAYS the sta...
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList) const
Fit method using the VertexSeedFinder to estimate initial position of the vertex and taking it as a f...
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const xAOD::Vertex &constraint) const
Interface for TrackParameters and NeutralParameters with vertex constraint the position of the constr...
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const
Interface for xAOD::TrackParticle with starting point Event Context aware interface.
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeu, const Amg::Vector3D &startingPoint) const
Interface for xAOD::TrackParticle and xAOD::NeutralParticle with starting point.
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const xAOD::Vertex &constraint) const
Interface for TrackParameters and NeutralParameters with vertex constraint the position of the constr...
virtual ~IVertexFitter()=default
Virtual destructor.
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList) const
Fit method using the VertexSeedFinder to estimate initial position of the vertex and taking it as a f...
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeu, const Amg::Vector3D &startingPoint) const
Interface for xAOD::TrackParticle and xAOD::NeutralParticle with starting point.
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const xAOD::Vertex &constraint) const
Interface for xAOD::TrackParticle with vertex constraint the position of the constraint is ALWAYS the...
DeclareInterfaceID(IVertexFitter, 1, 0)
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const Amg::Vector3D &startingPoint) const
Interface for TrackParameters and NeutralParameters with starting point Event Context aware method.
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const Amg::Vector3D &startingPoint) const
Interface for TrackParameters with starting point.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
Vertex_v1 Vertex
Define the latest version of the vertex class.