CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
KFStrip1DUpdator.cc
Go to the documentation of this file.
3 
5 KFStrip1DUpdator::update(const TSOS& aTsos, const TrackingRecHit& aHit) const {
6 
7  double pzSign = aTsos.localParameters().pzSign();
8 
9  Strip1DMeasurementTransformator myTrafo(aTsos, aHit);
10 
11  double m = myTrafo.hitParameters();
13  double px = myTrafo.projectedTrajectoryParameters();
14 
16  double V = myTrafo.hitError();
17  const AlgebraicSymMatrix55& C(myTrafo.trajectoryError());
18  double pC = myTrafo.projectedTrajectoryError();
19 
20  double R = 1./(V + pC);
21 
22  // Compute Kalman gain matrix
23  AlgebraicMatrix51 K(R * (C * ROOT::Math::Transpose(H)));
24 
25  // Compute local filtered state vector
26  AlgebraicVector5 fsv = x + K.Col(0) * (m - px);
27 
28  // Compute covariance matrix of local filtered state vector
30  AlgebraicMatrix55 M = I - K * H;
31  AlgebraicSymMatrix55 fse = ROOT::Math::Similarity(M, C) + ROOT::Math::Similarity(K, AlgebraicSymMatrix11(V) );
32 // AlgebraicMatrix M((I - K * H)*C); // already commented when CLHEP was in use
33 // AlgebraicSymMatrix fse(5,0); fse.assign(M); // already commented when CLHEP was in use
34 
35  return TSOS( LTP(fsv, pzSign), LTE(fse), aTsos.surface(), &(aTsos.globalParameters().magneticField()), aTsos.surfaceSide() );
36 }
37 
38 
39 
40 
41 
LocalTrajectoryError LTE
TrajectoryStateOnSurface TSOS
const LocalTrajectoryParameters & localParameters() const
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 5, 1, ROOT::Math::MatRepStd< double, 5, 1 > > AlgebraicMatrix51
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
LocalTrajectoryParameters LTP
TSOS update(const TSOS &aTsos, const TrackingRecHit &aHit) const override
const SurfaceType & surface() const
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
const std::complex< double > I
Definition: I.h:8
ROOT::Math::SMatrix< double, 1, 5, ROOT::Math::MatRepStd< double, 1, 5 > > AlgebraicMatrix15
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
ROOT::Math::SMatrix< double, 1, 1, ROOT::Math::MatRepSym< double, 1 > > AlgebraicSymMatrix11