42 double epp =
err(2, 2);
43 double ehh =
err(3, 3);
44 double ehp =
err(3, 2);
48 double sh = 1./std::cosh(eta);
53 double th = std::tanh(eta);
56 double cphi = std::cos(phi);
57 double cphi2 = cphi*cphi;
59 double sphi = std::sin(phi);
60 double sphi2 = sphi*sphi;
62 double vxx = sh2*th2*cphi2 * ehh + sh2*sphi2 * epp + 2.*sh2*th*sphi*cphi * ehp;
63 double vyy = sh2*th2*sphi2 * ehh + sh2*cphi2 * epp - 2.*sh2*th*sphi*cphi * ehp;
64 double vzz = sh4 * epp;
66 double vxy = sh2*th2*sphi*cphi * ehh - sh2*sphi*cphi * epp - sh2*th*(cphi2-sphi2) * ehp;
67 double vyz = -sh3*th*sphi * ehh + sh3*cphi * ehp;
68 double vxz = -sh3*th*cphi * ehh - sh3*sphi * ehp;
76 double ddd2 = vxx*vxx + vyy*vyy + vzz*vzz
77 - 2.*vxx*vyy - 2.*vxx*vzz - 2.*vyy*vzz
78 + 4.*vxy*vxy + 4.*vyz*vyz + 4.*vxz*vxz;
79 double ddd = sqrt(ddd2 > 0. ? ddd2 : 0.);
80 double lambda2 = 0.5 * ( vxx + vyy + vzz + ddd);
81 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.
void err(const char *fmt,...)
Base class for Kalman filter line surfaces.
SurfLine()
Default constructor.
virtual ~SurfLine()
Destructor.