40 double epp = err(2, 2);
41 double ehh = err(3, 3);
42 double ehp = err(3, 2);
46 double sh = 1. / std::cosh(eta);
48 double sh3 = sh * sh2;
49 double sh4 = sh * sh3;
51 double th = std::tanh(eta);
54 double cphi = std::cos(phi);
55 double cphi2 = cphi * cphi;
57 double sphi = std::sin(phi);
58 double sphi2 = sphi * sphi;
60 double vxx = sh2 * th2 * cphi2 * ehh + sh2 * sphi2 * epp + 2. * sh2 * th * sphi * cphi * ehp;
61 double vyy = sh2 * th2 * sphi2 * ehh + sh2 * cphi2 * epp - 2. * sh2 * th * sphi * cphi * ehp;
62 double vzz = sh4 * epp;
65 sh2 * th2 * sphi * cphi * ehh - sh2 * sphi * cphi * epp - sh2 * th * (cphi2 - sphi2) * ehp;
66 double vyz = -sh3 * th * sphi * ehh + sh3 * cphi * ehp;
67 double vxz = -sh3 * th * cphi * ehh - sh3 * sphi * ehp;
75 double ddd2 = vxx * vxx + vyy * vyy + vzz * vzz - 2. * vxx * vyy - 2. * vxx * vzz -
76 2. * vyy * vzz + 4. * vxy * vxy + 4. * vyz * vyz + 4. * vxz * vxz;
77 double ddd = sqrt(ddd2 > 0. ? ddd2 : 0.);
78 double lambda2 = 0.5 * (vxx + vyy + vzz + ddd);
79 double lambda = sqrt(lambda2 > 0. ? lambda2 : 0.);
KSymMatrix< 5 >::type TrackError
Track error matrix, dimension 5x5.
void getStartingError(TrackError &err) const
Get starting error matrix for Kalman filter.
KVector< 5 >::type TrackVector
Track state vector, dimension 5.
double PointingError(const TrackVector &vec, const TrackError &err) const
Get pointing error of track.
Base class for Kalman filter line surfaces.
SurfLine()
Default constructor.
virtual ~SurfLine()
Destructor.