14 #include "GeoModelKernel/Units.h"
19 using namespace GeoModelKernelUnits;
23 const double r2 =
r*
r;
24 const double r3 = r2*
r;
25 const double r4 = r2*r2;
26 #if LARWC_SINCOS_POLY > 4
27 const double r5 = r4*
r;
29 sin_a = m_sin_parametrization[0]
30 + m_sin_parametrization[1]*
r
31 + m_sin_parametrization[2]*r2
32 + m_sin_parametrization[3]*r3
33 + m_sin_parametrization[4]*r4
34 #if LARWC_SINCOS_POLY > 4
35 + m_sin_parametrization[5]*r5
38 cos_a = sqrt(1. - sin_a*sin_a);
43 const double r2 =
r*
r;
44 const double r3 = r2*
r;
45 const double r4 = r2*r2;
46 #if LARWC_SINCOS_POLY > 4
47 const double r5 = r4*
r;
49 sin_a = m_sin_parametrization[0]
50 + m_sin_parametrization[1]*
r
51 + m_sin_parametrization[2]*r2
52 + m_sin_parametrization[3]*r3
53 + m_sin_parametrization[4]*r4
54 #if LARWC_SINCOS_POLY > 4
55 + m_sin_parametrization[5]*r5
58 cos_a = m_cos_parametrization[0]
59 + m_cos_parametrization[1]*
r
60 + m_cos_parametrization[2]*r2
61 + m_cos_parametrization[3]*r3
62 + m_cos_parametrization[4]*r4
63 #if LARWC_SINCOS_POLY > 4
64 + m_cos_parametrization[5]*r5
73 const double r2 =
r*
r;
74 const double r3 = r2*
r;
75 const double r4 = r2*r2;
76 const double result = m_slant_parametrization[0] +
77 r*m_slant_parametrization[1] +
78 r2*m_slant_parametrization[2] +
79 r3*m_slant_parametrization[3] +
80 r4*m_slant_parametrization[4];
92 return m_fanCalcImpl->DistanceToTheNearestFan(
p, out_fan_number);
100 return m_fanCalcImpl->GetPhiGapAndSide(
p);
110 return m_distanceCalcImpl->DistanceToTheNeutralFibre(
P, fan_number);
115 return m_distanceCalcImpl->NearestPointOnNeutralFibre(
P, fan_number);
120 CLHEP::Hep3Vector
np = NearestPointOnNeutralFibre(
p, fan_number);
121 return std::vector<double> {
np.x(),
np.y(),
np.z() };
132 return m_distanceCalcImpl->AmplitudeOfSurface(
P,
side, fan_number);