|
template<typename TAcc , typename M3xN , typename V4 , int n> |
ALPAKA_FN_ACC ALPAKA_FN_INLINE void | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::__attribute__ ((always_inline)) prepareBrokenLineData(const TAcc &acc |
| Computes the data needed for the Broken Line fit procedure that are mainly common for the circle and the line fit. More...
|
|
template<typename TAcc , typename M3xN , typename M6xN , typename V4 , int n> |
ALPAKA_FN_ACC ALPAKA_FN_INLINE void | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::circleFit (const TAcc &acc, const M3xN &hits, const M6xN &hits_ge, const V4 &fast_fit, const double bField, PreparedBrokenLineData< n > &data, karimaki_circle_fit &circle_results) |
| Performs the Broken Line fit in the curved track case (that is, the fit parameters are the interceptions u and the curvature correction ). More...
|
|
if | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::constexpr (n > 3) |
|
template<typename TAcc , typename M3xN , typename V4 > |
ALPAKA_FN_ACC ALPAKA_FN_INLINE void | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::fastFit (const TAcc &acc, const M3xN &hits, V4 &result) |
| A very fast helix fit. More...
|
|
| ALPAKA_ACCELERATOR_NAMESPACE::brokenline::for (u_int i=0;i< n;i++) |
|
template<typename TAcc , typename V4 , typename M6xN , int n> |
ALPAKA_FN_ACC ALPAKA_FN_INLINE void | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::lineFit (const TAcc &acc, const M6xN &hits_ge, const V4 &fast_fit, const double bField, const PreparedBrokenLineData< n > &data, riemannFit::LineFit &line_results) |
| Performs the Broken Line fit in the straight track case (that is, the fit parameters are only the interceptions u). More...
|
|
template<typename TAcc , int n> |
ALPAKA_FN_ACC ALPAKA_FN_INLINE riemannFit::MatrixNd< n > | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::matrixC_u (const TAcc &acc, const riemannFit::VectorNd< n > &weights, const riemannFit::VectorNd< n > &sTotal, const riemannFit::VectorNd< n > &varBeta) |
| Computes the n-by-n band matrix obtained minimizing the Broken Line's cost function w.r.t u. This is the whole matrix in the case of the line fit and the main n-by-n block in the case of the circle fit. More...
|
|
template<typename TAcc > |
ALPAKA_FN_ACC ALPAKA_FN_INLINE double | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::multScatt (const TAcc &acc, const double &length, const double bField, const double radius, int layer, double slope) |
| Computes the Coulomb multiple scattering variance of the planar angle. More...
|
|
template<typename TAcc > |
ALPAKA_FN_ACC ALPAKA_FN_INLINE riemannFit::Matrix2d | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::rotationMatrix (const TAcc &acc, double slope) |
| Computes the 2D rotation matrix that transforms the line y=slope*x into the line y=0. More...
|
|
template<typename TAcc > |
ALPAKA_FN_ACC ALPAKA_FN_INLINE void | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::translateKarimaki (const TAcc &acc, karimaki_circle_fit &circle, double x0, double y0, riemannFit::Matrix3d &jacobian) |
| Changes the Karimäki parameters (and consequently their covariance matrix) under a translation of the coordinate system, such that the old origin has coordinates (x0,y0) in the new coordinate system. The formulas are taken from Karimäki V., 1990, Effective circle fitting for particle trajectories, Nucl. Instr. and Meth. A305 (1991) 187. More...
|
|
results | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::varBeta (0) |
|
|
ALPAKA_FN_ACC ALPAKA_FN_INLINE void const M3xN const V4 const double | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::bField |
|
| ALPAKA_ACCELERATOR_NAMESPACE::brokenline::dVec = hits.block(0, mId, 2, 1) - hits.block(0, 0, 2, 1) |
|
riemannFit::Vector2d | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::eVec = hits.block(0, n - 1, 2, 1) - hits.block(0, mId, 2, 1) |
|
ALPAKA_FN_ACC ALPAKA_FN_INLINE void const M3xN const V4 & | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::fast_fit |
|
ALPAKA_FN_ACC ALPAKA_FN_INLINE void const M3xN & | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::hits |
|
int | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::mId = 1 |
|
riemannFit::Matrix2xNd< n > | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::pointsSZ = riemannFit::Matrix2xNd<n>::Zero() |
|
results | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::qCharge = riemannFit::cross2D(acc, dVec, eVec) > 0 ? -1 : 1 |
|
results | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::radii = hits.block(0, 0, 2, n) - fast_fit.head(2) * riemannFit::MatrixXd::Constant(1, n, 1) |
|
ALPAKA_FN_ACC ALPAKA_FN_INLINE void const M3xN const V4 const double PreparedBrokenLineData< n > & | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::results |
|
riemannFit::Matrix2d | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::rotMat = rotationMatrix(acc, slope) |
|
const double | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::slope = -results.qCharge / fast_fit(3) |
|
results | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::sTotal = pointsSZ.block(0, 0, 1, n).transpose() |
|
results | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::zInSZplane = pointsSZ.block(1, 0, 1, n).transpose() |
|
riemannFit::VectorNd< n > | ALPAKA_ACCELERATOR_NAMESPACE::brokenline::zVec = hits.block(2, 0, 1, n).transpose() |
|