|
ACTS
Experiment-independent tracking
|
Pure Absract Base Class for Volume bounds. More...
#include <Acts/Geometry/VolumeBounds.hpp>
Public Types | |
| enum class | BoundsType { eCone , eCuboid , eCutoutCylinder , eCylinder , eGenericCuboid , eTrapezoid , eDiamond , eOther } |
| This is nested to the VolumeBounds, as also SurfaceBounds will have Bounds Type. More... | |
Public Member Functions | |
| VolumeBounds ()=default | |
| virtual | ~VolumeBounds ()=default |
| virtual Volume::BoundingBox | boundingBox (const Transform3 *trf=nullptr, const Vector3 &envelope={0, 0, 0}, const Volume *entity=nullptr) const =0 |
| Construct bounding box for this shape. | |
| virtual std::vector< AxisDirection > | canonicalAxes () const |
| Get the canonical axis direction that fully describe the shape's extent. | |
| virtual bool | inside (const Vector3 &gpos, double tol=0.) const =0 |
| Checking if position given in volume frame is inside. | |
| virtual std::vector< OrientedSurface > | orientedSurfaces (const Transform3 &transform=Transform3::Identity()) const =0 |
| Oriented surfaces, i.e. | |
| virtual double | referenceBorder (AxisDirection aDir) const |
| Binning borders in double. | |
| virtual Vector3 | referenceOffset (AxisDirection aDir) const |
| Binning offset - overloaded for some R-binning types. | |
| virtual std::ostream & | toStream (std::ostream &sl) const =0 |
| Output Method for std::ostream, to be overloaded by child classes. | |
| virtual BoundsType | type () const =0 |
| Return the bounds type - for persistency optimization. | |
| virtual std::vector< double > | values () const =0 |
| Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds. | |
Static Public Attributes | |
| static const std::vector< std::string > | s_boundsTypeNames |
| Static member to get the name of the BoundsType. | |
Pure Absract Base Class for Volume bounds.
Acts::VolumeBounds are a set of up to six confining Surfaces that are stored in a std::vector. Each type of Acts::VolumeBounds has to implement a orientedSurfaces() and a inside() method.
The Volume, retrieving a set of Surfaces from the VolumeBounds, can turn the Surfaces into BoundarySurfaces.
|
strong |
|
default |
|
virtualdefault |
|
pure virtual |
Construct bounding box for this shape.
| trf | Optional transform |
| envelope | Optional envelope to add / subtract from min/max |
| entity | Entity to associate this bounding box with |
Implemented in Acts::ConeVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, Acts::CylinderVolumeBounds, Acts::DiamondVolumeBounds, Acts::GenericCuboidVolumeBounds, and Acts::TrapezoidVolumeBounds.
|
virtual |
Get the canonical axis direction that fully describe the shape's extent.
Reimplemented in Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, Acts::CylinderVolumeBounds, and Acts::GenericCuboidVolumeBounds.
|
pure virtual |
Checking if position given in volume frame is inside.
| gpos | is the global position to be checked |
| tol | is the tolerance applied for the inside check |
Implemented in Acts::ConeVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, Acts::CylinderVolumeBounds, Acts::DiamondVolumeBounds, Acts::GenericCuboidVolumeBounds, and Acts::TrapezoidVolumeBounds.
|
pure virtual |
Oriented surfaces, i.e.
the decomposed boundary surfaces and the according navigation direction into the volume given the normal vector on the surface
| transform | is the 3D transform to be applied to the boundary surfaces to position them in 3D space |
It will throw an exception if the orientation prescription is not adequate
Implemented in Acts::ConeVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, Acts::CylinderVolumeBounds, Acts::DiamondVolumeBounds, Acts::GenericCuboidVolumeBounds, and Acts::TrapezoidVolumeBounds.
|
virtual |
Binning borders in double.
| aDir | is the binning schema used |
Reimplemented in Acts::CuboidVolumeBounds, and Acts::CylinderVolumeBounds.
|
virtual |
Binning offset - overloaded for some R-binning types.
| aDir | is the binning schema used |
Reimplemented in Acts::CylinderVolumeBounds.
|
pure virtual |
Output Method for std::ostream, to be overloaded by child classes.
| sl | is the output stream to be dumped into |
Implemented in Acts::ConeVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, Acts::CylinderVolumeBounds, Acts::DiamondVolumeBounds, Acts::GenericCuboidVolumeBounds, and Acts::TrapezoidVolumeBounds.
|
pure virtual |
Return the bounds type - for persistency optimization.
Implemented in Acts::ConeVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, Acts::CylinderVolumeBounds, Acts::DiamondVolumeBounds, Acts::GenericCuboidVolumeBounds, and Acts::TrapezoidVolumeBounds.
|
pure virtual |
Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds.
Implemented in Acts::ConeVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, Acts::CylinderVolumeBounds, Acts::DiamondVolumeBounds, Acts::GenericCuboidVolumeBounds, and Acts::TrapezoidVolumeBounds.
|
static |
Static member to get the name of the BoundsType.