14 #include "GaudiKernel/MsgStream.h"
19 const double NaN(std::numeric_limits<double>::quiet_NaN());
29 , m_globalPosition(std::nullopt)
38 , m_globalPosition(std::nullopt)
46 , m_globalPosition(
Amg::
Vector3D(perigee.position()))
50 "Inconsistent input data, Perigee not expressed at vertex!",
52 StatusCode::RECOVERABLE);
61 double ptInv = 1. / perigee.momentum().perp();
62 jacobian(0, 0) = -ptInv * perigee.momentum().y();
63 jacobian(0, 1) = ptInv * perigee.momentum().x();
66 const Amg::MatrixX& vtxCov = rvertex.covariancePosition();
74 if (m_globalPosition) {
75 return *m_globalPosition;
77 return INVALID_VECTOR3D;
83 std::string
name(
typeid(*this).name());
84 sl <<
"Concrete dump method not implemented - using base class" << std::endl;
85 sl <<
name <<
"\t local position = " << this->localParameters() << std::endl;
86 sl <<
name <<
"\t global position ( " << this->globalPosition().x() <<
" , "
87 << this->globalPosition().y() <<
" , " << this->globalPosition().z()
88 <<
" ) " << std::endl;
89 sl <<
name <<
"\t has Error Matrix: " << std::endl;
90 sl << this->localCovariance() << std::endl;
91 sl <<
name <<
"\t has associated surface:" << std::endl;
92 sl << this->associatedSurface() << std::endl;
99 std::string
name(
typeid(*this).name());
100 sl <<
"Concrete dump method not implemented - using base class" << std::endl;
101 sl <<
name <<
"\t local position = " << this->localParameters() << std::endl;
102 sl <<
name <<
"\t global position ( " << this->globalPosition().x() <<
" , "
103 << this->globalPosition().y() <<
" , " << this->globalPosition().z()
104 <<
" ) " << std::endl;
105 sl <<
name <<
"\t has Error Matrix: " << std::endl;
106 sl << this->localCovariance() << std::endl;
107 sl <<
name <<
"\t has associated surface:" << std::endl;
108 sl << this->associatedSurface() << std::endl;