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 }
0114 #endif