ATLAS Offline Software
Loading...
Searching...
No Matches
AlignVertex.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKALIGNEVENT_ALIGNVERTEX_H
6#define TRKALIGNEVENT_ALIGNVERTEX_H
7
8#include "GaudiKernel/MsgStream.h"
10
11#include "TrkTrack/Track.h"
13#include "xAODTracking/Vertex.h"
15
17
19#include <vector>
20#include <fstream>
21
31
32
33namespace Trk {
34
35 typedef std::vector<AlignTrack**> AlignTrackCollection;
36 typedef std::vector<AlignTrack**>::const_iterator AlignTrackIt;
37 typedef std::pair<const AlignModule*, std::vector<Amg::VectorX> > AlignModuleVertexDerivatives;
38
40
41 public:
42
51
54
57
59 AlignVertex( const AlignVertex & rhs);
60
62 AlignVertex & operator=( const AlignVertex & rhs);
63
66
67
70
72 AlignTrackCollection::const_iterator firstATrack() const;
73
75 AlignTrackCollection::const_iterator lastATrack() const;
76
78 const xAOD::Vertex * originalVertex() const { return m_original; }
79 inline const Amg::Vector3D* originalPosition() const {return m_originalPosition;}
80
83
85 inline AlignVertexType type() const {return m_type;}
87
89 inline const Amg::Vector3D* position() const {return m_position;}
90 inline const AmgSymMatrix(3)* covariance() const {return m_covariance;}
91
95 const std::vector<AlignModuleVertexDerivatives>* derivatives() const { return m_derivatives; }
96 void setDerivatives(std::vector<AlignModuleVertexDerivatives>* vec) { m_derivatives=vec; }
97 void addDerivatives(std::vector<AlignModuleVertexDerivatives>* vec);
98
99
101 void dump(MsgStream& msg) ;
102
104 void incrementVector(const Amg::Vector3D& vtxV) { (*m_vVector)+=vtxV; }
105 void incrementMatrix(const AmgSymMatrix(3) vtxM) { (*m_matrix)+=vtxM; }
106
107
109 void fitVertex();
110
112 int Ntracks() const { return m_nTracks; }
113
116
117 const AmgSymMatrix(3)* Qmatrix() const { return m_qMatrix; }
118
119 const Amg::Vector3D* Vvector() const { return m_vVector; }
120
122
123 bool Constrained() const { return m_constrained; }
124
125
126 private:
128
129 AmgSymMatrix(3)* m_matrix;
131
134
136
138 AmgSymMatrix(3) * m_covariance;
139
140 std::vector<AlignModuleVertexDerivatives > * m_derivatives;
141
142 AmgSymMatrix(3)* m_qMatrix;
145
146
148
149 }; // end class
150
151
152} // end namespace
153
154#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 AlignTrackCollection * alignTrackCollection() const
returns collection of alignTracks
const Amg::Vector3D * originalPosition() const
Definition AlignVertex.h:79
AlignVertexType m_type
@ NVertexTypes
total number of track types
Definition AlignVertex.h:49
@ Primary
not refitted, just copy constructed from original Track
Definition AlignVertex.h:45
@ Unknown
default type
Definition AlignVertex.h:44
@ Refitted
normally refitted, without adding any pseudo-measurement
Definition AlignVertex.h:46
@ Accumulated
accumulated by the GX algorithm.
Definition AlignVertex.h:47
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
void setOriginalVertex(const xAOD::Vertex *vertex)
set pointer to original vertex
Definition AlignVertex.h:82
AlignTrackCollection::const_iterator lastATrack() const
returns iterator pointer to last element in collection
std::vector< AlignModuleVertexDerivatives > * m_derivatives
AlignTrackCollection::const_iterator firstATrack() const
retrieve iterator pointer to first element in collection
AlignTrackCollection m_alignTracks
void fitVertex()
fit the vertex internally
void setDerivatives(std::vector< AlignModuleVertexDerivatives > *vec)
Definition AlignVertex.h:96
AlignVertexType type() const
get and set the refit type
Definition AlignVertex.h:85
void setUnconstrained()
void addDerivatives(std::vector< AlignModuleVertexDerivatives > *vec)
const Amg::Vector3D * position() const
get the vertex position and covariance
Definition AlignVertex.h:89
const AmgSymMatrix(3) *Qmatrix() const
AmgSymMatrix(3) *m_covariance
void incrementMatrix(const AmgSymMatrix(3) vtxM)
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:78
const AmgSymMatrix(3) *covariance() const
Definition AlignVertex.h:90
Amg::Vector3D * m_vector
void setType(AlignVertexType type)
Definition AlignVertex.h:86
void incrementVector(const Amg::Vector3D &vtxV)
increment algebra objects for this verterx:
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:95
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< AlignTrack ** > AlignTrackCollection
Definition AlignVertex.h:35
std::vector< AlignTrack ** >::const_iterator AlignTrackIt
Definition AlignVertex.h:36
std::pair< const AlignModule *, std::vector< Amg::VectorX > > AlignModuleVertexDerivatives
Definition AlignVertex.h:37
-event-from-file
Vertex_v1 Vertex
Define the latest version of the vertex class.
MsgStream & msg
Definition testRead.cxx:32