Class Acts::ConeVolumeBounds¶
-
class ConeVolumeBounds : public Acts::VolumeBounds¶
Volume bound class for describing conical volumes either with cylindrical inlay or outer boundary, it also allows for a sectoral description.
Public Types
Public Functions
-
ConeVolumeBounds() = delete¶
-
ConeVolumeBounds(double innerAlpha, double innerTipZ, double outerAlpha, double outerOffsetZ, double halflengthZ, double averagePhi, double halfPhiSector) noexcept(false)¶
Constructor - for general cone-cone setups.
- Parameters
innerAlpha – The opening angle of the inner cone (0 if no cone)
innerTipZ – The tip z position in of the inner cone, w.r.t center
outerAlpha – The opening angle of the outer cone (0 if no cone)
outerOffsetZ – The tip z position in of the outer cone, w.r.t center
halflengthZ – The minimum z value of the inner and outer cones
averagePhi – The phi orientation of the sector
halfPhiSector – The opening angle phi sector
-
ConeVolumeBounds(double cylinderR, double alpha, double offsetZ, double halflengthZ, double averagePhi, double halfPhiSector) noexcept(false)¶
Constructor - for general cylidner-cone setups.
Note
depending on cylinderR > coneR it is constructing a cone with cylindrical cutout or a cylinder with conical cutout
- Parameters
cylinderR – The inner radius of the cylinder
alpha – The opening angle of the cone (0 if no cone)
offsetZ – The tip z position in of the cone, w.r.t center
halflengthZ – The minimum z value of the inner and outer cones
averagePhi – The phi orientation of the sector (defaulted to 0)
halfPhiSector – The opening angle phi sector
-
inline ConeVolumeBounds(const std::array<double, eSize> &values) noexcept(false)¶
Constructor - from a fixed size array.
- Parameters
values – The bound values
-
ConeVolumeBounds(const ConeVolumeBounds &cobo) = default¶
-
~ConeVolumeBounds() override = default¶
-
virtual 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.
- Parameters
trf – Optional transform
envelope – Optional envelope to add / subtract from min/max
entity – Entity to associate this bounding box with
- Returns
Constructed bounding box
-
inline double get(BoundValues bValue) const¶
Access to the bound values.
- Parameters
bValue – the class nested enum for the array access
-
inline double innerRmax() const¶
-
inline double innerRmin() const¶
-
inline double innerTanAlpha() const¶
-
virtual bool inside(const Vector3 &pos, double tol = 0.) const final¶
This method checks if position in the 3D volume frame is inside the cylinder.
- Parameters
pos – is the position in volume frame to be checked
tol – is the absolute tolerance to be applied
-
ConeVolumeBounds &operator=(const ConeVolumeBounds &cobo) = default¶
-
virtual OrientedSurfaces orientedSurfaces(const Transform3 &transform = Transform3::Identity()) const final¶
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
- Returns
a vector of surfaces bounding this volume
-
inline double outerRmax() const¶
-
inline double outerRmin() const¶
-
inline double outerTanAlpha() const¶
-
virtual std::ostream &toStream(std::ostream &sl) const final¶
Output Method for std::ostream.
- Parameters
sl – is ostream operator to be dumped into
-
inline virtual VolumeBounds::BoundsType type() const final¶
Return the bounds type - for persistency optimization.
- Returns
is a BoundsType enum
-
inline virtual std::vector<double> values() const final¶
Return the bound values as dynamically sized vector.
- Returns
this returns a copy of the internal values
-
ConeVolumeBounds() = delete¶