Back to home page

EIC code displayed by LXR

 
 

    


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 Each {class}`Acts::Surface` instance reports its type from {func}`Acts::Surface::type()`:
0013 
0014 :::{doxygenenum} Acts::Surface::SurfaceType
0015 :::
0016 
0017 | Surface Type                                                   | Local Coordinates | Bound Types available                                                                                                           |
0018 |:---------------------------------------------------------------|-------------------|:--------------------------------------------------------------------------------------------------------------------------------|
0019 | {class}`Acts::ConeSurface`                                     | $[r\phi, z]$      | {class}`Acts::ConeBounds`                                                                                                       |
0020 | {class}`Acts::CylinderSurface`                                 | $[r, \phi]$       | {class}`Acts::CylinderBounds`                                                                                                   |
0021 | {class}`Acts::DiscSurface`                                     | $[r, \phi]$       | {class}`Acts::RadialBounds`, {class}`Acts::DiscTrapezoidBounds`                                                                 |
0022 | {class}`Acts::PlaneSurface`                                    | $[x, y]$          | {class}`Acts::RectangleBounds`, {class}`Acts::TrapezoidBounds`, <br>{class}`Acts::InfiniteBounds`, {class}`Acts::EllipseBounds` |
0023 | {class}`Acts::PerigeeSurface`,<br> {class}`Acts::StrawSurface` | $[d, z]$          | {class}`Acts::CylinderBounds`                                                                                                   |
0024 | {class}`Acts::LineSurface`                                     | $[d_0, z_0]$      | {class}`Acts::LineBounds`                                                                                                       |
0025 
0026 ```{tip}
0027 In an ideal setup, the coordinate systems also define the readout
0028 measurement directions. In such a case, a track prediction from the
0029 propagation will already be in the correct frame of the measurement and
0030 residual or compatibility checks will not need additional coordinate
0031 transformations.
0032 ```
0033 
0034 ## Plane surface
0035 
0036 ![PlaneBounds](figures/PlaneBounds.png)
0037 
0038 :::{doxygenclass} Acts::PlaneSurface
0039 ---
0040 
0041 members: globalToLocal,localToGlobal,intersect,normal
0042 ---
0043 
0044 :::
0045 
0046 ## Disc surface
0047 
0048 ![DiscBounds](figures/DiscBounds.png)
0049 
0050 :::{doxygenclass} Acts::DiscSurface
0051 ---
0052 
0053 members: globalToLocal,localToGlobal,intersect,normal,mergedWith
0054 ---
0055 
0056 :::
0057 
0058 ## Cylinder surface
0059 
0060 ![CylinderBounds](figures/CylinderBounds.png)
0061 
0062 :::{doxygenclass} Acts::CylinderSurface
0063 ---
0064 
0065 members: globalToLocal,localToGlobal,intersect,normal,mergedWith
0066 ---
0067 
0068 :::
0069 
0070 ## Cone surface
0071 
0072 :::{doxygenclass} Acts::ConeSurface
0073 ---
0074 
0075 members: globalToLocal,localToGlobal,intersect,normal
0076 ---
0077 
0078 :::
0079 
0080 ## Line surface
0081 
0082 {class}`Acts::LineSurface` is a special kind of surface that depends on a reference
0083 direction, typically the unit momentum direction $\vec d$ of a particle. A point in
0084 space is considered *on surface* if and only if it coincides with the point of
0085 closest approach between the direction vector $\vec d$ and the line direction
0086 vector $\vec z$. As such, the function {func}`Acts::LineSurface::globalToLocal`
0087 can fail, if the argument position and direction do not fulfill this criterion.
0088 It is pure-virtual, meaning that it can not be instantiated on its own.
0089 
0090 :::{doxygenclass} Acts::LineSurface
0091 ---
0092 
0093 members: globalToLocal,localToGlobal,intersect,normal
0094 ---
0095 
0096 :::
0097 
0098 ### Straw surface
0099 
0100 :::{doxygenclass} Acts::StrawSurface
0101 ---
0102 
0103 members: false
0104 ---
0105 
0106 :::
0107 
0108 ### Perigee surface
0109 
0110 :::{doxygenclass} Acts::PerigeeSurface
0111 ---
0112 
0113 members: false
0114 ---
0115 
0116 :::
0117 
0118 ## API listings
0119 
0120 :::{doxygenclass} Acts::Surface
0121 :::