ATLAS Offline Software
Loading...
Searching...
No Matches
AlignVertex.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKALIGNEVENT_ALIGNVERTEX_H
6#define TRKALIGNEVENT_ALIGNVERTEX_H
7
8
10
11#include "TrkTrack/Track.h"
12#include "xAODTracking/Vertex.h"
14
16#include <vector>
17
18class MsgStream;
28
29
30namespace Trk {
31
32 typedef std::pair<const AlignModule*, std::vector<Amg::VectorX> > AlignModuleVertexDerivatives;
33
35
36 public:
37
46
49
52
53
55 AlignVertex( const AlignVertex & rhs);
56
58 AlignVertex & operator=( const AlignVertex & rhs);
59
62
63
65 const xAOD::Vertex * originalVertex() const { return m_original; }
66 inline const Amg::Vector3D* originalPosition() const {return m_originalPosition;}
67
70
72 inline AlignVertexType type() const {return m_type;}
74
76 inline const Amg::Vector3D* position() const {return m_position;}
77 inline const AmgSymMatrix(3)* covariance() const {return m_covariance;}
78
82 const std::vector<AlignModuleVertexDerivatives>* derivatives() const { return m_derivatives; }
83 void setDerivatives(std::vector<AlignModuleVertexDerivatives>* vec) { m_derivatives=vec; }
84 void addDerivatives(std::vector<AlignModuleVertexDerivatives>* vec);
85
87 void dump(MsgStream& msg) ;
88
90 void incrementVector(const Amg::Vector3D& vtxV) { (*m_vVector)+=vtxV; }
91 void incrementMatrix(const AmgSymMatrix(3) vtxM) { (*m_matrix)+=vtxM; }
92
93
95 void fitVertex();
96
98 int Ntracks() const { return m_nTracks; }
99
102
103 const AmgSymMatrix(3)* Qmatrix() const { return m_qMatrix; }
104
105 const Amg::Vector3D* Vvector() const { return m_vVector; }
106
108
109 bool Constrained() const { return m_constrained; }
110
111
112 private:
114
115 AmgSymMatrix(3)* m_matrix;
117
120
121
123 AmgSymMatrix(3) * m_covariance;
124
125 std::vector<AlignModuleVertexDerivatives > * m_derivatives;
126
127 AmgSymMatrix(3)* m_qMatrix;
130
131
133
134 }; // end class
135
136
137} // end namespace
138
139#endif // TRKALIGNEVENT_ALIGNVERTEX_H
std::vector< size_t > vec
An STL vector of pointers that by default owns its pointed-to elements.
#define AmgSymMatrix(dim)
AlignVertex & operator=(const AlignVertex &rhs)
assignment
const Amg::Vector3D * originalPosition() const
Definition AlignVertex.h:66
AlignVertexType m_type
@ NVertexTypes
total number of track types
Definition AlignVertex.h:44
@ Primary
not refitted, just copy constructed from original Track
Definition AlignVertex.h:40
@ Unknown
default type
Definition AlignVertex.h:39
@ Refitted
normally refitted, without adding any pseudo-measurement
Definition AlignVertex.h:41
@ Accumulated
accumulated by the GX algorithm.
Definition AlignVertex.h:42
Amg::Vector3D * m_originalPosition
~AlignVertex()
destructor
Amg::Vector3D * m_vVector
const Amg::Vector3D * Vvector() const
AmgSymMatrix(3) *m_qMatrix
bool Constrained() const
AmgSymMatrix(3) *m_matrix
AlignVertex()
default constructor
int Ntracks() const
get the number of contributing tracks
Definition AlignVertex.h:98
void setOriginalVertex(const xAOD::Vertex *vertex)
set pointer to original vertex
Definition AlignVertex.h:69
std::vector< AlignModuleVertexDerivatives > * m_derivatives
void fitVertex()
fit the vertex internally
void setDerivatives(std::vector< AlignModuleVertexDerivatives > *vec)
Definition AlignVertex.h:83
AlignVertexType type() const
get and set the refit type
Definition AlignVertex.h:72
void setUnconstrained()
void addDerivatives(std::vector< AlignModuleVertexDerivatives > *vec)
const Amg::Vector3D * position() const
get the vertex position and covariance
Definition AlignVertex.h:76
const AmgSymMatrix(3) *Qmatrix() const
AmgSymMatrix(3) *m_covariance
void incrementMatrix(const AmgSymMatrix(3) vtxM)
Definition AlignVertex.h:91
void setConstraint(AmgSymMatrix(3) *, Amg::Vector3D *)
set and get the constraint on VTX position
Amg::Vector3D * m_position
const xAOD::Vertex * m_original
const xAOD::Vertex * originalVertex() const
retrieve pointer to original vertex and its position
Definition AlignVertex.h:65
const AmgSymMatrix(3) *covariance() const
Definition AlignVertex.h:77
Amg::Vector3D * m_vector
void setType(AlignVertexType type)
Definition AlignVertex.h:73
void incrementVector(const Amg::Vector3D &vtxV)
increment algebra objects for this verterx:
Definition AlignVertex.h:90
const std::vector< AlignModuleVertexDerivatives > * derivatives() const
The Amg::VectorX is a vector of first-derivatives of the alignTSOS on the alignTrack w....
Definition AlignVertex.h:82
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
std::pair< const AlignModule *, std::vector< Amg::VectorX > > AlignModuleVertexDerivatives
Definition AlignVertex.h:32
-event-from-file
Vertex_v1 Vertex
Define the latest version of the vertex class.
MsgStream & msg
Definition testRead.cxx:32