13 case 1:
return update<1>(tsos,aRecHit);
14 case 2:
return update<2>(tsos,aRecHit);
15 case 3:
return update<3>(tsos,aRecHit);
16 case 4:
return update<4>(tsos,aRecHit);
17 case 5:
return update<5>(tsos,aRecHit);
19 throw cms::Exception(
"Rec hit of invalid dimension (not 1,2,3,4,5)") <<
20 "The value was " << aRecHit.
dimension() <<
21 ", type is " <<
typeid(aRecHit).
name() <<
"\n";
26 template <
unsigned int D>
47 holder.template setup<D>(&
r, &V, &
H, &pf, &rMeas, &VMeas,
x,
C);
70 pf.projectAndSubtractFrom(M,K);
73 K = (
C * ROOT::Math::Transpose(H)) * R;
96 edm::LogError(
"KFUpdator")<<
" could not invert martix:\n"<< (V+VMeas);
104 template <
unsigned int D>
122 VecD
r = asSVector<D>(aRecHit.
parameters()) - me.measuredParameters<
D>(aRecHit);
126 SMatDD
R = V + me.measuredError<
D>(aRecHit);
131 Mat5D K = C * ROOT::Math::Transpose(H) *
R;
virtual int dimension() const =0
virtual void getKfComponents(KfComponentsHolder &holder) const
double pzSign() const
Sign of the z-component of the momentum in the local frame.
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
virtual AlgebraicVector parameters() const =0
AlgebraicVector5 vector() const
ROOT::Math::SMatrix< double, D1, D2, ROOT::Math::MatRepStd< double, D1, D2 > > Matrix
const SurfaceType & surface() 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 std::complex< double > I
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
ROOT::Math::SVector< double, D1 > Vector
ROOT::Math::SVector< double, 5 > AlgebraicVector5
const GlobalTrajectoryParameters & globalParameters() const
virtual AlgebraicMatrix projectionMatrix() const =0
const MagneticField & magneticField() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
DecomposeProduct< arg, typename Div::arg > D
virtual AlgebraicSymMatrix parametersError() const =0