|
ATLAS Offline Software
|
Go to the documentation of this file.
24 , m_depth(dsf.m_depth)
25 , m_etaBin(dsf.m_etaBin)
31 const std::vector<float>&
offset)
48 bool centerEqual = (transfEqual) ? (center() == dsf->
center()) :
false;
49 bool boundsEqual = (centerEqual) ? (bounds() == dsf->
bounds()) :
false;
61 float offset = m_depth[m_etaBin.bin(t0 * loc3D0)];
76 return (std::abs(loc3Dframe.z() - m_depth[m_etaBin.bin(loc3D0)]) <= s_onSurfaceTolerance);
87 float offset = m_depth[m_etaBin.bin(loc3D0)];
88 if (std::abs(loc3Dframe.z() -
offset) > (s_onSurfaceTolerance + tol1)){
91 return (bchk ? bounds().inside(
Amg::Vector2D(loc3Dframe.perp(), loc3Dframe.phi()), tol1, tol2) :
true);
102 float offset = m_depth[m_etaBin.bin(loc3D0)];
109 double b =
S < 0. ? -1 : 1;
110 double A =
b *
dir.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};
131 return straightLineDistanceEstimate(
pos,
dir);
Eigen::Matrix< double, 2, 1 > Vector2D
const Amg::Vector3D & center() const
Returns the center position of the Surface.
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...
SlidingDiscSurface(DiscSurface &surf, const Trk::BinUtility &bu, const std::vector< float > &offset)
Constructor.
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 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...
virtual bool operator==(const Surface &sf) const override final
Equality operator.
CalibratedSpacePoint::Covariance_t inverse(const CalibratedSpacePoint::Covariance_t &mat)
Inverts the parsed matrix.
Eigen::Affine3d Transform3D
const SurfaceBounds & bounds() const override final
This method returns the bounds by reference.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
def dot(G, fn, nodesToHighlight=[])
Ensure that the ATLAS eigen extensions are properly loaded.
Eigen::Matrix< double, 3, 1 > Vector3D
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 Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
static const NoBounds s_boundless