Add nodes for all decays possible from the given node and all of its children.
798 uint32_t n_unstable = 0;
799 double sqrts_minus_masses = sqrts;
800 for (
const ParticleTypePtr ptype : node.state_) {
801 if (!ptype->is_stable()) {
804 sqrts_minus_masses -= ptype->mass();
807 n_unstable != 0 ? 1. / static_cast<double>(n_unstable) : 1.;
809 for (
const ParticleTypePtr ptype : node.state_) {
810 if (!ptype->is_stable()) {
811 const double sqrts_decay = sqrts_minus_masses + ptype->mass();
812 bool can_decay =
false;
813 for (
const auto& decay : ptype->decay_modes().decay_mode_list()) {
817 double final_state_mass = 0.;
818 for (
const auto&
p : decay->particle_types()) {
819 final_state_mass +=
p->mass();
821 if (final_state_mass > sqrts_decay) {
826 ParticleTypePtrList parts;
828 auto& new_node = node.add_action(name, norm * decay->weight(), {ptype},