Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::GenericCuboidVolumeBounds Class Reference

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

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

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)
 
 GenericCuboidVolumeBounds (const std::array< double, BoundValues::eSize > &values) noexcept(false)
 
 ~GenericCuboidVolumeBounds () override=default
 
VolumeBounds::BoundsType type () const final
 
std::vector< doublevalues () const final
 
bool inside (const Vector3 &gpos, 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
 
std::ostream & toStream (std::ostream &sl) const override
 
void draw (IVisualization3D &helper, const Transform3 &transform=Transform3::Identity()) const
 
- 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.
 
virtual double binningBorder (BinningValue bValue) const
 

Private Member Functions

void construct () noexcept(false)
 

Private Attributes

std::array< Vector3, 8 > m_vertices
 
std::array< Vector3, 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::Vector3, 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 30 of file GenericCuboidVolumeBounds.cpp.

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

Acts::GenericCuboidVolumeBounds::GenericCuboidVolumeBounds ( const std::array< double, BoundValues::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 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 200 of file GenericCuboidVolumeBounds.cpp.

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

References i, and 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 construct the Volume bounds to be called by the constructors, from the ordered input vertices

Definition at line 143 of file GenericCuboidVolumeBounds.cpp.

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

References KFPMath::a, ac(), KFPMath::b, Acts::PhysicalConstants::c, Acts::UnitConstants::e, i, and ambiguity_solver_full_chain::idx.

+ Here is the call graph for this function:

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

Definition at line 222 of file GenericCuboidVolumeBounds.cpp.

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

References KFPMath::a, KFPMath::b, Acts::PhysicalConstants::c, and Acts::IVisualization3D::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 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.

Definition at line 47 of file GenericCuboidVolumeBounds.cpp.

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

References i, m_normals, m_vertices, and check_smearing_config::ref.

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

+ Here is the caller graph for this function:

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

Definition at line 66 of file GenericCuboidVolumeBounds.cpp.

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

References KFPMath::a, ac(), KFPMath::b, Acts::PhysicalConstants::c, Acts::Direction::fromScalar(), i, testing::internal::move(), and ActsExamples::HepMC3Event::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 131 of file GenericCuboidVolumeBounds.cpp.

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

References i.

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 53 of file GenericCuboidVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 53 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 189 of file GenericCuboidVolumeBounds.cpp.

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

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

+ Here is the caller graph for this function:

Member Data Documentation

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

Definition at line 104 of file GenericCuboidVolumeBounds.hpp.

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

Referenced by inside().

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

Definition at line 103 of file GenericCuboidVolumeBounds.hpp.

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

Referenced by inside().


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