CMS 3D CMS Logo

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

◆ LTE

Definition at line 17 of file KFStrip1DUpdator.h.

◆ LTP

Definition at line 16 of file KFStrip1DUpdator.h.

◆ TSOS

Definition at line 15 of file KFStrip1DUpdator.h.

Constructor & Destructor Documentation

◆ KFStrip1DUpdator()

KFStrip1DUpdator::KFStrip1DUpdator ( )
inline

Definition at line 20 of file KFStrip1DUpdator.h.

Referenced by clone().

20 {}

◆ ~KFStrip1DUpdator()

KFStrip1DUpdator::~KFStrip1DUpdator ( )
inlineoverride

Definition at line 22 of file KFStrip1DUpdator.h.

22 {}

Member Function Documentation

◆ clone()

KFStrip1DUpdator* KFStrip1DUpdator::clone ( void  ) const
inlineoverridevirtual

Implements TrajectoryStateUpdator.

Definition at line 26 of file KFStrip1DUpdator.h.

References KFStrip1DUpdator().

26 { return new KFStrip1DUpdator(*this); }

◆ update()

TrajectoryStateOnSurface KFStrip1DUpdator::update ( const TSOS aTsos,
const TrackingRecHit aHit 
) const
overridevirtual

Implements TrajectoryStateUpdator.

Definition at line 4 of file KFStrip1DUpdator.cc.

References correctionTermsCaloMet_cff::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(), multPhiCorr_741_25nsDY_cfi::px, 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 }
float pzSign() const
Sign of the z-component of the momentum in the local frame.
LocalTrajectoryError LTE
TrajectoryStateOnSurface TSOS
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
ROOT::Math::SMatrix< double, 5, 1, ROOT::Math::MatRepStd< double, 5, 1 > > AlgebraicMatrix51
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
const GlobalTrajectoryParameters & globalParameters() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
const LocalTrajectoryParameters & localParameters() const
const SurfaceType & surface() const
LocalTrajectoryParameters LTP
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t V
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
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const MagneticField & magneticField() const