ATLAS Offline Software
IVertexUpdator.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 // IVertexUpdator, (c) ATLAS Detector software 2006
8 
9 #ifndef TRKVERTEXFITTERINTERFACE_IVERTEXUPDATOR_H
10 #define TRKVERTEXFITTERINTERFACE_IVERTEXUPDATOR_H
11 
12 #include "GaudiKernel/IAlgTool.h"
13 #include "xAODTracking/Vertex.h"
14 
37 namespace Trk
38 {
39 
40  static const InterfaceID IID_IVertexUpdator("IVertexUpdator", 1, 0);
41 
42  class VxTrackAtVertex;
43  class LinearizedTrack;
44 
45  class IVertexUpdator : virtual public IAlgTool {
46 
47  public:
51  virtual ~IVertexUpdator(){};
52 
56  static const InterfaceID& interfaceID() { return IID_IVertexUpdator; };
57 
58  // Slim struct used to transport the (temporary) result of positionUpdate.
59  // Significantly faster than using an xAOD::Vertex for this purpose.
61  Amg::Vector3D position; // vertex position
62  AmgSymMatrix(3) covariancePosition; // position covariance
63  AmgSymMatrix(5) trkParametersWeight; // inverse track parameter covariance,
64  // cached to avoid re-calculation
65  };
66 
67  // operating mode for positionUpdate.
68  typedef enum{
70  addTrack=1
72 
76  virtual xAOD::Vertex * add(xAOD::Vertex &, VxTrackAtVertex &) const =0;
77 
81  virtual xAOD::Vertex * remove(xAOD::Vertex &, VxTrackAtVertex &) const = 0;
82 
88  virtual positionUpdateOutcome positionUpdate (const xAOD::Vertex& vtx, const LinearizedTrack * trk, double trackWeight, updateMode mode) const = 0;
89 
94  virtual float trackParametersChi2(const xAOD::Vertex& new_vtx, const LinearizedTrack * trk) const = 0;
95  virtual float trackParametersChi2(const positionUpdateOutcome & new_vtx , const LinearizedTrack * trk) const = 0;
96 
101  virtual float vertexPositionChi2(const xAOD::Vertex& old_vtx, const xAOD::Vertex& new_vtx) const = 0;
102  virtual float vertexPositionChi2(const xAOD::Vertex& old_vtx, const positionUpdateOutcome & new_vtx) const = 0;
103 
104  };
105 }
106 #endif
Trk::IVertexUpdator::updateMode
updateMode
Definition: IVertexUpdator.h:68
Trk::VxTrackAtVertex
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Definition: VxTrackAtVertex.h:77
Trk::IVertexUpdator::vertexPositionChi2
virtual float vertexPositionChi2(const xAOD::Vertex &old_vtx, const positionUpdateOutcome &new_vtx) const =0
Trk::IVertexUpdator::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition: IVertexUpdator.h:56
Trk::IVertexUpdator::vertexPositionChi2
virtual float vertexPositionChi2(const xAOD::Vertex &old_vtx, const xAOD::Vertex &new_vtx) const =0
Method calculating the vertex displacement-related part of the chi2 Can also be called using the ou...
Trk::IVertexUpdator::positionUpdate
virtual positionUpdateOutcome positionUpdate(const xAOD::Vertex &vtx, const LinearizedTrack *trk, double trackWeight, updateMode mode) const =0
Position update method.
Trk::IVertexUpdator::addTrack
@ addTrack
Definition: IVertexUpdator.h:70
Trk::IVertexUpdator::add
virtual xAOD::Vertex * add(xAOD::Vertex &, VxTrackAtVertex &) const =0
Add method: adds one track to a vertex.
Trk::IVertexUpdator::trackParametersChi2
virtual float trackParametersChi2(const positionUpdateOutcome &new_vtx, const LinearizedTrack *trk) const =0
Trk::IVertexUpdator::remove
virtual xAOD::Vertex * remove(xAOD::Vertex &, VxTrackAtVertex &) const =0
Remove method: removes one track from a vertex.
Trk::IVertexUpdator
Definition: IVertexUpdator.h:45
Preparation.mode
mode
Definition: Preparation.py:95
Vertex.h
Trk::IVertexUpdator::positionUpdateOutcome::position
Amg::Vector3D position
Definition: IVertexUpdator.h:61
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::IVertexUpdator::~IVertexUpdator
virtual ~IVertexUpdator()
Virtual destructor.
Definition: IVertexUpdator.h:51
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::IVertexUpdator::positionUpdateOutcome
Definition: IVertexUpdator.h:60
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Trk::IVertexUpdator::removeTrack
@ removeTrack
Definition: IVertexUpdator.h:69
Trk::IVertexUpdator::trackParametersChi2
virtual float trackParametersChi2(const xAOD::Vertex &new_vtx, const LinearizedTrack *trk) const =0
Method calculating the interstep Chi2 increment.
Trk::IVertexUpdator::positionUpdateOutcome::AmgSymMatrix
AmgSymMatrix(3) covariancePosition
Trk::LinearizedTrack
Definition: LinearizedTrack.h:43