20 const Plane* bp =
dynamic_cast<const Plane*
>(sur);
25 return (*
this)(fts, *bc);
26 }
else if (bp !=
nullptr) {
30 return (*
this)(fts, *bp);
59 b[0] =
x.x() - sp.
x();
60 b[1] =
x.y() - sp.
y();
61 b[2] =
x.z() - sp.
z();
63 int ifail = !
a.Invert();
69 const double small = 1.e-4;
70 if (fabs(
b[2]) < small) {
73 }
else if (
b[2] < 0.) {
89 if (sp.
x() != 0. || sp.
y() != 0.) {
96 const double small = 1.e-4;
97 double rdiff =
x.perp() - cylinder.
radius();
99 if (fabs(rdiff) < small) {
103 int rSign = (rdiff >= 0.) ? 1 : -1;
111 double proj = (
x.x() *
p.x() +
x.y() *
p.y()) * rSign;
Local3DVector LocalVector
Point3DBase< Scalar, LocalTag > LocalPoint
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepStd< double, 3, 3 > > AlgebraicMatrix33
PropagationDirection operator()(const FreeTrajectoryState &, const Surface &) const
GlobalPoint position() const
GlobalVector momentum() const
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Scalar radius() const
Radius of the cylinder.
ROOT::Math::SVector< double, 3 > AlgebraicVector3
Vector3DBase unit() const