ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::CuboidVolumeBounds Class Reference

#include <acts/blob/master/Core/include/Acts/Geometry/CuboidVolumeBounds.hpp>

+ Inheritance diagram for Acts::CuboidVolumeBounds:
+ Collaboration diagram for Acts::CuboidVolumeBounds:

Public Types

enum  BoundValues : int { eHalfLengthX = 0, eHalfLengthY = 1, eHalfLengthZ = 2, eSize = 3 }
 for streaming and access More...
 
- Public Types inherited from Acts::VolumeBounds
enum  BoundsType : int {
  eCone = 0, eCuboid = 1, eCutoutCylinder = 2, eCylinder = 3,
  eGenericCuboid = 4, eTrapezoid = 5, eOther = 6
}
 

Public Member Functions

 CuboidVolumeBounds ()=delete
 
 CuboidVolumeBounds (double halex, double haley, double halez) noexcept(false)
 
 CuboidVolumeBounds (const std::array< double, eSize > &values) noexcept(false)
 
 CuboidVolumeBounds (const CuboidVolumeBounds &bobo)
 
CuboidVolumeBoundsoperator= (const CuboidVolumeBounds &bobo)
 
 ~CuboidVolumeBounds () override=default
 
VolumeBounds::BoundsType type () const final
 
std::vector< double > values () const final
 
bool inside (const Vector3D &pos, double tol=0.) const override
 
SurfacePtrVector decomposeToSurfaces (const Transform3D *transformPtr) const override
 
Volume::BoundingBox boundingBox (const Transform3D *trf=nullptr, const Vector3D &envelope={0, 0, 0}, const Volume *entity=nullptr) const final
 
std::ostream & toStream (std::ostream &sl) const override
 
double get (BoundValues bValue) const
 
- Public Member Functions inherited from Acts::VolumeBounds
 VolumeBounds ()=default
 
virtual ~VolumeBounds ()=default
 
virtual Vector3D binningOffset (BinningValue bValue) const
 Binning offset - overloaded for some R-binning types.
 
virtual double binningBorder (BinningValue bValue) const
 

Private Member Functions

template<class T >
TdumpT (T &dt) const
 Templated dumpT method.
 
void checkConsistency () noexcept(false)
 

Private Attributes

std::array< double, eSizem_values
 The bound values ordered in a fixed size array.
 
std::shared_ptr< const
RectangleBounds
m_xyBounds = nullptr
 
std::shared_ptr< const
RectangleBounds
m_yzBounds = nullptr
 
std::shared_ptr< const
RectangleBounds
m_zxBounds = nullptr
 

Detailed Description

Bounds for a cubical Volume, the decomposeToSurfaces method creates a vector of 6 surfaces:

BoundarySurfaceFace [index]:

CuboidVolumeBounds_decomp.gif

Definition at line 49 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 49 of file CuboidVolumeBounds.hpp

Member Enumeration Documentation

for streaming and access

Enumerator:
eHalfLengthX 
eHalfLengthY 
eHalfLengthZ 
eSize 

Definition at line 52 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 52 of file CuboidVolumeBounds.hpp

Constructor & Destructor Documentation

Acts::CuboidVolumeBounds::CuboidVolumeBounds ( )
delete
Acts::CuboidVolumeBounds::CuboidVolumeBounds ( double  halex,
double  haley,
double  halez 
)
noexcept

Constructor - the box boundaries

Parameters
halexis the half length of the cube in x
haleyis the half length of the cube in y
halezis the half length of the cube in z

Definition at line 18 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 18 of file CuboidVolumeBounds.cpp

Acts::CuboidVolumeBounds::CuboidVolumeBounds ( const std::array< double, eSize > &  values)
inlinenoexcept

Constructor - from a fixed size array

Parameters
valuesiw the bound values

Definition at line 71 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 71 of file CuboidVolumeBounds.hpp

References checkConsistency().

+ Here is the call graph for this function:

Acts::CuboidVolumeBounds::CuboidVolumeBounds ( const CuboidVolumeBounds bobo)

Copy Constructor

Parameters
bobois the source volume bounds to be copied

Definition at line 28 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 28 of file CuboidVolumeBounds.cpp

Acts::CuboidVolumeBounds::~CuboidVolumeBounds ( )
overridedefault

Member Function Documentation

Acts::Volume::BoundingBox Acts::CuboidVolumeBounds::boundingBox ( const Transform3D trf = nullptr,
const Vector3D 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.

Definition at line 108 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 108 of file CuboidVolumeBounds.cpp

References Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::transformed().

+ Here is the call graph for this function:

void Acts::CuboidVolumeBounds::checkConsistency ( )
inlineprivatenoexcept

Check the input values for consistency, will throw a logic_exception if consistency is not given

Definition at line 155 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 155 of file CuboidVolumeBounds.hpp

References eHalfLengthX, eHalfLengthY, and eHalfLengthZ.

Referenced by CuboidVolumeBounds().

+ Here is the caller graph for this function:

Acts::SurfacePtrVector Acts::CuboidVolumeBounds::decomposeToSurfaces ( const Transform3D transformPtr) const
overridevirtual

Method to decompose the Bounds into boundarySurfaces

Parameters
transformPtris the transfrom of the volume

Implements Acts::VolumeBounds.

Definition at line 46 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 46 of file CuboidVolumeBounds.cpp

References M_PI, m_xyBounds(), m_yzBounds(), m_zxBounds(), and Acts::Test::transform.

+ Here is the call graph for this function:

template<class T >
T & Acts::CuboidVolumeBounds::dumpT ( T dt) const
private

Templated dumpT method.

Definition at line 164 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 164 of file CuboidVolumeBounds.hpp

References eHalfLengthX, eHalfLengthY, and eHalfLengthZ.

double Acts::CuboidVolumeBounds::get ( BoundValues  bValue) const
inline

Access to the bound values

Parameters
bValuethe class nested enum for the array access

Definition at line 124 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 124 of file CuboidVolumeBounds.hpp

References m_values.

Referenced by Acts::adjustBinUtility(), and Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

bool Acts::CuboidVolumeBounds::inside ( const Vector3D pos,
double  tol = 0. 
) const
inlineoverridevirtual

This method checks if position in the 3D volume frame is inside the cylinder

Parameters
posis the position in volume frame to be checked
tolis the absolute tolerance to be applied

Implements Acts::VolumeBounds.

Definition at line 143 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 143 of file CuboidVolumeBounds.hpp

References kdfinder::abs(), eHalfLengthX, eHalfLengthY, and eHalfLengthZ.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::CuboidVolumeBounds & Acts::CuboidVolumeBounds::operator= ( const CuboidVolumeBounds bobo)

Assignment operator

Parameters
bobois the source volume bounds to be assigned

Definition at line 35 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 35 of file CuboidVolumeBounds.cpp

References m_values, m_xyBounds(), m_xyBounds, m_yzBounds(), m_yzBounds, m_zxBounds(), and m_zxBounds.

+ Here is the call graph for this function:

std::ostream & Acts::CuboidVolumeBounds::toStream ( std::ostream &  sl) const
overridevirtual

Output Method for std::ostream

Parameters
slis ostream operator to be dumped into

Implements Acts::VolumeBounds.

Definition at line 104 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 104 of file CuboidVolumeBounds.cpp

VolumeBounds::BoundsType Acts::CuboidVolumeBounds::type ( ) const
inlinefinalvirtual

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::VolumeBounds.

Definition at line 88 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 88 of file CuboidVolumeBounds.hpp

References Acts::VolumeBounds::eCuboid.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

std::vector< double > Acts::CuboidVolumeBounds::values ( ) const
inlinefinalvirtual

Return the bound values as dynamically sized vector

Returns
this returns a copy of the internal values

Implements Acts::VolumeBounds.

Definition at line 149 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 149 of file CuboidVolumeBounds.hpp

References m_values.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

Member Data Documentation

std::array<double, eSize> Acts::CuboidVolumeBounds::m_values
private

The bound values ordered in a fixed size array.

Definition at line 132 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 132 of file CuboidVolumeBounds.hpp

Referenced by get(), operator=(), and values().

std::shared_ptr<const RectangleBounds> Acts::CuboidVolumeBounds::m_xyBounds = nullptr
private

Definition at line 134 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 134 of file CuboidVolumeBounds.hpp

Referenced by operator=().

std::shared_ptr<const RectangleBounds> Acts::CuboidVolumeBounds::m_yzBounds = nullptr
private

Definition at line 135 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 135 of file CuboidVolumeBounds.hpp

Referenced by operator=().

std::shared_ptr<const RectangleBounds> Acts::CuboidVolumeBounds::m_zxBounds = nullptr
private

Definition at line 136 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 136 of file CuboidVolumeBounds.hpp

Referenced by operator=().


The documentation for this class was generated from the following files: