Class PlaneSurface

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class Acts::PlaneSurface : public Acts::Surface

Class for a planaer in the TrackingGeometry.

The PlaneSurface extends the Surface class with the possibility to convert local to global positions (vice versa).

_build/doxygen-xml/PlaneSurface.png

Subclassed by Acts::PlaneLayer

Public Functions

PlaneSurface() = delete
~PlaneSurface() override = default
Vector3 binningPosition(const GeometryContext &gctx, BinningValue bValue) const final

The binning position is the position calcualted for a certain binning type.

Return

position that can beused for this binning

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

  • bValue: is the binning type to be used

const SurfaceBounds &bounds() const override

Return method for bounds object of this surfrace.

Result<Vector2> globalToLocal(const GeometryContext &gctx, const Vector3 &position, const Vector3 &momentum, double tolerance = s_onSurfaceTolerance) const override

Global to local transformation For planar surfaces the momentum is ignroed in the 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. alignment

  • position: global 3D position - considered to be on surface but not inside bounds (check is done)

  • momentum: global 3D momentum representation (optionally ignored) method symmetry)

  • 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 = false) const final

Straight line intersection.

mathematical motivation:

Note

expected to be normalized)

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

  • position: The start position of the intersection attempt

  • direction: The direction of the interesection attempt, (

Parameters
  • bcheck: The boundary check directive

the equation of the plane is given by: \( \vec n \cdot \vec x = \vec n \cdot \vec p,\)

where

\( \vec n = (n_{x}, n_{y}, n_{z})\) denotes the normal vector of the plane, \( \vec p = (p_{x}, p_{y}, p_{z})\) one specific point on the plane and \( \vec x = (x,y,z) \) all possible points on the plane.

Given a line with:\( \vec l(u) = \vec l_{1} + u \cdot \vec v \),

the solution for

\( u \) can be written: \( u = \frac{\vec n (\vec p - \vec l_{1})}{\vec n \vec v}\)

If the denominator is 0 then the line lies:

  • either in the plane

  • perpendicular to the normal of the plane

Return

the SurfaceIntersection object

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

  • position: The position of the paramters in global

Vector3 localToGlobal(const GeometryContext &gctx, const Vector2 &lposition, const Vector3 &momentum) const override

Local to global transformation For planar surfaces the momentum is ignroed in the local to global transformation.

Return

the global position by value

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

  • lposition: local 2D position in specialized surface frame

  • momentum: global 3D momentum representation (optionally ignored)

std::string name() const override

Return properly formatted class name for screen output.

Vector3 normal(const GeometryContext &gctx, const Vector2 &lposition) const final

Normal vector return.

return a Vector3 by value

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

  • lposition: is the local position is ignored

PlaneSurface &operator=(const PlaneSurface &other)

Assignment operator.

Parameters
  • other: The source PlaneSurface for assignment

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

Method that calculates the correction due to incident angle.

Note

this is the final implementation of the pathCorrection function

Return

a double representing the scaling factor

Parameters
  • position: global 3D position - considered to be on surface but not inside bounds (check is done)

  • direction: global 3D momentum direction (ignored for PlaneSurface)

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

Return a Polyhedron for the surfaces.

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

SurfaceType type() const override

Return the surface type.

Protected Functions

PlaneSurface(const PlaneSurface &other)

Copy Constructor.

Parameters
  • psf: is the source surface for the copy

PlaneSurface(const GeometryContext &gctx, const PlaneSurface &other, const Transform3 &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

PlaneSurface(const Vector3 &center, const Vector3 &normal)

Dedicated Constructor with normal vector This is for curvilinear surfaces which are by definition boundless.

Parameters
  • center: is the center position of the surface

  • normal: is thenormal vector of the plane surface

PlaneSurface(const std::shared_ptr<const PlanarBounds> &pbounds, const DetectorElementBase &detelement)

Constructor from DetectorElementBase : Element proxy.

Parameters
  • pbounds: are the provided planar bounds (shared)

  • detelement: is the linked detector element to this surface

PlaneSurface(const Transform3 &htrans, std::shared_ptr<const PlanarBounds> pbounds = nullptr)

Constructor for Planes with (optional) shared bounds object.

Parameters
  • htrans: transform in 3D that positions this surface

  • pbounds: bounds object to describe the actual surface area

Protected Attributes

std::shared_ptr<const PlanarBounds> m_bounds

the bounds of this surface