Class DiscSurface¶
Defined in File DiscSurface.hpp
Inheritance Relationships¶
Base Type¶
public Acts::Surface
(Class Surface)
Derived Type¶
public Acts::DiscLayer
(Class DiscLayer)
Class Documentation¶
-
class
Acts
::
DiscSurface
: public Acts::Surface¶ Class for a DiscSurface in the, it inherits from Surface.
The DiscSurface has a polar local coordinate system, with (r,phi) describing the coordinates.
The surface transform positions the disc such, that the origin is at r=0, independent of the provided DiscBounds. The z-axis The normal vector of the Disc, being perpendicular to the radial direction.
The disc surface The only surface type for which the covariance matrix is NOT given in the reference frame. A conversion from polar to cartesian coordinates needs to happen to transfer the local coordinates onto the cartesian reference frame coordinates.
Subclassed by Acts::DiscLayer
Public Functions
-
DiscSurface
() = delete¶ Default Constructor - deleted.
-
~DiscSurface
() override = default¶ Destructor - defaulted.
-
const Vector3D
binningPosition
(const GeometryContext &gctx, BinningValue bValue) const final¶ The binning position 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. alignmentbValue
: The binning type to be used
-
double
binningPositionValue
(const GeometryContext &gctx, BinningValue bValue) const final¶ Implement the binningValue.
- Note
This calls the parent method except for binR
- Return
float to be used for the binning schema
- Parameters
gctx
: The current geometry context object, e.g. alignmentbValue
: is the dobule in which you want to bin
-
const SurfaceBounds &
bounds
() const final¶ This method returns the bounds by reference.
-
bool
globalToLocal
(const GeometryContext &gctx, const Vector3D &position, const Vector3D &momentum, Vector2D &lposition) const final¶ Global to local transformation.
- Note
the momentum is ignored for Disc surfaces in this calculateion
- Return
boolean indication if operation was successful (fail means global position was not on surface)
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: 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)
-
const Vector2D
globalToLocalCartesian
(const GeometryContext &gctx, const Vector3D &position, double tol = 0.) const¶ Special method for DiscSurface : global<->local from cartesian coordinates.
- Return
value is a local polar
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: is a global cartesian 3D positiontol
: The absoltue tolerance parameter
-
void
initJacobianToGlobal
(const GeometryContext &gctx, BoundToFreeMatrix &jacobian, const Vector3D &position, const Vector3D &direction, const BoundVector &pars) const final¶ Initialize the jacobian from local to global the surface knows best, hence the calculation is done here.
The jacobian is assumed to be initialised, so only the relevant entries are filled
- Parameters
gctx
: The current geometry context object, e.g. alignmentjacobian
: The jacobian to be initializedposition
: The global position of the parametersdirection
: The direction at of the parameterspars
: The paranmeters vector
-
const RotationMatrix3D
initJacobianToLocal
(const GeometryContext &gctx, FreeToBoundMatrix &jacobian, const Vector3D &position, const Vector3D &direction) const final¶ Initialize the jacobian from global to local the surface knows best, hence the calculation is done here.
The jacobian is assumed to be initialised, so only the relevant entries are filled
- Return
the transposed reference frame (avoids recalculation)
- Parameters
gctx
: The current geometry context object, e.g. alignmentjacobian
: The jacobian to be initializedposition
: The global position of the parametersdirection
: The direction at of the parameters
-
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 (no checking)
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: The global position as a starting pointdirection
: The global direction at the starting point
- Parameters
bcheck
: The boundary check prescription
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
is the surface intersection object
-
const Vector3D
localCartesianToGlobal
(const GeometryContext &gctx, const Vector2D &lposition) const¶ Special method for DiscSurface : local<->global transformation when provided cartesian coordinates.
- Return
value is a global cartesian 3D position
- Parameters
gctx
: The current geometry context object, e.g. alignmentlposition
: is local 2D position in cartesian coordinates
-
const Vector2D
localCartesianToPolar
(const Vector2D &lcart) const¶ Special method for Disc surface : local<->local transformations polar <-> cartesian.
- Return
value is a local position in polar coordinates
- Parameters
lcart
: is local 2D position in cartesian coordinates
-
const Vector2D
localPolarToCartesian
(const Vector2D &lpolar) const¶ Special method for DiscSurface : local<->local transformations polar <-> cartesian.
- Return
values is local 2D position in cartesian coordinates
- Parameters
lpolar
: is a local position in polar coordinates
-
const Vector2D
localPolarToLocalCartesian
(const Vector2D &locpol) const¶ Special method for DiscSurface : local<->local transformations polar <-> cartesian.
- Return
values is local 2D position in cartesian coordinates
- Parameters
gctx
: The current geometry context object, e.g. alignmentlocpol
: is a local position in polar coordinates
-
void
localToGlobal
(const GeometryContext &gctx, const Vector2D &lposition, const Vector3D &momentum, Vector3D &position) const final¶ Local to global transformation For planar surfaces the momentum is ignroed in the local to global transformation.
- Note
the momentum is ignored for Disc surfaces in this calculateion
- Parameters
gctx
: The current geometry context object, e.g. alignmentlposition
: local 2D position in specialized surface framemomentum
: 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. alignmentlposition
: The local position is ignored
-
DiscSurface &
operator=
(const DiscSurface &other)¶ Assignement operator.
- Parameters
other
: The source sourface for the assignment
-
double
pathCorrection
(const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction) const final¶ Path correction due to incident of the track.
- Return
The correction factor due to incident
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: The global position as a starting pointdirection
: The global momentum at the starting point
-
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. 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
-
SurfaceType
type
() const override¶ Return the surface type.
Protected Functions
Constructor for Discs from Transform3D, \( r_{min}, r_{max} \).
- Parameters
htrans
: is transform that places the disc in the global 3D space (can be nullptr)rmin
: The inner radius of the disc surfacermax
: The outer radius of the disc surfacehphisec
: The opening angle of the disc surface and is optional the default is a full disc
Constructor for Discs from Transform3D, \( r_{min}, r_{max}, hx_{min}, hx_{max} \) This is n this case you have DiscTrapezoidBounds.
- Parameters
htrans
: is transform that places the disc in the global 3D space (can be nullptr)minhalfx
: The half length in x at minimal rmaxhalfx
: The half length in x at maximal rmaxR
: The inner radius of the disc surfaceminR
: The outer radius of the disc surfaceavephi
: The position in phi (default is 0.)stereo
: The optional stereo angle
Constructor for Discs from Transform3D and shared DiscBounds.
- Parameters
htrans
: The transform that positions the disc in global 3Ddbounds
: The disc bounds describing the surface coverage
Constructor from DetectorElementBase : Element proxy.
- Parameters
dbounds
: The disc bounds describing the surface coveragedetelement
: The detector element represented by this surface
-
DiscSurface
(const DiscSurface &other)¶ Copy Constructor.
- Parameters
other
: The source surface for the copy
-
DiscSurface
(const GeometryContext &gctx, const DiscSurface &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 DiscBounds>
m_bounds
¶ bounds (shared)
-