CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Types
KFStrip1DUpdator Class Referencefinal

#include <KFStrip1DUpdator.h>

Inheritance diagram for KFStrip1DUpdator:
TrajectoryStateUpdator

Public Member Functions

KFStrip1DUpdatorclone () const override
 
 KFStrip1DUpdator ()
 
TSOS update (const TSOS &aTsos, const TrackingRecHit &aHit) const override
 
 ~KFStrip1DUpdator () override
 
- Public Member Functions inherited from TrajectoryStateUpdator
 TrajectoryStateUpdator ()
 
virtual ~TrajectoryStateUpdator ()
 

Private Types

typedef LocalTrajectoryError LTE
 
typedef LocalTrajectoryParameters LTP
 
typedef TrajectoryStateOnSurface TSOS
 

Detailed Description

A Kalman Updator that works in the measurement frame and uses only the X coordinate (the one perpendicular to the strip). Ported from ORCA.

Author
todorov, cerati

Definition at line 13 of file KFStrip1DUpdator.h.

Member Typedef Documentation

Definition at line 17 of file KFStrip1DUpdator.h.

Definition at line 16 of file KFStrip1DUpdator.h.

Definition at line 15 of file KFStrip1DUpdator.h.

Constructor & Destructor Documentation

KFStrip1DUpdator::KFStrip1DUpdator ( )
inline

Definition at line 20 of file KFStrip1DUpdator.h.

Referenced by clone().

20 {}
KFStrip1DUpdator::~KFStrip1DUpdator ( )
inlineoverride

Definition at line 22 of file KFStrip1DUpdator.h.

22 {}

Member Function Documentation

KFStrip1DUpdator* KFStrip1DUpdator::clone ( void  ) const
inlineoverridevirtual

Implements TrajectoryStateUpdator.

Definition at line 26 of file KFStrip1DUpdator.h.

References KFStrip1DUpdator().

26 { return new KFStrip1DUpdator(*this); }
TrajectoryStateOnSurface KFStrip1DUpdator::update ( const TSOS aTsos,
const TrackingRecHit aHit 
) const
overridevirtual

Implements TrajectoryStateUpdator.

Definition at line 4 of file KFStrip1DUpdator.cc.

References gen::C, TrajectoryStateOnSurface::globalParameters(), data-class-funcs::H, Strip1DMeasurementTransformator::hitError(), Strip1DMeasurementTransformator::hitParameters(), Exhume::I, TrajectoryStateOnSurface::localParameters(), visualization-live-secondInstance_cfg::m, GlobalTrajectoryParameters::magneticField(), Strip1DMeasurementTransformator::projectedTrajectoryError(), Strip1DMeasurementTransformator::projectedTrajectoryParameters(), Strip1DMeasurementTransformator::projectionMatrix(), LocalTrajectoryParameters::pzSign(), dttmaxenums::R, TrajectoryStateOnSurface::surface(), TrajectoryStateOnSurface::surfaceSide(), Strip1DMeasurementTransformator::trajectoryError(), Strip1DMeasurementTransformator::trajectoryParameters(), cms::cuda::V, and x.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), progressbar.ProgressBar::finish(), MatrixUtil.Steps::overwrite(), and KFSwitching1DUpdator::update().

4  {
5  double pzSign = aTsos.localParameters().pzSign();
6 
7  Strip1DMeasurementTransformator myTrafo(aTsos, aHit);
8 
9  double m = myTrafo.hitParameters();
10  AlgebraicVector5 x(myTrafo.trajectoryParameters());
11  double px = myTrafo.projectedTrajectoryParameters();
12 
13  AlgebraicMatrix15 H(myTrafo.projectionMatrix());
14  double V = myTrafo.hitError();
15  const AlgebraicSymMatrix55& C(myTrafo.trajectoryError());
16  double pC = myTrafo.projectedTrajectoryError();
17 
18  double R = 1. / (V + pC);
19 
20  // Compute Kalman gain matrix
21  AlgebraicMatrix51 K(R * (C * ROOT::Math::Transpose(H)));
22 
23  // Compute local filtered state vector
24  AlgebraicVector5 fsv = x + K.Col(0) * (m - px);
25 
26  // Compute covariance matrix of local filtered state vector
28  AlgebraicMatrix55 M = I - K * H;
29  AlgebraicSymMatrix55 fse = ROOT::Math::Similarity(M, C) + ROOT::Math::Similarity(K, AlgebraicSymMatrix11(V));
30  // AlgebraicMatrix M((I - K * H)*C); // already commented when CLHEP was in use
31  // AlgebraicSymMatrix fse(5,0); fse.assign(M); // already commented when CLHEP was in use
32 
33  return TSOS(
34  LTP(fsv, pzSign), LTE(fse), aTsos.surface(), &(aTsos.globalParameters().magneticField()), aTsos.surfaceSide());
35 }
LocalTrajectoryError LTE
TrajectoryStateOnSurface TSOS
ROOT::Math::SMatrix< double, 5, 1, ROOT::Math::MatRepStd< double, 5, 1 > > AlgebraicMatrix51
const LocalTrajectoryParameters & localParameters() const
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
LocalTrajectoryParameters LTP
const SurfaceType & surface() const
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t V
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
ROOT::Math::SVector< double, 5 > AlgebraicVector5
const std::complex< double > I
Definition: I.h:8
ROOT::Math::SMatrix< double, 1, 5, ROOT::Math::MatRepStd< double, 1, 5 > > AlgebraicMatrix15
ROOT::Math::SMatrix< double, 1, 1, ROOT::Math::MatRepSym< double, 1 > > AlgebraicSymMatrix11
const GlobalTrajectoryParameters & globalParameters() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const MagneticField & magneticField() const
float pzSign() const
Sign of the z-component of the momentum in the local frame.