10 #ifndef SRC_INCLUDE_DECAYACTION_H_ 11 #define SRC_INCLUDE_DECAYACTION_H_ 63 double kinetic_energy_cm)
const override;
86 using std::invalid_argument::invalid_argument;
111 #endif // SRC_INCLUDE_DECAYACTION_H_ Thrown when DecayAction is called to perform with 0 or more than 2 entries in outgoing_particles.
double get_total_weight() const override
Return the total width of the decay process.
void add_decay(DecayBranchPtr p)
Add one new decay.
void add_decays(DecayBranchList pv)
Add several new decays at once.
DecayAction(const ParticleData &p, double time)
Construct a DecayAction from a particle p.
DecayBranchList decay_channels_
List of possible decays.
double total_width_
total decay width
int L_
Angular momentum of the decay.
DecayAction is a special action which takes one single particle in the initial state and makes it dec...
Action is the base class for a generic process that takes a number of incoming particles and transfor...
void generate_final_state() override
Generate the final state of the decay process.
double get_partial_weight() const override
Get partial width of chosen channel.
double total_width() const
Get total decay width.
std::pair< double, double > sample_masses(double kinetic_energy_cm) const override
Sample the masses of the final particles.
double partial_width_
partial decay width to the chosen outgoing channel
ParticleData contains the dynamic information of a certain particle.
void format_debug_output(std::ostream &out) const override
Writes information about this decay action to the out stream.