10#include <tracking/trackFindingCDC/hough/boxes/Box.h>
11#include <tracking/trackFindingCDC/topology/ILayer.h>
21 namespace TrackFindingCDC {
54 const std::array<DiscretePhi0, 2>& phi0Vec = houghBox.getBounds<
DiscretePhi0>();
56 std::array<float, 2> xRot;
57 xRot[0] = x * phi0Vec[0]->x() + y * phi0Vec[0]->y();
58 xRot[1] = x * phi0Vec[1]->x() + y * phi0Vec[1]->y();
61 if (onlyPositiveArm) {
63 if (xRot[0] < 0 and xRot[1] < 0)
return ESign::c_Invalid;
66 std::array<float, 2> yRotPlusL;
67 yRotPlusL[0] = -x * phi0Vec[0]->y() + y * phi0Vec[0]->x() - l;
68 yRotPlusL[1] = -x * phi0Vec[1]->y() + y * phi0Vec[1]->x() - l;
70 std::array<float, 2> dist;
71 dist[0] = - yRotPlusL[0];
72 dist[1] = - yRotPlusL[1];
The base class for all boxes.
Representation for a discrete position in an array of discrete positions.
Checker if a position is contained in a family of curves over phi0.
InPhi0Box(float curlCurv=NAN)
Constructor taking the curler curvature - pass a value greater 0 to activate one arm exclusive findin...
float m_curlCurv
Curler curvature - set a value greater zero to activate one arm exclusive finding.
ESign getDistanceSign(const HoughBox &houghBox, float x, float y, float l, float=0, float=0, ILayer=-1) const
Function that gives the sign of the distance from an observed drift circle to the family of curves.
ESign
Enumeration for the distinct sign values of floating point variables.
static ESign common(ESign n1, ESign n2)
Check if two values have a common sign.
Abstract base class for different kinds of events.