File VolumeCollector.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent

template<typename Selector = VolumeSelector>
struct VolumeCollector
#include <Acts/Propagator/VolumeCollector.hpp>

A Volume Collector struct templated with a Selector type.

Whenever a volume is passed in the propagation that satisfies the selector, it is recorded for further usage in the flow.

Public Types

using result_type = this_result

Public Functions

template<typename propagator_state_t, typename stepper_t, typename navigator_t>
inline void operator()(propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, result_type &result, const Logger &logger) const

Collector action for the ActionList of the Propagator It checks if the propagator state has a current volume, in which case the action is performed:

  • it records the volume given the configuration

Template Parameters
  • propagator_state_t – is the type of Propagator state

  • stepper_t – Type of the stepper used for the propagation

  • navigator_t – Type of the navigator used for the propagation

  • state[inout] is the mutable stepper state object

  • stepper[in] The stepper in use

  • navigator[in] The navigator in use

  • result[inout] is the mutable result object

  • logger – the logger object

Public Members

Selector selector

The selector used for this volume.

struct this_result
#include <Acts/Propagator/VolumeCollector.hpp>

Simple result struct to be returned It has all the VolumeHit objects that are collected (and thus have been selected)

Public Members

std::vector<VolumeHit> collected
struct VolumeHit
#include <Acts/Propagator/VolumeCollector.hpp>

The information to be writtern out per hit volume.

Public Members

Vector3 direction
Vector3 position
const TrackingVolume *volume = nullptr
struct VolumeSelector
#include <Acts/Propagator/VolumeCollector.hpp>

Simple struct to select volumes.

Public Functions

inline VolumeSelector(bool sMaterial = true, bool sLayer = false, bool sPassive = false)

VolumeSelector with options.

  • sMaterial – is the directive to select material volumes

  • sLayer – is the directive to select volumes with layers

  • sPassive – is the directive to select passive volumes

inline bool operator()(const Acts::TrackingVolume &volume) const

Call operator to check if a volume should be selected.


volume – is the test volume

Public Members

bool selectLayer = false
bool selectMaterial = true
bool selectPassive = false