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 TransientTrackingRecHit& aHit) const {
6 
7  double pzSign = aTsos.localParameters().pzSign();
8 
9  Strip1DMeasurementTransformator myTrafo(aTsos, aHit);
10 
11  double m = myTrafo.hitParameters();
12  AlgebraicVector5 x(myTrafo.trajectoryParameters());
13  double px = myTrafo.projectedTrajectoryParameters();
14 
15  AlgebraicMatrix15 H(myTrafo.projectionMatrix());
16  double V = myTrafo.hitError();
17  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 
double pzSign() const
Sign of the z-component of the momentum in the local frame.
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
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
TrajectoryStateOnSurface TSOS
Definition: TestHits.cc:19
ROOT::Math::SVector< double, 5 > AlgebraicVector5
const GlobalTrajectoryParameters & globalParameters() const
#define update(a, b)
const MagneticField & magneticField() const
Definition: DDAxes.h:10
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