Class CylinderVolumeBounds¶
Defined in File CylinderVolumeBounds.hpp
Inheritance Relationships¶
Base Type¶
public Acts::VolumeBounds
(Class VolumeBounds)
Class Documentation¶
-
class
Acts
::
CylinderVolumeBounds
: public Acts::VolumeBounds¶ [0] and [1] at positive \( \phi \)
Bounds for a cylindrical Volume, the orientedSurfaces(..) method creates a vector of up to 6 surfaces:
case A) 3 Surfaces (full cylindrical tube): BoundarySurfaceFace [index]:
negativeFaceXY [0] : Acts::DiscSurface with \( r_{inner}=0 \), parallel to \( xy \) plane at negative \( z\)
positiveFaceXY [1] : Acts::DiscSurface with \( r_{inner}=0 \), parallel to \( xy \) plane at positive \( z\)
cylinderCover [2] : Acts::CylinderSurface confining the Acts::Volume
case B) 4 Surfaces (tube with inner and outer radius): BoundarySurfaceFace [index]:
negativeFaceXY [0] : Acts::DiscSurface with \( r_{inner}>0 \), parallel to \( xy \) plane at negative \( z\)
positiveFaceXY [1] : Acts::DiscSurface with \( r_{inner}>0 \), parallel to \( xy \) plane at positive \( z\)
tubeOuterCover [2] : Acts::CylinderSurface with \( r = r_{outer} \)
tubeInnerCover [3] : Acts::CylinderSurface with \( r = r_{inner} \)
case C) 6 Surfaces (sectoral tube with inner and outer radius): BoundarySurfaceFace [index]:
negativeFaceXY [0] : Acts::DiscSurface with \( r_{inner}>0\) and \( \phi < \pi \), parallel to \( xy \) plane at negative \(z\)
positiveFaceXY [1] : Acts::DiscSurface with \( r_{inner}>0 \) and \( \phi < \pi \), parallel to \( xy \) plane at positive \(z\)
tubeSectorOuterCover [2] : Acts::CylinderSurface with \( r = r_{outer}\)
tubeSectorInnerCover [3] : Acts::CylinderSurface with \( r = r_{inner} \)
tubeSectorNegativePhi [4] : Rectangular Acts::PlaneSurface attached to [0] and [1] at negative \( \phi \)
tubeSectorNegativePhi [5] :
Public Types
Public Functions
-
CylinderVolumeBounds
() = delete¶
-
CylinderVolumeBounds
(double rmin, double rmax, double halfz, double halfphi = M_PI, double avgphi = 0.) noexcept(false)¶ Constructor.
- Parameters
rmin
: The inner radius of the cylinderrmax
: The outer radius of the cylinderhalfz
: The half length in zhalfphi
: The half lopening angleavgphi
: The average phi value
-
CylinderVolumeBounds
(const std::array<double, eSize> &values) noexcept(false)¶ Constructor - from a fixed size array.
- Parameters
values
: The bound values
-
CylinderVolumeBounds
(const CylinderBounds &cBounds, double thickness) noexcept(false)¶ Constructor - extruded from cylinder bounds and thickness.
- Parameters
cbounds
: the cylinder boundsthickness
: of the extrusion
-
CylinderVolumeBounds
(const RadialBounds &rBounds, double thickness) noexcept(false)¶ Constructor - extruded from radial bounds and thickness.
- Parameters
rbounds
: the Radial boundsthickness
:
-
CylinderVolumeBounds
(const CylinderVolumeBounds &cylbo) = default¶ Copy Constructor.
- Parameters
cylbo
: is the source cylinder volume bounds for the copy
-
~CylinderVolumeBounds
() override = default¶
-
double
binningBorder
(BinningValue bValue) const override¶ Binning borders in double.
- Parameters
bValue
: is the type used for the binning
-
Vector3
binningOffset
(BinningValue bValue) const override¶ Binning offset - overloaded for some R-binning types.
- Parameters
bValue
: is the type used for the binning
-
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.
- 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 Vector3 &pos, double tol = 0.) const override¶ This method checks if position in the 3D volume frame is inside the cylinder.
- Parameters
pos
: is a global position to be checkedtol
: is the tolerance for the check
-
CylinderVolumeBounds &
operator=
(const CylinderVolumeBounds &cylbo) = default¶
-
OrientedSurfaces
orientedSurfaces
(const Transform3 &transform = Transform3::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