ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::TrackingVolume Class Reference

Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure. More...

#include <Acts/Geometry/TrackingVolume.hpp>

Inheritance diagram for Acts::TrackingVolume:
[legend]
Collaboration diagram for Acts::TrackingVolume:
[legend]

Public Types

using MutablePortalRange
 Type alias for mutable range of portals in tracking volume.
using MutableSurfaceRange
 Type alias for mutable range of surfaces in tracking volume.
using MutableVolumeRange
 Type alias for mutable range of tracking volumes in container.
using PortalRange
 Type alias for const range of portals in tracking volume.
using SurfaceRange
 Type alias for const range of surfaces in tracking volume.
using VolumeRange
 Type alias for const range of tracking volumes in container.
Public Types inherited from Acts::Volume
using BoundingBox = AxisAlignedBoundingBox<Volume, double, 3>
 Type alias for the axis-aligned bounding box of the volume.

Public Member Functions

 TrackingVolume ()=delete
 TrackingVolume (const TrackingVolume &)=delete
 TrackingVolume (const Transform3 &transform, std::shared_ptr< VolumeBounds > volbounds, const std::string &volumeName="undefined")
 Constructor for a container Volume.
 TrackingVolume (const Transform3 &transform, std::shared_ptr< VolumeBounds > 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")
 Constructor for a full equipped Tracking Volume.
 TrackingVolume (const Volume &volume, const std::string &volumeName="undefined")
 Constructor from a regular volume.
 TrackingVolume (TrackingVolume &&) noexcept
 Move constructor for transferring ownership of tracking volume resources.
 ~TrackingVolume () override
void addPortal (std::shared_ptr< Portal > portal)
 Add a portal to this tracking volume.
void addSurface (std::shared_ptr< Surface > surface)
 Add a surface to this tracking volume.
TrackingVolumeaddVolume (std::unique_ptr< TrackingVolume > volume)
 Add a child volume to this tracking volume.
template<typename Callable>
requires (detail::callableWithAnyMutable<Callable>() && !detail::callableWithAnyConst<Callable>())
void apply (Callable &&callable)
 Apply an arbitrary callable as a visitor to the tracking volume.
template<typename Callable>
requires (detail::callableWithAnyConst<Callable>())
void apply (Callable &&callable) const
 Apply an arbitrary callable as a visitor to the tracking volume.
void apply (TrackingGeometryMutableVisitor &visitor)
 Apply a mutable visitor to the tracking volume.
void apply (TrackingGeometryVisitor &visitor) const
 Apply a visitor to the tracking volume.
void assignVolumeMaterial (std::shared_ptr< const IVolumeMaterial > material)
 Set the volume material description.
const TrackingVolumelowestTrackingVolume (const GeometryContext &gctx, const Vector3 &position, const double tol=0.) const
 Return the associated sub Volume, returns THIS if no subVolume exists.
TrackingVolumemotherVolume ()
 Return the MotherVolume - if it exists.
const TrackingVolumemotherVolume () const
 Return the MotherVolume - if it exists.
TrackingVolumeoperator= (const TrackingVolume &)=delete
TrackingVolumeoperator= (TrackingVolume &&) noexcept
 Move assignment operator for transferring ownership of tracking volume resources.
MutablePortalRange portals ()
 Return mutable view of the registered portals under this tracking volume.
PortalRange portals () const
 Return all portals registered under this tracking volume.
void setMotherVolume (TrackingVolume *mvol)
 Set the MotherVolume.
void setVolumeName (std::string_view volumeName)
 Set the volume name to volumeName.
MutableSurfaceRange surfaces ()
 Return mutable view of the registered surfaces under this tracking volume.
SurfaceRange surfaces () const
 Return all surfaces registered under this tracking volume.
template<SurfaceVisitor visitor_t>
void visitSurfaces (visitor_t &&visitor) const
 Visit all sensitive surfaces.
template<SurfaceVisitor visitor_t>
void visitSurfaces (visitor_t &&visitor, bool restrictToSensitives) const
 Visit all reachable surfaces.
template<TrackingVolumeVisitor visitor_t>
void visitVolumes (visitor_t &&visitor) const
 Visit all reachable tracking volumes.
const IVolumeMaterialvolumeMaterial () const
 Return the material of the volume.
const std::shared_ptr< const IVolumeMaterial > & volumeMaterialPtr () const
 Return the material of the volume as shared pointer.
const std::string & volumeName () const
 Returns the VolumeName - for debug reason, might be depreciated later.
MutableVolumeRange volumes ()
 Return mutable view of the registered volumes under this tracking volume.
VolumeRange volumes () const
 Return all volumes registered under this tracking volume.
Public Member Functions inherited from Acts::Volume
 Volume (const Transform3 &transform, std::shared_ptr< VolumeBounds > volbounds)
 Explicit constructor with shared arguments.
 Volume (const Volume &vol, const Transform3 &shift=Transform3::Identity())
 Copy Constructor - with optional shift.
 ~Volume () noexcept override=default
void assignVolumeBounds (std::shared_ptr< VolumeBounds > volbounds)
 Set volume bounds and update volume bounding boxes implicitly.
BoundingBox boundingBox (const Vector3 &envelope={0, 0, 0}) const
 Construct bounding box for this shape.
const Vector3center () const
 Get the center position of the volume.
const Vector3center (const GeometryContext &gctx) const
 Get the center position of the volume.
const Transform3globalToLocalTransform (const GeometryContext &gctx) const
 Get the transformation matrix from the global experiment's.
bool inside (const GeometryContext &gctx, const Vector3 &gpos, double tol=0.) const
 Inside() method for checks.
bool inside (const Vector3 &gpos, double tol=0.) const
 Inside() method for checks.
const Transform3itransform () const
 Get the inverse transform matrix of the volume.
const Transform3localToGlobalTransform (const GeometryContext &gctx) const
 Get the transformation matrix from the local volume frame to the global experiment's frame.
Volumeoperator= (const Volume &vol)
 Assignment operator.
bool operator== (const Volume &other) const
 Compare this volume with another for equality.
BoundingBox orientedBoundingBox () const
 Construct oriented bounding box for this shape.
Vector3 referencePosition (const GeometryContext &gctx, AxisDirection aDir) const override
 The binning position method.
void setTransform (const Transform3 &transform)
 Set the transform matrix for the volume and update internal state.
const Transform3transform () const
 Get the transform matrix that positions the volume in 3D space.
virtual void update (const GeometryContext &gctx, std::shared_ptr< VolumeBounds > volbounds, std::optional< Transform3 > transform=std::nullopt, const Logger &logger=Acts::getDummyLogger())
 Set the volume bounds and optionally also update the volume transform.
void visualize (IVisualization3D &helper, const GeometryContext &gctx, const ViewConfig &viewConfig) const
 Produces a 3D visualization of this volume.
VolumeBoundsvolumeBounds ()
 Get mutable access to the volume bounds.
const VolumeBoundsvolumeBounds () const
 Get the volume bounds that define the shape of the volume.
std::shared_ptr< VolumeBoundsvolumeBoundsPtr ()
 Get shared pointer to the mutable volume bounds.
std::shared_ptr< const VolumeBoundsvolumeBoundsPtr () const
 Get shared pointer to the const volume bounds.
Public Member Functions inherited from Acts::GeometryObject
 GeometryObject ()=default
 Defaulted constructor.
 GeometryObject (const GeometryIdentifier &geometryId)
 Constructor from a value.
 GeometryObject (const GeometryObject &)=default
 Defaulted copy constructor.
virtual ~GeometryObject () noexcept=default
void assignGeometryId (const GeometryIdentifier &geometryId)
 Set the value.
GeometryIdentifier geometryId () const
virtual double referencePositionValue (const GeometryContext &gctx, AxisDirection aDir) const
 Implement the binningValue.
const LayerassociatedLayer (const GeometryContext &gctx, const Vector3 &position) const
 Interface of TrackingVolume in the Gen1 geometry model.
boost::container::small_vector< NavigationTarget, 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< NavigationTarget, 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.
const LayerArrayconfinedLayers () const
 Return the confined static layer array - if it exists.
std::shared_ptr< const TrackingVolumeArrayconfinedVolumes () const
 Return the confined volumes of this container array - if it exists.
MutableTrackingVolumeVector denseVolumes () const
 Return the confined dense volumes.
const TrackingVolumeBoundariesboundarySurfaces () const
 Method to return the BoundarySurfaces.
void assignBoundaryMaterial (std::shared_ptr< const ISurfaceMaterial > surfaceMaterial, BoundarySurfaceFace bsFace)
 Set the boundary surface material description.
void glueTrackingVolume (const GeometryContext &gctx, BoundarySurfaceFace bsfMine, TrackingVolume *neighbor, BoundarySurfaceFace bsfNeighbor)
 Glue another tracking volume to this one.
void glueTrackingVolumes (const GeometryContext &gctx, BoundarySurfaceFace bsfMine, const std::shared_ptr< TrackingVolumeArray > &neighbors, BoundarySurfaceFace bsfNeighbor)
 Glue another tracking volume to this one.
void updateBoundarySurface (BoundarySurfaceFace bsf, std::shared_ptr< const BoundarySurfaceT< TrackingVolume > > bs, bool checkmaterial=true)
 Provide a new BoundarySurface from the glueing.
void registerGlueVolumeDescriptor (std::unique_ptr< GlueVolumesDescriptor > gvd)
 Register the outside glue volumes - ordering is in the TrackingVolume Frame:
void clearBoundarySurfaces ()
 Clear boundary surfaces for this tracking volume.
GlueVolumesDescriptorglueVolumesDescriptor ()
 Register the outside glue volumes - ordering is in the TrackingVolume Frame:
void visualize (IVisualization3D &helper, const GeometryContext &gctx, const ViewConfig &viewConfig, const ViewConfig &portalViewConfig, const ViewConfig &sensitiveViewConfig) const
 Produces a 3D visualization of this tracking volume.
const INavigationPolicynavigationPolicy () const
 Access the navigation policy if any that is registered on this volume.
INavigationPolicynavigationPolicy ()
 Access the navigation policy if any that is registered on this volume.
void setNavigationPolicy (std::unique_ptr< INavigationPolicy > policy)
 Register a navigation policy with this volume.
void initializeNavigationCandidates (const GeometryContext &gctx, const NavigationArguments &args, AppendOnlyNavigationStream &stream, const Logger &logger) const
 Populate the navigation stream with navigation candidates from this volume.

Additional Inherited Members

Protected Attributes inherited from Acts::Volume
Vector3 m_center
 Center position of the volume in global coordinates.
Transform3 m_itransform
 Inverse of the transform matrix for efficient calculations.
Transform3 m_transform
 Transform matrix that positions the volume in 3D space.
Protected Attributes inherited from Acts::GeometryObject
GeometryIdentifier m_geometryId
 Unique geometry identifier for this object.

Detailed Description

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.

Member Typedef Documentation

◆ MutablePortalRange

Initial value:
detail::TransformRange<detail::Dereference,
std::vector<std::shared_ptr<Portal>>>

Type alias for mutable range of portals in tracking volume.

◆ MutableSurfaceRange

Initial value:
detail::TransformRange<detail::Dereference,
std::vector<std::shared_ptr<Surface>>>

Type alias for mutable range of surfaces in tracking volume.

◆ MutableVolumeRange

Initial value:
detail::TransformRange<detail::Dereference,
std::vector<std::unique_ptr<TrackingVolume>>>

Type alias for mutable range of tracking volumes in container.

◆ PortalRange

Initial value:
detail::TransformRange<detail::ConstDereference,
const std::vector<std::shared_ptr<Portal>>>

Type alias for const range of portals in tracking volume.

◆ SurfaceRange

Initial value:
detail::TransformRange<detail::ConstDereference,
const std::vector<std::shared_ptr<Surface>>>

Type alias for const range of surfaces in tracking volume.

◆ VolumeRange

Initial value:
detail::TransformRange<
detail::ConstDereference,
const std::vector<std::unique_ptr<TrackingVolume>>>

Type alias for const range of tracking volumes in container.

Constructor & Destructor Documentation

◆ TrackingVolume() [1/6]

Acts::TrackingVolume::TrackingVolume ( )
delete

◆ ~TrackingVolume()

Acts::TrackingVolume::~TrackingVolume ( )
override

◆ TrackingVolume() [2/6]

Acts::TrackingVolume::TrackingVolume ( const TrackingVolume & )
delete

◆ TrackingVolume() [3/6]

Acts::TrackingVolume::TrackingVolume ( TrackingVolume && )
noexcept

Move constructor for transferring ownership of tracking volume resources.

◆ TrackingVolume() [4/6]

Acts::TrackingVolume::TrackingVolume ( const Transform3 & transform,
std::shared_ptr< VolumeBounds > volbounds,
const std::string & volumeName = "undefined" )

Constructor for a container Volume.

  • vacuum filled volume either as a for other tracking volumes
Parameters
transformis the global 3D transform to position the volume in space
volboundsis the description of the volume boundaries
volumeNameis a string identifier

◆ TrackingVolume() [5/6]

Acts::TrackingVolume::TrackingVolume ( const Transform3 & transform,
std::shared_ptr< VolumeBounds > 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" )

Constructor for a full equipped Tracking Volume.

Parameters
transformis the global 3D transform to position the volume in space
volumeBoundsis the description of the volume boundaries
volumeMaterialis are materials of the tracking volume
staticLayerArrayis the confined layer array (optional)
containedVolumeArrayare the sub volumes if the volume is a container
denseVolumeVectorThe contained dense volumes
volumeNameis a string identifier

◆ TrackingVolume() [6/6]

Acts::TrackingVolume::TrackingVolume ( const Volume & volume,
const std::string & volumeName = "undefined" )
explicit

Constructor from a regular volume.

Parameters
volumeis the volume to be converted
volumeNameis a string identifier

Member Function Documentation

◆ addPortal()

void Acts::TrackingVolume::addPortal ( std::shared_ptr< Portal > portal)

Add a portal to this tracking volume.

Parameters
portalThe portal to add

◆ addSurface()

void Acts::TrackingVolume::addSurface ( std::shared_ptr< Surface > surface)

Add a surface to this tracking volume.

Parameters
surfaceThe surface to add

◆ addVolume()

TrackingVolume & Acts::TrackingVolume::addVolume ( std::unique_ptr< TrackingVolume > volume)

Add a child volume to this tracking volume.

Parameters
volumeThe volume to add
Note
The volume will have its mother volume assigned to this. It will throw if volume already has a mother volume set
Returns
Reference to the added volume

◆ apply() [1/4]

template<typename Callable>
requires (detail::callableWithAnyMutable<Callable>() && !detail::callableWithAnyConst<Callable>())
void Acts::TrackingVolume::apply ( Callable && callable)

Apply an arbitrary callable as a visitor to the tracking volume.

Parameters
callableThe callable to apply
Note
The visitor can be overloaded on any of the arguments that the methods in TrackingGeometryVisitor receive.

◆ apply() [2/4]

template<typename Callable>
requires (detail::callableWithAnyConst<Callable>())
void Acts::TrackingVolume::apply ( Callable && callable) const

Apply an arbitrary callable as a visitor to the tracking volume.

Parameters
callableThe callable to apply
Note
The visitor can be overloaded on any of the arguments that the methods in TrackingGeometryMutableVisitor receive.

◆ apply() [3/4]

void Acts::TrackingVolume::apply ( TrackingGeometryMutableVisitor & visitor)

Apply a mutable visitor to the tracking volume.

Parameters
visitorThe visitor to apply

◆ apply() [4/4]

void Acts::TrackingVolume::apply ( TrackingGeometryVisitor & visitor) const

Apply a visitor to the tracking volume.

Parameters
visitorThe visitor to apply

◆ assignBoundaryMaterial()

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

Parameters
surfaceMaterialMaterial description of this volume
bsFaceSpecifies which boundary surface to assign the material to

◆ assignVolumeMaterial()

void Acts::TrackingVolume::assignVolumeMaterial ( std::shared_ptr< const IVolumeMaterial > material)

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

Parameters
materialMaterial description of this volume

◆ associatedLayer()

const Layer * Acts::TrackingVolume::associatedLayer ( const GeometryContext & gctx,
const Vector3 & position ) const

Interface of TrackingVolume in the Gen1 geometry model.

Note
This interface is being replaced, and is subject to removal Return the associated Layer to the global position
Parameters
gctxThe current geometry context object, e.g. alignment
positionis the associated global position
Returns
plain pointer to layer object

◆ boundarySurfaces()

const TrackingVolumeBoundaries & Acts::TrackingVolume::boundarySurfaces ( ) const

Method to return the BoundarySurfaces.

Returns
Reference to vector of boundary surface pointers

◆ clearBoundarySurfaces()

void Acts::TrackingVolume::clearBoundarySurfaces ( )

Clear boundary surfaces for this tracking volume.

◆ compatibleBoundaries()

boost::container::small_vector< NavigationTarget, 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.

Template Parameters
options_tType of navigation options object for decomposition
sorter_tType of the boundary surface sorter
Parameters
gctxThe current geometry context object, e.g. alignment
positionThe position for searching
directionThe direction for searching
optionsThe templated navigation options
loggerA Logger instance
Returns
is the templated boundary intersection

◆ compatibleLayers()

boost::container::small_vector< NavigationTarget, 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

Template Parameters
options_tType of navigation options object for decomposition
Parameters
gctxThe current geometry context object, e.g. alignment
positionPosition for the search
directionDirection for the search
optionsThe templated navigation options
Returns
vector of compatible intersections with layers

◆ confinedLayers()

const LayerArray * Acts::TrackingVolume::confinedLayers ( ) const

Return the confined static layer array - if it exists.

Returns
the BinnedArray of static layers if exists

◆ confinedVolumes()

std::shared_ptr< const TrackingVolumeArray > Acts::TrackingVolume::confinedVolumes ( ) const

Return the confined volumes of this container array - if it exists.

Returns
Shared pointer to array of contained tracking volumes or nullptr

◆ denseVolumes()

MutableTrackingVolumeVector Acts::TrackingVolume::denseVolumes ( ) const

Return the confined dense volumes.

Returns
Vector of pointers to dense tracking volumes

◆ glueTrackingVolume()

void Acts::TrackingVolume::glueTrackingVolume ( const GeometryContext & gctx,
BoundarySurfaceFace bsfMine,
TrackingVolume * neighbor,
BoundarySurfaceFace bsfNeighbor )

Glue another tracking volume to this one.

  • if common face is set the glued volumes are sharing the boundary, down to the last navigation volume
Parameters
gctxThe current geometry context object, e.g. alignment
bsfMineis the boundary face indicater where to glue
neighboris the TrackingVolume to be glued
bsfNeighboris the boundary surface of the neighbor

◆ glueTrackingVolumes()

void Acts::TrackingVolume::glueTrackingVolumes ( const GeometryContext & gctx,
BoundarySurfaceFace bsfMine,
const std::shared_ptr< TrackingVolumeArray > & neighbors,
BoundarySurfaceFace bsfNeighbor )

Glue another tracking volume to this one.

  • if common face is set the glued volumes are sharing the boundary, down to the last navigation volume
Parameters
gctxThe current geometry context object, e.g. alignment
bsfMineis the boundary face indicater where to glue
neighborsare the TrackingVolumes to be glued
bsfNeighborare the boundary surface of the neighbors

◆ glueVolumesDescriptor()

GlueVolumesDescriptor & Acts::TrackingVolume::glueVolumesDescriptor ( )

Register the outside glue volumes - ordering is in the TrackingVolume Frame:

  • negativeFaceXY
  • (faces YZ, ZY, radial faces)
  • positiveFaceXY
    Returns
    Reference to the glue volumes descriptor

◆ initializeNavigationCandidates()

void Acts::TrackingVolume::initializeNavigationCandidates ( const GeometryContext & gctx,
const NavigationArguments & args,
AppendOnlyNavigationStream & stream,
const Logger & logger ) const

Populate the navigation stream with navigation candidates from this volume.

Internally, this consults the registered navigation policy, where the default is a noop.

Parameters
gctxThe current geometry context object, e.g. alignment
argsare the navigation arguments
streamis the navigation stream to be updated
loggeris the logger

◆ lowestTrackingVolume()

const 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.

Parameters
gctxThe current geometry context object, e.g. alignment
positionis the global position associated with that search
tolSearch position tolerance for dense volumes
Returns
plain pointer to associated with the position

◆ motherVolume() [1/2]

TrackingVolume * Acts::TrackingVolume::motherVolume ( )

Return the MotherVolume - if it exists.

Returns
Mutable pointer to mother volume or nullptr if this is the root volume

◆ motherVolume() [2/2]

const TrackingVolume * Acts::TrackingVolume::motherVolume ( ) const

Return the MotherVolume - if it exists.

Returns
Pointer to mother volume or nullptr if this is the root volume

◆ navigationPolicy() [1/2]

INavigationPolicy * Acts::TrackingVolume::navigationPolicy ( )

Access the navigation policy if any that is registered on this volume.

Returns
a pointer to the navigation policy, or nullptr if none is set

◆ navigationPolicy() [2/2]

const INavigationPolicy * Acts::TrackingVolume::navigationPolicy ( ) const

Access the navigation policy if any that is registered on this volume.

Returns
a pointer to the navigation policy, or nullptr if none is set

◆ operator=() [1/2]

TrackingVolume & Acts::TrackingVolume::operator= ( const TrackingVolume & )
delete

◆ operator=() [2/2]

TrackingVolume & Acts::TrackingVolume::operator= ( TrackingVolume && )
noexcept

Move assignment operator for transferring ownership of tracking volume resources.

Returns
Reference to this TrackingVolume after move assignment

◆ portals() [1/2]

MutablePortalRange Acts::TrackingVolume::portals ( )

Return mutable view of the registered portals under this tracking volume.

Returns
the range of portals

◆ portals() [2/2]

PortalRange Acts::TrackingVolume::portals ( ) const

Return all portals registered under this tracking volume.

Returns
the range of portals

◆ registerGlueVolumeDescriptor()

void Acts::TrackingVolume::registerGlueVolumeDescriptor ( std::unique_ptr< GlueVolumesDescriptor > gvd)

Register the outside glue volumes - ordering is in the TrackingVolume Frame:

  • negativeFaceXY
  • (faces YZ, ZY, radial faces)
  • positiveFaceXY
Parameters
gvdregister a new GlueVolumeDescriptor

◆ setMotherVolume()

void Acts::TrackingVolume::setMotherVolume ( TrackingVolume * mvol)

Set the MotherVolume.

Parameters
mvolis the mother volume

◆ setNavigationPolicy()

void Acts::TrackingVolume::setNavigationPolicy ( std::unique_ptr< INavigationPolicy > policy)

Register a navigation policy with this volume.

The argument can not be nullptr.

Parameters
policyis the navigation policy to be registered

◆ setVolumeName()

void Acts::TrackingVolume::setVolumeName ( std::string_view volumeName)

Set the volume name to volumeName.

Parameters
volumeNameis the new name of

◆ surfaces() [1/2]

MutableSurfaceRange Acts::TrackingVolume::surfaces ( )

Return mutable view of the registered surfaces under this tracking volume.

Returns
the range of surfaces

◆ surfaces() [2/2]

SurfaceRange Acts::TrackingVolume::surfaces ( ) const

Return all surfaces registered under this tracking volume.

Returns
the range of surfaces

◆ updateBoundarySurface()

void Acts::TrackingVolume::updateBoundarySurface ( BoundarySurfaceFace bsf,
std::shared_ptr< const BoundarySurfaceT< TrackingVolume > > bs,
bool checkmaterial = true )

Provide a new BoundarySurface from the glueing.

Parameters
bsfis the boundary face indicater where to glue
bsis the new boundary surface
checkmaterialis a flag how to deal with material, if true:
  • if the old boundary surface had a material description but the new one has not, keep the current one
  • in all other cases just assign the new boundary surface

◆ visitSurfaces() [1/2]

template<SurfaceVisitor visitor_t>
void Acts::TrackingVolume::visitSurfaces ( visitor_t && visitor) const

Visit all sensitive surfaces.

Template Parameters
visitor_tType of the callable visitor
Parameters
visitorThe callable. Will be called for each sensitive surface that is found, a selection of the surfaces can be done in the visitor
Note
If a context is needed for the visit, the vistitor has to provide this, e.g. as a private member

◆ visitSurfaces() [2/2]

template<SurfaceVisitor visitor_t>
void Acts::TrackingVolume::visitSurfaces ( visitor_t && visitor,
bool restrictToSensitives ) const

Visit all reachable surfaces.

Template Parameters
visitor_tType of the callable visitor
Parameters
visitorThe callable. Will be called for each reachable surface that is found, a selection of the surfaces can be done in the visitor
restrictToSensitivesIf true, only sensitive surfaces are visited
Note
If a context is needed for the visit, the vistitor has to provide this, e.g. as a private member

◆ visitVolumes()

template<TrackingVolumeVisitor visitor_t>
void Acts::TrackingVolume::visitVolumes ( visitor_t && visitor) const

Visit all reachable tracking volumes.

Template Parameters
visitor_tType of the callable visitor
Parameters
visitorThe callable. Will be called for each reachable volume that is found, a selection of the volumes can be done in the visitor
Note
If a context is needed for the visit, the vistitor has to provide this, e.g. as a private member

◆ visualize()

void Acts::TrackingVolume::visualize ( IVisualization3D & helper,
const GeometryContext & gctx,
const ViewConfig & viewConfig,
const ViewConfig & portalViewConfig,
const ViewConfig & sensitiveViewConfig ) const

Produces a 3D visualization of this tracking volume.

Parameters
helperThe visualization helper describing the output format
gctxThe geometry context
viewConfigThe view configuration
portalViewConfigView configuration for portals
sensitiveViewConfigView configuration for sensitive surfaces

◆ volumeMaterial()

const IVolumeMaterial * Acts::TrackingVolume::volumeMaterial ( ) const

Return the material of the volume.

Returns
Pointer to volume material or nullptr if no material assigned

◆ volumeMaterialPtr()

const std::shared_ptr< const IVolumeMaterial > & Acts::TrackingVolume::volumeMaterialPtr ( ) const

Return the material of the volume as shared pointer.

Returns
Shared pointer to volume material

◆ volumeName()

const std::string & Acts::TrackingVolume::volumeName ( ) const

Returns the VolumeName - for debug reason, might be depreciated later.

Returns
Reference to the volume name string

◆ volumes() [1/2]

MutableVolumeRange Acts::TrackingVolume::volumes ( )

Return mutable view of the registered volumes under this tracking volume.

Returns
the range of volumes

◆ volumes() [2/2]

VolumeRange Acts::TrackingVolume::volumes ( ) const

Return all volumes registered under this tracking volume.

Returns
the range of volumes