51 METHOD_TRAIT(update_surface_status_t, updateSurfaceStatus);
59 using cov_t = decltype(std::declval<T>().cov);
61 using nav_dir_t = decltype(std::declval<T>().navDir);
70 = require<has_member<S, cov_transport_t, bool>,
71 has_member<S, cov_t, BoundSymMatrix>,
72 has_member<S, nav_dir_t, NavigationDirection>,
73 has_member<S, path_accumulated_t, double>,
74 has_member<S, step_size_t, ConstrainedStep>
79 template <
typename S,
typename state =
typename S::State>
93 constexpr
static bool get_field_exists = has_method<const S, Vector3D, get_field_t, state&, const Vector3D&>;
95 constexpr
static bool position_exists = has_method<const S, Vector3D, position_t, const state&>;
97 constexpr
static bool direction_exists = has_method<const S, Vector3D, direction_t, const state&>;
99 constexpr
static bool momentum_exists = has_method<const S, double, momentum_t, const state&>;
101 constexpr
static bool charge_exists = has_method<const S, double, charge_t, const state&>;
103 constexpr
static bool time_exists = has_method<const S, double, time_t, const state&>;
104 static_assert(
time_exists,
"time method not found");
105 constexpr
static bool overstep_exists = has_method<const S, double, overstep_t, const state&>;
107 constexpr
static bool bound_state_method_exists= has_method<const S, typename S::BoundState, bound_state_method_t, state&, const Surface&>;
111 constexpr
static bool update_method_exists = require<has_method<const S, void, update_t, state&, const BoundParameters&>,
112 has_method<const S, void, update_t, state&, const Vector3D&, const Vector3D&, double, double>>;
115 has_method<const S, void, covariance_transport_t, state&, const Surface&>>;
117 constexpr
static bool update_surface_exists = has_method<const S, Intersection::Status, update_surface_status_t, state&, const Surface&, const BoundaryCheck&>;
119 constexpr
static bool set_step_size_exists = has_method<const S, void, set_step_size_t, state&, double, ConstrainedStep::Type>;
151 template <
typename stepper,
typename state =
typename stepper::State>
154 template <
typename stepper>
156 Acts::concept ::Stepper::StepperStateConcept<stepper>;