21 template <
typename first,
typename... others>
23 template <
typename T,
typename generator_t,
typename detector_t,
25 static bool process(
const T &process_tuple, generator_t &
gen,
26 const detector_t &det, particle_t &
in,
27 std::vector<particle_t> &
out) {
29 const auto &this_process = std::get<first>(process_tuple);
30 bool this_process_kills = this_process(gen, det, in, out);
33 process_tuple, gen, det, in, out));
39 template <
typename T,
typename generator_t,
typename detector_t,
41 static bool process(
const T &process_tuple, generator_t &gen,
42 const detector_t &det, particle_t &in,
43 std::vector<particle_t> &out) {
45 const auto &this_process = std::get<last>(process_tuple);
46 return this_process(gen, det, in, out);
52 template <
typename T,
typename generator_t,
typename detector_t,
55 static bool process(
const T &, generator_t &,
const detector_t &,
56 const particle_t &, std::vector<particle_t> &) {