Version: SMASH-3.4
experimentparameters.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-2026
3  * SMASH Team
4  *
5  * GNU General Public License (GPLv3 or later)
6  */
7 #ifndef SRC_INCLUDE_SMASH_EXPERIMENTPARAMETERS_H_
8 #define SRC_INCLUDE_SMASH_EXPERIMENTPARAMETERS_H_
9 
10 #include <memory>
11 #include <optional>
12 #include <set>
13 
14 #include "clock.h"
15 #include "forwarddeclarations.h"
16 
17 namespace smash {
18 
19 /**
20  * Helper structure for Experiment.
21  *
22  * Experiment has one member of this struct. In essence the members of this
23  * struct are members of Experiment, but combined in one structure for easier
24  * function argument passing.
25  */
27  /// System clock (for simulation time keeping in the computational frame)
28  std::unique_ptr<Clock> labclock;
29 
30  /// Output clock to keep track of the next output time
31  std::unique_ptr<Clock> outputclock;
32 
33  /// Number of parallel ensembles
35 
36  /// Number of test-particles
38 
39  /// mode of calculating gradients for density calculation
41  /// mode of calculating rest frame density gradients (on or off)
43  /// mode of calculating field derivatives
45 
46  /// mode of smearing for density calculation
48 
49  /// Width of gaussian Wigner density of particles
51 
52  /// Distance at which gaussian is cut, i.e. set to zero, IN SIGMA (not fm)
54 
55  /// Weight applied to the center cell in the discrete smearing
57 
58  /// Range of lattice nodes, in units of lattice spacing, that the
59  /// triangular smearing uses
61 
62  /// Employed collision criterion
64 
65  /// This indicates whether string fragmentation is switched on.
66  bool two_to_one;
67 
68  /// This indicates which two to two reactions are switched off.
70 
71  /// Method to use for charm rescattering.
73 
74  /// This indicates which multi-particle reactions are switched on.
76 
77  /// This indicates whether string fragmentation is switched on.
79 
80  /**
81  * Multiplicative factor to be applied to resonance lifetimes; in the case of
82  * thermal multiplicities this should also be applied to initial
83  * multiplicities of resonances, so that one does not artificially introduce
84  * a non-zero pion chemical potential.
85  */
87 
88  /**
89  * This indicates how NN̅ annihilation should be treated; options are to
90  * neglect it, make it conserve detailed balance using NN̅ → h₁(1170)ρ
91  * (which goes to 5 pions on average) or use strings.
92  */
94 
95  /**
96  * Elastic collisions between the nucleons with the square root s
97  * below low_snn_cut are excluded.
98  */
99  double low_snn_cut;
100 
101  /**
102  * This indicates whether the mean field potentials affect the scattering
103  * or decaying processes by shifting the threshold energies.
104  */
106 
107  /**
108  * Length of the box in fm in case of box modus, otherwise -1
109  */
110  double box_length;
111 
112  /**
113  * The maximal cross section (in mb) for which it is guaranteed that all
114  * collisions with this cross section will be found.
115  *
116  * This means that all particle pairs, where the transverse distance
117  * is smaller or equal to \f$ \sqrt{\sigma_{max}/\pi} \f$,
118  * will be checked for collions.
119  *
120  * The maximal cross section is also scaled with the cross section
121  * scaling factor.
122  */
123  double maximum_cross_section; // mb
124 
125  /**
126  * Fixed minimal grid cell length (in fm). Only used and useful in case of the
127  * stochastic criterion, where the grid cell size is calculation parameter.
128  * Only particles within the cells are checked for collisions. The cell
129  * length is not scaled by the number of test-particles.
130  *
131  * Default of 2.5 fm produces (without test-particles) equivalent-sized grid
132  * as the maximum cross section default of 200 fm.
133  *
134  * In case of the geometric criteria, the cell size is determined by the
135  * maximum cross section.
136  */
137  double fixed_min_cell_length; // fm
138 
139  /**
140  * Global factor which all cross sections are scaled with.
141  *
142  * Using it will break agreement with experimental data for cross sections
143  * that are constrained with data.
144  */
145  double scale_xs;
146 
147  /** In thermodynamics outputs, it decides whether to use only participants
148  * (true) or also spectators (false, default value).
149  */
151 
152  /**
153  * Ignore unformed particles in thermodynamic outputs.
154  */
156 
157  /**
158  * This indicates whether we force all resonances to decay in the last
159  * timestep.
160  */
162 
163  /// Do non-strong decays at the end
165 
166  /**
167  * Whether to decay initial state particles.
168  */
170 
171  /**
172  * Setting the specific form factor for dilepton bremsstrahlung (optional).
173  */
175 
176  /**
177  * Whether to include spin interactions.
178  */
180 };
181 
182 } // namespace smash
183 
184 #endif // SRC_INCLUDE_SMASH_EXPERIMENTPARAMETERS_H_
SmearingMode
Modes of smearing.
DileptonBremsPionFormFactor
Option to use form factors in dilepton bremsstrahlung as described in Shyam:2010vr .
NNbarTreatment
Treatment of N Nbar Annihilation.
RestFrameDensityDerivativesMode
This enum is here only to serve InputKeys class, but it is unused and referring to a removed SMASH in...
CharmRescattering
Possible charm scattering options.
std::bitset< 4 > MultiParticleReactionsBitSet
Container for the n to m reactions in the code.
DerivativesMode
Modes of calculating the gradients.
CollisionCriterion
Criteria used to check collisions.
FieldDerivativesMode
Modes of calculating the field gradients: chain rule or direct.
std::bitset< 11 > ReactionsBitSet
Container for the 2 to 2 reactions in the code.
SpinInteractionType
Possible spin interaction types.
Definition: action.h:24
Helper structure for Experiment.
double fixed_min_cell_length
Fixed minimal grid cell length (in fm).
bool force_decays_at_end
This indicates whether we force all resonances to decay in the last timestep.
const SmearingMode smearing_mode
mode of smearing for density calculation
const CollisionCriterion coll_crit
Employed collision criterion.
NNbarTreatment nnbar_treatment
This indicates how NN̅ annihilation should be treated; options are to neglect it, make it conserve de...
double box_length
Length of the box in fm in case of box modus, otherwise -1.
bool only_participants
In thermodynamics outputs, it decides whether to use only participants (true) or also spectators (fal...
double discrete_weight
Weight applied to the center cell in the discrete smearing.
bool potential_affect_threshold
This indicates whether the mean field potentials affect the scattering or decaying processes by shift...
DerivativesMode derivatives_mode
mode of calculating gradients for density calculation
int n_ensembles
Number of parallel ensembles.
RestFrameDensityDerivativesMode rho_derivatives_mode
mode of calculating rest frame density gradients (on or off)
bool ignore_minimum_width_at_end
Do non-strong decays at the end.
double maximum_cross_section
The maximal cross section (in mb) for which it is guaranteed that all collisions with this cross sect...
bool strings_switch
This indicates whether string fragmentation is switched on.
const CharmRescattering charm_rescattering
Method to use for charm rescattering.
const ReactionsBitSet included_2to2
This indicates which two to two reactions are switched off.
FieldDerivativesMode field_derivatives_mode
mode of calculating field derivatives
DileptonBremsPionFormFactor dilepton_brems_pion_form_factor_type
Setting the specific form factor for dilepton bremsstrahlung (optional).
double scale_xs
Global factor which all cross sections are scaled with.
std::unique_ptr< Clock > outputclock
Output clock to keep track of the next output time.
bool two_to_one
This indicates whether string fragmentation is switched on.
int testparticles
Number of test-particles.
double triangular_range
Range of lattice nodes, in units of lattice spacing, that the triangular smearing uses.
double res_lifetime_factor
Multiplicative factor to be applied to resonance lifetimes; in the case of thermal multiplicities thi...
double low_snn_cut
Elastic collisions between the nucleons with the square root s below low_snn_cut are excluded.
double gaussian_sigma
Width of gaussian Wigner density of particles.
const MultiParticleReactionsBitSet included_multi
This indicates which multi-particle reactions are switched on.
bool ignore_unformed
Ignore unformed particles in thermodynamic outputs.
bool decay_initial_particles
Whether to decay initial state particles.
SpinInteractionType spin_interaction_type
Whether to include spin interactions.
double gauss_cutoff_in_sigma
Distance at which gaussian is cut, i.e. set to zero, IN SIGMA (not fm)
std::unique_ptr< Clock > labclock
System clock (for simulation time keeping in the computational frame)