1 #ifndef ThirdHitPredictionFromInvParabola_H 2 #define ThirdHitPredictionFromInvParabola_H 28 namespace PixelTriplets_InvPrbl_prec {
31 namespace PixelTriplets_InvPrbl_t {
67 Range rangeRPhi(
Scalar radius)
const;
73 init( P1.
x(), P1.
y(), P2.
x(),P2.
y(),ip,curv);
87 return theRotation.rotate(p)/p.
mag2();
91 return theRotation.rotateBack(p)/p.
mag2();
114 return c - u1u2*impactParameter;
121 return c - su*impactParameter;
127 Scalar overU1u2 = 1./u1u2;
129 return (pos? inInf : -inInf) -curvature*overU1u2*0.5;
136 auto c = -( coeffA(ip) - coeffB(ip*u) - ip*u*u);
Scalar coeffA(Scalar impactParameter) const
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 curvature(T InversePt, const edm::EventSetup &iSetup)
ThirdHitPredictionFromInvParabola(Scalar x1, Scalar y1, Scalar x2, Scalar y2, Scalar ip, Scalar curv, Scalar tolerance)
Abs< T >::type abs(const T &t)
static const std::string B
Scalar coeffB(Scalar impactParameter) const
PixelRecoRange< Scalar > RangeD
Scalar ipFromCurvature(Scalar curvature, bool pos) const
void findPointAtCurve(Scalar radius, Scalar ip, Scalar &u, Scalar &v) const
Range operator()(Scalar radius, int charge) const
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)
Scalar predV(Scalar u, Scalar ip) const
Point2D transformBack(Point2D const &p) const
Range operator()(Scalar radius) const