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()) {
34 p.get_history().collisions_per_particle == 0) {
38 DecayBranchList processes =
p.type().get_partial_widths(
41 const double width = total_weight<DecayBranch>(processes);
48 constexpr
double one_over_hbarc = 1. /
hbarc;
59 one_over_hbarc *
p.inverse_gamma() * width);
62 if (
p.xsec_scaling_factor() < 1.0) {
63 decay_time +=
p.formation_time() -
p.position().x0();
65 if (decay_time < dt) {
70 act->add_decays(std::move(processes));
71 actions.emplace_back(std::move(act));
81 for (
const auto &
p : search_list) {
86 if (
p.type().decay_modes().is_empty()) {
91 act->add_decays(
p.type().get_partial_widths(
93 actions.emplace_back(std::move(act));
const bool decay_initial_particles_
Whether to initial state particles can decay.
const bool find_final_decays_
Whether to find final decay actions.
const bool do_final_non_strong_decays_
Do all non-strong decays (including weak and electro-magnetic ones)
SpinInteractionType spin_interaction_type_
Spin interaction type.
const double res_lifetime_factor_
Multiplicative factor to be applied to resonance lifetimes.
ActionList find_actions_in_cell(const ParticleList &search_list, double dt, const double, const std::vector< FourVector > &) const override
Check the whole particle list for decays.
ActionList find_final_actions(const Particles &search_list) const override
Force all resonances to decay at the end of the simulation.
The Particles class abstracts the storage and manipulation of particles.
Collection of useful constants that are known at compile time.
constexpr double hbarc
GeV <-> fm conversion factor.
@ Hadronic
Ignore dilepton decay modes widths.
@ All
All decay mode widths.