Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:32

0001 #ifndef _TRACKER_KFUPDATOR_H_
0002 #define _TRACKER_KFUPDATOR_H_
0003 
0004 /** \class KFUpdator
0005  * Update trajectory state by combining predicted state and measurement 
0006  * as prescribed in the Kalman Filter algorithm 
0007  * (see R. Fruhwirth, NIM A262 (1987) 444). <BR>
0008  *
0009  * x_filtered = x_predicted + K * (measurement - H * x_predicted) <BR> 
0010  *
0011  * x_filtered, x_predicted    filtered and predicted state vectors <BR>
0012  * measurement                measurement vector <BR>
0013  * H "measurement matrix"     projects state vector onto measurement space <BR>
0014  * K                          Kalman gain matrix <BR>
0015  * (formulae for K and error matrix of filtered state not shown) <BR>
0016  *
0017  * This implementation works for measurements of all dimensions.
0018  * It relies on CLHEP double precision vectors and matrices for 
0019  * matrix calculations. <BR>
0020  *
0021  * Arguments: TrajectoryState &   predicted state <BR>
0022  *            RecHit &            reconstructed hit <BR>
0023  *
0024  * Initial author: P.Vanlaer 25.02.1999
0025  * Ported from ORCA.
0026  *
0027  *  \author vanlaer, cerati
0028  */
0029 
0030 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
0031 
0032 class KFUpdator final : public TrajectoryStateUpdator {
0033 public:
0034   // methods of Updator
0035 
0036   KFUpdator() {}
0037 
0038   TrajectoryStateOnSurface update(const TrajectoryStateOnSurface&, const TrackingRecHit&) const override;
0039 
0040   KFUpdator* clone() const override { return new KFUpdator(*this); }
0041 };
0042 
0043 #endif