3 #include <Math/SMatrix.h> 4 #include <Math/MatrixFunctions.h> 17 static inline double sqr(
double arg) {
return arg *
arg; }
21 typedef SVector<double, 3> Vector3;
23 typedef SMatrix<double, 3, 3, MatRepSym<double, 3> > Matrix3S;
24 typedef SMatrix<double, 6, 6, MatRepSym<double, 6> > Matrix6S;
25 typedef SMatrix<double, 3, 3> Matrix33;
26 typedef SMatrix<double, 3, 6> Matrix36;
46 double rho2 = pred.
rho2();
48 double lambda = (position_ - origin) * direction / rho2;
51 Vector3
b =
conv(direction) / rho;
52 Vector3 ca =
conv(position_ - pos);
54 Matrix33 pA = TensorProd(b, b);
55 Matrix33 pB = TensorProd(b, ca);
58 jacobian.Place_at(-pA + Matrix33(SMatrixIdentity()), 0, 0);
59 jacobian.Place_at(pB / rho, 0, 3);
62 if (withMeasurementError)
63 error += Similarity(pA, covariance_);
71 return Vertex(position_, covariance_);
std::pair< GlobalPoint, GlobalError > Vertex
const GlobalPoint origin() const
static HepMC::IO_HEPEVT conv
CartesianError cartesianError(double lambda=0.) const
Vertex vertexStateOnMeasurement(const GhostTrackPrediction &pred, bool withGhostTrackError) const override
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalVector
vector in glovbal coordinate system
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalPoint
point in global coordinate system
Square< F >::type sqr(const F &f)
Vertex vertexStateOnGhostTrack(const GhostTrackPrediction &pred, bool withMeasurementError) const override
const GlobalVector direction() const