48 float signedDriftLength,
51 ILayer iCLayer = -1)
const
53 const Vector2D& lowerPhi0Vec(houghBox.template getLowerBound<APhi0>());
54 const Vector2D& upperPhi0Vec(houghBox.template getUpperBound<APhi0>());
57 const float lowerX = x * lowerPhi0Vec.
x() + y * lowerPhi0Vec.
y();
58 const float upperX = x * upperPhi0Vec.
x() + y * upperPhi0Vec.
y();
60 float lowerCurv(getLowerCurv(houghBox));
61 float upperCurv(getUpperCurv(houghBox));
63 const bool lowerIsNonCurler = fabs(lowerCurv) <
m_curlCurv;
64 const bool upperIsNonCurler = fabs(upperCurv) <
m_curlCurv;
66 if (lowerIsNonCurler and upperIsNonCurler) {
67 if (not(lowerX >= 0) and not(upperX >= 0))
return ESign::c_Invalid;
70 const float lowerY = -x * lowerPhi0Vec.
y() + y * lowerPhi0Vec.
x();
71 const float upperY = -x * upperPhi0Vec.
y() + y * upperPhi0Vec.
x();
73 const float upperDXDZ = dxdz * upperPhi0Vec.
x() + dydz * upperPhi0Vec.
y();
74 const float lowerDXDZ = dxdz * lowerPhi0Vec.
x() + dydz * lowerPhi0Vec.
y();
77 const float lowerDYDZ = -dxdz * lowerPhi0Vec.
y() + dydz * lowerPhi0Vec.
x();
78 const float upperDYDZ = -dxdz * upperPhi0Vec.
y() + dydz * upperPhi0Vec.
x();
80 const ESign lowerDistSign = T::getDistanceSign(subordinaryHoughBox,
86 const ESign upperDistSign = T::getDistanceSign(subordinaryHoughBox,