17 , m_covariance(nullptr)
26 m_derivatives=
new std::vector<AlignModuleVertexDerivatives >(0);
40 , m_covariance(new
AmgSymMatrix(3) (*(rhs.m_covariance)) )
54 delete m_matrix; m_matrix =
new AmgSymMatrix(3)(*(rhs.m_matrix));
59 delete m_covariance; m_covariance =
new AmgSymMatrix(3) (*(rhs.m_covariance));
61 delete m_qMatrix; m_qMatrix =
new AmgSymMatrix(3) (*(rhs.m_qMatrix));
79 , m_covariance(nullptr)
90 m_derivatives=
new std::vector<AlignModuleVertexDerivatives >(0);
100 if( m_matrix )
delete m_matrix;
106 if( m_covariance )
delete m_covariance;
109 if( m_qMatrix )
delete m_qMatrix;
116 if( Q->rows()!=3 || V->rows()!=3 ) {
117 std::cout <<
"Unexpected size of the constraint:"<< std::endl;
118 std::cout <<
" Q size = "<< Q->rows() <<
", V size = "<< V->rows() << std::endl;
121 if( Q->determinant() < 1.0e-24 ) {
122 std::cout <<
" Suspicious Q determinant: detQ = "<< Q->determinant() << std::endl;
134 std::vector<AlignModuleVertexDerivatives>::iterator derivIt =
vec->begin();
135 std::vector<AlignModuleVertexDerivatives>::iterator derivIt_end =
vec->end();
137 for ( ; derivIt!=derivIt_end ; ++derivIt) {
153 std::cout <<
"NULL pointer to the matrix! Bailing out..."<< std::endl;
165 m_qMatrix->computeInverseWithCheck(Qinv,invertible);
168 std::cout <<
"fitVertex: Q inversion failed. " << std::endl;
179 vec += 2.0*Qinv*vtemp;
186 covcons.computeInverseWithCheck(invcovcons,invertible);
189 std::cout <<
"fitVertex: covcons inversion failed. " << std::endl;
195 cov.computeInverseWithCheck(invcov,invertible);
198 std::cout <<
"fitVertex: cov inversion failed. " << std::endl;
213 (*m_covariance)=invcov;
222 msg<<
" vertex Position: "<< (*m_position) <<
endmsg;
223 msg<<
" vertex Covariance: "<< (*m_covariance) <<
endmsg;
std::vector< size_t > vec
#define AmgSymMatrix(dim)
AlignVertex & operator=(const AlignVertex &rhs)
assignment
@ Refitted
normally refitted, without adding any pseudo-measurement
Amg::Vector3D * m_originalPosition
Amg::Vector3D * m_vVector
void dump(MsgStream &msg)
dump align vertex information
AlignVertex()
default constructor
int Ntracks() const
get the number of contributing tracks
std::vector< AlignModuleVertexDerivatives > * m_derivatives
void fitVertex()
fit the vertex internally
void addDerivatives(std::vector< AlignModuleVertexDerivatives > *vec)
void setConstraint(AmgSymMatrix(3) *, Amg::Vector3D *)
set and get the constraint on VTX position
Amg::Vector3D * m_position
const xAOD::Vertex * m_original
const AmgSymMatrix(3) *covariance() const
This class is a simplest representation of a vertex candidate.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Vertex_v1 Vertex
Define the latest version of the vertex class.