File StepperConcept.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

Variables

template<typename stepper, typename state = typename stepper::State>
constexpr bool StepperConcept = Acts::Concepts::Stepper::SingleStepperConcept<stepper, state>::value || Acts::Concepts::Stepper::MultiStepperConcept<stepper, state>::value
template<typename stepper>
constexpr bool StepperStateConcept = Acts::Concepts::Stepper::StepperStateConcept<stepper> || Acts::Concepts::Stepper::MultiStepperStateConcept<stepper>
namespace Concepts
namespace Stepper

Typedefs

using bound_state_t = typename T::BoundState
using cov_t = decltype(std::declval<T>().cov)
using cov_transport_t = decltype(std::declval<T>().covTransport)
using covariance_t = typename T::Covariance
using curvilinear_state_t = typename T::CurvilinearState
using jacobian_t = typename T::Jacobian
using nav_dir_t = decltype(std::declval<T>().navDir)
using path_accumulated_t = decltype(std::declval<T>().pathAccumulated)
using state_t = typename T::State
using step_size_t = decltype(std::declval<T>().stepSize)

Functions

METHOD_TRAIT(reset_state_t, resetState)
METHOD_TRAIT(get_field_t, getField)
METHOD_TRAIT(position_t, position)
METHOD_TRAIT(direction_t, direction)
METHOD_TRAIT(momentum_t, momentum)
METHOD_TRAIT(charge_t, charge)
METHOD_TRAIT(time_t, time)
METHOD_TRAIT(overstep_t, overstepLimit)
METHOD_TRAIT(bound_state_method_t, boundState)
METHOD_TRAIT(curvilinear_state_method_t, curvilinearState)
METHOD_TRAIT(update_t, update)
METHOD_TRAIT(covariance_transport_bound_t, transportCovarianceToBound)
METHOD_TRAIT(covariance_transport_curvilinear_t, transportCovarianceToCurvilinear)
METHOD_TRAIT(step_t, step)
METHOD_TRAIT(update_surface_status_t, updateSurfaceStatus)
METHOD_TRAIT(set_step_size_t, setStepSize)
METHOD_TRAIT(get_step_size_t, getStepSize)
METHOD_TRAIT(release_step_size_t, releaseStepSize)
METHOD_TRAIT(output_step_size_t, outputStepSize)

Variables

template<typename S>
constexpr bool MultiStepperStateConcept = require<has_member<S, cov_transport_t, bool>, has_member<S, nav_dir_t, NavigationDirection>, has_member<S, path_accumulated_t, double>>
template<typename S>
constexpr bool StepperStateConcept = require<has_member<S, cov_transport_t, bool>, has_member<S, cov_t, BoundSymMatrix>, has_member<S, nav_dir_t, NavigationDirection>, has_member<S, path_accumulated_t, double>>
template<typename S, typename state = typename S::State>
struct CommonStepperConcept
#include <Acts/Propagator/StepperConcept.hpp>

Public Static Attributes

static constexpr bool bound_state_exists = exists<bound_state_t, S>
static constexpr bool bound_state_method_exists = has_method<const S, Result<typename S::BoundState>, bound_state_method_t, state&, const Surface&, bool, const FreeToBoundCorrection&>
static constexpr bool charge_exists = has_method<const S, double, charge_t, const state&>
static constexpr bool covariance_exists = exists<covariance_t, S>
static constexpr bool covariance_transport_exists = require<has_method<const S, void, covariance_transport_curvilinear_t, state&>, has_method<const S, void, covariance_transport_bound_t, state&, const Surface&, const FreeToBoundCorrection&>>
static constexpr bool curvilinear_state_exists = exists<curvilinear_state_t, S>
static constexpr bool curvilinear_state_method_exists = has_method<const S, typename S::CurvilinearState, curvilinear_state_method_t, state&, bool>
static constexpr bool direction_exists = has_method<const S, Vector3, direction_t, const state&>
static constexpr bool get_step_size_exists = has_method<const S, double, get_step_size_t, const state&, ConstrainedStep::Type>
static constexpr bool jacobian_exists = exists<jacobian_t, S>
static constexpr bool momentum_exists = has_method<const S, double, momentum_t, const state&>
static constexpr bool output_step_size_exists = has_method<const S, std::string, output_step_size_t, const state&>
static constexpr bool overstep_exists = has_method<const S, double, overstep_t, const state&>
static constexpr bool position_exists = has_method<const S, Vector3, position_t, const state&>
static constexpr bool release_step_size_exists = has_method<const S, void, release_step_size_t, state&>
static constexpr bool reset_state_exists = has_method<const S, void, reset_state_t, state&, const BoundVector&, const BoundSymMatrix&, const Surface&, const NavigationDirection, const double>
static constexpr bool set_step_size_exists = has_method<const S, void, set_step_size_t, state&, double, ConstrainedStep::Type, bool>
static constexpr bool state_exists = exists<state_t, S>
static constexpr bool time_exists = has_method<const S, double, time_t, const state&>
static constexpr bool update_surface_exists = has_method<const S, Intersection3D::Status, update_surface_status_t, state&, const Surface&, const BoundaryCheck&, LoggerWrapper>
static constexpr bool value = require<state_exists, jacobian_exists, covariance_exists, bound_state_exists, curvilinear_state_exists, position_exists, direction_exists, momentum_exists, charge_exists, time_exists, bound_state_method_exists, curvilinear_state_method_exists, covariance_transport_exists, update_surface_exists, set_step_size_exists, release_step_size_exists, output_step_size_exists>
template<typename S, typename state = typename S::State>
struct MultiStepperConcept
#include <Acts/Propagator/StepperConcept.hpp>

Public Types

using component_proxy_t = typename T::ComponentProxy
using const_component_proxy_t = typename T::ConstComponentProxy

Public Functions

METHOD_TRAIT(number_components_t, numberComponents)
METHOD_TRAIT(clear_components_t, clearComponents)
METHOD_TRAIT(remove_missed_components_t, removeMissedComponents)

Public Static Attributes

static constexpr bool clear_components_exists = has_method<const S, void, clear_components_t, state&>
static constexpr bool common_stepper_concept_fullfilled = CommonStepperConcept<S, state>::value
static constexpr bool component_proxy_exists = exists<component_proxy_t, S>
static constexpr bool const_component_proxy_exists = exists<const_component_proxy_t, S>
static constexpr bool number_components_exists = has_method<const S, std::size_t, number_components_t, const state&>
static constexpr bool remove_missed_components_exists = has_method<const S, void, remove_missed_components_t, state&>
static constexpr bool value = require<common_stepper_concept_fullfilled, component_proxy_exists, const_component_proxy_exists, number_components_exists, clear_components_exists, remove_missed_components_exists>
template<typename S, typename state = typename S::State>
struct SingleStepperConcept
#include <Acts/Propagator/StepperConcept.hpp>

Public Static Attributes

static constexpr bool common_stepper_concept_fullfilled = CommonStepperConcept<S, state>::value
static constexpr bool get_field_exists = has_method<const S, Result<Vector3>, get_field_t, state&, const Vector3&>
static constexpr bool update_method_exists = require<has_method<const S, void, update_t, state&, const FreeVector&, const BoundVector&, const BoundSymMatrix&, const Surface&>, has_method<const S, void, update_t, state&, const Vector3&, const Vector3&, double, double>>
static constexpr bool value = require<common_stepper_concept_fullfilled, update_method_exists, get_field_exists>