Warning, /acts/docs/core/geometry/surfaces.md is written in an unsupported language. File is not indexed.
0001 # Surface classes
0002
0003 All classes which represent a thin surface in ACTS inherit from
0004 the common virtual base class {class}`Acts::Surface`, which defines
0005 the public interface of all surfaces. While the different concrete
0006 surface classes are defined by their respective native local
0007 coordinate system, the shapes on these surfaces are defined by classes
0008 that inherit from {class}`Acts::SurfaceBounds`, which every surface must provide.
0009 In case of boundless surfaces, a special {class}`Acts::InfiniteBounds` class is
0010 available.
0011
0012
0013
0014 Each {class}`Acts::Surface` instance reports its type from {func}`Acts::Surface::type()`:
0015
0016 :::{doxygenenum} Acts::Surface::SurfaceType
0017 :::
0018
0019
0020 | Surface Type | Local Coordinates | Bound Types available |
0021 |:---------------------------------------------------------------|-------------------|:--------------------------------------------------------------------------------------------------------------------------------|
0022 | {class}`Acts::ConeSurface` | $[r\phi, z]$ | {class}`Acts::ConeBounds` |
0023 | {class}`Acts::CylinderSurface` | $[r, \phi]$ | {class}`Acts::CylinderBounds` |
0024 | {class}`Acts::DiscSurface` | $[r, \phi]$ | {class}`Acts::RadialBounds`, {class}`Acts::DiscTrapezoidBounds` |
0025 | {class}`Acts::PlaneSurface` | $[x, y]$ | {class}`Acts::RectangleBounds`, {class}`Acts::TrapezoidBounds`, <br>{class}`Acts::InfiniteBounds`, {class}`Acts::EllipseBounds` |
0026 | {class}`Acts::PerigeeSurface`,<br> {class}`Acts::StrawSurface` | $[d, z]$ | {class}`Acts::CylinderBounds` |
0027 | {class}`Acts::LineSurface` | $[d_0, z_0]$ | {class}`Acts::LineBounds` |
0028
0029 ```{tip}
0030 In an ideal setup, the coordinate systems also define the readout
0031 measurement directions. In such a case, a track prediction from the
0032 propagation will already be in the correct frame of the measurement and
0033 residual or compatibility checks will not need additional coordinate
0034 transformations.
0035 ```
0036
0037 ## Plane surface
0038
0039 
0040
0041 :::{doxygenclass} Acts::PlaneSurface
0042 ---
0043 members: globalToLocal,localToGlobal,intersect,normal
0044 ---
0045 :::
0046
0047 ## Disc surface
0048
0049 
0050
0051 :::{doxygenclass} Acts::DiscSurface
0052 ---
0053 members: globalToLocal,localToGlobal,intersect,normal
0054 ---
0055 :::
0056
0057 ## Cylinder surface
0058
0059 
0060
0061 :::{doxygenclass} Acts::CylinderSurface
0062 ---
0063 members: globalToLocal,localToGlobal,intersect,normal
0064 ---
0065 :::
0066
0067 ## Cone surface
0068
0069 :::{doxygenclass} Acts::ConeSurface
0070 ---
0071 members: globalToLocal,localToGlobal,intersect,normal
0072 ---
0073 :::
0074
0075 ## Line surface
0076
0077 {class}`Acts::LineSurface` is a special kind of surface that depends on a reference
0078 direction, typically the unit momentum direction $\vec d$ of a particle. A point in
0079 space is considered *on surface* if and only if it coincides with the point of
0080 closest approach between the direction vector $\vec d$ and the line direction
0081 vector $\vec z$. As such, the function {func}`Acts::LineSurface::globalToLocal`
0082 can fail, if the argument position and direction do not fulfill this criterion.
0083 It is pure-virtual, meaning that it can not be instantiated on its own.
0084
0085 :::{doxygenclass} Acts::LineSurface
0086 ---
0087 members: globalToLocal,localToGlobal,intersect,normal
0088 ---
0089 :::
0090
0091 ### Straw surface
0092
0093 :::{doxygenclass} Acts::StrawSurface
0094 ---
0095 members: false
0096 ---
0097 :::
0098
0099 ### Perigee surface
0100
0101 :::{doxygenclass} Acts::PerigeeSurface
0102 ---
0103 members: false
0104 ---
0105 :::
0106
0107
0108 ## API listings
0109
0110 :::{doxygenclass} Acts::Surface
0111 :::