ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Geometry/TrackingVolume.hpp>
Public Member Functions | |
~TrackingVolume () override | |
Destructor. | |
TrackingVolume (const TrackingVolume &)=delete | |
Forbidden copy constructor - deleted. | |
TrackingVolume & | operator= (const TrackingVolume &)=delete |
Forbidden assignment - deleted. | |
const Layer * | associatedLayer (const GeometryContext &gctx, const Vector3D &position) const |
template<typename options_t > | |
std::vector< LayerIntersection > | compatibleLayers (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const options_t &options) const |
Resolves the volume into (compatible) Layers. | |
template<typename options_t > | |
std::vector< BoundaryIntersection > | compatibleBoundaries (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const options_t &options) const |
Returns all boundary surfaces sorted by the user. | |
template<typename options_t > | |
std::vector< SurfaceIntersection > | compatibleSurfacesFromHierarchy (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, double angle, const options_t &options) const |
Return surfaces in given direction from bounding volume hierarchy. | |
const TrackingVolume * | lowestTrackingVolume (const GeometryContext &gctx, const Vector3D &position, const double tol=0.) const |
const LayerArray * | confinedLayers () const |
std::shared_ptr< const TrackingVolumeArray > | confinedVolumes () const |
Return the confined volumes of this container array - if it exists. | |
const MutableTrackingVolumeVector | denseVolumes () const |
Return the confined dense volumes. | |
void | visitSurfaces (const std::function< void(const Acts::Surface *)> &visitor) const |
Visit all sensitive surfaces. | |
const std::string & | volumeName () const |
Returns the VolumeName - for debug reason, might be depreciated later. | |
const TrackingVolumeBoundaries & | boundarySurfaces () const |
Method to return the BoundarySurfaces. | |
const IVolumeMaterial * | volumeMaterial () const |
Return the material of the volume. | |
const std::shared_ptr< const IVolumeMaterial > & | volumeMaterialSharedPtr () const |
Return the material of the volume as shared pointer. | |
void | assignBoundaryMaterial (std::shared_ptr< const ISurfaceMaterial > surfaceMaterial, BoundarySurfaceFace bsFace) |
void | assignVolumeMaterial (std::shared_ptr< const IVolumeMaterial > material) |
void | glueTrackingVolume (const GeometryContext &gctx, BoundarySurfaceFace bsfMine, TrackingVolume *neighbor, BoundarySurfaceFace bsfNeighbor) |
void | glueTrackingVolumes (const GeometryContext &gctx, BoundarySurfaceFace bsfMine, const std::shared_ptr< TrackingVolumeArray > &neighbors, BoundarySurfaceFace bsfNeighbor) |
void | updateBoundarySurface (BoundarySurfaceFace bsf, std::shared_ptr< const BoundarySurfaceT< TrackingVolume >> bs, bool checkmaterial=true) |
void | registerGlueVolumeDescriptor (GlueVolumesDescriptor *gvd) |
GlueVolumesDescriptor & | glueVolumesDescriptor () |
bool | hasBoundingVolumeHierarchy () const |
void | registerColorCode (unsigned int icolor) |
unsigned int | colorCode () const |
Get the color code. | |
const TrackingVolume * | motherVolume () const |
Return the MotherVolume - if it exists. | |
void | setMotherVolume (const TrackingVolume *mvol) |
template<typename options_t > | |
std::vector< LayerIntersection > | compatibleLayers (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const options_t &options) const |
template<typename options_t > | |
std::vector< BoundaryIntersection > | compatibleBoundaries (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const options_t &options) const |
template<typename options_t > | |
std::vector< SurfaceIntersection > | compatibleSurfacesFromHierarchy (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, double angle, const options_t &options) const |
template<typename T > | |
std::vector< const Volume * > | intersectSearchHierarchy (const T obj, const Volume::BoundingBox *lnode) |
Public Member Functions inherited from Acts::Volume | |
Volume () | |
Default constructor. | |
Volume (const std::shared_ptr< const Transform3D > &htrans, VolumeBoundsPtr volbounds) | |
Volume (const Volume &vol, const Transform3D *shift=nullptr) | |
virtual | ~Volume () |
Destructor. | |
Volume & | operator= (const Volume &vol) |
const Transform3D & | transform () const |
Return methods for geometry transform. | |
const Transform3D & | itransform () const |
Returns the inverted transform of this volume. | |
const Vector3D & | center () const |
returns the center of the volume | |
const VolumeBounds & | volumeBounds () const |
returns the volumeBounds() | |
BoundingBox | boundingBox (const Vector3D &envelope={0, 0, 0}) const |
const BoundingBox & | orientedBoundingBox () const |
bool | inside (const Vector3D &gpos, double tol=0.) const |
const Vector3D | binningPosition (const GeometryContext &gctx, BinningValue bValue) const override |
Public Member Functions inherited from Acts::GeometryObject | |
GeometryObject ()=default | |
Defaulted construrctor. | |
GeometryObject (const GeometryObject &)=default | |
Defaulted copy constructor. | |
GeometryObject (const GeometryID &geoID) | |
GeometryObject & | operator= (const GeometryObject &geoID) |
const GeometryID & | geoID () const |
virtual double | binningPositionValue (const GeometryContext &gctx, BinningValue bValue) const |
void | assignGeoID (const GeometryID &geoID) |
Static Public Member Functions | |
static MutableTrackingVolumePtr | create (std::shared_ptr< const Transform3D > htrans, VolumeBoundsPtr volumeBounds, const std::shared_ptr< const TrackingVolumeArray > &containedVolumes=nullptr, const std::string &volumeName="undefined") |
static MutableTrackingVolumePtr | create (std::shared_ptr< const Transform3D > htrans, VolumeBoundsPtr volbounds, std::vector< std::unique_ptr< Volume::BoundingBox >> boxStore, std::vector< std::unique_ptr< const Volume >> descendants, const Volume::BoundingBox *top, std::shared_ptr< const IVolumeMaterial > volumeMaterial, const std::string &volumeName="undefined") |
static MutableTrackingVolumePtr | create (std::shared_ptr< const Transform3D > htrans, VolumeBoundsPtr volumeBounds, std::shared_ptr< const IVolumeMaterial > volumeMaterial, std::unique_ptr< const LayerArray > containedLayers=nullptr, std::shared_ptr< const TrackingVolumeArray > containedVolumes=nullptr, MutableTrackingVolumeVector denseVolumes={}, const std::string &volumeName="undefined") |
Protected Member Functions | |
TrackingVolume () | |
Default constructor. | |
TrackingVolume (std::shared_ptr< const Transform3D > htrans, VolumeBoundsPtr volbounds, const std::shared_ptr< const TrackingVolumeArray > &containedVolumeArray=nullptr, const std::string &volumeName="undefined") | |
TrackingVolume (std::shared_ptr< const Transform3D > htrans, VolumeBoundsPtr volbounds, std::vector< std::unique_ptr< Volume::BoundingBox >> boxStore, std::vector< std::unique_ptr< const Volume >> descendants, const Volume::BoundingBox *top, std::shared_ptr< const IVolumeMaterial > volumeMaterial, const std::string &volumeName="undefined") | |
TrackingVolume (std::shared_ptr< const Transform3D > htrans, VolumeBoundsPtr volumeBounds, std::shared_ptr< const IVolumeMaterial > volumeMaterial, std::unique_ptr< const LayerArray > staticLayerArray=nullptr, std::shared_ptr< const TrackingVolumeArray > containedVolumeArray=nullptr, MutableTrackingVolumeVector denseVolumeVector={}, const std::string &volumeName="undefined") | |
Private Member Functions | |
void | connectDenseBoundarySurfaces (MutableTrackingVolumeVector &confinedDenseVolumes) |
void | createBoundarySurfaces () |
Create Boundary Surface. | |
void | synchronizeLayers (double envelope=1.) const |
void | closeGeometry (const IMaterialDecorator *materialDecorator, std::map< std::string, const TrackingVolume * > &volumeMap, size_t &vol) |
void | interlinkLayers () |
interlink the layers in this TrackingVolume | |
Static Private Member Functions | |
template<typename T > | |
static std::vector< const Volume * > | intersectSearchHierarchy (const T obj, const Volume::BoundingBox *lnode) |
Private Attributes | |
std::shared_ptr< const IVolumeMaterial > | m_volumeMaterial {nullptr} |
The volume based material the TrackingVolume consists of. | |
const TrackingVolume * | m_motherVolume {nullptr} |
Remember the mother volume. | |
std::vector < TrackingVolumeBoundaryPtr > | m_boundarySurfaces |
std::unique_ptr< const LayerArray > | m_confinedLayers = nullptr |
std::shared_ptr< const TrackingVolumeArray > | m_confinedVolumes = nullptr |
Array of Volumes inside the Volume when actin as container. | |
MutableTrackingVolumeVector | m_confinedDenseVolumes |
confined dense | |
GlueVolumesDescriptor * | m_glueVolumeDescriptor {nullptr} |
Volumes to glue Volumes from the outside. | |
std::string | m_name |
Volume name for debug reasons & screen output. | |
unsigned int | m_colorCode {20} |
color code for displaying | |
std::vector< std::unique_ptr < const Volume::BoundingBox > > | m_boundingBoxes |
Bounding Volume Hierarchy (BVH) | |
std::vector< std::unique_ptr < const Volume > > | m_descendantVolumes |
const Volume::BoundingBox * | m_bvhTop {nullptr} |
Friends | |
class | TrackingGeometry |
Additional Inherited Members | |
Public Types inherited from Acts::Volume | |
using | BoundingBox = AxisAlignedBoundingBox< Volume, double, 3 > |
Protected Attributes inherited from Acts::Volume | |
std::shared_ptr< const Transform3D > | m_transform |
Transform3D | m_itransform |
Vector3D | m_center |
VolumeBoundsPtr | m_volumeBounds |
BoundingBox | m_orientedBoundingBox |
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure.
A TrackingVolume at navigation level can provide the (layer) material
information / internal navigation with in 5 different ways:
--- a) Static confinement of Layers --- b) detached sub volumes --- b) unordered (arbitrarily oriented) layers --- d) unordered sub volumes --- e) unordered layers AND unordered subvolumes
The TrackingVolume can also be a simple container of other TrackingVolumes
In addition it is capable of holding a subarray of Layers and TrackingVolumes.
Definition at line 79 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 79 of file TrackingVolume.hpp
|
override |
Destructor.
Definition at line 86 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 86 of file TrackingVolume.cpp
|
delete |
Forbidden copy constructor - deleted.
|
protected |
Default constructor.
Definition at line 23 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 23 of file TrackingVolume.cpp
Referenced by create().
|
protected |
Constructor for a container Volume
htrans | is the global 3D transform to position the volume in space |
volbounds | is the description of the volume boundaries |
containedVolumeArray | are the static volumes that fill this volume |
volumeName | is a string identifier |
Definition at line 31 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 31 of file TrackingVolume.cpp
References createBoundarySurfaces(), and interlinkLayers().
|
protected |
Definition at line 65 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 65 of file TrackingVolume.cpp
References createBoundarySurfaces(), and m_boundingBoxes.
|
protected |
Constructor for a full equipped Tracking Volume
htrans | is the global 3D transform to position the volume in space |
volumeBounds | is the description of the volume boundaries |
volumeMaterial | is are materials of the tracking volume |
staticLayerArray | is the confined layer array (optional) |
containedVolumeArray | are the sub volumes if the volume is a container |
denseVolumeVector | The contained dense volumes |
volumeName | is a string identifier |
Definition at line 46 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 46 of file TrackingVolume.cpp
void Acts::TrackingVolume::assignBoundaryMaterial | ( | std::shared_ptr< const ISurfaceMaterial > | surfaceMaterial, |
BoundarySurfaceFace | bsFace | ||
) |
Set the boundary surface material description
The material is usually derived in a complicated way and loaded from a framework given source. As various volumes could potentially share the the same material description, it is provided as a shared object
material | Material description of this volume |
Definition at line 260 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 260 of file TrackingVolume.cpp
References Acts::Surface::assignSurfaceMaterial(), and surface().
|
inline |
Set the volume material description
The material is usually derived in a complicated way and loaded from a framework given source. As various volumes could potentially share the the same material description, it is provided as a shared object
material | Material description of this volume |
Definition at line 477 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 477 of file TrackingVolume.hpp
References m_volumeMaterial.
|
inline |
Return the associated Layer to the global position
gctx | The current geometry context object, e.g. alignment |
position | is the associated global position |
Definition at line 13 of file TrackingVolume.ipp.
View newest version in sPHENIX GitHub at line 13 of file TrackingVolume.ipp
Referenced by Acts::TrackingGeometry::associatedLayer().
const Acts::TrackingVolumeBoundaries & Acts::TrackingVolume::boundarySurfaces | ( | ) | const |
Method to return the BoundarySurfaces.
Definition at line 108 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 108 of file TrackingVolume.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), FW::RootMaterialWriter::collectMaterial(), Acts::JsonGeometryConverter::convertToRep(), Acts::CylinderVolumeHelper::glueTrackingVolumes(), and Acts::SurfaceMaterialMapper::resolveMaterialSurfaces().
|
private |
close the Geometry, i.e. set the GeometryID and assign material
materialDecorator | is a dedicated decorator for the material to be assigned (surface, volume based) |
volumeMap | is a map to find the a volume by a given name |
vol | is the geometry id of the volume as calculated by the TrackingGeometry |
Definition at line 362 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 362 of file TrackingVolume.cpp
References Acts::GeometryObject::assignGeoID(), Acts::AbstractVolume::boundarySurfaces(), Acts::Layer::closeGeometry(), boost::const_pointer_cast(), Acts::IMaterialDecorator::decorate(), Acts::GeometryID::setBoundary(), Acts::GeometryID::setLayer(), setMotherVolume(), Acts::GeometryID::setSensitive(), and Acts::GeometryID::setVolume().
|
inline |
Get the color code.
Definition at line 499 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 499 of file TrackingVolume.hpp
References m_colorCode.
std::vector<BoundaryIntersection> Acts::TrackingVolume::compatibleBoundaries | ( | const GeometryContext & | gctx, |
const Vector3D & | position, | ||
const Vector3D & | direction, | ||
const options_t & | options | ||
) | const |
Helper function to process boundary surfaces
Definition at line 78 of file TrackingVolume.ipp.
View newest version in sPHENIX GitHub at line 78 of file TrackingVolume.ipp
References Acts::ObjectIntersection< object_t, representation_t >::alternative, Acts::forward, Acts::ObjectIntersection< object_t, representation_t >::intersection, Acts::ObjectIntersection< object_t, representation_t >::object, Acts::Intersection::pathLength, and Acts::s_onSurfaceTolerance.
std::vector< BoundaryIntersection > Acts::TrackingVolume::compatibleBoundaries | ( | const GeometryContext & | gctx, |
const Vector3D & | position, | ||
const Vector3D & | direction, | ||
const options_t & | options | ||
) | const |
Returns all boundary surfaces sorted by the user.
options_t | Type of navigation options object for decomposition |
sorter_t | Type of the boundary surface sorter |
gctx | The current geometry context object, e.g. alignment |
position | The position for searching |
direction | The direction for searching |
options | The templated navigation options |
sorter | Sorter of the boundary surfaces |
Helper function to process boundary surfaces
Definition at line 79 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 79 of file TrackingVolume.hpp
std::vector<LayerIntersection> Acts::TrackingVolume::compatibleLayers | ( | const GeometryContext & | gctx, |
const Vector3D & | position, | ||
const Vector3D & | direction, | ||
const options_t & | options | ||
) | const |
Definition at line 25 of file TrackingVolume.ipp.
View newest version in sPHENIX GitHub at line 25 of file TrackingVolume.ipp
References Acts::forward, Acts::ObjectIntersection< object_t, representation_t >::intersection, Acts::Layer::nextLayer(), Acts::Intersection::pathLength, Acts::Layer::resolve(), and Acts::Layer::surfaceOnApproach().
std::vector< LayerIntersection > Acts::TrackingVolume::compatibleLayers | ( | const GeometryContext & | gctx, |
const Vector3D & | position, | ||
const Vector3D & | direction, | ||
const options_t & | options | ||
) | const |
Resolves the volume into (compatible) Layers.
This is the method for the propagator/extrapolator
options_t | Type of navigation options object for decomposition |
gctx | The current geometry context object, e.g. alignment |
position | Position for the search |
direction | Direction for the search |
options | The templated navigation options |
Definition at line 26 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 26 of file TrackingVolume.hpp
std::vector<SurfaceIntersection> Acts::TrackingVolume::compatibleSurfacesFromHierarchy | ( | const GeometryContext & | gctx, |
const Vector3D & | position, | ||
const Vector3D & | direction, | ||
double | angle, | ||
const options_t & | options | ||
) | const |
Definition at line 171 of file TrackingVolume.ipp.
View newest version in sPHENIX GitHub at line 171 of file TrackingVolume.ipp
References Acts::AbstractVolume::boundarySurfaces(), Acts::forward, hits(), and Acts::Surface::intersectionEstimate().
std::vector< SurfaceIntersection > Acts::TrackingVolume::compatibleSurfacesFromHierarchy | ( | const GeometryContext & | gctx, |
const Vector3D & | position, | ||
const Vector3D & | direction, | ||
double | angle, | ||
const options_t & | options | ||
) | const |
Return surfaces in given direction from bounding volume hierarchy.
options_t | Type of navigation options object for decomposition |
gctx | The current geometry context object, e.g. alignment |
position | The position to start from |
direction | The direction towards which to test |
angle | The opening angle |
options | The templated navigation options |
Definition at line 172 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 172 of file TrackingVolume.hpp
|
inline |
Return the confined static layer array - if it exists
Definition at line 482 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 482 of file TrackingVolume.hpp
References m_confinedLayers.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), FW::RootMaterialWriter::collectMaterial(), Acts::JsonGeometryConverter::convertToRep(), Acts::VolumeSelector::operator()(), Acts::SurfaceMaterialMapper::resolveMaterialSurfaces(), and FW::Obj::ObjTrackingGeometryWriter::write().
|
inline |
Return the confined volumes of this container array - if it exists.
Definition at line 491 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 491 of file TrackingVolume.hpp
References m_confinedVolumes.
Referenced by FW::RootMaterialWriter::collectMaterial(), Acts::JsonGeometryConverter::convertToRep(), Acts::SurfaceMaterialMapper::resolveMaterialSurfaces(), Acts::VolumeMaterialMapper::resolveMaterialVolume(), and FW::Obj::ObjTrackingGeometryWriter::write().
|
private |
Definition at line 113 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 113 of file TrackingVolume.cpp
References boost::const_pointer_cast(), Acts::insideVolume, and Acts::outsideVolume.
|
inlinestatic |
Factory constructor for a container TrackingVolume
htrans | is the global 3D transform to position the volume in space |
volumeBounds | is the description of the volume boundaries |
containedVolumes | are the static volumes that fill this volume |
volumeName | is a string identifier |
Definition at line 101 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 101 of file TrackingVolume.hpp
References TrackingVolume(), and volumeName().
Referenced by Acts::CuboidVolumeBuilder::buildVolume(), Acts::DD4hepVolumeBuilder::centralVolumes(), Acts::constructContainerVolume(), Acts::constructCylinderVolume(), Acts::CylinderVolumeHelper::createContainerTrackingVolume(), EmptyDetector::finalize(), Acts::Test::CubicTrackingGeometry::operator()(), Acts::Test::CylindricalTrackingGeometry::operator()(), and Acts::CuboidVolumeBuilder::trackingVolume().
|
inlinestatic |
Factory constructor for Tracking Volume with a bounding volume hierarchy
htrans | is the global 3D transform to position the volume in space |
volBounds | is the description of the volume boundaries |
boxStore | Vector owning the contained bounding boxes |
descendants | Vector owning the child volumes |
top | The top of the hierarchy (top node) |
matprop | is are materials of the tracking volume |
volumeName | is a string identifier |
Definition at line 122 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 122 of file TrackingVolume.hpp
References TrackingVolume(), and volumeName().
|
inlinestatic |
Factory constructor for Tracking Volumes with content
htrans | is the global 3D transform to position the volume in space |
volumeBounds | is the description of the volume boundaries |
matprop | is are materials of the tracking volume |
containedLayers | is the confined layer array (optional) |
containedVolumes | is the confined volume array (optional) |
volumeName | is a string identifier |
Definition at line 145 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 145 of file TrackingVolume.hpp
|
private |
Create Boundary Surface.
Definition at line 154 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 154 of file TrackingVolume.cpp
References Acts::Surface::Cylinder, Acts::VolumeBounds::decomposeToSurfaces(), and Acts::Volume::volumeBounds().
Referenced by TrackingVolume().
|
inline |
Return the confined dense volumes.
Definition at line 486 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 486 of file TrackingVolume.hpp
References m_confinedDenseVolumes.
Referenced by Acts::JsonGeometryConverter::convertToRep(), and Acts::VolumeMaterialMapper::resolveMaterialVolume().
void Acts::TrackingVolume::glueTrackingVolume | ( | const GeometryContext & | gctx, |
BoundarySurfaceFace | bsfMine, | ||
TrackingVolume * | neighbor, | ||
BoundarySurfaceFace | bsfNeighbor | ||
) |
Glue another tracking volume to this one
gctx | The current geometry context object, e.g. alignment |
bsfMine | is the boundary face indicater where to glue |
neighbor | is the TrackingVolume to be glued |
bsfNeighbor | is the boudnary surface of the neighbor |
Definition at line 179 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 179 of file TrackingVolume.cpp
References Acts::Surface::assignSurfaceMaterial(), Acts::Test::at, Acts::BoundarySurfaceT< T >::attachVolume(), Acts::Volume::binningPosition(), Acts::binR, boost::const_pointer_cast(), Acts::insideVolume, m_boundarySurfaces, Acts::outsideVolume, and Acts::Surface::surfaceMaterialSharedPtr().
void Acts::TrackingVolume::glueTrackingVolumes | ( | const GeometryContext & | gctx, |
BoundarySurfaceFace | bsfMine, | ||
const std::shared_ptr< TrackingVolumeArray > & | neighbors, | ||
BoundarySurfaceFace | bsfNeighbor | ||
) |
Glue another tracking volume to this one
gctx | The current geometry context object, e.g. alignment |
bsfMine | is the boundary face indicater where to glue |
neighbors | are the TrackingVolumes to be glued |
bsfNeighbor | are the boudnary surface of the neighbors |
Definition at line 222 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 222 of file TrackingVolume.cpp
References Acts::Test::at, Acts::BoundarySurfaceT< T >::attachVolumeArray(), Acts::binR, boost::const_pointer_cast(), Acts::insideVolume, and Acts::outsideVolume.
Acts::GlueVolumesDescriptor & Acts::TrackingVolume::glueVolumesDescriptor | ( | ) |
Register the outside glue volumes - ordering is in the TrackingVolume Frame:
Definition at line 291 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 291 of file TrackingVolume.cpp
|
inline |
Return whether this TrackingVolume has a BoundingVolumeHierarchy associated
Definition at line 511 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 511 of file TrackingVolume.hpp
References m_bvhTop.
|
private |
interlink the layers in this TrackingVolume
Definition at line 332 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 332 of file TrackingVolume.cpp
References boost::const_pointer_cast(), Acts::Layer::encloseTrackingVolume(), Acts::Layer::m_nextLayers, and Acts::Layer::m_nextLayerUtility.
Referenced by TrackingVolume().
std::vector<const Volume*> Acts::TrackingVolume::intersectSearchHierarchy | ( | const T | obj, |
const Volume::BoundingBox * | lnode | ||
) |
Definition at line 226 of file TrackingVolume.ipp.
View newest version in sPHENIX GitHub at line 226 of file TrackingVolume.ipp
References Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::entity(), Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::getLeftChild(), Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::getSkip(), Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::hasEntity(), hits(), Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::intersect(), Acts::Volume::itransform(), and Acts::Volume::orientedBoundingBox().
|
staticprivate |
Definition at line 227 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 227 of file TrackingVolume.hpp
const Acts::TrackingVolume * Acts::TrackingVolume::lowestTrackingVolume | ( | const GeometryContext & | gctx, |
const Vector3D & | position, | ||
const double | tol = 0. |
||
) | const |
Return the associated sub Volume, returns THIS if no subVolume exists
gctx | The current geometry context object, e.g. alignment |
position | is the global position associated with that search |
tol | Search position tolerance for dense volumes |
Definition at line 90 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 90 of file TrackingVolume.cpp
Referenced by Acts::TrackingGeometry::lowestTrackingVolume().
|
inline |
Return the MotherVolume - if it exists.
Definition at line 503 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 503 of file TrackingVolume.hpp
References m_motherVolume.
|
delete |
Forbidden assignment - deleted.
Register the color code
icolor | is a color number |
Definition at line 495 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 495 of file TrackingVolume.hpp
References m_colorCode.
void Acts::TrackingVolume::registerGlueVolumeDescriptor | ( | GlueVolumesDescriptor * | gvd | ) |
Register the outside glue volumes - ordering is in the TrackingVolume Frame:
gvd | register a new GlueVolumeDescriptor |
Definition at line 285 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 285 of file TrackingVolume.cpp
|
inline |
Set the MotherVolume
mvol | is the mother volume |
Definition at line 507 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 507 of file TrackingVolume.hpp
References m_motherVolume.
Referenced by closeGeometry().
|
private |
method to synchronize the layers with potentially updated volume bounds:
envelope | is the clearance between volume boundary and layer |
Definition at line 298 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 298 of file TrackingVolume.cpp
void Acts::TrackingVolume::updateBoundarySurface | ( | BoundarySurfaceFace | bsf, |
std::shared_ptr< const BoundarySurfaceT< TrackingVolume >> | bs, | ||
bool | checkmaterial = true |
||
) |
Provide a new BoundarySurface from the glueing
bsf | is the boundary face indicater where to glue |
bs | is the new boudnary surface |
checkmaterial | is a flag how to deal with material, if true:
|
Definition at line 268 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 268 of file TrackingVolume.cpp
References Acts::Surface::assignSurfaceMaterial(), and surface().
void Acts::TrackingVolume::visitSurfaces | ( | const std::function< void(const Acts::Surface *)> & | visitor | ) | const |
Visit all sensitive surfaces.
visitor | The callable. Will be called for each sensitive surface that is found |
If a context is needed for the vist, the vistitor has to provide this e.g. as a private member
Definition at line 457 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 457 of file TrackingVolume.cpp
References G4TTL::layer, and Acts::Test::volume.
|
inline |
Return the material of the volume.
Definition at line 468 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 468 of file TrackingVolume.hpp
References m_volumeMaterial.
Referenced by Acts::VolumeMaterialMapper::checkAndInsert(), Acts::JsonGeometryConverter::convertToRep(), Acts::VolumeSelector::operator()(), Acts::MaterialVolume::operator()(), Acts::VolumeMaterialMapper::MaterialVolume::operator()(), and Acts::MaterialInteractor::operator()().
|
inline |
Return the material of the volume as shared pointer.
Definition at line 473 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 473 of file TrackingVolume.hpp
References m_volumeMaterial.
Referenced by FW::RootMaterialWriter::collectMaterial().
|
inline |
Returns the VolumeName - for debug reason, might be depreciated later.
Definition at line 464 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 464 of file TrackingVolume.hpp
References m_name.
Referenced by Acts::JsonGeometryConverter::convertToRep(), create(), Acts::SurfaceMaterialMapper::resolveMaterialSurfaces(), Acts::VolumeMaterialMapper::resolveMaterialVolume(), and FW::Obj::ObjTrackingGeometryWriter::write().
|
friend |
Definition at line 80 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 80 of file TrackingVolume.hpp
|
private |
Definition at line 437 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 437 of file TrackingVolume.hpp
Referenced by glueTrackingVolume().
|
private |
Bounding Volume Hierarchy (BVH)
Definition at line 459 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 459 of file TrackingVolume.hpp
Referenced by TrackingVolume().
|
private |
Definition at line 461 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 461 of file TrackingVolume.hpp
Referenced by hasBoundingVolumeHierarchy().
|
private |
color code for displaying
Definition at line 456 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 456 of file TrackingVolume.hpp
Referenced by colorCode(), and registerColorCode().
|
private |
confined dense
Definition at line 447 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 447 of file TrackingVolume.hpp
Referenced by denseVolumes().
|
private |
(a) static configuration ordered by Binned arrays static layers
Definition at line 441 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 441 of file TrackingVolume.hpp
Referenced by confinedLayers().
|
private |
Array of Volumes inside the Volume when actin as container.
Definition at line 444 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 444 of file TrackingVolume.hpp
Referenced by confinedVolumes().
|
private |
Definition at line 460 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 460 of file TrackingVolume.hpp
|
private |
Volumes to glue Volumes from the outside.
Definition at line 450 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 450 of file TrackingVolume.hpp
|
private |
Remember the mother volume.
Definition at line 434 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 434 of file TrackingVolume.hpp
Referenced by motherVolume(), and setMotherVolume().
|
private |
Volume name for debug reasons & screen output.
Definition at line 453 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 453 of file TrackingVolume.hpp
Referenced by volumeName().
|
private |
The volume based material the TrackingVolume consists of.
Definition at line 431 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 431 of file TrackingVolume.hpp
Referenced by assignVolumeMaterial(), volumeMaterial(), and volumeMaterialSharedPtr().