ATLAS Offline Software
IVertexFitter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 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"
15 #include <vector>
16 
17 // xAOD includes
18 #include "memory"
21 #include "xAODTracking/Vertex.h"
22 
51 namespace Trk {
52 class IVertexFitter : virtual public IAlgTool
53 {
54 
55 public:
57 
61  virtual ~IVertexFitter() = default;
62 
63  /*
64  * First the context aware methods.
65  * If this set is not overloaded , it
66  * will call the methods without EventContext
67  */
68 
69  //------ Event Context aware methods ---------
70 
71  // 1
76  virtual std::unique_ptr<xAOD::Vertex> fit(
77  const EventContext& ctx,
78  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
79  const Amg::Vector3D& startingPoint) const
80  {
81  (void)(ctx);
82  return std::unique_ptr<xAOD::Vertex>(fit(vectorTrk, startingPoint));
83  }
84 
85  // 2
90  virtual std::unique_ptr<xAOD::Vertex> fit(
91  const EventContext& ctx,
92  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
93  const std::vector<const xAOD::NeutralParticle*>& vectorNeu,
94  const Amg::Vector3D& startingPoint) const
95  {
96  (void)(ctx);
97  return std::unique_ptr<xAOD::Vertex>(
98  fit(vectorTrk, vectorNeu, startingPoint));
99  }
100 
101  // 3
107  virtual std::unique_ptr<xAOD::Vertex> fit(
108  const EventContext& ctx,
109  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
110  const std::vector<const xAOD::NeutralParticle*>& vectorNeu,
111  const xAOD::Vertex& constraint) const
112  {
113  (void)(ctx);
114  return std::unique_ptr<xAOD::Vertex>(fit(vectorTrk, vectorNeu, constraint));
115  }
116 
117  // 4
123  virtual std::unique_ptr<xAOD::Vertex> fit(
124  const EventContext& ctx,
125  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
126  const xAOD::Vertex& constraint) const
127  {
128  (void)(ctx);
129  return std::unique_ptr<xAOD::Vertex>(fit(vectorTrk, constraint));
130  }
131 
132  // 5
137  virtual std::unique_ptr<xAOD::Vertex> fit(
138  const EventContext& ctx,
139  const std::vector<const Trk::TrackParameters*>& perigeeList,
140  const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
141  const Amg::Vector3D& startingPoint) const
142  {
143  (void)(ctx);
144  return std::unique_ptr<xAOD::Vertex>(
145  fit(perigeeList, neutralPerigeeList, startingPoint));
146  }
147 
148  // 6
153  virtual std::unique_ptr<xAOD::Vertex> fit(
154  const EventContext& ctx,
155  const std::vector<const Trk::TrackParameters*>& perigeeList,
156  const Amg::Vector3D& startingPoint) const
157  {
158  (void)(ctx);
159  return std::unique_ptr<xAOD::Vertex>(fit(perigeeList, startingPoint));
160  }
161 
162  // 7
168  virtual std::unique_ptr<xAOD::Vertex> fit(
169  const EventContext& ctx,
170  const std::vector<const Trk::TrackParameters*>& perigeeList,
171  const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
172  const xAOD::Vertex& constraint) const
173  {
174  (void)(ctx);
175  return std::unique_ptr<xAOD::Vertex>(
176  fit(perigeeList, neutralPerigeeList, constraint));
177  }
178  // 8
184  virtual std::unique_ptr<xAOD::Vertex> fit(
185  const EventContext& ctx,
186  const std::vector<const Trk::TrackParameters*>& perigeeList,
187  const xAOD::Vertex& constraint) const
188  {
189  (void)(ctx);
190  return std::unique_ptr<xAOD::Vertex>(fit(perigeeList, constraint));
191  }
192 
193  // 9
199  virtual std::unique_ptr<xAOD::Vertex> fit(
200  const EventContext& ctx,
201  const std::vector<const Trk::TrackParameters*>& perigeeList,
202  const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList) const
203  {
204  (void)(ctx);
205  return std::unique_ptr<xAOD::Vertex>(fit(perigeeList, neutralPerigeeList));
206  }
207 
208  // 10
214  virtual std::unique_ptr<xAOD::Vertex> fit(
215  const EventContext& ctx,
216  const std::vector<const Trk::TrackParameters*>& perigeeList) const
217  {
218  (void)(ctx);
219  return std::unique_ptr<xAOD::Vertex>(fit(perigeeList));
220  }
221 
222  //------------ Event Context unaware methods ---------
223 
224  // 1
228  virtual xAOD::Vertex* fit(
229  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
230  const Amg::Vector3D& startingPoint) const
231  {
232  return fit(Gaudi::Hive::currentContext(), vectorTrk, startingPoint)
233  .release();
234  }
235 
236  // 2
241  virtual xAOD::Vertex* fit(
242  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
243  const std::vector<const xAOD::NeutralParticle*>& vectorNeu,
244  const Amg::Vector3D& startingPoint) const
245  {
246  return fit(
247  Gaudi::Hive::currentContext(), vectorTrk, vectorNeu, startingPoint)
248  .release();
249  }
250 
251  // 3
256  virtual xAOD::Vertex* fit(
257  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
258  const std::vector<const xAOD::NeutralParticle*>& vectorNeu,
259  const xAOD::Vertex& constraint) const
260  {
261  return fit(Gaudi::Hive::currentContext(), vectorTrk, vectorNeu, constraint)
262  .release();
263  }
264 
265  // 4
270  virtual xAOD::Vertex* fit(
271  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
272  const xAOD::Vertex& constraint) const
273  {
274  return fit(Gaudi::Hive::currentContext(), vectorTrk, constraint).release();
275  }
276 
277  // 5
281  virtual xAOD::Vertex* fit(
282  const std::vector<const Trk::TrackParameters*>& perigeeList,
283  const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
284  const Amg::Vector3D& startingPoint) const
285  {
286  return fit(Gaudi::Hive::currentContext(),
287  perigeeList,
288  neutralPerigeeList,
289  startingPoint)
290  .release();
291  }
292 
293  // 6
297  virtual xAOD::Vertex* fit(
298  const std::vector<const Trk::TrackParameters*>& perigeeList,
299  const Amg::Vector3D& startingPoint) const
300  {
301  return fit(Gaudi::Hive::currentContext(), perigeeList, startingPoint)
302  .release();
303  }
304 
305  // 7
310  virtual xAOD::Vertex* fit(
311  const std::vector<const Trk::TrackParameters*>& perigeeList,
312  const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
313  const xAOD::Vertex& constraint) const
314  {
315  return fit(Gaudi::Hive::currentContext(),
316  perigeeList,
317  neutralPerigeeList,
318  constraint)
319  .release();
320  }
321 
322  // 8
327  virtual xAOD::Vertex* fit(
328  const std::vector<const Trk::TrackParameters*>& perigeeList,
329  const xAOD::Vertex& constraint) const
330  {
331  return fit(Gaudi::Hive::currentContext(), perigeeList, constraint)
332  .release();
333  }
334 
335  // 9
341  virtual xAOD::Vertex* fit(
342  const std::vector<const Trk::TrackParameters*>& perigeeList,
343  const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList) const
344  {
345  return fit(Gaudi::Hive::currentContext(), perigeeList, neutralPerigeeList)
346  .release();
347  }
348 
349  // 10
355  virtual xAOD::Vertex* fit(
356  const std::vector<const Trk::TrackParameters*>& perigeeList) const
357  {
358  return fit(Gaudi::Hive::currentContext(), perigeeList).release();
359  }
360 };
361 }
362 #endif
363 
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:76
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:168
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:281
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:341
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:297
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:199
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:90
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:184
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:107
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:153
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:123
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:214
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:355
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:228
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:270
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:256
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:241
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:310
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:137
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrackParticleFwd.h
Trk::IVertexFitter
Definition: IVertexFitter.h:53
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:327