Class CylinderSurface¶
Defined in File CylinderSurface.hpp
Inheritance Relationships¶
Base Type¶
public Acts::Surface
(Class Surface)
Derived Type¶
public Acts::CylinderLayer
(Class CylinderLayer)
Class Documentation¶
-
class
Acts
::
CylinderSurface
: public Acts::Surface¶ Class for a CylinderSurface in the TrackingGeometry.
It inherits from Surface.
The cylinder surface has a special role in the TrackingGeometry, since it builds the surfaces of all TrackingVolumes at container level for a cylindrical tracking geometry.
Subclassed by Acts::CylinderLayer
Public Functions
-
CylinderSurface
() = delete¶ Deleted default constructor.
-
~CylinderSurface
() override = default¶ Destructor - defaulted.
-
const Vector3D
binningPosition
(const GeometryContext &gctx, BinningValue bValue) const final¶ The binning position method - is overloaded for r-type binning.
- Return
is the global position to be used for binning
- Parameters
gctx
: The current geometry context object, e.g. alignmentbValue
: is the type of global binning to be done
-
const CylinderBounds &
bounds
() const final¶ This method returns the CylinderBounds by reference.
-
bool
globalToLocal
(const GeometryContext &gctx, const Vector3D &position, const Vector3D &momentum, Vector2D &lposition) const final¶ Global to local transformation.
- Return
is a boolean indicating if the transformation succeeded
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: is the global position to be transformedmomentum
: is the global momentum (ignored in this operation)lposition
: is the local position to be filled
-
SurfaceIntersection
intersect
(const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const BoundaryCheck &bcheck) const final¶ Straight line intersection schema from position/direction.
If possible returns both solutions for the cylinder
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: The position to start fromdirection
: The direction at startbcheck
: the Boundary Check
- Return
SurfaceIntersection object (contains intersection & surface)
-
Intersection
intersectionEstimate
(const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const BoundaryCheck &bcheck) const final¶ Straight line intersection schema - provides closest intersection and (signed) path length.
- Note
expected to be normalised)
- Return
is the closest intersection (fwd or bwd)
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: The global position as a starting pointdirection
: The global direction at starting point (
- Parameters
bcheck
: The boundary check presection
-
const LocalCartesianToBoundLocalMatrix
localCartesianToBoundLocalDerivative
(const GeometryContext &gctx, const Vector3D &position) const final¶ Calculate the derivative of bound track parameters local position w.r.t.
position in local 3D Cartesian coordinates
- Return
Derivative of bound local position w.r.t. position in local 3D cartesian coordinates
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: The position of the paramters in global
-
void
localToGlobal
(const GeometryContext &gctx, const Vector2D &lposition, const Vector3D &momentum, Vector3D &position) const final¶ Local to global transformation.
- Parameters
gctx
: The current geometry context object, e.g. alignmentlposition
: is the local position to be transformedmomentum
: is the global momentum (ignored in this operation)position
: is the global position which is filled
-
std::string
name
() const override¶ Return method for properly formatted output string.
-
const Vector3D
normal
(const GeometryContext &gctx, const Vector2D &lposition) const final¶ Return method for surface normal information.
- Note
for a Cylinder a local position is always required for the normal vector
- Return
normal vector at the local position
- Parameters
gctx
: The current geometry context object, e.g. alignmentlposition
: is the local postion for which the normal vector is requested
-
const Vector3D
normal
(const GeometryContext &gctx, const Vector3D &position) const final¶ Return method for surface normal information.
- Note
for a Cylinder a local position is always required for the normal vector
- Return
normal vector at the global position
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: is the global postion for which the normal vector is requested
-
CylinderSurface &
operator=
(const CylinderSurface &other)¶ Assignment operator.
- Parameters
other
: is the source cylinder for the copy
-
double
pathCorrection
(const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction) const final¶ Path correction due to incident of the track.
- Return
is the correction factor due to incident
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: is the global position as a starting pointdirection
: is the global momentum at the starting point
-
Polyhedron
polyhedronRepresentation
(const GeometryContext &gctx, size_t lseg) const override¶ Return a Polyhedron for a cylinder.
- Return
A list of vertices and a face/facett description of it
- Parameters
gctx
: The current geometry context object, e.g. alignmentlseg
: Number of segments along curved lines, it represents the full 2*M_PI coverange, if lseg is set to 1 only the extrema are given
-
const RotationMatrix3D
referenceFrame
(const GeometryContext &gctx, const Vector3D &position, const Vector3D &momentum) const final¶ Return the measurement frame - this is needed for alignment, in particular The measurement frame of a cylinder is the tangential plane at a given position.
- Return
rotation matrix that defines the measurement frame
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: is the position where the measurement frame is definedmomentum
: is the momentum vector (ignored)
-
const Vector3D
rotSymmetryAxis
(const GeometryContext &gctx) const¶ Return method for the rotational symmetry axis.
- Return
the z-Axis of transform
- Parameters
gctx
: The current geometry context object, e.g. alignment
-
SurfaceType
type
() const override¶ Return the surface type.
Protected Functions
Constructor from DetectorElementBase: Element proxy.
- Parameters
cbounds
: are the provided cylinder bounds (shared)detelement
: is the linked detector element to this surface
Constructor from Transform3D and CylinderBounds.
- Parameters
htrans
: transform to position the surface, can be nullptrradius
: The radius of the cylinderhalfz
: The half length in zhalfphi
: The half opening angleavphi
: The phi value from which the opening angle spans (both sides)
Constructor from Transform3D and CylinderBounds arguments.
- Note
if htrans == nullptr, the cylinder is positioned around (0.,0.,0.)
- Parameters
htrans
: transform to position the surface, can be nullptr
- Parameters
cbounds
: is a shared pointer to a cylindeer bounds object, it must exist (assert test)
-
CylinderSurface
(const CylinderSurface &other)¶ Copy constructor.
- Parameters
other
: is the source cylinder for the copy
-
CylinderSurface
(const GeometryContext &gctx, const CylinderSurface &other, const Transform3D &transf)¶ Copy constructor - with shift.
- Parameters
gctx
: The current geometry context object, e.g. alignmentother
: is the source cone surfacetransf
: is the additional transfrom applied after copying
Protected Attributes
-
std::shared_ptr<const CylinderBounds>
m_bounds
¶ bounds (shared)
-