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

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

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

Public Types

enum  BoundValues : unsigned int { eHalfLengthX = 0, eHalfLengthY = 1, eHalfLengthZ = 2, eSize }
 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
 
OrientedSurfaces orientedSurfaces (const Transform3D &transform=Transform3D::Identity()) const override
 
Volume::BoundingBox boundingBox (const Transform3D *trf=nullptr, const Vector3D &envelope={0, 0, 0}, const Volume *entity=nullptr) const final
 
double get (BoundValues bValue) const
 
std::ostream & toStream (std::ostream &sl) const override
 
- 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 stream_t >
stream_t & dumpT (stream_t &dt) const
 
void buildSurfaceBounds ()
 Create the surface bounds.
 
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 orientedSurfaces(...) method creates a vector of 6 surfaces:

BoundarySurfaceFace [index]:

Definition at line 47 of file CuboidVolumeBounds.hpp.

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

Member Enumeration Documentation

for streaming and access

Enumerator:
eHalfLengthX 
eHalfLengthY 
eHalfLengthZ 
eSize 

Definition at line 50 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 50 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 19 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 19 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 69 of file CuboidVolumeBounds.hpp.

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

References buildSurfaceBounds(), and 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 26 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 26 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 87 of file CuboidVolumeBounds.cpp.

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

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

+ Here is the call graph for this function:

void Acts::CuboidVolumeBounds::buildSurfaceBounds ( )
private

Create the surface bounds.

Definition at line 97 of file CuboidVolumeBounds.cpp.

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

Referenced by CuboidVolumeBounds().

+ Here is the caller 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 166 of file CuboidVolumeBounds.hpp.

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

References eHalfLengthX, eHalfLengthY, and eHalfLengthZ.

Referenced by CuboidVolumeBounds().

+ Here is the caller graph for this function:

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

Templated dumpT method

Template Parameters
stream_tThe type fo the dump stream
Parameters
dtThe dump stream object

Definition at line 175 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 175 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 125 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 125 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 154 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 154 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 33 of file CuboidVolumeBounds.cpp.

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

References m_values, m_xyBounds, m_yzBounds, and m_zxBounds.

Acts::OrientedSurfaces Acts::CuboidVolumeBounds::orientedSurfaces ( const Transform3D transform = Transform3D::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.

Definition at line 44 of file CuboidVolumeBounds.cpp.

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

References Acts::backward, Acts::forward, Acts::s_planeYZ, and Acts::s_planeZX.

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

+ Here is the caller 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 83 of file CuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 83 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 87 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 87 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 160 of file CuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 160 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 140 of file CuboidVolumeBounds.hpp.

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

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

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

Definition at line 142 of file CuboidVolumeBounds.hpp.

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

Referenced by operator=().

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

Definition at line 143 of file CuboidVolumeBounds.hpp.

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

Referenced by operator=().

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

Definition at line 144 of file CuboidVolumeBounds.hpp.

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

Referenced by operator=().


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