Checker if a position is contained in a family of curves over phi0 and tan lambda.
More...
#include <InPhi0CurvTanLBox.h>
|
| InPhi0CurvTanLBox (float curlCurv) |
| Create a new box with the given curler curvature.
|
|
ESign | getDistanceSign (const HoughBox &houghBox, float x, float y, float l, float dxdz, float dydz, ILayer iCLayer=-1) const |
| Function that gives the sign of the distance from an observed drift circle to the sweeped object. More...
|
|
|
float | m_curlCurv |
| Curler curvature - set to value greater zero to activate one arm exclusive finding.
|
|
Checker if a position is contained in a family of curves over phi0 and tan lambda.
Definition at line 32 of file InPhi0CurvTanLBox.h.
◆ getDistanceSign()
ESign getDistanceSign |
( |
const HoughBox & |
houghBox, |
|
|
float |
x, |
|
|
float |
y, |
|
|
float |
l, |
|
|
float |
dxdz, |
|
|
float |
dydz, |
|
|
ILayer |
iCLayer = -1 |
|
) |
| const |
|
inline |
Function that gives the sign of the distance from an observed drift circle to the sweeped object.
Two dimensional arc length
Definition at line 46 of file InPhi0CurvTanLBox.h.
72 if ((xRot[0] < 0) and (xRot[1] < 0))
return ESign::c_Invalid;
76 std::array<float, 2> s;
77 s[0] = curv[0]->getArcLength2D(iCLayer, (xRot[0] < 0) and (xRot[1] < 0));
78 s[1] = curv[1]->getArcLength2D(iCLayer, (xRot[0] < 0) and (xRot[1] < 0));
80 std::array<float, 2> r2TimesHalfCurv;
82 r2TimesHalfCurv[0] = r2 * (
static_cast<float>(*(curv[0])) / 2.0);
83 r2TimesHalfCurv[1] = r2 * (
static_cast<float>(*(curv[1])) / 2.0);
93 std::array<float, 4> z;
94 z[0b00] = s[0] *
static_cast<float>(tanL[0]);
95 z[0b01] = s[1] *
static_cast<float>(tanL[0]);
96 z[0b10] = s[0] *
static_cast<float>(tanL[1]);
97 z[0b11] = s[1] *
static_cast<float>(tanL[1]);
100 std::array<float, 8> dist;
101 dist[0b000] = r2TimesHalfCurv[0] - yRotPlusL[0] - dydzRot[0] * z[0b00];
102 dist[0b001] = r2TimesHalfCurv[0] - yRotPlusL[1] - dydzRot[1] * z[0b00];
103 dist[0b010] = r2TimesHalfCurv[1] - yRotPlusL[0] - dydzRot[0] * z[0b01];
104 dist[0b011] = r2TimesHalfCurv[1] - yRotPlusL[1] - dydzRot[1] * z[0b01];
106 dist[0b100] = r2TimesHalfCurv[0] - yRotPlusL[0] - dydzRot[0] * z[0b10];
107 dist[0b101] = r2TimesHalfCurv[0] - yRotPlusL[1] - dydzRot[1] * z[0b10];
108 dist[0b110] = r2TimesHalfCurv[1] - yRotPlusL[0] - dydzRot[0] * z[0b11];
109 dist[0b111] = r2TimesHalfCurv[1] - yRotPlusL[1] - dydzRot[1] * z[0b11];
The documentation for this class was generated from the following file: