 |
Version: SMASH-2.0
|
|
Go to the documentation of this file.
10 #ifndef SRC_INCLUDE_SMASH_SCATTERACTIONMULTI_H_
11 #define SRC_INCLUDE_SMASH_SCATTERACTIONMULTI_H_
81 using std::invalid_argument::invalid_argument;
141 const double gcell_vol,
142 const int degen_factor = 1)
const;
168 const double gcell_vol,
169 const double degen_factor = 1.0)
const;
201 const int spin_degen_out1,
202 const int spin_degen_out2)
const {
203 return static_cast<double>(spin_degen_out1 * spin_degen_out2) /
204 static_cast<double>(spin_factor_inc);
244 #endif // SRC_INCLUDE_SMASH_SCATTERACTIONMULTI_H_
const CollisionBranchList & reaction_channels()
Get list of possible reaction channels.
void add_reactions(CollisionBranchList pv)
Add several new reaction channels at once.
void generate_final_state() override
Generate the final-state of the multi-particle scattering process.
void format_debug_output(std::ostream &out) const override
void add_possible_reactions(double dt, const double gcell_vol, const MultiParticleReactionsBitSet incl_multi)
Add all possible multi-particle reactions for the given incoming particles.
double probability_three_to_one(const ParticleType &type_out, double dt, const double gcell_vol, const int degen_factor=1) const
Calculate the probability for a 3m-to-1 reaction according to the stochastic collision criterion (e....
std::bitset< 2 > MultiParticleReactionsBitSet
Container for the 2 to 2 reactions in the code.
double calculate_I3(const double sqrts) const
Calculate the integration necessary for the three-body phase space.
void add_reaction(CollisionBranchPtr p)
Add a new reaction channel.
double partial_probability_
Partial probability of the chosen outgoing channel.
double react_degen_factor(const int spin_factor_inc, const int spin_degen_out1, const int spin_degen_out2) const
Determine the spin degeneracy factor ( ) for the 3->2 reaction.
ScatterActionMulti(const ParticleList &in_plist, double time)
Construct a ScatterActionMulti object.
bool two_pions_eta(const ParticleData &data_a, const ParticleData &data_b, const ParticleData &data_c) const
Check wether the three incoming particles are π⁺,π⁻,η or π⁰,π⁰,η in any order.
double total_probability_
Total probability of reaction.
void three_to_two()
Perform a 3->2 process.
double probability_three_to_two(const ParticleType &type_out1, const ParticleType &type_out2, double dt, const double gcell_vol, const double degen_factor=1.0) const
Calculate the probability for a 3-to-2 reaction according to the stochastic collision criterion (simi...
bool three_different_pions(const ParticleData &data_a, const ParticleData &data_b, const ParticleData &data_c) const
Check wether the three incoming particles are π⁺,π⁻,π⁰ in any order.
double get_total_weight() const override
Get the total probability for the reaction (scaled with the cross section scaling factors of the inco...
double get_partial_weight() const override
Get the partial probability for the chosen channel (scaled with the cross section scaling factors of ...
CollisionBranchList reaction_channels_
List of possible collisions.
void annihilation()
Perform a n->1 annihilation process.