10 #ifndef SRC_INCLUDE_SMASH_BREMSSTRAHLUNGACTION_H_ 
   11 #define SRC_INCLUDE_SMASH_BREMSSTRAHLUNGACTION_H_ 
   41                        const int n_frac_photons,
 
   42                        const double hadronic_cross_section_input);
 
BremsAction is a special action which takes two incoming particles and performs a perturbative scatte...
 
void sample_3body_phasespace()
Sample the final state anisotropically, considering the differential cross sections with respect to t...
 
ReactionType
Enum for encoding the photon process.
 
const ReactionType reac_
Reaction process as determined from incoming particles.
 
double k_
Sampled value of k (photon momentum)
 
const int number_of_fractional_photons_
Number of photons created for each hadronic scattering, needed for correct weighting.
 
void add_dummy_hadronic_process(double reaction_cross_section)
Adds one hadronic process with a given cross-section.
 
void generate_final_state() override
Generate the final-state for the Bremsstrahlung process.
 
static ReactionType bremsstrahlung_reaction_type(const ParticleList &in)
Determine photon process from incoming particles.
 
double cross_section_bremsstrahlung_
Total cross section of bremsstrahlung process.
 
BremsstrahlungAction(const ParticleList &in, const double time, const int n_frac_photons, const double hadronic_cross_section_input)
Construct a ScatterActionBrems object.
 
void add_single_process()
Add the photonic process.
 
void perform_bremsstrahlung(const OutputsList &outputs)
Create the final state and write to output.
 
double get_total_weight() const override
Return the weight of the last created photon.
 
const double hadronic_cross_section_
Total hadronic cross section.
 
CollisionBranchList brems_cross_sections()
Computes the total cross section of the bremsstrahlung process.
 
double hadronic_cross_section() const
Return the total cross section of the underlying hadronic scattering It is necessary for the weightin...
 
CollisionBranchList collision_processes_bremsstrahlung_
Holds the bremsstrahlung branch.
 
double weight_
Weight of the produced photon.
 
void create_interpolations()
Create interpolation objects for tabularized cross sections: total cross section, differential dSigma...
 
double theta_
Sampled value of theta (angle of the photon)
 
static bool is_bremsstrahlung_reaction(const ParticleList &in)
Check if particles can undergo an implemented photon process.
 
std::pair< double, double > brems_diff_cross_sections()
Computes the differential cross sections dSigma/dk and dSigma/dtheta of the bremsstrahlung process.
 
ScatterAction is a special action which takes two incoming particles and performs a scattering,...