File TrackingGeometry.hpp

namespace Acts

Set the Geometry Context PLUGIN.

Set the Calibration Context PLUGIN.

Convenience functions to ease creation of and Acts::InterpolatedMaterialMap and to avoid code duplication.

Set the Mangetic Field Context PLUGIN.

Convenience functions to ease creation of and Acts::InterpolatedBFieldMap and to avoid code duplication.

Currently implemented for the two most common formats: rz and xyz.

class TrackingGeometry
#include <Acts/Geometry/TrackingGeometry.hpp>

The TrackingGeometry class is the owner of the constructed TrackingVolumes.

It enables both, a global search for an asociatedVolume (respectively, if existing, a global search of an associated Layer or the next associated Layer), such as a continous navigation by BoundarySurfaces between the confined TrackingVolumes.

Public Functions

TrackingGeometry(const MutableTrackingVolumePtr &highestVolume, const IMaterialDecorator *materialDecorator = nullptr)

Constructor.

Parameters
  • highestVolume – is the world volume

  • materialDecorator – is a dediated decorator that can assign surface or volume based material to the TrackingVolume

~TrackingGeometry()

Destructor.

const Layer *associatedLayer(const GeometryContext &gctx, const Vector3 &gp) const

Forward the associated Layer information.

Parameters
  • gctx – is the context for this request (e.g. alignment)

  • gp – is the global position of the call

Returns

plain pointer to assocaiated layer

const Surface *findSurface(GeometryIdentifier id) const

Search for a surface with the given identifier.

Parameters

id – is the geometry identifier of the surface

Returns nullptr

if no such surface exists

Returns pointer

to the found surface otherwise.

const TrackingVolume *findVolume(GeometryIdentifier id) const

Search for a volume with the given identifier.

Parameters

id – is the geometry identifier of the volume

Returns nullptr

if no such volume exists

Returns pointer

to the found volume otherwise.

const Surface *getBeamline() const

surface representing the beam pipe

Note

The ownership is not passed, e.g. do not delete the pointer

Returns

raw pointer to surface representing the beam pipe (could be a null pointer)

const TrackingVolume *highestTrackingVolume() const

Access to the world volume.

Returns

plain pointer to the world volume

const TrackingVolume *lowestTrackingVolume(const GeometryContext &gctx, const Vector3 &gp) const

return the lowest tracking Volume

Parameters
  • gctx – The current geometry context object, e.g. alignment

  • gp – is the global position of the call

Returns

plain pointer to the lowest TrackingVolume

void registerBeamTube(std::shared_ptr<const PerigeeSurface> beam)

Register the beam tube.

Parameters

beam – is the beam line surface

void visitSurfaces(const std::function<void(const Acts::Surface*)> &visitor) const

Visit all sensitive surfaces.

Parameters

visitor – The callable. Will be called for each sensitive surface that is found

Private Members

std::shared_ptr<const PerigeeSurface> m_beam
std::unordered_map<GeometryIdentifier, const Surface*> m_surfacesById
std::unordered_map<GeometryIdentifier, const TrackingVolume*> m_volumesById
TrackingVolumePtr m_world

Friends

friend class TrackingGeometryBuilder