Analysis Software
Documentation for sPHENIX simulation 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< doublevalues () const final
 
bool inside (const Vector3 &pos, double tol=0.) const override
 
OrientedSurfaces orientedSurfaces (const Transform3 &transform=Transform3::Identity()) const override
 
Volume::BoundingBox boundingBox (const Transform3 *trf=nullptr, const Vector3 &envelope={0, 0, 0}, const Volume *entity=nullptr) const final
 
double binningBorder (BinningValue bValue) 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 Vector3 binningOffset (BinningValue bValue) const
 Binning offset - overloaded for some R-binning types.
 

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 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 20 of file CuboidVolumeBounds.cpp.

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

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

Acts::CuboidVolumeBounds::~CuboidVolumeBounds ( )
overridedefault

Member Function Documentation

double Acts::CuboidVolumeBounds::binningBorder ( BinningValue  bValue) const
finalvirtual

Binning borders in double

Parameters
bValueis the binning schema used
Returns
float offset to be used for the binning

Reimplemented from Acts::VolumeBounds.

Definition at line 107 of file CuboidVolumeBounds.cpp.

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

References Acts::binR, Acts::binX, Acts::binY, and Acts::binZ.

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

+ Here is the caller graph for this function:

Acts::Volume::BoundingBox Acts::CuboidVolumeBounds::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.

Definition at line 88 of file CuboidVolumeBounds.cpp.

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

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

View newest version in sPHENIX GitHub at line 175 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 for the dump stream
Parameters
dtThe dump stream object

Definition at line 184 of file CuboidVolumeBounds.hpp.

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

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

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

References eHalfLengthX, eHalfLengthY, and eHalfLengthZ.

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

+ 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 34 of file CuboidVolumeBounds.cpp.

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

References m_values, m_xyBounds, m_yzBounds, and m_zxBounds.

Acts::OrientedSurfaces Acts::CuboidVolumeBounds::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.

Definition at line 45 of file CuboidVolumeBounds.cpp.

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

References testing::internal::move(), Acts::Direction::Negative, Acts::Direction::Positive, Acts::s_planeYZ, and Acts::s_planeZX.

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

+ Here is the call graph for this function:

+ 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 84 of file CuboidVolumeBounds.cpp.

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

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

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

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

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

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

Definition at line 151 of file CuboidVolumeBounds.hpp.

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

Referenced by operator=().

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

Definition at line 152 of file CuboidVolumeBounds.hpp.

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

Referenced by operator=().

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

Definition at line 153 of file CuboidVolumeBounds.hpp.

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

Referenced by operator=().


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