#include <crosssections.h>
The CrossSections class assembles everything that is needed to calculate cross sections and gathers a list of all possible reactions for the incoming particles at the given energy with the calculated cross sections.
Definition at line 31 of file crosssections.h.
Public Member Functions | |
| CrossSections (const ParticleList &incoming_particles, double sqrt_s, const std::pair< FourVector, FourVector > potentials) | |
| Construct CrossSections instance. More... | |
| CollisionBranchList | generate_collision_list (const ScatterActionsFinderParameters &finder_parameters, StringProcess *string_process) const |
| Generate a list of all possible collisions between the incoming particles with the given c.m. More... | |
| double | parametrized_total (const ScatterActionsFinderParameters &finder_parameters) const |
| Select the parametrization for the total cross section, given the types of incoming particles. More... | |
| CollisionBranchPtr | elastic (const ScatterActionsFinderParameters &finder_parameters) const |
| Determine the elastic cross section for this collision. More... | |
| CollisionBranchList | two_to_one (CharmRescattering charm_rescattering) const |
| Find all resonances that can be produced in a 2->1 collision of the two input particles and the production cross sections of these resonances. More... | |
| double | formation (const ParticleType &type_resonance, double cm_momentum_sqr) const |
| Calculates the 2-to-1 resonance production cross section for a given resonance using the Breit-Wigner distribution as probability amplitude. More... | |
| CollisionBranchList | rare_two_to_two () const |
| Find all 2->2 processes which are suppressed at high energies when strings are turned on with probabilites, but important for the production of rare species such as strange particles. More... | |
| CollisionBranchList | two_to_two (const ReactionsBitSet &included_2to2, double KN_offset, CharmRescattering charm_rescattering) const |
| Find all inelastic 2->2 processes for the given scattering. More... | |
| CollisionBranchList | two_to_three () const |
| Find all 2->3 processes for the given scattering. More... | |
| CollisionBranchList | two_to_four () const |
| Find all 2->4 processes for the given scattering. More... | |
| CollisionBranchList | string_excitation (double total_string_xs, StringProcess *string_process, const ScatterActionsFinderParameters &finder_parameters) const |
| Determine the cross section for string excitations, which is given by the difference between the parametrized total cross section and all the explicitly implemented channels at low energy (elastic, resonance excitation, etc). More... | |
| CollisionBranchPtr | NNbar_annihilation (double current_xs, double scale_xs) const |
| Determine the cross section for NNbar annihilation, which is given by the difference between the parametrized total cross section and all the explicitly implemented channels at low energy (in this case only elastic). More... | |
| CollisionBranchList | NNbar_creation () const |
| Determine the cross section for NNbar creation, which is given by detailed balance from the reverse reaction. More... | |
| CollisionBranchPtr | NNbar_to_5pi (double scale_xs) const |
| Create collision branch for NNbar annihilation going directly into 5 pions. More... | |
| double | high_energy (const ScatterActionsFinderParameters &finder_parameters) const |
| Determine the parametrized total cross section at high energies for the given collision, which is non-zero for Baryon-Baryon and Nucleon-Pion scatterings currently. More... | |
| double | string_probability (const ScatterActionsFinderParameters &finder_parameters) const |
| double | transition_probability_at_sqrts (double region_lower, double region_upper) const |
| Computes a smooth transition probability as a function of sqrt(s). More... | |
Static Public Member Functions | |
| static double | sum_xs_of (const CollisionBranchList &list) |
| Helper function: Sum all cross sections of the given process list. More... | |
| static double | two_to_three_xs (const ParticleType &type_in1, const ParticleType &type_in2, double sqrts) |
| Determine 2->3 cross section for the scattering of the given particle types. More... | |
| static double | two_to_four_xs (const ParticleType &type_in1, const ParticleType &type_in2, double sqrts) |
| Determine 2->4 cross section for the scattering of the given particle types. More... | |
Private Member Functions | |
| double | elastic_parametrization (const ScatterActionsFinderParameters &finder_parameters) const |
| Choose the appropriate parametrizations for given incoming particles and return the (parametrized) elastic cross section. More... | |
| double | nn_el () const |
| Determine the (parametrized) elastic cross section for a nucleon-nucleon (NN) collision. More... | |
| double | npi_el () const |
| Determine the elastic cross section for a nucleon-pion (Npi) collision. More... | |
| double | nk_el () const |
| Determine the elastic cross section for a nucleon-kaon (NK) collision. More... | |
| std::optional< double > | Dpi_and_Dstarpi_elastic () const |
| Determine the elastic cross section for a D meson-pion (Dpi) or a D*-pion (D*pi) collision. More... | |
| double | Dpi_and_Dstarpi_inelastic () const |
| Determine the inelastic cross section for a D meson-pion (Dpi) or a D*-pion (D*pi) collision. More... | |
| std::optional< double > | Deta_and_Dstareta_elastic () const |
| Determine the elastic cross section for a D meson-eta (Deta) or a D*-eta (D*eta) collision. More... | |
| std::optional< double > | DK_and_DstarK_elastic () const |
| Determine the elastic cross section for a D meson-kaon (DK) or a D*-kaon (D*K) collision. More... | |
| double | DK_and_DstarK_inelastic () const |
| Determine the inelastic cross section for a D meson-kaon (DK) or a D*-kaon (D*K) collision. More... | |
| std::optional< double > | DN_elastic () const |
| Determine the elastic cross section for a D meson-nucleon (DN) collision, If the center-of-mass energy for the collision is below the lower bound of the energy range of the underlying cross section data, the return value is zero. More... | |
| double | DN_inelastic () const |
| Determine the inelastic cross section for a D meson-nucleon (DN) collision. More... | |
| std::optional< double > | DDelta_elastic () const |
| Determine the elastic cross section for a D meson-Delta (DΔ) collision, If the center-of-mass energy for the collision is below the lower bound of the energy range of the underlying cross section data, the return value is zero. More... | |
| double | DDelta_inelastic () const |
| Determine the inelastic cross section for a D meson-Delta (DΔ) collision. More... | |
| CollisionBranchList | npi_yk () const |
| Find all processes for Nucleon-Pion to Hyperon-Kaon Scattering. More... | |
| CollisionBranchList | bb_xx_except_nn (const ReactionsBitSet &included_2to2) const |
| Find all inelastic 2->2 processes for Baryon-Baryon (BB) Scattering except the more specific Nucleon-Nucleon Scattering. More... | |
| CollisionBranchList | nn_xx (const ReactionsBitSet &included_2to2) const |
| Find all inelastic 2->2 processes for Nucelon-Nucelon Scattering. More... | |
| CollisionBranchList | nk_xx (const ReactionsBitSet &included_2to2, double KN_offset) const |
| Find all inelastic 2->2 background processes for Nucleon-Kaon (NK) Scattering. More... | |
| CollisionBranchList | Dpi_and_Dstarpi_xx (const ReactionsBitSet &included_2to2, CharmRescattering charm_rescattering) const |
| Find all inelastic 2->2 processes for D meson-pion (Dpi) and D*-pion (D*pi) scattering. More... | |
| CollisionBranchList | DK_and_DstarK_xx (const ReactionsBitSet &included_2to2, CharmRescattering charm_rescattering) const |
| Find all inelastic 2->2 processes for D meson-kaon (DK) and D*-kaon (D*K) scattering. More... | |
| CollisionBranchList | DN_xx (const ReactionsBitSet &included_2to2, CharmRescattering charm_rescattering) const |
| Find all inelastic 2->2 processes for D meson-nucleon (DN) scatterings. More... | |
| CollisionBranchList | DDelta_xx (const ReactionsBitSet &included_2to2, CharmRescattering charm_rescattering) const |
| Find all inelastic 2->2 processes for D meson-Delta (DΔ) scatterings. More... | |
| CollisionBranchList | deltak_xx (const ReactionsBitSet &included_2to2) const |
| Find all inelastic 2->2 processes for Delta-Kaon (DeltaK) Scattering. More... | |
| CollisionBranchList | ypi_xx (const ReactionsBitSet &included_2to2) const |
| Find all inelastic 2->2 processes for Hyperon-Pion (Ypi) Scattering. More... | |
| CollisionBranchList | dpi_xx (const ReactionsBitSet &included_2to2) const |
| Find all inelastic 2->2 processes involving Pion and (anti-) Deuteron (dpi), specifically dπ→ NN, d̅π→ N̅N̅; πd→ πd' (mockup for πd→ πnp), πd̅→ πd̅' and reverse. More... | |
| CollisionBranchList | dn_xx (const ReactionsBitSet &included_2to2) const |
| Find all inelastic 2->2 processes involving Nucleon and (anti-) Deuteron (dN), specifically Nd → Nd', N̅d → N̅d', N̅d̅→ N̅d̅', Nd̅→ Nd̅' and reverse (e.g. More... | |
| double | string_hard_cross_section () const |
| Determine the (parametrized) hard non-diffractive string cross section for this collision. More... | |
| CollisionBranchList | bar_bar_to_nuc_nuc (bool is_anti_particles) const |
| Calculate cross sections for 2 → 2 resonance absorption (i.e. More... | |
| template<class IntegrationMethod > | |
| CollisionBranchList | find_nn_xsection_from_type (const ParticleTypePtrList &type_res_1, const ParticleTypePtrList &type_res_2, const IntegrationMethod integrator) const |
| Utility function to avoid code replication in nn_xx(). More... | |
| double | cm_momentum () const |
| Determine the momenta of the incoming particles in the center-of-mass system. More... | |
| template<typename F > | |
| void | add_channel (CollisionBranchList &process_list, F &&get_xsection, double sqrts, const ParticleType &type_a, const ParticleType &type_b) const |
| Helper function: Add a 2-to-2 channel to a collision branch list given a cross section. More... | |
Static Private Member Functions | |
| static double | xs_dpi_dprimepi (double sqrts, double cm_mom, ParticleTypePtr produced_nucleus, const ParticleType &type_pi) |
| Parametrized cross section for πd→ πd' (mockup for πd→ πnp), πd̅→ πd̅' and reverse, see Oliinychenko:2018ugs [49] for details. More... | |
| static double | xs_dn_dprimen (double sqrts, double cm_mom, ParticleTypePtr produced_nucleus, const ParticleType &type_nucleus, const ParticleType &type_N) |
| Parametrized cross section for Nd → Nd', N̅d → N̅d', N̅d̅→ N̅d̅', Nd̅→ Nd̅' and reverse (e.g. More... | |
| static double | nn_to_resonance_matrix_element (double sqrts, const ParticleType &type_a, const ParticleType &type_b, int twoI) |
| Scattering matrix amplitude squared (divided by 16π) for resonance production processes like NN → NR and NN → ΔR, where R is a baryon resonance (Δ, N*, Δ*). More... | |
Private Attributes | |
| const ParticleList | incoming_particles_ |
| List with data of scattering particles. More... | |
| const double | sqrt_s_ |
| Total energy in the center-of-mass frame. More... | |
| const std::pair< FourVector, FourVector > | potentials_ |
| Potentials at the interacting point. More... | |
| const bool | is_BBbar_pair_ |
| Whether incoming particles are a pair of a baryon and an antibaryon (could be different baryon types) More... | |
| const bool | is_NNbar_pair_ |
| Whether incoming particles are a nulecon-antinucleon pair (same isospin) More... | |
| smash::CrossSections::CrossSections | ( | const ParticleList & | incoming_particles, |
| double | sqrt_s, | ||
| const std::pair< FourVector, FourVector > | potentials | ||
| ) |
Construct CrossSections instance.
| [in] | incoming_particles | Particles that are interacting. |
| [in] | sqrt_s | Center-of-mass energy of the reaction. |
| [in] | potentials | Potentials at the interacting point. They are used to calculate the corrections on the thresholds. |
Definition at line 219 of file crosssections.cc.
| CollisionBranchList smash::CrossSections::generate_collision_list | ( | const ScatterActionsFinderParameters & | finder_parameters, |
| StringProcess * | string_process | ||
| ) | const |
Generate a list of all possible collisions between the incoming particles with the given c.m.
energy and the calculated cross sections. The string processes are not added at this step if it is not triggerd according to the probability. It will then be added in add_all_scatterings in scatteraction.cc
| [in] | finder_parameters | parameters for collision finding. |
| [in] | string_process | a pointer to the StringProcess object, which is used for string excitation and fragmentation. |
Definition at line 234 of file crosssections.cc.
| double smash::CrossSections::parametrized_total | ( | const ScatterActionsFinderParameters & | finder_parameters | ) | const |
Select the parametrization for the total cross section, given the types of incoming particles.
| [in] | finder_parameters | Parameters for collision finding, containing cut for low energy NN interactions. |
Definition at line 327 of file crosssections.cc.
|
inlinestatic |
Helper function: Sum all cross sections of the given process list.
Definition at line 77 of file crosssections.h.
| CollisionBranchPtr smash::CrossSections::elastic | ( | const ScatterActionsFinderParameters & | finder_parameters | ) | const |
Determine the elastic cross section for this collision.
If elastic_par is given (and positive), we just use a constant cross section of that size, otherwise a parametrization of the elastic cross section is used (if available). Optional a constant additional elastic cross section is added
| [in] | finder_parameters | parameters for collision finding, including cross section modifications from config file. |
Definition at line 482 of file crosssections.cc.
| CollisionBranchList smash::CrossSections::two_to_one | ( | CharmRescattering | charm_rescattering | ) | const |
Find all resonances that can be produced in a 2->1 collision of the two input particles and the production cross sections of these resonances.
Given the data and type information of two colliding particles, create a list of possible resonance production processes and their cross sections.
If Charm_Rescattering_Method is not set to "Resonances" then interactions of charmed hadrons will not be considered in two to one processes.
| [in] | charm_rescattering | Type of charm rescattering |
Definition at line 1476 of file crosssections.cc.
| double smash::CrossSections::formation | ( | const ParticleType & | type_resonance, |
| double | cm_momentum_sqr | ||
| ) | const |
Calculates the 2-to-1 resonance production cross section for a given resonance using the Breit-Wigner distribution as probability amplitude.
See eq. (176) in Buss:2011mx [16].
| [in] | type_resonance | Type information for the resonance to be produced. |
| [in] | cm_momentum_sqr | Square of the center-of-mass momentum of the two initial particles. |
Definition at line 1524 of file crosssections.cc.
| CollisionBranchList smash::CrossSections::rare_two_to_two | ( | ) | const |
Find all 2->2 processes which are suppressed at high energies when strings are turned on with probabilites, but important for the production of rare species such as strange particles.
This function should call the different, more specific functions for the different scatterings. But so far, only Nucleon-Pion to Hyperon- Kaon scattering is implemented.
Definition at line 503 of file crosssections.cc.
| CollisionBranchList smash::CrossSections::two_to_two | ( | const ReactionsBitSet & | included_2to2, |
| double | KN_offset, | ||
| CharmRescattering | charm_rescattering | ||
| ) | const |
Find all inelastic 2->2 processes for the given scattering.
This function calls the different, more specific functions for the different scatterings.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
| [in] | KN_offset | Offset to the minimum energy for string production in KN scatterings |
| [in] | charm_rescattering | Type of charm rescattering |
Definition at line 1551 of file crosssections.cc.
| CollisionBranchList smash::CrossSections::two_to_three | ( | ) | const |
Find all 2->3 processes for the given scattering.
This function calls the different, more specific functions for the different scatterings.
Definition at line 1625 of file crosssections.cc.
| CollisionBranchList smash::CrossSections::two_to_four | ( | ) | const |
Find all 2->4 processes for the given scattering.
This function calls the different, more specific functions for the different scatterings.
Definition at line 1680 of file crosssections.cc.
| CollisionBranchList smash::CrossSections::string_excitation | ( | double | total_string_xs, |
| StringProcess * | string_process, | ||
| const ScatterActionsFinderParameters & | finder_parameters | ||
| ) | const |
Determine the cross section for string excitations, which is given by the difference between the parametrized total cross section and all the explicitly implemented channels at low energy (elastic, resonance excitation, etc).
| [in] | total_string_xs | Total cross section for the string process [mb] |
| [in] | string_process | a pointer to the StringProcess object, which is used for string excitation and fragmentation |
| [in] | finder_parameters | parameters for collision finding and cross sections |
| std::runtime_error | if string_process is a null pointer |
This method has to be called after all other processes have been determined.
Definition at line 4135 of file crosssections.cc.
| CollisionBranchPtr smash::CrossSections::NNbar_annihilation | ( | double | current_xs, |
| double | scale_xs | ||
| ) | const |
Determine the cross section for NNbar annihilation, which is given by the difference between the parametrized total cross section and all the explicitly implemented channels at low energy (in this case only elastic).
| [in] | current_xs | Sum of all cross sections of already determined processes |
| [in] | scale_xs | Factor by which all (partial) cross sections are scaled |
This method has to be called after all other processes have been determined.
Definition at line 4468 of file crosssections.cc.
| CollisionBranchList smash::CrossSections::NNbar_creation | ( | ) | const |
Determine the cross section for NNbar creation, which is given by detailed balance from the reverse reaction.
See NNbar_annihilation.
Definition at line 4481 of file crosssections.cc.
| CollisionBranchPtr smash::CrossSections::NNbar_to_5pi | ( | double | scale_xs | ) | const |
Create collision branch for NNbar annihilation going directly into 5 pions.
The cross section is given by the parametrized ppbar cross section, which is also used for the reverse 5-to-2 process.
| [in] | scale_xs | Factor by which all (partial) cross sections are scaled |
Definition at line 4451 of file crosssections.cc.
|
static |
Determine 2->3 cross section for the scattering of the given particle types.
That the function only depends on the types of particles (plus sqrt(s)) and not on the specific particles, is an assumption needed in order to treat the 3->2 back-reaction with the stochastic criterion, where this function also needs to be called for 3-to-2 collision probability with only types and sqrt(s) known at this point. Therefore the function is also made static.
| [in] | type_in1 | first scatterning particle type |
| [in] | type_in2 | second scatterning particle type |
| [in] | sqrts | center-of-mass energy of scattering |
Definition at line 1732 of file crosssections.cc.
|
static |
Determine 2->4 cross section for the scattering of the given particle types.
Same assumptions as for 2->3 cross section, see respective documentation.
| [in] | type_in1 | first scatterning particle type |
| [in] | type_in2 | second scatterning particle type |
| [in] | sqrts | center-of-mass energy of scattering |
Definition at line 1771 of file crosssections.cc.
| double smash::CrossSections::high_energy | ( | const ScatterActionsFinderParameters & | finder_parameters | ) | const |
Determine the parametrized total cross section at high energies for the given collision, which is non-zero for Baryon-Baryon and Nucleon-Pion scatterings currently.
This is rescaled by AQM factors.
| [in] | finder_parameters | parameters for collision finding and cross sections. |
Definition at line 4356 of file crosssections.cc.
| double smash::CrossSections::string_probability | ( | const ScatterActionsFinderParameters & | finder_parameters | ) | const |
If use_transition_probability is true: The string fragmentation is implemented in the same way in GiBUU (Physics Reports 512(2012), 1-124, pg. 33). If the center of mass energy is low, two particles scatter through the resonance channels. If high, the outgoing particles are generated by string fragmentation. If in between, the out- going particles are generated either through the resonance channels or string fragmentation by chance. In detail, the low energy region is from the threshold to (mix_scatter_type_energy - mix_scatter_type_window_width), while the high energy region is from (mix_scatter_type_energy + mix_scatter_type_window_width) to infinity. In between, the probability for string fragmentation increases smoothly from 0 to 1 as the c.m. energy.
If use_transition_probability is false: The string fragmentation is implemented similarly to what is in UrQMD (Bass:1998ca [8]). If sqrts is lower than some cutoff value, there are no strings. If higher, strings are allowed, with the cross-section being the difference between some parametrized total cross-section and the sum of all other channels, if this parametrization is larger than the sum of the channels. If not, strings are not allowed (this cross-section check is performed directly after the function is called, for technical reasons).
Both of these methods are initially implemented for NN and Npi cross- sections, and extended using the AQM to all BB, BM and MM interactions.
Baryon-antibaryon annihilation also uses this function to decide whether to produce strings or not. Since there are no other contributions for this process, there are no cutoffs or gradual increase in the probability of this process happening or not, it just requires the proper combination of incoming particles and config parameters.
| [in] | finder_parameters | parameters for collision finding and cross sections. |
Definition at line 4742 of file crosssections.cc.
| double smash::CrossSections::transition_probability_at_sqrts | ( | double | region_lower, |
| double | region_upper | ||
| ) | const |
Computes a smooth transition probability as a function of sqrt(s).
The probability is:
This probability can be used to determine the relative contribution of two processes or regimes (e.g. soft ↔ hard string excitation).
| [in] | region_lower | Lower bound of the transition region in sqrt(s) [GeV] |
| [in] | region_upper | Upper bound of the transition region in sqrt(s) [GeV] |
Definition at line 4830 of file crosssections.cc.
|
private |
Choose the appropriate parametrizations for given incoming particles and return the (parametrized) elastic cross section.
| [in] | finder_parameters | parameters for collision finding and cross sections, containing whether to extend string cross-sections with AQM and the offset to the minimum energy for string production in \(\pi\pi \) scatterings |
| std::runtime_error | if elastic cross section is negative. |
Definition at line 516 of file crosssections.cc.
|
private |
Determine the (parametrized) elastic cross section for a nucleon-nucleon (NN) collision.
| std::runtime_error | if positive cross section cannot be specified. |
Definition at line 648 of file crosssections.cc.
|
private |
Determine the elastic cross section for a nucleon-pion (Npi) collision.
It is given by a parametrization of experimental data.
| std::runtime_error | if incoming particles are not nucleon+pion. |
| std::runtime_error | if positive cross section cannot be specified. |
Definition at line 683 of file crosssections.cc.
|
private |
Determine the elastic cross section for a nucleon-kaon (NK) collision.
It is given by a parametrization of experimental data.
| std::runtime_error | if incoming particles are not nucleon+kaon. |
| std::runtime_error | if positive cross section cannot be specified. |
Definition at line 990 of file crosssections.cc.
|
private |
Determine the elastic cross section for a D meson-pion (Dpi) or a D*-pion (D*pi) collision.
If the center-of-mass energy for the collision is below the lower bound of the energy range of the underlying cross section data, the return value is zero. If it is above the upper bound, the return value will be std::nullopt.
| std::runtime_error | if incoming particles are not Dpi or D*pi. |
| std::runtime_error | if cross section is negative. |
Definition at line 1079 of file crosssections.cc.
|
private |
Determine the inelastic cross section for a D meson-pion (Dpi) or a D*-pion (D*pi) collision.
| std::runtime_error | if incoming particles are not Dpi or D*pi. |
| std::runtime_error | if cross section is negative. |
Definition at line 3116 of file crosssections.cc.
|
private |
Determine the elastic cross section for a D meson-eta (Deta) or a D*-eta (D*eta) collision.
If the center-of-mass energy for the collision is below the lower bound of the energy range of the underlying cross section data, the return value is zero. If it is above the upper bound, the return value will be std::nullopt.
| std::runtime_error | if incoming particles are not Deta or D*eta. |
| std::runtime_error | if cross section is negative. |
Definition at line 1164 of file crosssections.cc.
|
private |
Determine the elastic cross section for a D meson-kaon (DK) or a D*-kaon (D*K) collision.
If the center-of-mass energy for the collision is below the lower bound of the energy range of the underlying cross section data, the return value is zero. If it is above the upper bound, the return value will be std::nullopt.
| std::runtime_error | if incoming particles are not DK or D*K. |
| std::runtime_error | if cross section is negative. |
Definition at line 1209 of file crosssections.cc.
|
private |
Determine the inelastic cross section for a D meson-kaon (DK) or a D*-kaon (D*K) collision.
| std::runtime_error | if incoming particles are not DK or D*K. |
| std::runtime_error | if cross section is negative. |
Definition at line 3192 of file crosssections.cc.
|
private |
Determine the elastic cross section for a D meson-nucleon (DN) collision, If the center-of-mass energy for the collision is below the lower bound of the energy range of the underlying cross section data, the return value is zero.
If it is above the upper bound, the return value will be std::nullopt.
| std::runtime_error | if incoming particles are not DN. |
| std::runtime_error | if cross section is negative. |
Definition at line 1314 of file crosssections.cc.
|
private |
Determine the inelastic cross section for a D meson-nucleon (DN) collision.
| std::runtime_error | if incoming particles are not DN. |
| std::runtime_error | if cross section is negative. |
Definition at line 3277 of file crosssections.cc.
|
private |
Determine the elastic cross section for a D meson-Delta (DΔ) collision, If the center-of-mass energy for the collision is below the lower bound of the energy range of the underlying cross section data, the return value is zero.
If it is above the upper bound, the return value will be std::nullopt.
| std::runtime_error | if incoming particles are not DΔ. |
| std::runtime_error | if cross section is negative. |
Definition at line 1375 of file crosssections.cc.
|
private |
Determine the inelastic cross section for a D meson-Delta (DΔ) collision.
| std::runtime_error | if incoming particles are not DΔ. |
| std::runtime_error | if cross section is negative. |
Definition at line 3330 of file crosssections.cc.
|
private |
Find all processes for Nucleon-Pion to Hyperon-Kaon Scattering.
These scatterings are suppressed at high energies when strings are turned on with probabilities, so they need to be added back manually.
Definition at line 760 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes for Baryon-Baryon (BB) Scattering except the more specific Nucleon-Nucleon Scattering.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
Definition at line 1808 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes for Nucelon-Nucelon Scattering.
Calculate cross sections for resonance production from nucleon-nucleon collisions (i.e. N N -> N R, N N -> Delta R).
Checks are processed in the following order:
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
Definition at line 1835 of file crosssections.cc.
|
private |
Find all inelastic 2->2 background processes for Nucleon-Kaon (NK) Scattering.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
| [in] | KN_offset | Offset to the minimum energy for string production in KN scatterings |
Definition at line 1907 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes for D meson-pion (Dpi) and D*-pion (D*pi) scattering.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
| [in] | charm_rescattering | Type of charm rescattering |
Definition at line 3423 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes for D meson-kaon (DK) and D*-kaon (D*K) scattering.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
| [in] | charm_rescattering | Type of charm rescattering |
Definition at line 3606 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes for D meson-nucleon (DN) scatterings.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
| [in] | charm_rescattering | Type of charm rescattering |
Definition at line 3785 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes for D meson-Delta (DΔ) scatterings.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
| [in] | charm_rescattering | Type of charm rescattering |
Definition at line 3880 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes for Delta-Kaon (DeltaK) Scattering.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
Definition at line 2408 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes for Hyperon-Pion (Ypi) Scattering.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
Definition at line 2558 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes involving Pion and (anti-) Deuteron (dpi), specifically dπ→ NN, d̅π→ N̅N̅; πd→ πd' (mockup for πd→ πnp), πd̅→ πd̅' and reverse.
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
Definition at line 2955 of file crosssections.cc.
|
private |
Find all inelastic 2->2 processes involving Nucleon and (anti-) Deuteron (dN), specifically Nd → Nd', N̅d → N̅d', N̅d̅→ N̅d̅', Nd̅→ Nd̅' and reverse (e.g.
Nd'→ Nd).
| [in] | included_2to2 | Which 2->2 reactions are enabled? |
Definition at line 3086 of file crosssections.cc.
|
staticprivate |
Parametrized cross section for πd→ πd' (mockup for πd→ πnp), πd̅→ πd̅' and reverse, see Oliinychenko:2018ugs [49] for details.
| [in] | sqrts | square-root of mandelstam s |
| [in] | cm_mom | center of mass momentum of incoming particles |
| [in] | produced_nucleus | type of outgoing deuteron or d-prime |
| [in] | type_pi | type of scattering pion |
Matrix element is fit to match the inelastic pi+ d -> pi+ n p cross-section from the Fig. 5 of Arndt:1994bs [7].
Definition at line 2922 of file crosssections.cc.
|
staticprivate |
Parametrized cross section for Nd → Nd', N̅d → N̅d', N̅d̅→ N̅d̅', Nd̅→ Nd̅' and reverse (e.g.
Nd'→ Nd), see Oliinychenko:2018ugs [49] for details.
| [in] | sqrts | square-root of mandelstam s |
| [in] | cm_mom | center of mass momentum of incoming particles |
| [in] | produced_nucleus | type of outgoing deuteron or d-prime |
| [in] | type_nucleus | type of scattering (incoming) deuteron or d-prime |
| [in] | type_N | type of scattering nucleon |
Nd → Nd', N̅d̅→ N̅d̅' and reverse: Fit to match experimental cross-section Nd -> Nnp from [19].
N̅d → N̅d', Nd̅→ Nd̅' and reverse: Fit to roughly match experimental cross-section N̅d -> N̅ np from Bizzarri:1973sp [12].
Definition at line 3045 of file crosssections.cc.
|
private |
Determine the (parametrized) hard non-diffractive string cross section for this collision.
Definition at line 4425 of file crosssections.cc.
|
private |
Calculate cross sections for 2 → 2 resonance absorption (i.e.
NR → NN and ΔR → NN). See eqs. (B.6), (B.9) and (181) in Buss:2011mx [16].
| [in] | is_anti_particles | Whether the colliding particles are antiparticles |
Definition at line 4513 of file crosssections.cc.
|
staticprivate |
Scattering matrix amplitude squared (divided by 16π) for resonance production processes like NN → NR and NN → ΔR, where R is a baryon resonance (Δ, N*, Δ*).
Includes no spin or isospin factors.
| [in] | sqrts | sqrt(Mandelstam-s), i.e. collision CMS energy. |
| [in] | type_a | Type information for the first final-state particle. |
| [in] | type_b | Type information for the second final-state particle. |
| [in] | twoI | Twice the total isospin of the involved state. |
NN → NΔ: fit sqrt(s)-dependence to OBE model [Dmitriev:1986st [23]]
All other processes use a constant matrix element, similar to Bass:1998ca [8], eq. (3.35).
pn → pnη cross section is known to be larger than the corresponding pp → ppη cross section by a factor of 6.5 [Calen:1998vh [17]]. Since the eta is mainly produced by an intermediate N*(1535) we introduce an explicit isospin asymmetry for the production of N*(1535) produced in pn vs. pp similar to [Teis:1996kx [67]], eq. (29).
Definition at line 4577 of file crosssections.cc.
|
private |
Utility function to avoid code replication in nn_xx().
| [in] | type_res_1 | List of possible first final resonance types |
| [in] | type_res_2 | List of possible second final resonance types |
| [in] | integrator | Used to integrate over the kinematically allowed mass range of the Breit-Wigner distribution |
Cross section for 2->2 process with 1/2 resonance(s) in final state. Based on eq. (46) in Weil:2013mya [72] and eq. (3.29) in Bass:1998ca [8]
Definition at line 4666 of file crosssections.cc.
|
inlineprivate |
Determine the momenta of the incoming particles in the center-of-mass system.
Definition at line 735 of file crosssections.h.
|
inlineprivate |
Helper function: Add a 2-to-2 channel to a collision branch list given a cross section.
The cross section is only calculated if there is enough energy for the process. If the cross section is small, the branch is not added.
Definition at line 770 of file crosssections.h.
|
private |
List with data of scattering particles.
Definition at line 742 of file crosssections.h.
|
private |
Total energy in the center-of-mass frame.
Definition at line 745 of file crosssections.h.
|
private |
Potentials at the interacting point.
They are used to calculate the corrections on the threshold energies.
Definition at line 751 of file crosssections.h.
|
private |
Whether incoming particles are a pair of a baryon and an antibaryon (could be different baryon types)
Definition at line 757 of file crosssections.h.
|
private |
Whether incoming particles are a nulecon-antinucleon pair (same isospin)
Definition at line 760 of file crosssections.h.