10 #ifndef SRC_INCLUDE_SMASH_FREEFORALLACTION_H_
11 #define SRC_INCLUDE_SMASH_FREEFORALLACTION_H_
44 double absolute_labframe_time)
45 :
Action(in_part, out_part, absolute_labframe_time,
47 if (!in_part.empty() && !out_part.empty()) {
48 throw std::invalid_argument(
49 "The FreeforallAction was used with two non-empty lists. This is not "
50 "allowed. Please use the action twice, if particles should be added "
66 const double t = particle.position().x0();
68 particle.set_formation_time(t);
69 particle.set_4position(particle.position() +
Action is the base class for a generic process that takes a number of incoming particles and transfor...
ParticleList outgoing_particles_
Initially this stores only the PDG codes of final-state particles.
double time_of_execution() const
Get the time at which the action is supposed to be performed.
ParticleList incoming_particles_
List with data of incoming particles.
The FourVector class holds relevant values in Minkowski spacetime with (+, −, −, −) metric signature.
Action class to create any incoming/outgoing particle combination freely.
double get_total_weight() const override
Return the total weight value, which is mainly used for the weight output entry.
FreeforallAction(const ParticleList &in_part, const ParticleList &out_part, double absolute_labframe_time)
The FreeforallAction is able to add particles by providing an empty particle list for in_part and a l...
void format_debug_output(std::ostream &out) const override
Function for debug output of incoming and outgoing particles from freeforall action.
void generate_final_state() override
Generate a final state for the FreeforallAction in the sense that the time and position of the partic...
double get_partial_weight() const override
Return the specific weight for the chosen outgoing channel, which is mainly used for the partial weig...
ProcessType
ProcessTypes are used to identify the type of the process.
@ Freeforall
See here for a short description.