File MaterialCollector.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent


this is foreseen for the ‘Geometry’ module

struct MaterialCollector
#include <Acts/Material/MaterialCollector.hpp>

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 Logger &logger) 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

  • state – is the mutable propagator state object

  • stepper – The stepper in use

  • result – is the result object to be filled

  • logger – a logger instance

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
#include <Acts/Material/MaterialCollector.hpp>

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.
struct MaterialHit
#include <Acts/Material/MaterialCollector.hpp>

The information to be writtern out per hit surface.

Public Members

Vector3 direction
Material material
double pathLength
Vector3 position
const Surface *surface = nullptr