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() override = default

Destructor - defaulted.

const Vector3D 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.

bool globalToLocal(const GeometryContext &gctx, const Vector3D &position, const Vector3D &momentum, Vector2D &lposition) const override

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

Return

boolean indication if operation was successful (fail means global position was not on surface)

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)

  • lposition: local 2D position to be filled (given by reference for method symmetry)

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

Straight line intersection schema.

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 Intersection object

void localToGlobal(const GeometryContext &gctx, const Vector2D &lposition, const Vector3D &momentum, Vector3D &position) const override

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

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)

  • position: global 3D position to be filled (given by reference for method symmetry)

std::string name() const override

Return properly formatted class name for screen output.

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

Normal vector return.

return a Vector3D 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 Vector3D &position, const Vector3D &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()

Default Constructor - needed for persistency.

PlaneSurface(const PlaneSurface &other)

Copy Constructor.

Parameters
  • psf: is the source surface for the copy

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

PlaneSurface(const Vector3D &center, const Vector3D &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(std::shared_ptr<const Transform3D> 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