Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
52 namespace Trk {
53 class IVertexFitter : virtual public IAlgTool
54 {
55 
56 public:
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
229  virtual xAOD::Vertex* fit(
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
242  virtual xAOD::Vertex* fit(
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
257  virtual xAOD::Vertex* fit(
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
271  virtual xAOD::Vertex* fit(
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
282  virtual xAOD::Vertex* fit(
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
298  virtual xAOD::Vertex* fit(
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
311  virtual xAOD::Vertex* fit(
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
328  virtual xAOD::Vertex* fit(
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
342  virtual xAOD::Vertex* fit(
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
356  virtual xAOD::Vertex* fit(
357  const std::vector<const Trk::TrackParameters*>& perigeeList) const
358  {
359  return fit(Gaudi::Hive::currentContext(), perigeeList).release();
360  }
361 };
362 }
363 #endif
364 
Trk::IVertexFitter::fit
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.
Definition: IVertexFitter.h:77
TrackParameters.h
Trk::IVertexFitter::~IVertexFitter
virtual ~IVertexFitter()=default
Virtual destructor.
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:169
Trk::IVertexFitter::fit
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.
Definition: IVertexFitter.h:282
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:342
Trk::IVertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const Amg::Vector3D &startingPoint) const
Interface for TrackParameters with starting point.
Definition: IVertexFitter.h:298
NeutralParameters.h
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:200
Trk::IVertexFitter::fit
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.
Definition: IVertexFitter.h:91
Trk::IVertexFitter::DeclareInterfaceID
DeclareInterfaceID(IVertexFitter, 1, 0)
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:185
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:108
Trk::IVertexFitter::fit
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.
Definition: IVertexFitter.h:154
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:124
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:215
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:356
Trk::IVertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const
Interface for xAOD::TrackParticle with starting point.
Definition: IVertexFitter.h:229
Vertex.h
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:271
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
NeutralParticle.h
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:257
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::IVertexFitter::fit
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.
Definition: IVertexFitter.h:242
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:311
Trk::IVertexFitter::fit
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.
Definition: IVertexFitter.h:138
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrackParticleFwd.h
Trk::IVertexFitter
Definition: IVertexFitter.h:54
Trk::IVertexFitter::fit
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...
Definition: IVertexFitter.h:328