10 #ifndef SRC_INCLUDE_SMASH_SCATTERACTION_H_
11 #define SRC_INCLUDE_SMASH_SCATTERACTION_H_
45 double time,
bool isotropic =
false,
46 double string_formation_time = 1.0,
double box_length = -1.0);
137 double kinetic_energy_cm)
override;
161 using std::invalid_argument::invalid_argument;
Action is the base class for a generic process that takes a number of incoming particles and transfor...
ParticleData contains the dynamic information of a certain particle.
Thrown when ScatterAction is called to perform with unknown ProcessType.
ScatterAction is a special action which takes two incoming particles and performs a scattering,...
bool is_elastic() const
Check if the scattering is elastic.
bool isotropic_
Do this collision isotropically?
double string_formation_time_
Time fragments take to be fully formed in hard string excitation.
const CollisionBranchList & collision_channels()
Get list of possible collision channels.
void add_collision(CollisionBranchPtr p)
Add a new collision channel.
void resonance_formation()
Perform a 2->1 resonance-formation process.
ThreeVector beta_cm() const
Get the velocity of the center of mass of the scattering/incoming particles in the calculation frame.
double partial_cross_section_
Partial cross-section to the chosen outgoing channel.
double relative_velocity() const
Get the relative velocity of the two incoming particles.
double mandelstam_s() const
Determine the Mandelstam s variable,.
double get_partial_weight() const override
Get the partial cross section of the chosen channel.
StringProcess * string_process_
Pointer to interface class for strings.
void create_string_final_state()
Creates the final states for string-processes after they are performed.
void set_string_interface(StringProcess *str_proc)
Set the StringProcess object to be used.
double cm_momentum_squared() const
Get the squared momentum of the center of mass of the incoming particles in the calculation frame.
void generate_final_state() override
Generate the final-state of the scattering process.
void add_all_scatterings(const ScatterActionsFinderParameters &finder_parameters)
Add all possible scattering subprocesses for this action object.
void two_to_many_scattering()
Perform an inelastic two-to-many-body scattering (more than 2)
double get_total_weight() const override
Get the total cross section of scattering particles.
void string_excitation()
Todo(ryu): document better - it is not really UrQMD-based, isn't it? Perform the UrQMD-based string e...
void elastic_scattering()
Perform an elastic two-body scattering, i.e. just exchange momentum.
void inelastic_scattering()
Perform an inelastic two-body scattering, i.e. new particles are formed.
ScatterAction(const ParticleData &in_part1, const ParticleData &in_part2, double time, bool isotropic=false, double string_formation_time=1.0, double box_length=-1.0)
Construct a ScatterAction object.
void sample_angles(std::pair< double, double > masses, double kinetic_energy_cm) override
Sample final-state angles in a 2->2 collision (possibly anisotropic).
void add_collisions(CollisionBranchList pv)
Add several new collision channels at once.
double total_cross_section_
Total hadronic cross section.
double gamma_cm() const
Get the gamma factor corresponding to a boost to the center of mass frame of the colliding particles.
double cm_momentum() const
Get the momentum of the center of mass of the incoming particles in the calculation frame.
double cov_transverse_distance_sqr() const
Calculate the transverse distance of the two incoming particles in their local rest frame written in ...
virtual double cross_section() const
Get the total cross section of the scattering particles.
CollisionBranchList collision_channels_
List of possible collisions.
double transverse_distance_sqr() const
Calculate the transverse distance of the two incoming particles in their local rest frame.
String excitation processes used in SMASH.
The ThreeVector class represents a physical three-vector with the components .
void format_debug_output(std::ostream &out) const override
Writes information about this scatter action to the out stream.
Helper structure for ScatterActionsFinder.