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

Definition at line 19 of file KFStrip1DUpdator.h.

Definition at line 18 of file KFStrip1DUpdator.h.

Definition at line 17 of file KFStrip1DUpdator.h.

Constructor & Destructor Documentation

KFStrip1DUpdator::KFStrip1DUpdator ( )
inline

Definition at line 23 of file KFStrip1DUpdator.h.

Referenced by clone().

23 {}
KFStrip1DUpdator::~KFStrip1DUpdator ( )
inlineoverride

Definition at line 25 of file KFStrip1DUpdator.h.

References update().

25 {}

Member Function Documentation

KFStrip1DUpdator* KFStrip1DUpdator::clone ( void  ) const
inlineoverridevirtual

Implements TrajectoryStateUpdator.

Definition at line 29 of file KFStrip1DUpdator.h.

References KFStrip1DUpdator().

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

Implements TrajectoryStateUpdator.

Definition at line 5 of file KFStrip1DUpdator.cc.

References patCaloMETCorrections_cff::C, TrajectoryStateOnSurface::globalParameters(), class-composition::H, Strip1DMeasurementTransformator::hitError(), Strip1DMeasurementTransformator::hitParameters(), Exhume::I, TrajectoryStateOnSurface::localParameters(), funct::m, GlobalTrajectoryParameters::magneticField(), Strip1DMeasurementTransformator::projectedTrajectoryError(), Strip1DMeasurementTransformator::projectedTrajectoryParameters(), Strip1DMeasurementTransformator::projectionMatrix(), LocalTrajectoryParameters::pzSign(), dttmaxenums::R, TrajectoryStateOnSurface::surface(), TrajectoryStateOnSurface::surfaceSide(), Strip1DMeasurementTransformator::trajectoryError(), Strip1DMeasurementTransformator::trajectoryParameters(), and x.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), KFSwitching1DUpdator::update(), Vispa.Gui.PortConnection.PointToPointConnection::updateConnection(), and ~KFStrip1DUpdator().

5  {
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  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 }
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
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