CMS 3D CMS Logo

KFStrip1DUpdator Class Reference

A Kalman Updator that works in the measurement frame and uses only the X coordinate (the one perpendicular to the strip). More...

#include <TrackingTools/KalmanUpdators/interface/KFStrip1DUpdator.h>

Inheritance diagram for KFStrip1DUpdator:

TrajectoryStateUpdator

List of all members.

Public Member Functions

virtual KFStrip1DUpdatorclone () const
 KFStrip1DUpdator ()
virtual TSOS update (const TSOS &aTsos, const TransientTrackingRecHit &aHit) const
 ~KFStrip1DUpdator ()

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.

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

Definition at line 15 of file KFStrip1DUpdator.h.


Member Typedef Documentation

typedef LocalTrajectoryError KFStrip1DUpdator::LTE [private]

Definition at line 21 of file KFStrip1DUpdator.h.

typedef LocalTrajectoryParameters KFStrip1DUpdator::LTP [private]

Definition at line 20 of file KFStrip1DUpdator.h.

typedef TrajectoryStateOnSurface KFStrip1DUpdator::TSOS [private]

Definition at line 19 of file KFStrip1DUpdator.h.


Constructor & Destructor Documentation

KFStrip1DUpdator::KFStrip1DUpdator (  )  [inline]

Definition at line 25 of file KFStrip1DUpdator.h.

Referenced by clone().

00025 {}

KFStrip1DUpdator::~KFStrip1DUpdator (  )  [inline]

Definition at line 27 of file KFStrip1DUpdator.h.

00027 {}


Member Function Documentation

virtual KFStrip1DUpdator* KFStrip1DUpdator::clone ( void   )  const [inline, virtual]

Implements TrajectoryStateUpdator.

Definition at line 31 of file KFStrip1DUpdator.h.

References KFStrip1DUpdator().

00032   {
00033     return new KFStrip1DUpdator(*this);
00034   }

TrajectoryStateOnSurface KFStrip1DUpdator::update ( const TSOS aTsos,
const TransientTrackingRecHit aHit 
) const [virtual]

Implements TrajectoryStateUpdator.

Definition at line 5 of file KFStrip1DUpdator.cc.

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

Referenced by KFSwitching1DUpdator::update().

00005                                                                                      {
00006 
00007   double pzSign = aTsos.localParameters().pzSign();
00008 
00009   Strip1DMeasurementTransformator myTrafo(aTsos, aHit);
00010 
00011   double m = myTrafo.hitParameters();
00012   AlgebraicVector5 x(myTrafo.trajectoryParameters());
00013   double px = myTrafo.projectedTrajectoryParameters();
00014   
00015   AlgebraicMatrix15 H(myTrafo.projectionMatrix());
00016   double V = myTrafo.hitError();
00017   AlgebraicSymMatrix55 C(myTrafo.trajectoryError());
00018   double pC = myTrafo.projectedTrajectoryError();
00019 
00020   double R = 1./(V + pC);
00021   
00022   // Compute Kalman gain matrix
00023   AlgebraicMatrix51 K(R * (C * ROOT::Math::Transpose(H)));
00024 
00025   // Compute local filtered state vector
00026   AlgebraicVector5 fsv = x + K.Col(0) * (m - px);
00027 
00028   // Compute covariance matrix of local filtered state vector
00029   AlgebraicSymMatrix55 I = AlgebraicMatrixID();
00030   AlgebraicMatrix55 M = I - K * H;
00031   AlgebraicSymMatrix55 fse = ROOT::Math::Similarity(M, C) +  ROOT::Math::Similarity(K, AlgebraicSymMatrix11(V) );
00032 //   AlgebraicMatrix M((I - K * H)*C);            // already commented when CLHEP was in use
00033 //   AlgebraicSymMatrix fse(5,0); fse.assign(M);  // already commented when CLHEP was in use
00034 
00035   return TSOS( LTP(fsv, pzSign), LTE(fse), aTsos.surface(), &(aTsos.globalParameters().magneticField()));  
00036 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:26:17 2009 for CMSSW by  doxygen 1.5.4