Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-08-17 23:57:48

0001 #ifndef RecoTracker_MkFitCore_src_KalmanUtilsMPlex_h
0002 #define RecoTracker_MkFitCore_src_KalmanUtilsMPlex_h
0003 
0004 #include "RecoTracker/MkFitCore/interface/Track.h"
0005 #include "Matrix.h"
0006 
0007 namespace mkfit {
0008 
0009   //------------------------------------------------------------------------------
0010 
0011   enum KalmanFilterOperation { KFO_Calculate_Chi2 = 1, KFO_Update_Params = 2, KFO_Local_Cov = 4 };
0012 
0013   //------------------------------------------------------------------------------
0014 
0015   void kalmanUpdate(const MPlexLS& psErr,
0016                     const MPlexLV& psPar,
0017                     const MPlexHS& msErr,
0018                     const MPlexHV& msPar,
0019                     MPlexLS& outErr,
0020                     MPlexLV& outPar,
0021                     const int N_proc);
0022 
0023   void kalmanPropagateAndUpdate(const MPlexLS& psErr,
0024                                 const MPlexLV& psPar,
0025                                 MPlexQI& Chg,
0026                                 const MPlexHS& msErr,
0027                                 const MPlexHV& msPar,
0028                                 MPlexLS& outErr,
0029                                 MPlexLV& outPar,
0030                                 const int N_proc,
0031                                 const PropagationFlags propFlags,
0032                                 const bool propToHit);
0033 
0034   void kalmanComputeChi2(const MPlexLS& psErr,
0035                          const MPlexLV& psPar,
0036                          const MPlexQI& inChg,
0037                          const MPlexHS& msErr,
0038                          const MPlexHV& msPar,
0039                          MPlexQF& outChi2,
0040                          const int N_proc);
0041 
0042   void kalmanPropagateAndComputeChi2(const MPlexLS& psErr,
0043                                      const MPlexLV& psPar,
0044                                      const MPlexQI& inChg,
0045                                      const MPlexHS& msErr,
0046                                      const MPlexHV& msPar,
0047                                      MPlexQF& outChi2,
0048                                      MPlexLV& propPar,
0049                                      const int N_proc,
0050                                      const PropagationFlags propFlags,
0051                                      const bool propToHit);
0052 
0053   void kalmanOperation(const int kfOp,
0054                        const MPlexLS& psErr,
0055                        const MPlexLV& psPar,
0056                        const MPlexHS& msErr,
0057                        const MPlexHV& msPar,
0058                        MPlexLS& outErr,
0059                        MPlexLV& outPar,
0060                        MPlexQF& outChi2,
0061                        const int N_proc);
0062 
0063   //------------------------------------------------------------------------------
0064 
0065   void kalmanUpdateEndcap(const MPlexLS& psErr,
0066                           const MPlexLV& psPar,
0067                           const MPlexHS& msErr,
0068                           const MPlexHV& msPar,
0069                           MPlexLS& outErr,
0070                           MPlexLV& outPar,
0071                           const int N_proc);
0072 
0073   void kalmanPropagateAndUpdateEndcap(const MPlexLS& psErr,
0074                                       const MPlexLV& psPar,
0075                                       MPlexQI& Chg,
0076                                       const MPlexHS& msErr,
0077                                       const MPlexHV& msPar,
0078                                       MPlexLS& outErr,
0079                                       MPlexLV& outPar,
0080                                       const int N_proc,
0081                                       const PropagationFlags propFlags,
0082                                       const bool propToHit);
0083 
0084   void kalmanComputeChi2Endcap(const MPlexLS& psErr,
0085                                const MPlexLV& psPar,
0086                                const MPlexQI& inChg,
0087                                const MPlexHS& msErr,
0088                                const MPlexHV& msPar,
0089                                MPlexQF& outChi2,
0090                                const int N_proc);
0091 
0092   void kalmanPropagateAndComputeChi2Endcap(const MPlexLS& psErr,
0093                                            const MPlexLV& psPar,
0094                                            const MPlexQI& inChg,
0095                                            const MPlexHS& msErr,
0096                                            const MPlexHV& msPar,
0097                                            MPlexQF& outChi2,
0098                                            MPlexLV& propPar,
0099                                            const int N_proc,
0100                                            const PropagationFlags propFlags,
0101                                            const bool propToHit);
0102 
0103   void kalmanOperationEndcap(const int kfOp,
0104                              const MPlexLS& psErr,
0105                              const MPlexLV& psPar,
0106                              const MPlexHS& msErr,
0107                              const MPlexHV& msPar,
0108                              MPlexLS& outErr,
0109                              MPlexLV& outPar,
0110                              MPlexQF& outChi2,
0111                              const int N_proc);
0112 
0113 }  // end namespace mkfit
0114 #endif