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

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

+ Inheritance diagram for Acts::GenericCuboidVolumeBounds:
+ Collaboration diagram for Acts::GenericCuboidVolumeBounds:

Public Member Functions

 GenericCuboidVolumeBounds ()=delete
 
 GenericCuboidVolumeBounds (const std::array< Acts::Vector3D, 8 > &vertices) noexcept(false)
 
 GenericCuboidVolumeBounds (const std::array< double, eSize > &values) noexcept(false)
 
 ~GenericCuboidVolumeBounds () override=default
 
VolumeBounds::BoundsType type () const final
 
std::vector< double > values () const final
 
bool inside (const Vector3D &gpos, double tol=0.) const override
 
std::vector< std::shared_ptr
< const Surface > > 
decomposeToSurfaces (const Transform3D *transform) 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
 
void draw (IVisualization &helper, const Transform3D &transform=Transform3D::Identity()) 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
 

Static Public Attributes

static constexpr size_t eSize = 24
 

Private Member Functions

void construct () noexcept(false)
 

Private Attributes

std::array< Vector3D, 8 > m_vertices
 
std::array< Vector3D, 6 > m_normals
 

Additional Inherited Members

- Public Types inherited from Acts::VolumeBounds
enum  BoundsType : int {
  eCone = 0, eCuboid = 1, eCutoutCylinder = 2, eCylinder = 3,
  eGenericCuboid = 4, eTrapezoid = 5, eOther = 6
}
 

Detailed Description

Definition at line 24 of file GenericCuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 24 of file GenericCuboidVolumeBounds.hpp

Constructor & Destructor Documentation

Acts::GenericCuboidVolumeBounds::GenericCuboidVolumeBounds ( )
delete
Acts::GenericCuboidVolumeBounds::GenericCuboidVolumeBounds ( const std::array< Acts::Vector3D, 8 > &  vertices)
noexcept

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

Definition at line 23 of file GenericCuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 23 of file GenericCuboidVolumeBounds.cpp

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

Constructor from a fixed size array

Parameters
valuesThe input values
Acts::GenericCuboidVolumeBounds::~GenericCuboidVolumeBounds ( )
overridedefault

Member Function Documentation

Acts::Volume::BoundingBox Acts::GenericCuboidVolumeBounds::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 202 of file GenericCuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 202 of file GenericCuboidVolumeBounds.cpp

References Acts::Test::transform.

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

+ Here is the caller graph for this function:

void Acts::GenericCuboidVolumeBounds::construct ( )
privatenoexcept

Private helper method to contruct the Volume bounds to be called by the constructors, from the ordered input vertices

Definition at line 145 of file GenericCuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 145 of file GenericCuboidVolumeBounds.cpp

References a, ab, kdfinder::abs(), b, c, d, e, incremental_prev_tag::idx, and CLHEP::normal().

+ Here is the call graph for this function:

std::vector< std::shared_ptr< const Acts::Surface > > Acts::GenericCuboidVolumeBounds::decomposeToSurfaces ( const Transform3D transform) const
overridevirtual

Method to decompose the Bounds into Surfaces the Volume can turn them into BoundarySurfaces

Parameters
transformis the 3D transform to be applied to the boundary surfaces to position them in 3D space
Note
this is factory method
Returns
a vector of surfaces bounding this volume

Implements Acts::VolumeBounds.

Definition at line 60 of file GenericCuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 60 of file GenericCuboidVolumeBounds.cpp

References a, ab, b, c, d, and CLHEP::normal().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Acts::GenericCuboidVolumeBounds::draw ( IVisualization helper,
const Transform3D transform = Transform3D::Identity() 
) const

Draw this shape using a visualization helper

Parameters
helperThe visualizatin helper
transformOptional transformation matrix

Definition at line 224 of file GenericCuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 224 of file GenericCuboidVolumeBounds.cpp

References a, b, c, d, and Acts::IVisualization::face().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool Acts::GenericCuboidVolumeBounds::inside ( const Vector3D 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.

Definition at line 40 of file GenericCuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 40 of file GenericCuboidVolumeBounds.cpp

References kdfinder::abs(), m_normals, and m_vertices.

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::GenericCuboidVolumeBounds::toStream ( std::ostream &  sl) const
overridevirtual
Parameters
slis the output stream to be written into

Implements Acts::VolumeBounds.

Definition at line 133 of file GenericCuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 133 of file GenericCuboidVolumeBounds.cpp

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

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::VolumeBounds.

Definition at line 49 of file GenericCuboidVolumeBounds.hpp.

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

References Acts::VolumeBounds::eGenericCuboid.

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.

Definition at line 191 of file GenericCuboidVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 191 of file GenericCuboidVolumeBounds.cpp

Member Data Documentation

constexpr size_t Acts::GenericCuboidVolumeBounds::eSize = 24
static

Definition at line 26 of file GenericCuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 26 of file GenericCuboidVolumeBounds.hpp

std::array<Vector3D, 6> Acts::GenericCuboidVolumeBounds::m_normals
private

Definition at line 98 of file GenericCuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 98 of file GenericCuboidVolumeBounds.hpp

Referenced by inside().

std::array<Vector3D, 8> Acts::GenericCuboidVolumeBounds::m_vertices
private

Definition at line 97 of file GenericCuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 97 of file GenericCuboidVolumeBounds.hpp

Referenced by inside().


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