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

Define a dummy detector volume. More...

#include <acts/blob/sPHENIX/Core/include/Acts/Detector/DetectorVolume.hpp>

+ Inheritance diagram for Acts::Experimental::DetectorVolume:
+ Collaboration diagram for Acts::Experimental::DetectorVolume:

Classes

struct  ObjectStore
 

Public Types

using BoundingBox = Acts::AxisAlignedBoundingBox< Acts::Experimental::DetectorVolume, Acts::ActsScalar, 3 >
 

Public Member Functions

std::shared_ptr< DetectorVolumegetSharedPtr ()
 
std::shared_ptr< const
DetectorVolume
getSharedPtr () const
 
const Transform3transform (const GeometryContext &gctx=GeometryContext()) const
 
Vector3 center (const GeometryContext &gctx=GeometryContext()) const
 
const VolumeBoundsvolumeBounds () const
 
bool inside (const GeometryContext &gctx, const Vector3 &position) const
 
bool exclusivelyInside (const GeometryContext &gctx, const Vector3 &position) const
 
Extent extent (const GeometryContext &gctx, size_t nseg=1) const
 
void updateNavigationState (const GeometryContext &gctx, NavigationState &nState) const
 
std::vector< std::shared_ptr
< Portal > > & 
portalPtrs ()
 
std::vector< std::shared_ptr
< Surface > > & 
surfacePtrs ()
 
std::vector< std::shared_ptr
< DetectorVolume > > & 
volumePtrs ()
 
const std::vector< const
Portal * > & 
portals () const
 
const std::vector< const
Surface * > & 
surfaces () const
 
const std::vector< const
DetectorVolume * > & 
volumes () const
 
const DetectorVolumeUpdatordetectorVolumeUpdator () const
 Const access to the detector volume updator.
 
void assignSurfaceCandidatesUpdator (SurfaceCandidatesUpdator surfaceCandidateUpdator, const std::vector< std::shared_ptr< Surface >> &surfaces={}, const std::vector< std::shared_ptr< DetectorVolume >> &volumes={})
 
const SurfaceCandidatesUpdatorsurfaceCandidatesUpdator () const
 Const access to the navigation state updator.
 
void updatePortal (std::shared_ptr< Portal > portal, unsigned int pIndex) noexcept(false)
 
void closePortals ()
 Final closing of portal, i.e. this sets the end of world.
 
void assignVolumeMaterial (std::shared_ptr< IVolumeMaterial > material)
 
std::shared_ptr< IVolumeMaterialvolumeMaterialPtr ()
 Non-const access to the voume material (for scaling, e.g.)
 
const IVolumeMaterialvolumeMaterial () const
 Const access to the volume amterial.
 
const std::string & name () const
 
const GeometryIdentifiergeometryId () const
 
void assignGeometryId (const GeometryIdentifier &geoID)
 
void assignDetector (const Detector &detector)
 
const Detectordetector () const
 Const access to the detector.
 
const BoundingBoxgetBoundingBox () const
 
const std::vector< const
Surface * > 
surfaces () const
 
const std::vector< const Portal * > portals () const
 
const Detectordetector () const
 

Public Attributes

const Detectord = nullptr
 
std::vector< const Surface * > sfs = {}
 
std::vector< const Portal * > prts = {}
 

Protected Member Functions

 DetectorVolume (const GeometryContext &gctx, std::string name, const Transform3 &transform, std::shared_ptr< VolumeBounds > bounds, std::vector< std::shared_ptr< Surface >> surfaces, std::vector< std::shared_ptr< DetectorVolume >> volumes, DetectorVolumeUpdator detectorVolumeUpdator, SurfaceCandidatesUpdator surfaceCandidateUpdator) noexcept(false)
 
 DetectorVolume (const GeometryContext &gctx, std::string name, const Transform3 &transform, std::shared_ptr< VolumeBounds > bounds, SurfaceCandidatesUpdator surfaceCandidateUpdator) noexcept(false)
 

Static Protected Member Functions

static std::shared_ptr
< DetectorVolume
makeShared (const GeometryContext &gctx, std::string name, const Transform3 &transform, std::shared_ptr< VolumeBounds > bounds, std::vector< std::shared_ptr< Surface >> surfaces, std::vector< std::shared_ptr< DetectorVolume >> volumes, DetectorVolumeUpdator detectorVolumeUpdator, SurfaceCandidatesUpdator surfaceCandidateUpdator)
 
static std::shared_ptr
< DetectorVolume
makeShared (const GeometryContext &gctx, std::string name, const Transform3 &transform, std::shared_ptr< VolumeBounds > bounds, SurfaceCandidatesUpdator surfaceCandidateUpdator)
 

Private Member Functions

void construct (const GeometryContext &gctx, const PortalGenerator &portalGenerator) noexcept(false)
 
bool checkContainment (const GeometryContext &gctx, size_t nseg=1) const
 
void createBoundingBox (const GeometryContext &gctx)
 

Private Attributes

std::string m_name = "Unnamed"
 Name of the volume.
 
Transform3 m_transform = Transform3::Identity()
 Transform to place the bolume.
 
std::shared_ptr< VolumeBoundsm_bounds = nullptr
 Volume boundaries.
 
ObjectStore< std::shared_ptr
< Portal > > 
m_portals
 Portal store (internal/external)
 
ObjectStore< std::shared_ptr
< Surface > > 
m_surfaces
 Surface store (internal/external)
 
ObjectStore< std::shared_ptr
< DetectorVolume > > 
m_volumes
 Volume store (internal/external)
 
std::shared_ptr< const
BoundingBox
m_boundingBox
 BoundingBox.
 
DetectorVolumeUpdator m_detectorVolumeUpdator
 
SurfaceCandidatesUpdator m_surfaceCandidatesUpdator
 The navigation state updator.
 
std::shared_ptr< IVolumeMaterialm_volumeMaterial = nullptr
 Volume material (optional)
 
GeometryIdentifier m_geometryId {0}
 GeometryIdentifier of this volume.
 
const Detectorm_detector = nullptr
 The detector it belongs to.
 

Friends

class DetectorVolumeFactory
 

Detailed Description

Define a dummy detector volume.

A detector volume.

A detector volume description which can be:

Note
A detector volume holds non-const objects internally that are allowed to be modified as long as the geometry is not yet closed. Using this, material can be attached, and GeometryIdentifier can be set at construction time.
The construction of DetectorVolumes is done via a dedicated factory, this is necessary as then the shared_ptr is non-weak and it can be registered in the portal generator for further geometry processing.
Navigation is always done by plain pointers, while object ownership is done by shared/unique pointers.

Definition at line 59 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 59 of file DetectorVolume.hpp

Member Typedef Documentation

Constructor & Destructor Documentation

Acts::Experimental::DetectorVolume::DetectorVolume ( const GeometryContext gctx,
std::string  name,
const Transform3 transform,
std::shared_ptr< VolumeBounds bounds,
std::vector< std::shared_ptr< Surface >>  surfaces,
std::vector< std::shared_ptr< DetectorVolume >>  volumes,
DetectorVolumeUpdator  detectorVolumeUpdator,
SurfaceCandidatesUpdator  surfaceCandidateUpdator 
)
protectednoexcept

Create a detector volume - with surfaces and/or inserted volumes

Parameters
gctxthe geometry context while building - for future contextual store
namethe volume name
transformthe transform defining the volume position
boundsthe volume bounds
surfacesare the contained surfaces of this volume
volumesare the contains volumes of this volume
detectorVolumeUpdatoris a Delegate to find the associated volume
surfaceCandidateUpdatorthe navigation state updator for surfaces/portals
Note
throws exception if misconfigured: no bounds
throws exception if ghe portal general or navigation state updator delegates are not connected

Definition at line 29 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 29 of file DetectorVolume.cpp

References assert, checkContainment(), gctx, m_bounds, m_detectorVolumeUpdator, and m_surfaceCandidatesUpdator.

+ Here is the call graph for this function:

Acts::Experimental::DetectorVolume::DetectorVolume ( const GeometryContext gctx,
std::string  name,
const Transform3 transform,
std::shared_ptr< VolumeBounds bounds,
SurfaceCandidatesUpdator  surfaceCandidateUpdator 
)
protectednoexcept

Create a detector volume - empty/gap volume constructor

Parameters
gctxthe geometry context while building - for future contextual store
namethe volume name
transformthe transform defining the volume position
boundsthe volume bounds
surfaceCandidateUpdatorthe navigation state updator for surfaces/portals
Note
throws exception if misconfigured: no bounds
throws exception if ghe portal general or navigation state updator delegates are not connected

Definition at line 61 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 61 of file DetectorVolume.cpp

Member Function Documentation

void Acts::Experimental::DetectorVolume::assignDetector ( const Detector detector)

Assign Detector to this volume (for back navigation issues)

Parameters
detectorthe parenting detector class

Definition at line 176 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 176 of file DetectorVolume.cpp

References testSigmaEff::v.

void Acts::Experimental::DetectorVolume::assignGeometryId ( const GeometryIdentifier geoID)

Set the geometry identifier

Note
no checking is done, it will overwrite any existing id
Parameters
geoIDis the geometry Id that is set to the object

Definition at line 167 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 167 of file DetectorVolume.cpp

Referenced by Acts::Experimental::GeometryIdGenerator::assignGeometryId().

+ Here is the caller graph for this function:

void Acts::Experimental::DetectorVolume::assignSurfaceCandidatesUpdator ( SurfaceCandidatesUpdator  surfaceCandidateUpdator,
const std::vector< std::shared_ptr< Surface >> &  surfaces = {},
const std::vector< std::shared_ptr< DetectorVolume >> &  volumes = {} 
)

This method allows to udate the navigation state updator module.

Parameters
surfaceCandidateUpdatorthe new navigation state updator for surfaces
surfacesthe surfaces the new navigation state updator points to
volumesthe volumes the new navigation state updator points to

Definition at line 246 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 246 of file DetectorVolume.cpp

References testing::internal::move(), and volumes.

+ Here is the call graph for this function:

void Acts::Experimental::DetectorVolume::assignVolumeMaterial ( std::shared_ptr< IVolumeMaterial material)

Assign the volume material description

This method allows to load a material description during the detector geometry building, and assigning it (potentially multiple) times to detector volumes.

Parameters
materialMaterial description associated to this volumw

Definition at line 147 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 147 of file DetectorVolume.cpp

References testing::internal::move().

+ Here is the call graph for this function:

Acts::Vector3 Acts::Experimental::DetectorVolume::center ( const GeometryContext gctx = GeometryContext()) const

Const access to the center

Parameters
gctxthe geometry context
Note
the geometry context is currently ignored, but is a placeholder for eventually misaligned volumes
Returns
a contextually created center

Definition at line 97 of file DetectorVolume.cpp.

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

References Acts::Test::transform.

bool Acts::Experimental::DetectorVolume::checkContainment ( const GeometryContext gctx,
size_t  nseg = 1 
) const
private
Parameters
gctxthe current geometry context object, e.g. alignment
nsegis the number of segments to approximate
Returns
a boolean indicating if the objects are properly contained

Definition at line 265 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 265 of file DetectorVolume.cpp

References physmon_simulation::s, testSigmaEff::v, and volumes.

Referenced by DetectorVolume().

+ Here is the caller graph for this function:

void Acts::Experimental::DetectorVolume::closePortals ( )

Final closing of portal, i.e. this sets the end of world.

Definition at line 287 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 287 of file DetectorVolume.cpp

References Acts::enumerate(), Acts::Direction::fromIndex(), testing::internal::move(), merge_hashes::p, Acts::Experimental::EndOfWorldImpl::update(), and testSigmaEff::v.

+ Here is the call graph for this function:

void Acts::Experimental::DetectorVolume::construct ( const GeometryContext gctx,
const PortalGenerator portalGenerator 
)
privatenoexcept

Internal construction method that calls the portal generator

Parameters
gctxthe current geometry context object, e.g. alignment
portalGeneratorthe generator for portals
Note
throws exception if provided parameters are inconsistent

Definition at line 200 of file DetectorVolume.cpp.

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

References portalGenerator, and Acts::Test::transform.

void Acts::Experimental::DetectorVolume::createBoundingBox ( const GeometryContext gctx)
private

build the bounding box

Definition at line 306 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 306 of file DetectorVolume.cpp

References merge_hashes::p, writeMapConfig::surface, testSigmaEff::v, and ActsExamples::HepMC3Event::vertices().

+ Here is the call graph for this function:

const Detector* Acts::Experimental::DetectorVolume::detector ( ) const
inline

Definition at line 47 of file NavigationStateUpdatorsTests.cpp.

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

References d.

const Acts::Experimental::Detector * Acts::Experimental::DetectorVolume::detector ( ) const

Const access to the detector.

Definition at line 186 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 186 of file DetectorVolume.cpp

const Acts::Experimental::DetectorVolumeUpdator & Acts::Experimental::DetectorVolume::detectorVolumeUpdator ( ) const

Const access to the detector volume updator.

Definition at line 138 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 138 of file DetectorVolume.cpp

bool Acts::Experimental::DetectorVolume::exclusivelyInside ( const GeometryContext gctx,
const Vector3 position 
) const

Check if a point is exclusively inside this volume i.e. this point is not inside a subvolume.

Parameters
gctxthe geometry context
positionthe position for the inside check
Returns
a bool to indicate inside/outside

Definition at line 225 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 225 of file DetectorVolume.cpp

References testSigmaEff::v, and volumes.

Acts::Extent Acts::Experimental::DetectorVolume::extent ( const GeometryContext gctx,
size_t  nseg = 1 
) const

The Extent for this volume

Parameters
gctxis the geometry context
nsegis the number of segments to approximate
Returns
an Extent object

Definition at line 255 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 255 of file DetectorVolume.cpp

References Acts::Extent::extend(), and merge_hashes::p.

+ Here is the call graph for this function:

const Acts::GeometryIdentifier & Acts::Experimental::DetectorVolume::geometryId ( ) const
Returns
the geometry identifier

Definition at line 162 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 162 of file DetectorVolume.cpp

Referenced by Acts::Experimental::GeometryIdGenerator::assignGeometryId(), Acts::Svg::DetectorVolumeConverter::convert(), and Acts::InteractionVolume::geometryId().

+ Here is the caller graph for this function:

const Acts::Experimental::DetectorVolume::BoundingBox & Acts::Experimental::DetectorVolume::getBoundingBox ( ) const

Definition at line 329 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 329 of file DetectorVolume.cpp

std::shared_ptr< Acts::Experimental::DetectorVolume > Acts::Experimental::DetectorVolume::getSharedPtr ( )

Retrieve a std::shared_ptr for this surface (non-const version)

Note
Will error if this was not created through the makeShared factory since it needs access to the original reference. In C++14 this is undefined behavior (but most likely implemented as a bad_weak_ptr exception), in C++17 it is defined as that exception.
Only call this if you need shared ownership of this object.
Returns
The shared pointer

Definition at line 210 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 210 of file DetectorVolume.cpp

std::shared_ptr< const Acts::Experimental::DetectorVolume > Acts::Experimental::DetectorVolume::getSharedPtr ( ) const

Retrieve a std::shared_ptr for this surface (const version)

Note
Will error if this was not created through the makeShared factory since it needs access to the original reference. In C++14 this is undefined behavior, but most likely implemented as a bad_weak_ptr exception, in C++17 it is defined as that exception.
Only call this if you need shared ownership of this object.
Returns
The shared pointer

Definition at line 215 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 215 of file DetectorVolume.cpp

bool Acts::Experimental::DetectorVolume::inside ( const GeometryContext gctx,
const Vector3 position 
) const

Check if a point is inside this volume. Subvolumes will not be checked.

Parameters
gctxthe geometry context
positionthe position for the inside check
Returns
a bool to indicate inside/outside

Definition at line 219 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 219 of file DetectorVolume.cpp

References Acts::Test::transform.

std::shared_ptr< Acts::Experimental::DetectorVolume > Acts::Experimental::DetectorVolume::makeShared ( const GeometryContext gctx,
std::string  name,
const Transform3 transform,
std::shared_ptr< VolumeBounds bounds,
std::vector< std::shared_ptr< Surface >>  surfaces,
std::vector< std::shared_ptr< DetectorVolume >>  volumes,
DetectorVolumeUpdator  detectorVolumeUpdator,
SurfaceCandidatesUpdator  surfaceCandidateUpdator 
)
staticprotected

Definition at line 69 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 69 of file DetectorVolume.cpp

References testing::internal::move(), and volumes.

Referenced by Acts::Experimental::DetectorVolumeFactory::construct().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::shared_ptr< Acts::Experimental::DetectorVolume > Acts::Experimental::DetectorVolume::makeShared ( const GeometryContext gctx,
std::string  name,
const Transform3 transform,
std::shared_ptr< VolumeBounds bounds,
SurfaceCandidatesUpdator  surfaceCandidateUpdator 
)
staticprotected

Definition at line 83 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 83 of file DetectorVolume.cpp

References testing::internal::move().

+ Here is the call graph for this function:

const std::string & Acts::Experimental::DetectorVolume::name ( ) const
Returns
the name of the volume

Definition at line 172 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 172 of file DetectorVolume.cpp

References m_name().

Referenced by Acts::Experimental::GeometryIdGenerator::assignGeometryId(), Acts::Svg::DetectorVolumeConverter::convert(), Acts::DetectorVolumeJsonConverter::toJson(), Acts::DetectorVolumeJsonConverter::toJsonDetray(), and Acts::Experimental::DetectorNavigator::volInfo().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::vector< std::shared_ptr< Acts::Experimental::Portal > > & Acts::Experimental::DetectorVolume::portalPtrs ( )

Non-const access to the portals

Returns
the portal shared pointer store

Definition at line 108 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 108 of file DetectorVolume.cpp

Referenced by Acts::Experimental::GeometryIdGenerator::assignGeometryId().

+ Here is the caller graph for this function:

const std::vector<const Portal*> Acts::Experimental::DetectorVolume::portals ( ) const
inline

Definition at line 46 of file NavigationStateUpdatorsTests.cpp.

View newest version in sPHENIX GitHub at line 46 of file NavigationStateUpdatorsTests.cpp

References prts.

const std::vector< const Acts::Experimental::Portal * > & Acts::Experimental::DetectorVolume::portals ( ) const

Const access to the detector portals

Note
an empty vector indicates a container volume that has not been properly connected
Returns
a vector to const Portal raw pointers

Definition at line 123 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 123 of file DetectorVolume.cpp

Referenced by Acts::Svg::DetectorVolumeConverter::convert(), Acts::GeometryView3D::drawDetectorVolume(), Acts::Experimental::AllPortalsExtractor::extract(), Acts::DetectorVolumeJsonConverter::toJson(), Acts::DetectorVolumeJsonConverter::toJsonDetray(), Acts::Experimental::AllPortalsImpl::update(), and Acts::Experimental::AllPortalsAndSurfacesImpl::update().

+ Here is the caller graph for this function:

const Acts::Experimental::SurfaceCandidatesUpdator & Acts::Experimental::DetectorVolume::surfaceCandidatesUpdator ( ) const

Const access to the navigation state updator.

Definition at line 143 of file DetectorVolume.cpp.

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

Referenced by Acts::Svg::DetectorVolumeConverter::convert(), and Acts::DetectorVolumeJsonConverter::toJson().

+ Here is the caller graph for this function:

std::vector< std::shared_ptr< Acts::Surface > > & Acts::Experimental::DetectorVolume::surfacePtrs ( )

Non-const access to the surfaces

Returns
the surfaces shared pointer store

Definition at line 113 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 113 of file DetectorVolume.cpp

Referenced by Acts::Experimental::GeometryIdGenerator::assignGeometryId().

+ Here is the caller graph for this function:

const std::vector<const Surface*> Acts::Experimental::DetectorVolume::surfaces ( ) const
inline

Definition at line 45 of file NavigationStateUpdatorsTests.cpp.

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

References sfs.

const std::vector< const Acts::Surface * > & Acts::Experimental::DetectorVolume::surfaces ( ) const

Const access to the surfaces

Note
an empty vector indicates either gap volume or container volume, a non-empty vector indicates a layer volume.
Returns
a vector to const Surface raw pointers

Definition at line 128 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 128 of file DetectorVolume.cpp

Referenced by Acts::Svg::DetectorVolumeConverter::convert(), Acts::GeometryView3D::drawDetectorVolume(), Acts::Experimental::IndexedSurfacesExtractor::extract(), Acts::DetectorVolumeJsonConverter::toJson(), Acts::DetectorVolumeJsonConverter::toJsonDetray(), and Acts::Experimental::AllPortalsAndSurfacesImpl::update().

+ Here is the caller graph for this function:

const Acts::Transform3 & Acts::Experimental::DetectorVolume::transform ( const GeometryContext gctx = GeometryContext()) const

Const access to the transform

Parameters
gctxthe geometry context
Note
the geometry context is currently ignored, but is a placeholder for eventually misaligned volumes
Returns
const reference to the contextual transform

Definition at line 92 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 92 of file DetectorVolume.cpp

References m_transform().

Referenced by Acts::Svg::DetectorVolumeConverter::convert(), Acts::DetectorVolumeJsonConverter::toJson(), Acts::DetectorVolumeJsonConverter::toJsonDetray(), and Acts::PortalJsonConverter::toJsonDetray().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Acts::Experimental::DetectorVolume::updateNavigationState ( const GeometryContext gctx,
NavigationState nState 
) const

Initialize/update the navigation status in this environment

This method calls:

  • the local navigation delegate for candidate surfaces
  • the portal navigation delegate for candidate exit portals
  • set the current detector volume
Parameters
gctxis the current geometry context
nState[in,out] is the detector navigation state to be updated

Definition at line 239 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 239 of file DetectorVolume.cpp

References Acts::Experimental::NavigationState::currentVolume, Acts::Experimental::NavigationState::surfaceCandidate, and Acts::Experimental::NavigationState::surfaceCandidates.

Referenced by BOOST_AUTO_TEST_CASE(), and Acts::Experimental::DetectorNavigator::initializeTarget().

+ Here is the caller graph for this function:

void Acts::Experimental::DetectorVolume::updatePortal ( std::shared_ptr< Portal portal,
unsigned int  pIndex 
)
noexcept

Update a portal given a portal index

Parameters
portalthe portal to be updated
pIndexthe portal index
Note
throws exception if portal index out of bounds

Definition at line 190 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 190 of file DetectorVolume.cpp

References testing::internal::move().

+ Here is the call graph for this function:

const Acts::VolumeBounds & Acts::Experimental::DetectorVolume::volumeBounds ( ) const

Const access to the volume bounds

Returns
const reference to the volume bounds object

Definition at line 102 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 102 of file DetectorVolume.cpp

Referenced by Acts::Svg::DetectorVolumeConverter::convert(), Acts::DetectorVolumeJsonConverter::toJson(), and Acts::DetectorVolumeJsonConverter::toJsonDetray().

+ Here is the caller graph for this function:

const Acts::IVolumeMaterial * Acts::Experimental::DetectorVolume::volumeMaterial ( ) const

Const access to the volume amterial.

Definition at line 158 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 158 of file DetectorVolume.cpp

std::shared_ptr< Acts::IVolumeMaterial > Acts::Experimental::DetectorVolume::volumeMaterialPtr ( )

Non-const access to the voume material (for scaling, e.g.)

Definition at line 153 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 153 of file DetectorVolume.cpp

std::vector< std::shared_ptr< Acts::Experimental::DetectorVolume > > & Acts::Experimental::DetectorVolume::volumePtrs ( )

Non-const access to the volumes

Returns
the volumes shared pointer store

Definition at line 118 of file DetectorVolume.cpp.

View newest version in sPHENIX GitHub at line 118 of file DetectorVolume.cpp

Referenced by Acts::Experimental::GeometryIdGenerator::assignGeometryId().

+ Here is the caller graph for this function:

const std::vector< const Acts::Experimental::DetectorVolume * > & Acts::Experimental::DetectorVolume::volumes ( ) const

Const access to sub volumes

Note
and empty vector indicates this is either a gap volume or a layer volume, in any case it means the volume is on navigation level and the portals need to be connected
Returns
a vector to const DetectorVolume raw pointers

Definition at line 133 of file DetectorVolume.cpp.

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

Referenced by Acts::GeometryView3D::drawDetectorVolume(), Acts::Experimental::IndexedSubVolumesExtractor::extract(), Acts::DetectorVolumeJsonConverter::toJson(), Acts::Experimental::AllPortalsImpl::update(), Acts::Experimental::TrialAndErrorVolumeFinder::update(), and Acts::Experimental::AllPortalsAndSurfacesImpl::update().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

friend class DetectorVolumeFactory
friend

Definition at line 65 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 65 of file DetectorVolume.hpp

Member Data Documentation

const Detector* Acts::Experimental::DetectorVolume::d = nullptr

Definition at line 42 of file NavigationStateUpdatorsTests.cpp.

View newest version in sPHENIX GitHub at line 42 of file NavigationStateUpdatorsTests.cpp

Referenced by detector().

std::shared_ptr<const BoundingBox> Acts::Experimental::DetectorVolume::m_boundingBox
private

BoundingBox.

Definition at line 389 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 389 of file DetectorVolume.hpp

std::shared_ptr<VolumeBounds> Acts::Experimental::DetectorVolume::m_bounds = nullptr
private

Volume boundaries.

Definition at line 377 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 377 of file DetectorVolume.hpp

Referenced by DetectorVolume().

const Detector* Acts::Experimental::DetectorVolume::m_detector = nullptr
private

The detector it belongs to.

Definition at line 403 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 403 of file DetectorVolume.hpp

DetectorVolumeUpdator Acts::Experimental::DetectorVolume::m_detectorVolumeUpdator
private

Definition at line 391 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 391 of file DetectorVolume.hpp

Referenced by DetectorVolume().

GeometryIdentifier Acts::Experimental::DetectorVolume::m_geometryId {0}
private

GeometryIdentifier of this volume.

Definition at line 400 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 400 of file DetectorVolume.hpp

std::string Acts::Experimental::DetectorVolume::m_name = "Unnamed"
private

Name of the volume.

Definition at line 371 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 371 of file DetectorVolume.hpp

ObjectStore<std::shared_ptr<Portal> > Acts::Experimental::DetectorVolume::m_portals
private

Portal store (internal/external)

Definition at line 380 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 380 of file DetectorVolume.hpp

SurfaceCandidatesUpdator Acts::Experimental::DetectorVolume::m_surfaceCandidatesUpdator
private

The navigation state updator.

Definition at line 394 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 394 of file DetectorVolume.hpp

Referenced by DetectorVolume().

ObjectStore<std::shared_ptr<Surface> > Acts::Experimental::DetectorVolume::m_surfaces
private

Surface store (internal/external)

Definition at line 383 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 383 of file DetectorVolume.hpp

Transform3 Acts::Experimental::DetectorVolume::m_transform = Transform3::Identity()
private

Transform to place the bolume.

Definition at line 374 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 374 of file DetectorVolume.hpp

std::shared_ptr<IVolumeMaterial> Acts::Experimental::DetectorVolume::m_volumeMaterial = nullptr
private

Volume material (optional)

Definition at line 397 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 397 of file DetectorVolume.hpp

ObjectStore<std::shared_ptr<DetectorVolume> > Acts::Experimental::DetectorVolume::m_volumes
private

Volume store (internal/external)

Definition at line 386 of file DetectorVolume.hpp.

View newest version in sPHENIX GitHub at line 386 of file DetectorVolume.hpp

std::vector<const Portal*> Acts::Experimental::DetectorVolume::prts = {}

Definition at line 44 of file NavigationStateUpdatorsTests.cpp.

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

Referenced by portals().

std::vector<const Surface*> Acts::Experimental::DetectorVolume::sfs = {}

Definition at line 43 of file NavigationStateUpdatorsTests.cpp.

View newest version in sPHENIX GitHub at line 43 of file NavigationStateUpdatorsTests.cpp

Referenced by surfaces().


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