Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Geometry/TrackingVolume.hpp>
Public Member Functions | |
TrackingVolume ()=delete | |
~TrackingVolume () override | |
TrackingVolume (const TrackingVolume &)=delete | |
TrackingVolume & | operator= (const TrackingVolume &)=delete |
const Layer * | associatedLayer (const GeometryContext &gctx, const Vector3 &position) const |
boost::container::small_vector < LayerIntersection, 10 > | compatibleLayers (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const NavigationOptions< Layer > &options) const |
Resolves the volume into (compatible) Layers. | |
boost::container::small_vector < BoundaryIntersection, 4 > | compatibleBoundaries (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const NavigationOptions< Surface > &options, const Logger &logger=getDummyLogger()) const |
Returns all boundary surfaces sorted by the user. | |
std::vector< SurfaceIntersection > | compatibleSurfacesFromHierarchy (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, double angle, const NavigationOptions< Surface > &options) const |
Return surfaces in given direction from bounding volume hierarchy. | |
const TrackingVolume * | lowestTrackingVolume (const GeometryContext &gctx, const Vector3 &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. | |
template<ACTS_CONCEPT(SurfaceVisitor) visitor_t> | |
void | visitSurfaces (visitor_t &&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) |
Public Member Functions inherited from Acts::Volume | |
Volume (const Transform3 &transform, VolumeBoundsPtr volbounds) | |
Volume (const Volume &vol, const Transform3 &shift=Transform3::Identity()) | |
Volume ()=delete | |
virtual | ~Volume ()=default |
Volume & | operator= (const Volume &vol) |
const Transform3 & | transform () const |
Return methods for geometry transform. | |
const Transform3 & | itransform () const |
Returns the inverted transform of this volume. | |
const Vector3 & | center () const |
returns the center of the volume | |
const VolumeBounds & | volumeBounds () const |
returns the volumeBounds() | |
BoundingBox | boundingBox (const Vector3 &envelope={0, 0, 0}) const |
const BoundingBox & | orientedBoundingBox () const |
bool | inside (const Vector3 &gpos, double tol=0.) const |
Vector3 | binningPosition (const GeometryContext &gctx, BinningValue bValue) const override |
Public Member Functions inherited from Acts::GeometryObject | |
GeometryObject ()=default | |
Defaulted constructor. | |
GeometryObject (const GeometryObject &)=default | |
Defaulted copy constructor. | |
GeometryObject (const GeometryIdentifier &geometryId) | |
GeometryObject & | operator= (const GeometryObject &geometryId) |
const GeometryIdentifier & | geometryId () const |
virtual double | binningPositionValue (const GeometryContext &gctx, BinningValue bValue) const |
void | assignGeometryId (const GeometryIdentifier &geometryId) |
Static Public Member Functions | |
static MutableTrackingVolumePtr | create (const Transform3 &transform, VolumeBoundsPtr volumeBounds, const std::shared_ptr< const TrackingVolumeArray > &containedVolumes=nullptr, const std::string &volumeName="undefined") |
static MutableTrackingVolumePtr | create (const Transform3 &transform, 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 (const Transform3 &transform, 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 (const Transform3 &transform, VolumeBoundsPtr volbounds, const std::shared_ptr< const TrackingVolumeArray > &containedVolumeArray=nullptr, const std::string &volumeName="undefined") | |
TrackingVolume (const Transform3 &transform, 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 (const Transform3 &transform, 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::unordered_map< GeometryIdentifier, const TrackingVolume * > &volumeMap, size_t &vol, const GeometryIdentifierHook &hook, const Logger &logger=getDummyLogger()) |
void | interlinkLayers () |
interlink the layers in this TrackingVolume | |
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, ActsScalar, 3 > |
Protected Attributes inherited from Acts::Volume | |
Transform3 | m_transform |
Transform3 | m_itransform |
Vector3 | 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 105 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 105 of file TrackingVolume.hpp
|
delete |
|
override |
Definition at line 93 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 93 of file TrackingVolume.cpp
|
delete |
|
protected |
Constructor for a container Volume
transform | 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 38 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 38 of file TrackingVolume.cpp
References createBoundarySurfaces(), and interlinkLayers().
|
protected |
Definition at line 72 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 72 of file TrackingVolume.cpp
References createBoundarySurfaces(), and m_boundingBoxes.
|
protected |
Constructor for a full equipped Tracking Volume
transform | 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 53 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 53 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
surfaceMaterial | Material description of this volume |
bsFace | Specifies which boundary surface to assign the material to |
Definition at line 262 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 262 of file TrackingVolume.cpp
References Acts::Surface::assignSurfaceMaterial(), testing::internal::move(), and writeMapConfig::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 520 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 520 of file TrackingVolume.hpp
References m_volumeMaterial, and testing::internal::move().
Referenced by Acts::JsonMaterialDecorator::decorate().
|
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 9 of file TrackingVolume.ipp.
View newest version in sPHENIX GitHub at line 9 of file TrackingVolume.ipp
Referenced by Acts::TrackingGeometry::associatedLayer(), and Acts::Test::BOOST_AUTO_TEST_CASE().
const Acts::TrackingVolumeBoundaries & Acts::TrackingVolume::boundarySurfaces | ( | ) | const |
Method to return the BoundarySurfaces.
Definition at line 118 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 118 of file TrackingVolume.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), ActsExamples::RootMaterialWriter::collectMaterial(), Acts::VolumeMaterialMapper::collectMaterialSurfaces(), Acts::MaterialMapJsonConverter::convertToHierarchy(), Acts::GeometryView3D::drawTrackingVolume(), Acts::CylinderVolumeHelper::glueTrackingVolumes(), Acts::SurfaceMaterialMapper::resolveMaterialSurfaces(), and Acts::MappingMaterialDecorator::volumeLoop().
|
private |
close the Geometry, i.e. set the GeometryIdentifier 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 identifier |
vol | is the geometry id of the volume as calculated by the TrackingGeometry |
hook | Identifier hook to be applied to surfaces |
logger | A LoggerWrapper instance |
Definition at line 364 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 364 of file TrackingVolume.cpp
References ACTS_DEBUG, Acts::GeometryObject::assignGeometryId(), Acts::AbstractVolume::boundarySurfaces(), Acts::Layer::closeGeometry(), boost::const_pointer_cast(), Acts::IMaterialDecorator::decorate(), Acts::GeometryIdentifier::setBoundary(), Acts::GeometryIdentifier::setLayer(), setMotherVolume(), Acts::GeometryIdentifier::setSensitive(), and Acts::GeometryIdentifier::setVolume().
|
inline |
Get the color code.
Definition at line 542 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 542 of file TrackingVolume.hpp
References m_colorCode.
boost::container::small_vector< Acts::BoundaryIntersection, 4 > Acts::TrackingVolume::compatibleBoundaries | ( | const GeometryContext & | gctx, |
const Vector3 & | position, | ||
const Vector3 & | direction, | ||
const NavigationOptions< Surface > & | options, | ||
const Logger & | logger = getDummyLogger() |
||
) | 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 |
logger | A Logger instance |
Helper function to process boundary surfaces
Definition at line 466 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 466 of file TrackingVolume.cpp
References KFPMath::a, Acts::ACTS_VERBOSE(), KFPMath::b, Acts::NavigationOptions< object_t >::boundaryCheck, Acts::detail::checkIntersection(), Acts::NavigationOptions< object_t >::forceIntersectBoundaries, Acts::ObjectIntersection< object_t, representation_t >::invalid(), logger(), Acts::NavigationOptions< object_t >::pathLimit, Acts::s_onSurfaceTolerance, Acts::Experimental::detail::BlueprintHelper::sort(), Acts::ObjectMultiIntersection< object_t, representation_t >::split(), and Acts::NavigationOptions< object_t >::startObject.
boost::container::small_vector< Acts::LayerIntersection, 10 > Acts::TrackingVolume::compatibleLayers | ( | const GeometryContext & | gctx, |
const Vector3 & | position, | ||
const Vector3 & | direction, | ||
const NavigationOptions< Layer > & | 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 588 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 588 of file TrackingVolume.cpp
References Acts::NavigationOptions< object_t >::endObject, Acts::ObjectIntersection< object_t, representation_t >::forwardOrder(), Acts::Layer::nextLayer(), path, Acts::NavigationOptions< object_t >::pathLimit, Acts::Layer::resolve(), Acts::Experimental::detail::BlueprintHelper::sort(), Acts::NavigationOptions< object_t >::startObject, Acts::Layer::surfaceOnApproach(), and Acts::NavigationOptions< object_t >::targetSurface.
std::vector< Acts::SurfaceIntersection > Acts::TrackingVolume::compatibleSurfacesFromHierarchy | ( | const GeometryContext & | gctx, |
const Vector3 & | position, | ||
const Vector3 & | direction, | ||
double | angle, | ||
const NavigationOptions< Surface > & | 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 666 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 666 of file TrackingVolume.cpp
References Acts::AbstractVolume::boundarySurfaces(), Acts::ObjectIntersection< Surface >::forwardOrder(), Acts::Surface::intersect(), testing::internal::move(), Acts::NavigationOptions< object_t >::overstepLimit, Acts::NavigationOptions< object_t >::pathLimit, and Acts::Experimental::detail::BlueprintHelper::sort().
|
inline |
Return the confined static layer array - if it exists
Definition at line 525 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 525 of file TrackingVolume.hpp
References m_confinedLayers.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), ActsExamples::RootMaterialWriter::collectMaterial(), Acts::VolumeMaterialMapper::collectMaterialSurfaces(), Acts::Svg::TrackingGeometryConverter::convert(), Acts::MaterialMapJsonConverter::convertToHierarchy(), Acts::GeometryView3D::drawTrackingVolume(), Acts::VolumeSelector::operator()(), Acts::SurfaceMaterialMapper::resolveMaterialSurfaces(), and Acts::MappingMaterialDecorator::volumeLoop().
|
inline |
Return the confined volumes of this container array - if it exists.
Definition at line 534 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 534 of file TrackingVolume.hpp
References m_confinedVolumes.
Referenced by ActsExamples::RootMaterialWriter::collectMaterial(), Acts::VolumeMaterialMapper::collectMaterialSurfaces(), Acts::SurfaceMaterialMapper::collectMaterialVolumes(), Acts::Svg::TrackingGeometryConverter::convert(), Acts::MaterialMapJsonConverter::convertToHierarchy(), Acts::GeometryView3D::drawTrackingVolume(), Acts::SurfaceMaterialMapper::resolveMaterialSurfaces(), Acts::VolumeMaterialMapper::resolveMaterialVolume(), and Acts::MappingMaterialDecorator::volumeLoop().
|
private |
Definition at line 123 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 123 of file TrackingVolume.cpp
References boost::const_pointer_cast(), i, testing::internal::move(), Acts::Direction::Negative, and Acts::Direction::Positive.
|
inlinestatic |
Factory constructor for a container TrackingVolume
transform | 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 124 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 124 of file TrackingVolume.hpp
References testing::internal::move(), TrackingVolume(), and volumeName().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::CuboidVolumeBuilder::buildVolume(), Acts::DD4hepVolumeBuilder::centralVolumes(), Acts::constructContainerVolume(), Acts::constructCylinderVolume(), Acts::CylinderVolumeHelper::createContainerTrackingVolume(), Acts::Test::CubicBVHTrackingGeometry::CubicBVHTrackingGeometry(), 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
transform | 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) |
volumeMaterial | is the materials of the tracking volume |
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
References testing::internal::move(), TrackingVolume(), and volumeName().
|
inlinestatic |
Factory constructor for Tracking Volumes with content
transform | 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 |
containedLayers | is the confined layer array (optional) |
containedVolumes | is the confined volume array (optional) |
denseVolumes | is the array of dense volulmes (optional) |
volumeName | is a string identifier |
Definition at line 170 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 170 of file TrackingVolume.hpp
|
private |
Create Boundary Surface.
Definition at line 164 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 164 of file TrackingVolume.cpp
References m_transform(), testing::internal::move(), Acts::Direction::Negative, Acts::VolumeBounds::orientedSurfaces(), and Acts::Volume::volumeBounds().
Referenced by TrackingVolume().
|
inline |
Return the confined dense volumes.
Definition at line 529 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 529 of file TrackingVolume.hpp
References m_confinedDenseVolumes.
Referenced by Acts::SurfaceMaterialMapper::collectMaterialVolumes(), Acts::MaterialMapJsonConverter::convertToHierarchy(), Acts::VolumeMaterialMapper::resolveMaterialVolume(), and Acts::MappingMaterialDecorator::volumeLoop().
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 boundary surface of the neighbor |
Definition at line 184 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 184 of file TrackingVolume.cpp
References Acts::Surface::assignSurfaceMaterial(), Acts::Test::at, Acts::BoundarySurfaceT< volume_t >::attachVolume(), Acts::Volume::binningPosition(), Acts::binR, boost::const_pointer_cast(), distance(), Acts::Direction::fromScalar(), m_boundarySurfaces, 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 boundary surface of the neighbors |
Definition at line 225 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 225 of file TrackingVolume.cpp
References Acts::Test::at, Acts::BoundarySurfaceT< volume_t >::attachVolumeArray(), Acts::binR, boost::const_pointer_cast(), distance(), and Acts::Direction::fromScalar().
Acts::GlueVolumesDescriptor & Acts::TrackingVolume::glueVolumesDescriptor | ( | ) |
Register the outside glue volumes - ordering is in the TrackingVolume Frame:
Definition at line 293 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 293 of file TrackingVolume.cpp
|
inline |
Return whether this TrackingVolume has a BoundingVolumeHierarchy associated
Definition at line 554 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 554 of file TrackingVolume.hpp
References m_bvhTop.
|
private |
interlink the layers in this TrackingVolume
Definition at line 334 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 334 of file TrackingVolume.cpp
References boost::const_pointer_cast(), Acts::Layer::encloseTrackingVolume(), Acts::Layer::m_nextLayers, and Acts::Layer::m_nextLayerUtility.
Referenced by TrackingVolume().
const Acts::TrackingVolume * Acts::TrackingVolume::lowestTrackingVolume | ( | const GeometryContext & | gctx, |
const Vector3 & | 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 97 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 97 of file TrackingVolume.cpp
Referenced by Acts::TrackingGeometry::lowestTrackingVolume().
|
inline |
Return the MotherVolume - if it exists.
Definition at line 546 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 546 of file TrackingVolume.hpp
References m_motherVolume.
Referenced by Acts::GeometryView3D::drawTrackingVolume().
|
delete |
|
inline |
Register the color code
icolor | is a color number |
Definition at line 538 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 538 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 287 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 287 of file TrackingVolume.cpp
|
inline |
Set the MotherVolume
mvol | is the mother volume |
Definition at line 550 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 550 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 300 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 300 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 boundary surface |
checkmaterial | is a flag how to deal with material, if true:
|
Definition at line 270 of file TrackingVolume.cpp.
View newest version in sPHENIX GitHub at line 270 of file TrackingVolume.cpp
References Acts::Surface::assignSurfaceMaterial(), testing::internal::move(), and writeMapConfig::surface.
|
inline |
Visit all sensitive surfaces.
visitor_t | Type of the callable visitor |
visitor | The callable. Will be called for each sensitive surface that is found |
If a context is needed for the visit, the vistitor has to provide this e.g. as a private member
Definition at line 270 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 270 of file TrackingVolume.hpp
References layer, m_confinedLayers, and m_confinedVolumes.
|
inline |
Return the material of the volume.
Definition at line 511 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 511 of file TrackingVolume.hpp
References m_volumeMaterial.
Referenced by Acts::VolumeMaterialMapper::checkAndInsert(), Acts::SurfaceMaterialMapper::collectMaterialVolumes(), Acts::MaterialMapJsonConverter::convertToHierarchy(), Acts::DirectNavigator::currentVolumeMaterial(), Acts::VolumeSelector::operator()(), Acts::MaterialVolume::operator()(), Acts::MaterialInteractor::operator()(), Acts::VolumeMaterialMapper::MaterialVolumeSelector::operator()(), and Acts::MappingMaterialDecorator::volumeLoop().
|
inline |
Return the material of the volume as shared pointer.
Definition at line 516 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 516 of file TrackingVolume.hpp
References m_volumeMaterial.
Referenced by ActsExamples::RootMaterialWriter::collectMaterial(), Acts::SurfaceMaterialMapper::collectMaterialVolumes(), and Acts::MappingMaterialDecorator::volumeLoop().
|
inline |
Returns the VolumeName - for debug reason, might be depreciated later.
Definition at line 507 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 507 of file TrackingVolume.hpp
References m_name.
Referenced by Acts::VolumeMaterialMapper::collectMaterialSurfaces(), Acts::SurfaceMaterialMapper::collectMaterialVolumes(), create(), Acts::GeometryView3D::drawTrackingVolume(), Acts::SurfaceMaterialMapper::resolveMaterialSurfaces(), and Acts::VolumeMaterialMapper::resolveMaterialVolume().
|
friend |
Definition at line 106 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 106 of file TrackingVolume.hpp
|
private |
Definition at line 480 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 480 of file TrackingVolume.hpp
Referenced by glueTrackingVolume().
|
private |
Bounding Volume Hierarchy (BVH)
Definition at line 502 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 502 of file TrackingVolume.hpp
Referenced by TrackingVolume().
|
private |
Definition at line 504 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 504 of file TrackingVolume.hpp
Referenced by hasBoundingVolumeHierarchy().
|
private |
color code for displaying
Definition at line 499 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 499 of file TrackingVolume.hpp
Referenced by colorCode(), and registerColorCode().
|
private |
confined dense
Definition at line 490 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 490 of file TrackingVolume.hpp
Referenced by denseVolumes().
|
private |
(a) static configuration ordered by Binned arrays static layers
Definition at line 484 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 484 of file TrackingVolume.hpp
Referenced by confinedLayers(), and visitSurfaces().
|
private |
Array of Volumes inside the Volume when actin as container.
Definition at line 487 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 487 of file TrackingVolume.hpp
Referenced by confinedVolumes(), and visitSurfaces().
|
private |
Definition at line 503 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 503 of file TrackingVolume.hpp
|
private |
Volumes to glue Volumes from the outside.
Definition at line 493 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 493 of file TrackingVolume.hpp
|
private |
Remember the mother volume.
Definition at line 477 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 477 of file TrackingVolume.hpp
Referenced by motherVolume(), and setMotherVolume().
|
private |
Volume name for debug reasons & screen output.
Definition at line 496 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 496 of file TrackingVolume.hpp
Referenced by volumeName().
|
private |
The volume based material the TrackingVolume consists of.
Definition at line 474 of file TrackingVolume.hpp.
View newest version in sPHENIX GitHub at line 474 of file TrackingVolume.hpp
Referenced by assignVolumeMaterial(), volumeMaterial(), and volumeMaterialSharedPtr().