12 template <
unsigned int D>
20 using ROOT::Math::SMatrixNoInit;
31 SMatDD V(SMatrixNoInit{}), VMeas(SMatrixNoInit{});
34 holder.template setup<D>(&
r, &V, &pf, &rMeas, &VMeas,
x,
C);
45 Mat5D K =
C*pf.project(R);
46 pf.projectAndSubtractFrom(M,K);
68 edm::LogError(
"KFUpdator")<<
" could not invert martix:\n"<< (V+VMeas);
78 case 1:
return lupdate<1>(tsos,aRecHit);
79 case 2:
return lupdate<2>(tsos,aRecHit);
80 case 3:
return lupdate<3>(tsos,aRecHit);
81 case 4:
return lupdate<4>(tsos,aRecHit);
82 case 5:
return lupdate<5>(tsos,aRecHit);
84 throw cms::Exception(
"Rec hit of invalid dimension (not 1,2,3,4,5)") <<
85 "The value was " << aRecHit.
dimension() <<
86 ", type is " <<
typeid(aRecHit).
name() <<
"\n";
virtual int dimension() const =0
virtual void getKfComponents(KfComponentsHolder &holder) const
ROOT::Math::SMatrix< double, D1, D1, ROOT::Math::MatRepSym< double, D1 > > SymMatrix
const LocalTrajectoryParameters & localParameters() const
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
T x() const
Cartesian x coordinate.
AlgebraicVector5 vector() const
ROOT::Math::SMatrix< double, D1, D2, ROOT::Math::MatRepStd< double, D1, D2 > > Matrix
const SurfaceType & surface() const
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
bool invertPosDefMatrix(ROOT::Math::SMatrix< T, N, N, ROOT::Math::MatRepSym< T, N > > &m)
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
ROOT::Math::SVector< double, D1 > Vector
ROOT::Math::SVector< double, 5 > AlgebraicVector5
const GlobalTrajectoryParameters & globalParameters() const
const MagneticField & magneticField() const
float pzSign() const
Sign of the z-component of the momentum in the local frame.
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55