Class TrackingVolume¶
Defined in File TrackingVolume.hpp
Inheritance Relationships¶
Base Type¶
public Acts::Volume
(Class Volume)
Class Documentation¶
-
class
Acts
::
TrackingVolume
: public Acts::Volume¶ 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.
Public Functions
-
TrackingVolume
() = delete¶
-
TrackingVolume
(const TrackingVolume&) = delete¶
-
~TrackingVolume
() override¶
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
material
: Material description of this volume
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
material
: Material description of this volume
-
const Layer *
associatedLayer
(const GeometryContext &gctx, const Vector3 &position) const¶ Return the associated Layer to the global position.
- Return
plain pointer to layer object
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: is the associated global position
-
const TrackingVolumeBoundaries &
boundarySurfaces
() const¶ Method to return the BoundarySurfaces.
-
unsigned int
colorCode
() const¶ Get the color code.
Returns all boundary surfaces sorted by the user.
- Return
is the templated boundary intersection
- Template Parameters
options_t
: Type of navigation options object for decompositionsorter_t
: Type of the boundary surface sorter
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: The position for searchingdirection
: The direction for searchingoptions
: The templated navigation optionssorter
: Sorter of the boundary surfaces
Resolves the volume into (compatible) Layers.
This is the method for the propagator/extrapolator
- Return
vector of compatible intersections with layers
- Template Parameters
options_t
: Type of navigation options object for decomposition
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: Position for the searchdirection
: Direction for the searchoptions
: The templated navigation options
Return surfaces in given direction from bounding volume hierarchy.
- Return
Vector of surface candidates
- Template Parameters
options_t
: Type of navigation options object for decomposition
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: The position to start fromdirection
: The direction towards which to testangle
: The opening angleoptions
: The templated navigation options
-
const LayerArray *
confinedLayers
() const¶ Return the confined static layer array - if it exists.
- Return
the BinnedArray of static layers if exists
-
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
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
gctx
: The current geometry context object, e.g. alignmentbsfMine
: is the boundary face indicater where to glueneighbor
: is the TrackingVolume to be gluedbsfNeighbor
: is the boudnary surface of the neighbor
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
gctx
: The current geometry context object, e.g. alignmentbsfMine
: is the boundary face indicater where to glueneighbors
: are the TrackingVolumes to be gluedbsfNeighbor
: are the boudnary surface of the neighbors
-
GlueVolumesDescriptor &
glueVolumesDescriptor
()¶ Register the outside glue volumes - ordering is in the TrackingVolume Frame:
negativeFaceXY
(faces YZ, ZY, radial faces)
positiveFaceXY
-
bool
hasBoundingVolumeHierarchy
() const¶ Return whether this TrackingVolume has a BoundingVolumeHierarchy associated.
- Return
If it has a BVH or not.
-
const TrackingVolume *
lowestTrackingVolume
(const GeometryContext &gctx, const Vector3 &position, const double tol = 0.) const¶ Return the associated sub Volume, returns THIS if no subVolume exists.
- Return
plain pointer to associated with the position
- Parameters
gctx
: The current geometry context object, e.g. alignmentposition
: is the global position associated with that searchtol
: Search position tolerance for dense volumes
-
const TrackingVolume *
motherVolume
() const¶ Return the MotherVolume - if it exists.
-
TrackingVolume &
operator=
(const TrackingVolume&) = delete¶
-
void
registerColorCode
(unsigned int icolor)¶ Register the color code.
- Parameters
icolor
: is a color number
-
void
registerGlueVolumeDescriptor
(GlueVolumesDescriptor *gvd)¶ Register the outside glue volumes - ordering is in the TrackingVolume Frame:
negativeFaceXY
(faces YZ, ZY, radial faces)
positiveFaceXY
- Parameters
gvd
: register a new GlueVolumeDescriptor
-
void
setMotherVolume
(const TrackingVolume *mvol)¶ Set the MotherVolume.
- Parameters
mvol
: is the mother volume
Provide a new BoundarySurface from the glueing.
- Parameters
bsf
: is the boundary face indicater where to gluebs
: is the new boudnary surfacecheckmaterial
: is 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
-
void
visitSurfaces
(const std::function<void(const Acts::Surface*)> &visitor) const¶ Visit all sensitive surfaces.
If a context is needed for the vist, the vistitor has to provide this e.g. as a private member
- Parameters
visitor
: The callable. Will be called for each sensitive surface that is found
-
const IVolumeMaterial *
volumeMaterial
() const¶ Return the material of the volume.
Return the material of the volume as shared pointer.
-
const std::string &
volumeName
() const¶ Returns the VolumeName - for debug reason, might be depreciated later.
Public Static Functions
Factory constructor for a container TrackingVolume.
by definition a Vacuum volume
- Return
shared pointer to a new TrackingVolume
- Parameters
transform
: is the global 3D transform to position the volume in spacevolumeBounds
: is the description of the volume boundariescontainedVolumes
: are the static volumes that fill this volumevolumeName
: is a string identifier
Factory constructor for Tracking Volume with a bounding volume hierarchy.
- Return
shared pointer to a new TrackingVolume
- Parameters
transform
: is the global 3D transform to position the volume in spacevolBounds
: is the description of the volume boundariesboxStore
: Vector owning the contained bounding boxesdescendants
: Vector owning the child volumestop
: The top of the hierarchy (top node)matprop
: is are materials of the tracking volumevolumeName
: is a string identifier
Factory constructor for Tracking Volumes with content.
can not be a container volume
- Return
shared pointer to a new TrackingVolume
- Parameters
transform
: is the global 3D transform to position the volume in spacevolumeBounds
: is the description of the volume boundariesmatprop
: is are materials of the tracking volumecontainedLayers
: is the confined layer array (optional)containedVolumes
: is the confined volume array (optional)volumeName
: is a string identifier
Protected Functions
Constructor for a container Volume.
vacuum filled volume either as a for other tracking volumes
- Parameters
transform
: is the global 3D transform to position the volume in spacevolbounds
: is the description of the volume boundariescontainedVolumeArray
: are the static volumes that fill this volumevolumeName
: is a string identifier
Constructor for a full equipped Tracking Volume.
- Parameters
transform
: is the global 3D transform to position the volume in spacevolumeBounds
: is the description of the volume boundariesvolumeMaterial
: is are materials of the tracking volumestaticLayerArray
: is the confined layer array (optional)containedVolumeArray
: are the sub volumes if the volume is a containerdenseVolumeVector
: The contained dense volumesvolumeName
: is a string identifier
-