20 :
Action({
p}, time), total_width_(0.) {}
58 "DecayAction::perform: Only 1->2 or 1->3 processes are supported. "
61 " was requested. (PDGcode=" +
80 double kinetic_energy_cm)
const {
85 std::pair<double, double> masses = {t_a.
mass(), t_b.
mass()};
88 const std::string reaction =
91 reaction +
": not enough energy, " + std::to_string(kinetic_energy_cm) +
Action is the base class for a generic process that takes a number of incoming particles and transfor...
void sample_2body_phasespace()
Sample the full 2-body phase-space (masses, momenta, angles) in the center-of-mass frame for the fina...
FourVector total_momentum_of_outgoing_particles() const
Calculate the total kinetic momentum of the outgoing particles.
ParticleList outgoing_particles_
Initially this stores only the PDG codes of final-state particles.
virtual void sample_manybody_phasespace()
Sample the full n-body phase-space (masses, momenta, angles) in the center-of-mass frame for the fina...
const double time_of_execution_
Time at which the action is supposed to be performed (absolute time in the lab frame in fm).
double sqrt_s() const
Determine the total energy in the center-of-mass frame [GeV].
ParticleList incoming_particles_
List with data of incoming particles.
ProcessType process_type_
type of process
Thrown when DecayAction is called to perform with 0 or more than 2 entries in outgoing_particles.
double partial_width_
partial decay width to the chosen outgoing channel
double total_width_
total decay width
void add_decays(DecayBranchList pv)
Add several new decays at once.
void generate_final_state() override
Generate the final state of the decay process.
DecayAction(const ParticleData &p, double time)
Construct a DecayAction from a particle p.
void add_decay(DecayBranchPtr p)
Add one new decay.
DecayBranchList decay_channels_
List of possible decays.
int L_
Angular momentum of the decay.
std::pair< double, double > sample_masses(double kinetic_energy_cm) const override
Sample the masses of the final particles.
DecayBranch is a derivative of ProcessBranch, which is used to represent decay channels.
ProcessType get_type() const override
int angular_momentum() const
ParticleData contains the dynamic information of a certain particle.
Particle type contains the static properties of a particle species.
double sample_resonance_mass(const double mass_stable, const double cms_energy, int L=0) const
Resonance mass sampling for 2-particle final state with one resonance (type given by 'this') and one ...
double min_mass_kinematic() const
The minimum mass of the resonance that is kinematically allowed.
const std::string & name() const
std::pair< double, double > sample_resonance_masses(const ParticleType &t2, const double cms_energy, int L=0) const
Resonance mass sampling for 2-particle final state with two resonances.
ParticleList particle_list() const
std::array< einhard::Logger<>, std::tuple_size< LogArea::AreaTuple >::value > logg
An array that stores all pre-configured Logger objects.
void format_debug_output(std::ostream &out) const override
Writes information about this decay action to the out stream.
FormattingHelper< T > format(const T &value, const char *unit, int width=-1, int precision=-1)
Acts as a stream modifier for std::ostream to output an object with an optional suffix string and wit...
static constexpr int LDecayModes