ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::GenericCuboidVolumeBounds Class Reference

#include <Acts/Geometry/GenericCuboidVolumeBounds.hpp>

Inheritance diagram for Acts::GenericCuboidVolumeBounds:
[legend]
Collaboration diagram for Acts::GenericCuboidVolumeBounds:
[legend]

Classes

struct  BoundValues
 This struct helps to symmetrize with the the other volume bounds classes. More...

Public Member Functions

 GenericCuboidVolumeBounds ()=delete
 GenericCuboidVolumeBounds (const std::array< Acts::Vector3, 8 > &vertices) noexcept(false)
 Constructor from a set of vertices.
 GenericCuboidVolumeBounds (const std::array< double, BoundValues::eSize > &values) noexcept(false)
 Constructor from a fixed size array.
 ~GenericCuboidVolumeBounds () override=default
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.
std::vector< AxisDirectioncanonicalAxes () const override
 Get the canonical direction values, i.e.
void draw (IVisualization3D &helper, const Transform3 &transform=Transform3::Identity()) const
 Draw this shape using a visualization helper.
bool inside (const Vector3 &gpos, double tol=0.) const override
 Checking if position given in volume frame is inside.
std::vector< OrientedSurfaceorientedSurfaces (const Transform3 &transform=Transform3::Identity()) const override
 Oriented surfaces, i.e.
std::ostream & toStream (std::ostream &sl) const override
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
 VolumeBounds ()=default
virtual ~VolumeBounds ()=default
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

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. More...
Static Public Attributes inherited from Acts::VolumeBounds
static const std::vector< std::string > s_boundsTypeNames
 Static member to get the name of the BoundsType.

Constructor & Destructor Documentation

◆ GenericCuboidVolumeBounds() [1/3]

Acts::GenericCuboidVolumeBounds::GenericCuboidVolumeBounds ( )
delete

◆ GenericCuboidVolumeBounds() [2/3]

Acts::GenericCuboidVolumeBounds::GenericCuboidVolumeBounds ( const std::array< Acts::Vector3, 8 > & vertices)
explicit

Constructor from a set of vertices.

Parameters
verticesThe set of input vertices

The ordering is considered to be:

  • the first 4 vertices are the "top" face
  • the second 4 vertices are the "bottom" face
  • both faces are given in counter clock wise order

◆ GenericCuboidVolumeBounds() [3/3]

Acts::GenericCuboidVolumeBounds::GenericCuboidVolumeBounds ( const std::array< double, BoundValues::eSize > & values)
explicit

Constructor from a fixed size array.

Parameters
valuesThe input values

◆ ~GenericCuboidVolumeBounds()

Acts::GenericCuboidVolumeBounds::~GenericCuboidVolumeBounds ( )
overridedefault

Member Function Documentation

◆ boundingBox()

Volume::BoundingBox Acts::GenericCuboidVolumeBounds::boundingBox ( const Transform3 * trf = nullptr,
const Vector3 & envelope = {0, 0, 0},
const Volume * entity = nullptr ) const
finalvirtual

Construct bounding box for this shape.

Parameters
trfOptional transform
envelopeOptional envelope to add / subtract from min/max
entityEntity to associate this bounding box with
Returns
Constructed bounding box

Implements Acts::VolumeBounds.

◆ canonicalAxes()

std::vector< AxisDirection > Acts::GenericCuboidVolumeBounds::canonicalAxes ( ) const
overridevirtual

Get the canonical direction values, i.e.

the axis directions that fully describe the shape's extent

Returns
vector of canonical binning values

Reimplemented from Acts::VolumeBounds.

◆ draw()

void Acts::GenericCuboidVolumeBounds::draw ( IVisualization3D & helper,
const Transform3 & transform = Transform3::Identity() ) const

Draw this shape using a visualization helper.

Parameters
helperThe visualizatin helper
transformOptional transformation matrix

◆ inside()

bool Acts::GenericCuboidVolumeBounds::inside ( const Vector3 & gpos,
double tol = 0. ) const
overridevirtual

Checking if position given in volume frame is inside.

Parameters
gposis the global position to be checked
tolis the tolerance applied for the inside check
Returns
boolean indicating if the position is inside

Implements Acts::VolumeBounds.

◆ orientedSurfaces()

std::vector< OrientedSurface > Acts::GenericCuboidVolumeBounds::orientedSurfaces ( const Transform3 & transform = Transform3::Identity()) const
overridevirtual

Oriented surfaces, i.e.

the decomposed boundary surfaces and the according navigation direction into the volume given the normal vector on the surface

Parameters
transformis 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

Returns
a vector of surfaces bounding this volume

Implements Acts::VolumeBounds.

◆ toStream()

std::ostream & Acts::GenericCuboidVolumeBounds::toStream ( std::ostream & sl) const
overridevirtual
Parameters
slis the output stream to be written into

Implements Acts::VolumeBounds.

◆ type()

VolumeBounds::BoundsType Acts::GenericCuboidVolumeBounds::type ( ) const
finalvirtual

Return the bounds type - for persistency optimization.

Returns
is a BoundsType enum

Implements Acts::VolumeBounds.

◆ values()

std::vector< double > Acts::GenericCuboidVolumeBounds::values ( ) const
finalvirtual

Return the bound values as dynamically sized vector.

Returns
this returns a copy of the internal values

Implements Acts::VolumeBounds.