File SurfaceCollector.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

template<typename Selector = SurfaceSelector>
struct SurfaceCollector
#include <Acts/Propagator/SurfaceCollector.hpp>

A Surface Collector struct templated with a Selector type.

Whenever a surface 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>
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 propagator 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 used for the propagation

Parameters
  • state[inout] is the mutable stepper state object

  • stepper[in] The stepper in use

  • result[inout] is the mutable result object

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

Pure observer interface.

  • this does not apply to the surface collector

Public Members

Selector selector

The selector used for this surface.

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

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

Public Members

std::vector<SurfaceHit> collected
struct SurfaceHit
#include <Acts/Propagator/SurfaceCollector.hpp>

The information to be writtern out per hit surface.

Public Members

Vector3 direction
Vector3 position
const Surface *surface = nullptr
struct SurfaceSelector
#include <Acts/Propagator/SurfaceCollector.hpp>

Simple struct to select surfaces.

Public Functions

inline SurfaceSelector(bool sSensitive = true, bool sMaterial = false, bool sPassive = false)

SurfaceSelector with options.

Parameters
  • sSensitive – is the directive to select sensitive surfaces

  • sMaterial – is the directive to select material surfaces

  • sPassive – is the directive to select passive surfaces

inline bool operator()(const Acts::Surface &surface) const

Call operator to check if a surface should be selected.

Parameters

surface – is the test surface

Public Members

bool selectMaterial = false
bool selectPassive = false
bool selectSensitive = true