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.

20 {}

Referenced by clone().

◆ ~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.

26 { return new KFStrip1DUpdator(*this); }

References KFStrip1DUpdator().

◆ update()

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

Implements TrajectoryStateUpdator.

Definition at line 4 of file KFStrip1DUpdator.cc.

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 }

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(), 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().

DDAxes::x
AlgebraicMatrixID
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
Definition: AlgebraicROOTObjects.h:72
Strip1DMeasurementTransformator
Definition: Strip1DMeasurementTransformator.h:17
AlgebraicMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
Definition: AlgebraicROOTObjects.h:55
Exhume::I
const std::complex< double > I
Definition: I.h:8
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:78
AlgebraicSymMatrix11
ROOT::Math::SMatrix< double, 1, 1, ROOT::Math::MatRepSym< double, 1 > > AlgebraicSymMatrix11
Definition: AlgebraicROOTObjects.h:19
TrajectoryStateOnSurface::localParameters
const LocalTrajectoryParameters & localParameters() const
Definition: TrajectoryStateOnSurface.h:73
LocalTrajectoryParameters::pzSign
float pzSign() const
Sign of the z-component of the momentum in the local frame.
Definition: LocalTrajectoryParameters.h:146
cms::cuda::V
uint32_t const T *__restrict__ const uint32_t *__restrict__ int32_t int Histo::index_type cudaStream_t V
Definition: HistoContainer.h:51
KFStrip1DUpdator::KFStrip1DUpdator
KFStrip1DUpdator()
Definition: KFStrip1DUpdator.h:20
AlgebraicVector5
ROOT::Math::SVector< double, 5 > AlgebraicVector5
Definition: AlgebraicROOTObjects.h:14
KFStrip1DUpdator::LTE
LocalTrajectoryError LTE
Definition: KFStrip1DUpdator.h:17
KFStrip1DUpdator::TSOS
TrajectoryStateOnSurface TSOS
Definition: KFStrip1DUpdator.h:15
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
KFStrip1DUpdator::LTP
LocalTrajectoryParameters LTP
Definition: KFStrip1DUpdator.h:16
AlgebraicMatrix15
ROOT::Math::SMatrix< double, 1, 5, ROOT::Math::MatRepStd< double, 1, 5 > > AlgebraicMatrix15
Definition: AlgebraicROOTObjects.h:31
gen::C
C
Definition: PomwigHadronizer.cc:78
data-class-funcs.H
H
Definition: data-class-funcs.py:33
GlobalTrajectoryParameters::magneticField
const MagneticField & magneticField() const
Definition: GlobalTrajectoryParameters.h:106
TrajectoryStateOnSurface::surface
const SurfaceType & surface() const
Definition: TrajectoryStateOnSurface.h:78
TrajectoryStateOnSurface::globalParameters
const GlobalTrajectoryParameters & globalParameters() const
Definition: TrajectoryStateOnSurface.h:64
AlgebraicMatrix51
ROOT::Math::SMatrix< double, 5, 1, ROOT::Math::MatRepStd< double, 5, 1 > > AlgebraicMatrix51
Definition: AlgebraicROOTObjects.h:51
AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition: AlgebraicROOTObjects.h:23
TrajectoryStateOnSurface::surfaceSide
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
Definition: TrajectoryStateOnSurface.h:89
dttmaxenums::R
Definition: DTTMax.h:29