#include <TrackingTools/KalmanUpdators/interface/KFStrip1DUpdator.h>
Public Member Functions | |
virtual KFStrip1DUpdator * | clone () const |
KFStrip1DUpdator () | |
virtual TSOS | update (const TSOS &aTsos, const TransientTrackingRecHit &aHit) const |
~KFStrip1DUpdator () | |
Private Types | |
typedef LocalTrajectoryError | LTE |
typedef LocalTrajectoryParameters | LTP |
typedef TrajectoryStateOnSurface | TSOS |
Ported from ORCA.
Definition at line 15 of file KFStrip1DUpdator.h.
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.
KFStrip1DUpdator::KFStrip1DUpdator | ( | ) | [inline] |
KFStrip1DUpdator::~KFStrip1DUpdator | ( | ) | [inline] |
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 }