Class TrapezoidVolumeBounds¶
Defined in File TrapezoidVolumeBounds.hpp
Inheritance Relationships¶
Base Type¶
public Acts::VolumeBounds
(Class VolumeBounds)
Class Documentation¶
-
class
Acts
::
TrapezoidVolumeBounds
: public Acts::VolumeBounds¶ Bounds for a trapezoidal shaped Volume, the orientedSurface(…) method creates a vector of 6 surfaces:
BoundarySurfaceFace [index]:
negativeFaceXY [0] : Trazpezoidal Acts::PlaneSurface, parallel to \( xy \) plane at negative \(z\)
positiveFaceXY [1] : Trazpezoidal Acts::PlaneSurface, parallel to \( xy \) plane at positive \(z\)
trapezoidFaceAlpha [2] : Rectangular Acts::PlaneSurface, attached to [0] and [1] at negative \(x\) (associated to alpha)
trapezoidFaceBeta [3] : Rectangular Acts::PlaneSurface, attached to [0] and [1] at positive \( x\) (associated to beta)
negativeFaceZX [4] : Rectangular Acts::PlaneSurface, parallel to \( zx \) plane at negative \(y\)
positiveFaceZX [5] : Rectangular Acts::PlaneSurface, parallel to \( zx \) plane at positive \(y\)
Public Types
-
enum
BoundValues
¶ for acces / streaming
Values:
-
enumerator
eHalfLengthXnegY
= 0¶ halflength in x at negative y
-
enumerator
eHalfLengthXposY
= 1¶ halflength in x at positive y
-
enumerator
eHalfLengthY
= 2¶ halflength in y
-
enumerator
eHalfLengthZ
= 3¶ halflength in z
-
enumerator
eAlpha
= 4¶ opening angle alpha (in point A)
-
enumerator
eBeta
= 5¶ opening angle beta (in point B)
-
enumerator
eSize
¶ length of the bounds vector
-
enumerator
Public Functions
-
TrapezoidVolumeBounds
() = delete¶
-
TrapezoidVolumeBounds
(double minhalex, double maxhalex, double haley, double halez) noexcept(false)¶ Constructor - the trapezoid boundaries (symmetric trapezoid)
- Parameters
minhalex
: is the half length in x at minimal ymaxhalex
: is the half length in x at maximal yhaley
: is the half length in yhalez
: is the half length in z
-
TrapezoidVolumeBounds
(double minhalex, double haley, double halez, double alpha, double beta) noexcept(false)¶ Constructor - the trapezoid boundaries (arbitrary trapezoid)
- Parameters
minhalex
: is the half length in x at minimal yhaley
: is the half length in yhalez
: is the half length in zalpha
: is the openeing angle at -x,-ybeta
: is the openeing angle at +x,-y
-
TrapezoidVolumeBounds
(const std::array<double, eSize> &values) noexcept(false)¶ Constructor - from a fixed size array.
- Parameters
values
: The bound values
-
TrapezoidVolumeBounds
(const TrapezoidVolumeBounds &trabo) = default¶
-
~TrapezoidVolumeBounds
() override = default¶
-
Volume::BoundingBox
boundingBox
(const Transform3D *trf = nullptr, const Vector3D &envelope = {0, 0, 0}, const Volume *entity = nullptr) const final¶ Construct bounding box for this shape.
- Return
Constructed bounding box
- Parameters
trf
: Optional transformenvelope
: Optional envelope to add / subtract from min/maxentity
: Entity to associate this bounding box with
-
double
get
(BoundValues bValue) const¶ Access to the bound values.
- Parameters
bValue
: the class nested enum for the array access
-
bool
inside
(const Vector3D &pos, double tol = 0.) const override¶ This method checks if position in the 3D volume frame is inside the cylinder.
- Return
boolean indicator if position is inside
- Parameters
pos
: is the global position to be checkedtol
: is the tolerance applied
-
TrapezoidVolumeBounds &
operator=
(const TrapezoidVolumeBounds &trabo) = default¶
-
OrientedSurfaces
orientedSurfaces
(const Transform3D &transform = Transform3D::Identity()) const override¶ Oriented surfaces, i.e.
the decomposed boundary surfaces and the according navigation direction into the volume given the normal vector on the surface
It will throw an exception if the orientation prescription is not adequate
- Parameters
transform
: is the 3D transform to be applied to the boundary surfaces to position them in 3D space
- Return
a vector of surfaces bounding this volume
-
std::ostream &
toStream
(std::ostream &sl) const override¶ Output Method for std::ostream.
-
VolumeBounds::BoundsType
type
() const final¶ Return the bounds type - for persistency optimization.
- Return
is a BoundsType enum
-
std::vector<double>
values
() const final¶ Return the bound values as dynamically sized vector.
- Return
this returns a copy of the internal values