12 #include "GaudiKernel/MsgStream.h"
71 double fabsY = std::abs(locpo[
Trk::locY]);
72 double max_ell = bchk.lCovariance(0, 0) > bchk.lCovariance(1, 1)
73 ? bchk.lCovariance(0, 0)
74 : bchk.lCovariance(1, 1);
79 double fabsX = std::abs(locpo[
Trk::locX]);
83 double min_ell = bchk.lCovariance(0, 0) < bchk.lCovariance(1, 1)
84 ? bchk.lCovariance(0, 0)
85 : bchk.lCovariance(1, 1);
92 std::vector<KDOP> elementKDOP(3);
93 std::vector<Amg::Vector2D> elementP(4);
95 (bchk.lCovariance(1, 0) != 0 &&
96 (bchk.lCovariance(1, 1) - bchk.lCovariance(0, 0)) != 0)
97 ? .5 * bchk.
FastArcTan(2 * bchk.lCovariance(1, 0) /
98 (bchk.lCovariance(1, 1) - bchk.lCovariance(0, 0)))
105 normal << 0, -1, 1, 0;
110 elementP[0] = (rotMatrix * (
p - locpo));
113 elementP[1] = (rotMatrix * (
p - locpo));
119 elementP[2] = (rotMatrix * (
p - locpo));
125 elementP[3] = (rotMatrix * (
p - locpo));
126 std::vector<Amg::Vector2D>
axis = { normal * (elementP[1] - elementP[0]),
127 normal * (elementP[3] - elementP[1]),
128 normal * (elementP[2] - elementP[0]) };
131 std::vector<KDOP> errelipseKDOP(3);
142 return insideFull(locpo, tol1, tol2);
143 return (insideFull(locpo, tol1, tol2) && !insideExclude(locpo, tol1, tol2));
151 double fabsX = std::abs(locpo[
Trk::locX]);
152 double fabsY = std::abs(locpo[
Trk::locY]);
171 return (isAbove(locpo, tol1, tol2,
k,
d));
180 bool alphaBiggerBeta(m_alpha > m_beta);
181 double ka = alphaBiggerBeta ?
tan(
M_PI - m_alpha) :
tan(m_alpha);
182 double kb = alphaBiggerBeta ?
tan(
M_PI - m_beta) :
tan(m_beta);
183 double sign = alphaBiggerBeta ? -1. : 1.;
187 return (isAbove(locpo, tol1, tol2, ka, da) && isAbove(locpo, tol1, tol2,
kb,
db));
195 double sign =
k > 0. ? -1. : +1.;
208 }
else if (m_beta != 0.) {
221 for (
int i = 0;
i != Np; ++
i) {
223 int j = (
i == Np-1 ? 0 :
i+1);
227 double dx =
X[j] -
X[
i];
228 double dy =
Y[j] -
Y[
i];
233 double d =
x *
x +
y *
y;
239 double d = (
A *
A) /
a;
244 if (
i && in && Ao *
A < 0.)
259 sl << std::setiosflags(std::ios::fixed);
260 sl << std::setprecision(7);
261 sl <<
"Trk::TrapezoidBounds: (minHlenghtX, maxHlengthX, hlengthY) = "
264 sl << std::setprecision(-1);
271 sl << std::setiosflags(std::ios::fixed);
272 sl << std::setprecision(7);
273 sl <<
"Trk::TrapezoidBounds: (minHlenghtX, maxHlengthX, hlengthY) = "
276 sl << std::setprecision(-1);