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

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

+ Inheritance diagram for Acts::ConeVolumeBounds:
+ Collaboration diagram for Acts::ConeVolumeBounds:

Public Types

enum  BoundValues : unsigned int {
  eInnerAlpha = 0, eInnerOffsetZ = 1, eOuterAlpha = 2, eOuterOffsetZ = 3,
  eHalfLengthZ = 4, eAveragePhi = 5, eHalfPhiSector = 6, eSize
}
 for readability 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

 ConeVolumeBounds ()=delete
 
 ConeVolumeBounds (double innerAlpha, double innerOffsetZ, double outerAlpha, double outerOffsetZ, double halflengthZ, double averagePhi, double halfPhiSector) noexcept(false)
 
 ConeVolumeBounds (double cylinderR, double alpha, double offsetZ, double halflengthZ, double averagePhi, double halfPhiSector) noexcept(false)
 
 ConeVolumeBounds (const std::array< double, eSize > &values) noexcept(false)
 
 ConeVolumeBounds (const ConeVolumeBounds &cobo)=default
 
 ~ConeVolumeBounds () override=default
 
ConeVolumeBoundsoperator= (const ConeVolumeBounds &cobo)=default
 
VolumeBounds::BoundsType type () const final
 
std::vector< doublevalues () const final
 
bool inside (const Vector3 &pos, double tol=0.) const final
 
OrientedSurfaces orientedSurfaces (const Transform3 &transform=Transform3::Identity()) const final
 
Volume::BoundingBox boundingBox (const Transform3 *trf=nullptr, const Vector3 &envelope={0, 0, 0}, const Volume *entity=nullptr) const final
 
double get (BoundValues bValue) const
 
double innerRmin () const
 
double innerRmax () const
 
double innerTanAlpha () const
 
double outerRmin () const
 
double outerRmax () const
 
double outerTanAlpha () const
 
std::ostream & toStream (std::ostream &sl) const final
 
- 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 checkConsistency () noexcept(false)
 
void buildSurfaceBounds ()
 Create the surface bounds.
 
template<class stream_t >
stream_t & dumpT (stream_t &dt) const
 

Private Attributes

std::array< double, eSizem_values
 The bound values.
 
std::shared_ptr< CylinderBoundsm_innerCylinderBounds {nullptr}
 
std::shared_ptr< ConeBoundsm_innerConeBounds {nullptr}
 
std::shared_ptr< ConeBoundsm_outerConeBounds {nullptr}
 
std::shared_ptr< CylinderBoundsm_outerCylinderBounds {nullptr}
 
std::shared_ptr< RadialBoundsm_negativeDiscBounds {nullptr}
 
std::shared_ptr< RadialBoundsm_positiveDiscBounds {nullptr}
 
std::shared_ptr< PlanarBoundsm_sectorBounds {nullptr}
 
double m_innerRmin = 0.
 Derived values.
 
double m_innerRmax = 0.
 
double m_innerTanAlpha = 0.
 
double m_outerRmin = 0.
 
double m_outerRmax = 0.
 
double m_outerTanAlpha = 0.
 

Detailed Description

Volume bound class for describing conical volumes either with cylindrical inlay or outer boundary, it also allows for a sectoral description

Definition at line 34 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 34 of file ConeVolumeBounds.hpp

Member Enumeration Documentation

for readability

Enumerator:
eInnerAlpha 
eInnerOffsetZ 
eOuterAlpha 
eOuterOffsetZ 
eHalfLengthZ 
eAveragePhi 
eHalfPhiSector 
eSize 

Definition at line 37 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 37 of file ConeVolumeBounds.hpp

Constructor & Destructor Documentation

Acts::ConeVolumeBounds::ConeVolumeBounds ( )
delete
Acts::ConeVolumeBounds::ConeVolumeBounds ( double  innerAlpha,
double  innerOffsetZ,
double  outerAlpha,
double  outerOffsetZ,
double  halflengthZ,
double  averagePhi,
double  halfPhiSector 
)
noexcept

Constructor - for general cone-cone setups

Parameters
innerAlphaThe opening angle of the inner cone (0 if no cone)
innerOffsetZThe tip z position in of the inner cone, w.r.t center
outerAlphaThe opening angle of the outer cone (0 if no cone)
outerOffsetZThe tip z position in of the outer cone, w.r.t center
halflengthZThe minimum z value of the inner and outer cones
averagePhiThe phi orientation of the sector
halfPhiSectorThe opening angle phi sector

Definition at line 31 of file ConeVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 31 of file ConeVolumeBounds.cpp

References buildSurfaceBounds().

+ Here is the call graph for this function:

Acts::ConeVolumeBounds::ConeVolumeBounds ( double  cylinderR,
double  alpha,
double  offsetZ,
double  halflengthZ,
double  averagePhi,
double  halfPhiSector 
)
noexcept

Constructor - for general cylidner-cone setups

Parameters
cylinderRThe inner radius of the cylinder
alphaThe opening angle of the cone (0 if no cone)
offsetZThe tip z position in of the cone, w.r.t center
halflengthZThe minimum z value of the inner and outer cones
averagePhiThe phi orientation of the sector (defaulted to 0)
halfPhiSectorThe opening angle phi sector
Note
depending on cylinderR > coneR it is constructing a cone with cylindrical cutout or a cylinder with conical cutout

Definition at line 47 of file ConeVolumeBounds.cpp.

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

References alpha, buildSurfaceBounds(), and Acts::Test::tanAlpha.

+ Here is the call graph for this function:

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

Constructor - from a fixed size array

Parameters
valuesThe bound values

Definition at line 81 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 81 of file ConeVolumeBounds.hpp

References buildSurfaceBounds(), and checkConsistency().

+ Here is the call graph for this function:

Acts::ConeVolumeBounds::ConeVolumeBounds ( const ConeVolumeBounds cobo)
default
Acts::ConeVolumeBounds::~ConeVolumeBounds ( )
overridedefault

Member Function Documentation

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

View newest version in sPHENIX GitHub at line 296 of file ConeVolumeBounds.cpp

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

+ Here is the call graph for this function:

void Acts::ConeVolumeBounds::buildSurfaceBounds ( )
private

Create the surface bounds.

Definition at line 240 of file ConeVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 240 of file ConeVolumeBounds.cpp

References testing::internal::move(), and Acts::s_epsilon.

Referenced by ConeVolumeBounds().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Acts::ConeVolumeBounds::checkConsistency ( )
privatenoexcept

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

Definition at line 173 of file ConeVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 173 of file ConeVolumeBounds.cpp

References Acts::detail::radian_sym().

Referenced by ConeVolumeBounds().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Templated dump methods

Template Parameters
stream_tThe type of the stream for dumping
Parameters
dtThe stream object

Definition at line 218 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 218 of file ConeVolumeBounds.hpp

References eAveragePhi, eHalfLengthZ, eInnerAlpha, eInnerOffsetZ, eOuterAlpha, and eOuterOffsetZ.

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

Access to the bound values

Parameters
bValuethe class nested enum for the array access

Definition at line 129 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 129 of file ConeVolumeBounds.hpp

References m_values.

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

+ Here is the caller graph for this function:

double Acts::ConeVolumeBounds::innerRmax ( ) const
inline

Definition at line 191 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 191 of file ConeVolumeBounds.hpp

References m_innerRmax.

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

+ Here is the caller graph for this function:

double Acts::ConeVolumeBounds::innerRmin ( ) const
inline

Definition at line 187 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 187 of file ConeVolumeBounds.hpp

References m_innerRmin.

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

+ Here is the caller graph for this function:

double Acts::ConeVolumeBounds::innerTanAlpha ( ) const
inline

Definition at line 195 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 195 of file ConeVolumeBounds.hpp

References m_innerTanAlpha.

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

+ Here is the caller graph for this function:

bool Acts::ConeVolumeBounds::inside ( const Vector3 pos,
double  tol = 0. 
) const
finalvirtual

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 193 of file ConeVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 193 of file ConeVolumeBounds.cpp

References Acts::VectorHelpers::perp(), ActsTests::PropagationDatasets::phi, Acts::VectorHelpers::phi(), MATSCAN::phimin, physmon_track_finding_ttbar::r, Acts::s_onSurfaceTolerance, and physmon_track_finding_ttbar::z.

+ Here is the call graph for this function:

ConeVolumeBounds& Acts::ConeVolumeBounds::operator= ( const ConeVolumeBounds cobo)
default
Acts::OrientedSurfaces Acts::ConeVolumeBounds::orientedSurfaces ( const Transform3 transform = Transform3::Identity()) const
finalvirtual

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 93 of file ConeVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 93 of file ConeVolumeBounds.cpp

References Acts::Direction::Backward, eAveragePhi, eHalfLengthZ, eHalfPhiSector, eInnerOffsetZ, eOuterOffsetZ, Acts::Direction::Forward, m_innerConeBounds, m_innerCylinderBounds, m_negativeDiscBounds, m_outerConeBounds, m_outerCylinderBounds, m_positiveDiscBounds, m_sectorBounds, testing::internal::move(), Acts::Direction::Negative, Acts::Direction::Positive, and Acts::Test::transform.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::ConeVolumeBounds::outerRmax ( ) const
inline

Definition at line 203 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 203 of file ConeVolumeBounds.hpp

References m_outerRmax.

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

+ Here is the caller graph for this function:

double Acts::ConeVolumeBounds::outerRmin ( ) const
inline

Definition at line 199 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 199 of file ConeVolumeBounds.hpp

References m_outerRmin.

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

+ Here is the caller graph for this function:

double Acts::ConeVolumeBounds::outerTanAlpha ( ) const
inline

Definition at line 207 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 207 of file ConeVolumeBounds.hpp

References m_outerTanAlpha.

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

+ Here is the caller graph for this function:

std::ostream & Acts::ConeVolumeBounds::toStream ( std::ostream &  sl) const
finalvirtual

Output Method for std::ostream

Parameters
slis ostream operator to be dumped into

Implements Acts::VolumeBounds.

Definition at line 292 of file ConeVolumeBounds.cpp.

View newest version in sPHENIX GitHub at line 292 of file ConeVolumeBounds.cpp

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

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::VolumeBounds.

Definition at line 91 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 91 of file ConeVolumeBounds.hpp

References Acts::VolumeBounds::eCone.

std::vector< double > Acts::ConeVolumeBounds::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 211 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 211 of file ConeVolumeBounds.hpp

References m_values.

Member Data Documentation

std::shared_ptr<ConeBounds> Acts::ConeVolumeBounds::m_innerConeBounds {nullptr}
private

Definition at line 171 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 171 of file ConeVolumeBounds.hpp

Referenced by orientedSurfaces().

std::shared_ptr<CylinderBounds> Acts::ConeVolumeBounds::m_innerCylinderBounds {nullptr}
private

Definition at line 170 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 170 of file ConeVolumeBounds.hpp

Referenced by orientedSurfaces().

double Acts::ConeVolumeBounds::m_innerRmax = 0.
private

Definition at line 180 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 180 of file ConeVolumeBounds.hpp

Referenced by innerRmax().

double Acts::ConeVolumeBounds::m_innerRmin = 0.
private

Derived values.

Definition at line 179 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 179 of file ConeVolumeBounds.hpp

Referenced by innerRmin().

double Acts::ConeVolumeBounds::m_innerTanAlpha = 0.
private

Definition at line 181 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 181 of file ConeVolumeBounds.hpp

Referenced by innerTanAlpha().

std::shared_ptr<RadialBounds> Acts::ConeVolumeBounds::m_negativeDiscBounds {nullptr}
private

Definition at line 174 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 174 of file ConeVolumeBounds.hpp

Referenced by orientedSurfaces().

std::shared_ptr<ConeBounds> Acts::ConeVolumeBounds::m_outerConeBounds {nullptr}
private

Definition at line 172 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 172 of file ConeVolumeBounds.hpp

Referenced by orientedSurfaces().

std::shared_ptr<CylinderBounds> Acts::ConeVolumeBounds::m_outerCylinderBounds {nullptr}
private

Definition at line 173 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 173 of file ConeVolumeBounds.hpp

Referenced by orientedSurfaces().

double Acts::ConeVolumeBounds::m_outerRmax = 0.
private

Definition at line 183 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 183 of file ConeVolumeBounds.hpp

Referenced by outerRmax().

double Acts::ConeVolumeBounds::m_outerRmin = 0.
private

Definition at line 182 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 182 of file ConeVolumeBounds.hpp

Referenced by outerRmin().

double Acts::ConeVolumeBounds::m_outerTanAlpha = 0.
private

Definition at line 184 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 184 of file ConeVolumeBounds.hpp

Referenced by outerTanAlpha().

std::shared_ptr<RadialBounds> Acts::ConeVolumeBounds::m_positiveDiscBounds {nullptr}
private

Definition at line 175 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 175 of file ConeVolumeBounds.hpp

Referenced by orientedSurfaces().

std::shared_ptr<PlanarBounds> Acts::ConeVolumeBounds::m_sectorBounds {nullptr}
private

Definition at line 176 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 176 of file ConeVolumeBounds.hpp

Referenced by orientedSurfaces().

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

The bound values.

Definition at line 169 of file ConeVolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 169 of file ConeVolumeBounds.hpp

Referenced by get(), and values().


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