CMS 3D CMS Logo

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

#include <KFStripUpdator.h>

Inheritance diagram for KFStripUpdator:
TrajectoryStateUpdator

Public Member Functions

virtual KFStripUpdatorclone () const
 
 KFStripUpdator ()
 
virtual TSOS update (const TSOS &aTsos, const TransientTrackingRecHit &aHit) const
 
 ~KFStripUpdator ()
 
- 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 both hit coordinates. Ported from ORCA.

Date:
2007/05/09 13:50:25
Revision:
1.3
Author
todorov, cerati

Definition at line 15 of file KFStripUpdator.h.

Member Typedef Documentation

Definition at line 21 of file KFStripUpdator.h.

Definition at line 20 of file KFStripUpdator.h.

Definition at line 19 of file KFStripUpdator.h.

Constructor & Destructor Documentation

KFStripUpdator::KFStripUpdator ( )
inline

Definition at line 25 of file KFStripUpdator.h.

Referenced by clone().

25 {}
KFStripUpdator::~KFStripUpdator ( )
inline

Definition at line 27 of file KFStripUpdator.h.

27 {}

Member Function Documentation

virtual KFStripUpdator* KFStripUpdator::clone ( void  ) const
inlinevirtual

Implements TrajectoryStateUpdator.

Definition at line 31 of file KFStripUpdator.h.

References KFStripUpdator().

32  {
33  return new KFStripUpdator(*this);
34  }
TrajectoryStateOnSurface KFStripUpdator::update ( const TSOS aTsos,
const TransientTrackingRecHit aHit 
) const
virtual

Implements TrajectoryStateUpdator.

Definition at line 7 of file KFStripUpdator.cc.

References funct::C, TrajectoryStateOnSurface::globalParameters(), StripMeasurementTransformator::hitError(), StripMeasurementTransformator::hitParameters(), Exhume::I, invertPosDefMatrix(), TrajectoryStateOnSurface::localParameters(), m, GlobalTrajectoryParameters::magneticField(), StripMeasurementTransformator::projectedTrajectoryError(), StripMeasurementTransformator::projectedTrajectoryParameters(), StripMeasurementTransformator::projectionMatrix(), LocalTrajectoryParameters::pzSign(), dttmaxenums::R, TrajectoryStateOnSurface::surface(), StripMeasurementTransformator::trajectoryError(), StripMeasurementTransformator::trajectoryParameters(), and x.

Referenced by progressbar.ProgressBar::__next__(), relval_steps.Matrix::__setitem__(), relval_steps.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(), relval_steps.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(), KFSwitchingUpdator::update(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

7  {
8 
9  double pzSign = aTsos.localParameters().pzSign();
10 
11  StripMeasurementTransformator myTrafo(aTsos, aHit);
12 
13  AlgebraicMatrix25 H(myTrafo.projectionMatrix());
14  AlgebraicVector2 m(myTrafo.hitParameters());
15  AlgebraicVector5 x(myTrafo.trajectoryParameters());
16  AlgebraicVector2 px(myTrafo.projectedTrajectoryParameters());
17  // AlgebraicVector px = H*x;
18 
19  AlgebraicSymMatrix22 V(myTrafo.hitError());
20  const AlgebraicSymMatrix55 &C = myTrafo.trajectoryError();
21  AlgebraicSymMatrix22 pC(myTrafo.projectedTrajectoryError());
22  // AlgebraicSymMatrix pC = C.similarity(H);
23 
24  AlgebraicSymMatrix22 R(V + pC);
25  //int ierr; R.invert(ierr); // if (ierr != 0) throw exception;
27 
28  // Compute Kalman gain matrix
29  // AlgebraicMatrix Hm2l(myTrafo.measurement2LocalProj());
30  AlgebraicMatrix52 K(C * ROOT::Math::Transpose(H) * R);
31 
32  // Compute local filtered state vector
33  AlgebraicVector5 fsv(x + K * (m - px));
34 
35  // Compute covariance matrix of local filtered state vector
37  AlgebraicMatrix55 M = (I - K * H);
38  AlgebraicSymMatrix55 fse = ROOT::Math::Similarity(M,C) + ROOT::Math::Similarity(K,V);
39 
40  return TSOS( LTP(fsv, pzSign), LTE(fse), aTsos.surface(),&(aTsos.globalParameters().magneticField()));
41 }
double pzSign() const
Sign of the z-component of the momentum in the local frame.
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepSym< double, 2 > > AlgebraicSymMatrix22
const LocalTrajectoryParameters & localParameters() const
TrajectoryStateOnSurface TSOS
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 2, ROOT::Math::MatRepStd< double, 5, 2 > > AlgebraicMatrix52
bool invertPosDefMatrix(ROOT::Math::SMatrix< T, N, N, ROOT::Math::MatRepSym< T, N > > &m)
LocalTrajectoryParameters LTP
const std::complex< double > I
Definition: I.h:8
ROOT::Math::SVector< double, 5 > AlgebraicVector5
const GlobalTrajectoryParameters & globalParameters() const
ROOT::Math::SMatrix< double, 2, 5, ROOT::Math::MatRepStd< double, 2, 5 > > AlgebraicMatrix25
const Surface & surface() const
const MagneticField & magneticField() const
Definition: DDAxes.h:10
LocalTrajectoryError LTE
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
ROOT::Math::SVector< double, 2 > AlgebraicVector2