15 template <
class T>
inline T sqr(
T t) {
return t*
t;}
22 : theTolerance(tolerance)
40 pv = p1.
y()*p2.
x() - p2.
y()*p1.
x();
78 for (
int i=0;
i!=2; ++
i)
83 Scalar phi2 = phi1+(v[1]-v[0]);
102 inline T atan2_fast(
T y,
T x ) {
118 ( t >
T(0.4142135623730950) ) ?
119 (t-
T(1.0))/(t+
T(1.0)) : t;
125 (((
T(8.05374449538
e-2) * z2
126 -
T(1.38776856032E-1)) * z2
127 +
T(1.99777106478E-1)) * z2
128 -
T(3.33329491539E-1)) * z2 * z
132 if( t >
T(0.4142135623730950) ) ret += PIO4F;
133 if (tmp!=0) ret = PIO2F -
ret;
134 if (x<0) ret = PIF -
ret;
167 for (
int i=0;
i<4; ++
i)
175 for (
int i=0; i<2; ++
i) {
176 auto x = xr[0]*u[
i] + yr[0]*v[
i];
177 auto y = xr[1]*u[
i] + yr[1]*v[
i];
178 phi1[
i] = atan2_fast(y,x);
179 phi2[
i] = phi1[
i]+(v[i+2]-v[
i]);
183 return getRange(phi1[1],phi2[1],
emptyM).sum(getRange(phi1[0],phi2[0],
emptyP));
ThirdHitPredictionFromInvParabola()
Basic2DVector< Scalar > Point2D
PixelRecoRange< float > Range
TkRotation2D< Scalar > Rotation
Point2D transform(Point2D const &p) const
void init(const GlobalPoint &P1, const GlobalPoint &P2, Scalar ip, Scalar curv)
T x() const
Cartesian x coordinate.
Range rangeRPhi(Scalar radius, int charge) const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
Abs< T >::type abs(const T &t)
T y() const
Cartesian y coordinate.
PixelRecoRange< Scalar > RangeD
Scalar ipFromCurvature(Scalar curvature, bool pos) const
void findPointAtCurve(Scalar radius, Scalar ip, Scalar &u, Scalar &v) const
std::vector< std::vector< double > > tmp
PixelRecoRange< T > intersection(const PixelRecoRange< T > &r) const
Square< F >::type sqr(const F &f)
BasicVector rotateBack(const BasicVector &v) const
T x() const
Cartesian x coordinate.