CMS 3D CMS Logo

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

#include <KFUpdator.h>

Inheritance diagram for KFUpdator:
TrajectoryStateUpdator

Public Member Functions

virtual KFUpdatorclone () const
 
 KFUpdator ()
 
TrajectoryStateOnSurface update (const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const
 
template<unsigned int D>
TrajectoryStateOnSurface update (const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const
 
- Public Member Functions inherited from TrajectoryStateUpdator
 TrajectoryStateUpdator ()
 
virtual ~TrajectoryStateUpdator ()
 

Detailed Description

Update trajectory state by combining predicted state and measurement as prescribed in the Kalman Filter algorithm (see R. Fruhwirth, NIM A262 (1987) 444).

x_filtered = x_predicted + K * (measurement - H * x_predicted)

x_filtered, x_predicted filtered and predicted state vectors
measurement measurement vector
H "measurement matrix" projects state vector onto measurement space
K Kalman gain matrix
(formulae for K and error matrix of filtered state not shown)

This implementation works for measurements of all dimensions. It relies on CLHEP double precision vectors and matrices for matrix calculations.

Arguments: TrajectoryState & predicted state
RecHit & reconstructed hit

Initial author: P.Vanlaer 25.02.1999 Ported from ORCA.

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

Definition at line 34 of file KFUpdator.h.

Constructor & Destructor Documentation

KFUpdator::KFUpdator ( )
inline

Definition at line 40 of file KFUpdator.h.

Referenced by clone().

40 {}

Member Function Documentation

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

Implements TrajectoryStateUpdator.

Definition at line 48 of file KFUpdator.h.

References KFUpdator().

48  {
49  return new KFUpdator(*this);
50  }
KFUpdator()
Definition: KFUpdator.h:40
TrajectoryStateOnSurface KFUpdator::update ( const TrajectoryStateOnSurface tsos,
const TransientTrackingRecHit aRecHit 
) const
virtual

Implements TrajectoryStateUpdator.

Definition at line 10 of file KFUpdator.cc.

References TrackingRecHit::dimension(), edm::hlt::Exception, TransientTrackingRecHit::hit(), and mergeVDriftHistosByStation::name.

Referenced by progressbar.ProgressBar::__next__(), relval_steps.Matrix::__setitem__(), relval_steps.Steps::__setitem__(), CosmicTrajectoryBuilder::AddHit(), CRackTrajectoryBuilder::AddHit(), SiStripElectronSeedGenerator::altCheckHitsAndTSOS(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), SeedFromConsecutiveHitsCreator::buildSeed(), SeedForPhotonConversion1Leg::buildSeed(), SeedForPhotonConversionFromQuadruplets::buildSeed(), SiStripElectronSeedGenerator::checkHitsAndTSOS(), SeedFromNuclearInteraction::construct(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), OutInConversionSeedFinder::createSeed(), InOutConversionSeedFinder::createSeed(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), CosmicMuonSmoother::fit(), 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(), ConvBremSeedProducer::produce(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), KFBasedPixelFitter::run(), SeedGeneratorForCRack::seeds(), SeedGeneratorForCosmics::seeds(), SimpleCosmicBONSeeder::seeds(), 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(), CosmicMuonSmoother::smooth(), GsfMultiStateUpdator::update(), KFSwitchingUpdator::update(), KFSwitching1DUpdator::update(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

11  {
12  switch (aRecHit.dimension()) {
13  case 1: return update<1>(tsos,aRecHit);
14  case 2: return update<2>(tsos,aRecHit);
15  case 3: return update<3>(tsos,aRecHit);
16  case 4: return update<4>(tsos,aRecHit);
17  case 5: return update<5>(tsos,aRecHit);
18  }
19  throw cms::Exception("Rec hit of invalid dimension (not 1,2,3,4,5)") <<
20  "The value was " << aRecHit.dimension() <<
21  ", type is " << typeid(aRecHit).name() <<
22  ", persistent rechit type " << (aRecHit.hit() ? typeid(*aRecHit.hit()).name() : "NULL") << "\n";
23 }
virtual int dimension() const =0
virtual const TrackingRecHit * hit() const =0
template<unsigned int D>
TrajectoryStateOnSurface KFUpdator::update ( const TrajectoryStateOnSurface ,
const TransientTrackingRecHit  
) const
virtual