|
ACTS
Experiment-independent tracking
|
Bounds for a polygonal prism shaped Volume, the orientedSurface(...) method creates a vector of 8 surfaces: 2 Diamond Shape Surfaces (see. More...
#include <Acts/Geometry/DiamondVolumeBounds.hpp>
Public Types | |
| enum | BoundValues : unsigned int { eHalfLengthX1 = 0 , eHalfLengthX2 = 1 , eHalfLengthX3 = 2 , eLengthY1 = 3 , eLengthY2 = 4 , eHalfLengthZ = 5 , eAlphaAngle = 6 , eBetaAngle = 7 , eSize } |
| for access / streaming More... | |
| enum class | Face : unsigned int { NegativeZFaceXY = 0 , PositiveZFaceXY = 1 , NegativeXFaceYZ12 = 2 , PositiveXFaceYZ12 , NegativeXFaceYZ23 , PositiveXFaceYZ23 , NegativeYFaceZX = 6 , PositiveYFaceZX = 7 } |
| Enumeration of faces of the diamond volume. | |
| Public Types inherited from Acts::VolumeBounds | |
| enum class | BoundsType { eCone , eCuboid , eCutoutCylinder , eCylinder , eGenericCuboid , eTrapezoid , eDiamond , eOther } |
| This is nested to the VolumeBounds, as also SurfaceBounds will have Bounds Type. | |
Public Member Functions | |
| DiamondVolumeBounds (const DiamondVolumeBounds &other)=default | |
| Copy constructor. | |
| DiamondVolumeBounds (DiamondVolumeBounds &&other)=default | |
| Move constructor. | |
| DiamondVolumeBounds (double x1, double x2, double x3, double y1, double y2, double halez) noexcept(false) | |
| Constructor - the polygonal prism boundaries. | |
| ~DiamondVolumeBounds () override=default | |
| Default destructor. | |
| Volume::BoundingBox | boundingBox (const Transform3 *trf=nullptr, const Vector3 &envelope={0, 0, 0}, const Volume *entity=nullptr) const final |
| Construct bounding box for this shape. | |
| double | get (BoundValues bValue) const |
| Access to the bound values. | |
| bool | inside (const Vector3 &pos, double tol=0.) const final |
| This method checks if position in the 3D volume frame is inside the cylinder. | |
| DiamondVolumeBounds & | operator= (const DiamondVolumeBounds &other)=default |
| Copy constructor assignment. | |
| DiamondVolumeBounds & | operator= (DiamondVolumeBounds &&other)=default |
| Move constructor assignment. | |
| std::vector< OrientedSurface > | orientedSurfaces (const Transform3 &transform=Transform3::Identity()) const final |
| Oriented surfaces, i.e. | |
| std::ostream & | toStream (std::ostream &os) const override |
| Output Method for std::ostream. | |
| VolumeBounds::BoundsType | type () const final |
| Return the bounds type - for persistency optimization. | |
| std::vector< double > | values () const final |
| Return the bound values as dynamically sized vector. | |
| Public Member Functions inherited from Acts::VolumeBounds | |
| virtual std::vector< AxisDirection > | canonicalAxes () const |
| Get the canonical axis direction that fully describe the shape's extent. | |
| virtual double | referenceBorder (AxisDirection aDir) const |
| Binning borders in double. | |
| virtual Vector3 | referenceOffset (AxisDirection aDir) const |
| Binning offset - overloaded for some R-binning types. | |
Additional Inherited Members | |
| Static Public Attributes inherited from Acts::VolumeBounds | |
| static const std::vector< std::string > | s_boundsTypeNames |
| Static member to get the name of the BoundsType. | |
Bounds for a polygonal prism shaped Volume, the orientedSurface(...) method creates a vector of 8 surfaces: 2 Diamond Shape Surfaces (see.
and 6 Rectangular Shape Surfaces.
BoundarySurfaceFace [index]:
| enum Acts::DiamondVolumeBounds::BoundValues : unsigned int |
for access / streaming
| Acts::DiamondVolumeBounds::DiamondVolumeBounds | ( | double | x1, |
| double | x2, | ||
| double | x3, | ||
| double | y1, | ||
| double | y2, | ||
| double | halez ) |
Constructor - the polygonal prism boundaries.
| x1 | is the half length in x at negative y1 |
| x2 | is the half length in x at y=0 |
| x3 | is the half length in x at positive y2 |
| y1 | is the positive y extent |
| y2 | is the negative y extent |
| halez | is the half length in z |
|
default |
Copy constructor.
| other | The other DiamondVolumeBounds to copy from |
|
default |
Move constructor.
| other | The other DiamondVolumeBounds to move from |
|
finalvirtual |
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 |
Implements Acts::VolumeBounds.
| double Acts::DiamondVolumeBounds::get | ( | BoundValues | bValue | ) | const |
Access to the bound values.
| bValue | the class nested enum for the array access |
|
finalvirtual |
This method checks if position in the 3D volume frame is inside the cylinder.
| pos | is the global position to be checked |
| tol | is the tolerance applied |
Implements Acts::VolumeBounds.
|
default |
Copy constructor assignment.
| other | The other DiamondVolumeBounds to copy from |
|
default |
Move constructor assignment.
| other | The other DiamondVolumeBounds to move from |
|
finalvirtual |
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
Implements Acts::VolumeBounds.
|
overridevirtual |
Output Method for std::ostream.
| os | is the output stream |
Implements Acts::VolumeBounds.
|
finalvirtual |
Return the bounds type - for persistency optimization.
Implements Acts::VolumeBounds.
|
finalvirtual |
Return the bound values as dynamically sized vector.
Implements Acts::VolumeBounds.