Check if a type can function as a propagator state.
More...
#include <detray/propagator/concepts.hpp>
template<typename S>
typename S::detector_type;
typename S::detector_type::scalar_type;
typename S::stepper_state_type;
typename S::navigator_state_type;
typename S::context_type;
} && requires(S &s) {
requires requires(
{ s.set_particle(ptc) };
};
requires requires(bool b) {
{ s.heartbeat(b) };
};
{
s.stepping() } -> std::same_as<typename S::stepper_state_type &>;
{
s.navigation() } -> std::same_as<typename S::navigator_state_type &>;
{
s.context() } -> std::same_as<typename S::context_type &>;
} &&
requires(
const S &
s) {
{
s.debug() } -> std::same_as<bool>;
{
s.is_alive() } -> std::same_as<bool>;
{
s.heartbeat() } -> std::same_as<bool>;
{
s.stepping() } -> std::same_as<const typename S::stepper_state_type &>;
{
s.navigation() } -> std::same_as<const typename S::navigator_state_type &>;
{
s.context() } -> std::same_as<const typename S::context_type &>;
}
Check if a type can function as a propagator state.
Definition concepts.hpp:64
constexpr double s
Definition Units.hpp:120
Particle hypothesis identified by PDG number, mass, and electric charge.
Definition pdg_particle.hpp:24
Check if a type can function as a propagator state.