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;
38 bool withMeasurementError)
const {
44 double rho2 = pred.
rho2();
49 Vector3
b =
conv(direction) / rho;
52 Matrix33 pA = TensorProd(
b,
b);
53 Matrix33 pB = TensorProd(
b, ca);
56 jacobian.Place_at(-pA + Matrix33(SMatrixIdentity()), 0, 0);
57 jacobian.Place_at(pB / rho, 0, 3);
60 if (withMeasurementError)
67 bool withGhostTrackError)
const {