22 const Plane* bp =
dynamic_cast<const Plane*
>(sur);
27 return (*
this)(fts, *bc);
29 else if (bp !=
nullptr) {
33 return (*
this)(fts, *bp);
42 const Plane& plane)
const 56 a(0,0) = v.
x();
a(0,1) = w.
x();
a(0,2) = -p.
x();
57 a(1,0) = v.
y();
a(1,1) = w.
y();
a(1,2) = -p.
y();
58 a(2,0) = v.
z();
a(2,1) = w.
z();
a(2,2) = -p.
z();
60 b[0] = x.
x() - sp.
x();
61 b[1] = x.
y() - sp.
y();
62 b[2] = x.
z() - sp.
z();
64 int ifail = !a.Invert();
70 const double small = 1.e-4;
71 if (fabs(b[2]) < small) {
95 if (sp.
x() != 0. || sp.
y() != 0.) {
102 const double small = 1.e-4;
105 if ( fabs(rdiff) < small ) {
110 int rSign = ( rdiff >= 0. ) ? 1 : -1 ;
119 double proj = (x.
x()*p.
x() + x.
y()*p.
y()) * rSign;
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Local3DVector LocalVector
Point3DBase< Scalar, LocalTag > LocalPoint
Scalar radius() const
Radius of the cylinder.
ROOT::Math::SVector< double, 3 > AlgebraicVector3
PropagationDirection operator()(const FreeTrajectoryState &, const Surface &) const
GlobalVector momentum() const
Vector3DBase unit() const
GlobalPoint position() const
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepStd< double, 3, 3 > > AlgebraicMatrix33