21 const ParticleList &search_list,
double dt,
const double,
22 const std::vector<FourVector> &)
const {
28 for (
const auto &
p : search_list) {
29 if (
p.type().is_stable()) {
33 DecayBranchList processes =
p.type().get_partial_widths(
36 const double width = total_weight<DecayBranch>(processes);
43 constexpr
double one_over_hbarc = 1. /
hbarc;
54 one_over_hbarc *
p.inverse_gamma() * width);
57 if (
p.xsec_scaling_factor() < 1.0) {
58 decay_time +=
p.formation_time() -
p.position().x0();
60 if (decay_time < dt) {
63 auto act = make_unique<DecayAction>(
p, decay_time);
64 act->add_decays(std::move(processes));
65 actions.emplace_back(std::move(act));
75 for (
const auto &
p : search_list) {
76 if (
p.type().is_stable()) {
79 auto act = make_unique<DecayAction>(
p, 0.);
80 act->add_decays(
p.type().get_partial_widths(
82 actions.emplace_back(std::move(act));