Struct Acts::MaterialCollector

struct MaterialCollector

A Material Collector struct.

Public Types

using result_type = this_result

Public Functions

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

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

  • it records the surface given the configuration

Template Parameters
  • propagator_state_t – is the type of Propagator state

  • stepper_t – Type of the stepper of the propagation

Parameters
  • state – is the mutable propagator state object

  • stepper – The stepper in use

  • result – is the result object to be filled

template<typename propagator_state_t>
inline void operator()(propagator_state_t&) const

Pure observer interface.

  • this does not apply to the surface collector

Public Members

bool detailedCollection = false

In the detailed collection mode the material per surface is collected, otherwise only the total pathlength in X0 or L0 are recorded.

struct this_result

Simple result struct to be returned.

Result of the material collection process It collects the overall X0 and L0 path lengths, and optionally a detailed per-material breakdown

Public Members

std::vector<MaterialHit> collected
double materialInL0 = 0.
double materialInX0 = 0.