Class ConeSurface

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class Acts::ConeSurface : public Acts::Surface

Class for a conical surface in the Tracking geometry.

It inherits from Surface.

The ConeSurface is special since no corresponding Track parameters exist since they’re numerical instable at the tip of the cone. Propagations to a cone surface will be returned in curvilinear coordinates.

Subclassed by Acts::ConeLayer

Public Functions

ConeSurface() = delete

Default Constructor - deleted.

~ConeSurface() 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

The return type is a vector for positioning in the global frame

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • bValue: defines the type of binning applied in the global frame

const ConeBounds &bounds() const final

This method returns the ConeBounds 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. alignment

  • position: is the global position to be transformed

  • momentum: 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. alignment

  • position: The position to start from

  • direction: The direction at start

  • bcheck: the Boundary Check

Return

SurfaceIntersection object (contains intersection & surface)

Intersection intersectionEstimate(const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const BoundaryCheck &bcheck = false) const final

Straight line intersection schema - provides closest intersection and (signed) path length.

Return

is the Intersection object

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • position: The start position for the intersection

  • direciton: The start direction for the intersection (expected normalized)

  • bcheck: The boundary check to be used in this directive

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. alignment

  • position: 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. alignment

  • lposition: is the local position to be transformed

  • momentum: is the global momentum (ignored in this operation)

  • position: is the global position which is filled

std::string name() const override

Return properly formatted class name for screen output.

const Vector3D normal(const GeometryContext &gctx, const Vector2D &lposition) const final

Return method for surface normal information.

Return

Vector3D normal vector in global frame

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • lposition: is the local position at normal vector request

const Vector3D normal(const GeometryContext &gctx, const Vector3D &position) const final

Return method for surface normal information.

Return

Vector3D normal vector in global frame

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • position: is the global position as normal vector base

ConeSurface &operator=(const ConeSurface &other)

Assignment operator.

Parameters
  • other: is the source surface for the assignment

double pathCorrection(const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction) const final

The pathCorrection for derived classes with thickness.

Return

is the path correction due to incident angle

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • position: is the global potion at the correction point

  • direction: is the momentum direction at the correction point

Polyhedron polyhedronRepresentation(const GeometryContext &gctx, size_t lseg) const override

Return a Polyhedron for the surfaces.

Note

that a surface transform can invalidate the extrema in the transformed space

Return

A list of vertices and a face/facett description of it

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • lseg: 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 for StraightLine and Perigee Surface.

  • the default implementation is the the RotationMatrix3D of the transform

Return

matrix that indicates the measurement frame

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • position: is the global position where the measurement frame is constructed

  • momentum: is the momentum used for the measurement frame construction

const Vector3D rotSymmetryAxis(const GeometryContext &gctx) const

Parameters
  • gctx: The current geometry context object, e.g. alignment

SurfaceType type() const override

Return the surface type.

Protected Functions

ConeSurface(std::shared_ptr<const Transform3D> htrans, double alpha, bool symmetric = false)

Constructor form HepTransform and an opening angle.

Parameters
  • htrans: is the transform to place to cone in a 3D frame

  • alpha: is the opening angle of the cone

  • symmetric: indicates if the cones are built to +/1 z

ConeSurface(std::shared_ptr<const Transform3D> htrans, double alpha, double zmin, double zmax, double halfPhi = M_PI)

Constructor form HepTransform and an opening angle.

Parameters
  • htrans: is the transform that places the cone in the global frame

  • alpha: is the opening angle of the cone

  • zmin: is the z range over which the cone spans

  • zmax: is the z range over which the cone spans

  • halfPhi: is the openen angle for cone ssectors

ConeSurface(std::shared_ptr<const Transform3D> htrans, const std::shared_ptr<const ConeBounds> &cbounds)

Constructor from HepTransform and ConeBounds.

Parameters
  • htrans: is the transform that places the cone in the global frame

  • cbounds: is the boundary class, the bounds must exit

ConeSurface(const ConeSurface &other)

Copy constructor.

Parameters
  • other: is the source cone surface

ConeSurface(const GeometryContext &gctx, const ConeSurface &other, const Transform3D &transf)

Copy constructor - with shift.

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • other: is the source cone surface

  • transf: is the additional transfrom applied after copying

Protected Attributes

std::shared_ptr<const ConeBounds> m_bounds

bounds (shared)