Class Acts::TrackingGeometry

class TrackingGeometry

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, const GeometryIdentifierHook &hook = {}, const Logger &logger = getDummyLogger())

Constructor.

Parameters
  • highestVolume – is the world volume

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

  • hook – Identifier hook to be applied to surfaces

  • logger – instance of a logger (defaulting to the “silent” one)

~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

Return values
  • nullptr – if no such surface exists

  • 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

Return values
  • nullptr – if no such volume exists

  • 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

template<typename visitor_t>
inline void visitSurfaces(visitor_t &&visitor) const

Visit all sensitive surfaces.

Template Parameters

visitor_t – Type of the callable visitor

Parameters

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