Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:38:01

0001 #ifndef RecoTracker_PixelTrackFitting_interface_alpaka_FitResult_h
0002 #define RecoTracker_PixelTrackFitting_interface_alpaka_FitResult_h
0003 
0004 #include <cstdint>
0005 
0006 #include <Eigen/Core>
0007 
0008 namespace riemannFit {
0009 
0010   using Vector2d = Eigen::Vector2d;
0011   using Vector3d = Eigen::Vector3d;
0012   using Vector4d = Eigen::Vector4d;
0013   using Vector5d = Eigen::Matrix<double, 5, 1>;
0014   using Matrix2d = Eigen::Matrix2d;
0015   using Matrix3d = Eigen::Matrix3d;
0016   using Matrix4d = Eigen::Matrix4d;
0017   using Matrix5d = Eigen::Matrix<double, 5, 5>;
0018   using Matrix6d = Eigen::Matrix<double, 6, 6>;
0019 
0020   template <int N>
0021   using Matrix3xNd = Eigen::Matrix<double, 3, N>;  // used for inputs hits
0022 
0023   struct CircleFit {
0024     Vector3d par;  //!< parameter: (X0,Y0,R)
0025     Matrix3d cov;
0026     /*!< covariance matrix: \n
0027       |cov(X0,X0)|cov(Y0,X0)|cov( R,X0)| \n
0028       |cov(X0,Y0)|cov(Y0,Y0)|cov( R,Y0)| \n
0029       |cov(X0, R)|cov(Y0, R)|cov( R, R)|
0030     */
0031     int32_t qCharge;  //!< particle charge
0032     float chi2;
0033   };
0034 
0035   struct LineFit {
0036     Vector2d par;  //!<(cotan(theta),Zip)
0037     Matrix2d cov;
0038     /*!<
0039       |cov(c_t,c_t)|cov(Zip,c_t)| \n
0040       |cov(c_t,Zip)|cov(Zip,Zip)|
0041     */
0042     double chi2;
0043   };
0044 
0045   struct HelixFit {
0046     Vector5d par;  //!<(phi,Tip,pt,cotan(theta)),Zip)
0047     Matrix5d cov;
0048     /*!< ()->cov() \n
0049       |(phi,phi)|(Tip,phi)|(p_t,phi)|(c_t,phi)|(Zip,phi)| \n
0050       |(phi,Tip)|(Tip,Tip)|(p_t,Tip)|(c_t,Tip)|(Zip,Tip)| \n
0051       |(phi,p_t)|(Tip,p_t)|(p_t,p_t)|(c_t,p_t)|(Zip,p_t)| \n
0052       |(phi,c_t)|(Tip,c_t)|(p_t,c_t)|(c_t,c_t)|(Zip,c_t)| \n
0053       |(phi,Zip)|(Tip,Zip)|(p_t,Zip)|(c_t,Zip)|(Zip,Zip)|
0054     */
0055     float chi2_circle;
0056     float chi2_line;
0057     //    Vector4d fast_fit;
0058     int32_t qCharge;  //!< particle charge
0059   };  // __attribute__((aligned(16)));
0060 
0061 }  // namespace riemannFit
0062 
0063 #endif  // RecoTracker_PixelTrackFitting_interface_alpaka_FitResult_h