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¶
-
~CylinderSurface
() override = default¶
-
AlignmentToPathMatrix
alignmentToPathDerivative
(const GeometryContext &gctx, const FreeVector ¶meters) const final¶ Calculate the derivative of path length at the geometry constraint or point-of-closest-approach w.r.t.
alignment parameters of the surface (i.e. local frame origin in global 3D Cartesian coordinates and its rotation represented with extrinsic Euler angles)
- Return
Derivative of path length w.r.t. the alignment parameters
- Parameters
gctx
: The current geometry context object, e.g. alignmentparameters
: is the free parameters
-
Vector3
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.
-
Result<Vector2>
globalToLocal
(const GeometryContext &gctx, const Vector3 &position, const Vector3 &momentum, double tolerance = s_onSurfaceTolerance) const final¶ Global to local transformation.
- Return
a Result<Vector2> which can be !ok() if the operation fails
- 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)tolerance
: optional tolerance within which a point is considered valid on surface
-
SurfaceIntersection
intersect
(const GeometryContext &gctx, const Vector3 &position, const Vector3 &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)
-
ActsMatrix<2, 3>
localCartesianToBoundLocalDerivative
(const GeometryContext &gctx, const Vector3 &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
-
Vector3
localToGlobal
(const GeometryContext &gctx, const Vector2 &lposition, const Vector3 &momentum) const final¶ Local to global transformation.
- Return
The global position by value
- 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)
-
std::string
name
() const override¶ Return method for properly formatted output string.
-
Vector3
normal
(const GeometryContext &gctx, const Vector2 &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 by value
- Parameters
gctx
: The current geometry context object, e.g. alignmentlposition
: is the local postion for which the normal vector is requested
-
Vector3
normal
(const GeometryContext &gctx, const Vector3 &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 by value
- 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 Vector3 &position, const Vector3 &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
-
RotationMatrix3
referenceFrame
(const GeometryContext &gctx, const Vector3 &position, const Vector3 &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)
-
Vector3
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
-
CylinderSurface
(const Transform3 &transform, double radius, double halfz, double halfphi = M_PI, double avphi = 0.)¶ Constructor from Transform3 and CylinderBounds.
- Parameters
transform
: The transform to position the surfaceradius
: 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 Transform3 and CylinderBounds arguments.
- Parameters
transform
: The transform to position the surfacecbounds
: 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 Transform3 &shift)¶ Copy constructor - with shift.
- Parameters
gctx
: The current geometry context object, e.g. alignmentother
: is the source cone surfaceshift
: is the additional transfrom applied after copying
Protected Attributes
-
std::shared_ptr<const CylinderBounds>
m_bounds
¶ bounds (shared)
-