31 const std::vector<float>&
offset)
48 bool centerEqual = (transfEqual) ? (
center() == dsf->
center()) :
false;
49 bool boundsEqual = (centerEqual) ? (
bounds() == dsf->
bounds()) :
false;
109 double b = S < 0. ? -1 : 1;
110 double A = b * dir.dot(N);
111 double d = (pos -
C).
dot(N);
114 if (std::abs(d) < tol) {
115 return {1, 0.,
true, 0.};
117 return {0, d,
true, 0.};
121 double D = b * (S - (pos.dot(N))) /
A;
123 return {1, d,
true, D};
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Class for a DiscSurface in the ATLAS detector.
DiscSurface()
Default Constructor.
const SurfaceBounds & bounds() const override final
This method returns the bounds by reference.
static const NoBounds s_boundless
Access to distance solutions.
Bounds object for a boundless surface (...)
Class for a Calo DiscSurface with variable depth in the ATLAS detector.
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specialized for DiscSurface: LocalToGlobal method without dynamic memory allocation.
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const override final
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
std::vector< float > m_depth
< data members
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final
Specialized for DiscSurface: GlobalToLocal method without dynamic memory allocation - boolean checks ...
const std::vector< float > & offset() const
This method allows access to the radial offset values.
SlidingDiscSurface(DiscSurface &surf, const Trk::BinUtility &bu, const std::vector< float > &offset)
Constructor.
virtual bool operator==(const Surface &sf) const override final
Equality operator.
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final
fast straight line intersection schema - standard: provides closest intersection and (signed) path le...
Abstract Base Class for tracking surfaces.
static constexpr double s_onSurfaceTolerance
Tolerance for being on Surface.
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
const Amg::Vector3D & center() const
Returns the center position of the Surface.
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
hold the test vectors and ease the comparison