10 #ifndef SRC_INCLUDE_SMASH_INPUT_KEYS_H_
11 #define SRC_INCLUDE_SMASH_INPUT_KEYS_H_
19 #include <string_view>
53 template <
typename default_type>
61 using std::runtime_error::runtime_error;
72 explicit Key(
const std::initializer_list<std::string_view>&
labels,
73 const std::initializer_list<std::string_view>& versions)
93 Key(
const std::initializer_list<std::string_view>&
labels,
94 const std::optional<default_type>& value,
95 const std::initializer_list<std::string_view>& versions)
104 switch (
auto it = versions.end(); versions.size()) {
116 "Key constructor needs one, two or three version numbers.");
192 explicit operator std::string() const noexcept {
1119 {
"General",
"Minimum_Nonempty_Ensembles",
"Maximum_Ensembles_Run"},
1132 {
"General",
"Minimum_Nonempty_Ensembles",
"Number"}, {
"1.3"}};
1163 {
"General",
"Delta_Time"}, 1.0, {
"0.50"}};
1186 {
"General",
"Derivatives_Mode"},
1203 {
"General",
"Discrete_Weight"}, 1. / 3, {
"2.1"}};
1233 {
"General",
"Ensembles"}, 1, {
"2.1"}};
1251 {
"General",
"Expansion_Rate"}, 0.1, {
"1.1"}};
1280 {
"General",
"Field_Derivatives_Mode"},
1295 {
"General",
"Gauss_Cutoff_In_Sigma"}, 4.0, {
"0.80"}};
1308 {
"General",
"Gaussian_Sigma"}, 1.0, {
"0.60"}};
1340 {
"General",
"Rest_Frame_Density_Derivatives_Mode"},
1429 {
"General",
"Testparticles"}, 1, {
"0.50"}};
1466 {
"General",
"Triangular_Range"}, 2.0, {
"2.1"}};
1480 {
"General",
"Use_Grid"},
true, {
"0.80"}};
1522 {
"Logging",
"Collider"}, {
"0.30"}};
1534 {
"Logging",
"Configuration"}, {
"3.0"}};
1546 {
"Logging",
"Experiment"}, {
"0.50"}};
1558 {
"Logging",
"GrandcanThermalizer"}, {
"1.2"}};
1570 {
"Logging",
"InitialConditions"}, {
"1.8"}};
1618 {
"Logging",
"Potentials"}, {
"3.1"}};
1630 {
"Logging",
"RootSolver"}, {
"3.1"}};
1681 {
"Logging",
"CrossSections"}, {
"1.3"}};
1693 {
"Logging",
"DecayModes"}, {
"0.50"}};
1717 {
"Logging",
"Distributions"}, {
"0.50"}};
1729 {
"Logging",
"FindScatter"}, {
"0.50"}};
1765 {
"Logging",
"HyperSurfaceCrossing"}, {
"1.7"}};
1777 {
"Logging",
"InputParser"}, {
"0.50"}};
1813 {
"Logging",
"ParticleType"}, {
"0.50"}};
1825 {
"Logging",
"PauliBlocking"}, {
"0.7.1"}};
1837 {
"Logging",
"Propagation"}, {
"0.7.1"}};
1861 {
"Logging",
"Resonances"}, {
"0.50"}};
1873 {
"Logging",
"ScatterAction"}, {
"0.50"}};
1886 {
"Logging",
"ScatterActionMulti"}, {
"2.0"}};
1932 {
"Collision_Term",
"Additional_Elastic_Cross_Section"}, 0.0, {
"2.0"}};
1978 {
"Collision_Term",
"Collision_Criterion"},
1995 {
"Collision_Term",
"Cross_Section_Scaling"}, 1.0, {
"2.0"}};
2010 {
"Collision_Term",
"Elastic_Cross_Section"}, -1.0, {
"1.2"}};
2028 {
"Collision_Term",
"Elastic_NN_Cutoff_Sqrts"}, 1.98, {
"1.0"}};
2060 {
"Collision_Term",
"Total_Cross_Section_Strategy"},
2094 {
"Collision_Term",
"Pseudoresonance"},
2111 {
"Collision_Term",
"Fixed_Min_Cell_Length"}, 2.5, {
"2.1"}};
2124 {
"Collision_Term",
"Force_Decays_At_End"},
true, {
"0.60"}};
2148 {
"Collision_Term",
"Include_Weak_And_EM_Decays_At_The_End"},
2164 {
"Collision_Term",
"Decay_Initial_Particles"},
true, {
"3.0"}};
2200 {
"Collision_Term",
"Included_2to2"},
2214 {
"Collision_Term",
"Isotropic"},
false, {
"0.7.1"}};
2236 {
"Collision_Term",
"Maximum_Cross_Section"}, {
"2.0"}};
2282 {
"Collision_Term",
"Multi_Particle_Reactions"},
2322 {
"Collision_Term",
"No_Collisions"},
false, {
"1.3"}};
2338 {
"Collision_Term",
"Only_Warn_For_High_Probability"},
false, {
"3.0"}};
2362 {
"Collision_Term",
"Resonance_Lifetime_Modifier"}, 1.0, {
"1.8"}};
2406 {
"Collision_Term",
"Strings_with_Probability"},
true, {
"1.3"}};
2418 {
"Collision_Term",
"Two_to_One"},
true, {
"0.85"}};
2448 {
"Collision_Term",
"Use_AQM"},
true, {
"1.3"}};
2460 {
"Collision_Term",
"Pauli_Blocking",
"Gaussian_Cutoff"}, 2.2, {
"0.7.1"}};
2473 {
"Collision_Term",
"Pauli_Blocking",
"Momentum_Averaging_Radius"},
2487 {
"Collision_Term",
"Pauli_Blocking",
"Spatial_Averaging_Radius"},
2501 {
"Collision_Term",
"String_Transition",
"KN_Offset"}, 15.15, {
"3.0"}};
2516 {
"Collision_Term",
"String_Transition",
"PiPi_Offset"}, 1.12, {
"3.0"}};
2529 {
"Collision_Term",
"String_Transition",
"Sqrts_Lower"}, 0.9, {
"3.0"}};
2547 {
"Collision_Term",
"String_Transition",
"Sqrts_Range_NN"},
2548 std::make_pair(3.5, 4.5),
2564 {
"Collision_Term",
"String_Transition",
"Sqrts_Range_Npi"},
2565 std::make_pair(1.9, 2.2),
2580 {
"Collision_Term",
"String_Transition",
"Sqrts_Range_Width"},
2595 {
"Collision_Term",
"String_Parameters",
"Diquark_Supp"}, 0.036, {
"1.3"}};
2608 {
"Collision_Term",
"String_Parameters",
"Form_Time_Factor"},
2622 {
"Collision_Term",
"String_Parameters",
"Formation_Time"}, 1.0, {
"1.0"}};
2635 {
"Collision_Term",
"String_Parameters",
"Gluon_Beta"}, 0.5, {
"1.3"}};
2649 {
"Collision_Term",
"String_Parameters",
"Gluon_Pmin"}, 0.001, {
"1.3"}};
2663 {
"Collision_Term",
"String_Parameters",
"Mass_Dependent_Formation_Times"},
2678 {
"Collision_Term",
"String_Parameters",
"Quark_Alpha"}, 2.0, {
"1.3"}};
2691 {
"Collision_Term",
"String_Parameters",
"Quark_Beta"}, 7.0, {
"1.3"}};
2706 {
"Collision_Term",
"String_Parameters",
"Popcorn_Rate"}, 0.15, {
"1.6"}};
2722 {
"Collision_Term",
"String_Parameters",
"Power_Particle_Formation"},
2737 {
"Collision_Term",
"String_Parameters",
"Prob_proton_to_d_uu"},
2752 {
"Collision_Term",
"String_Parameters",
"Separate_Fragment_Baryon"},
2772 {
"Collision_Term",
"String_Parameters",
"Sigma_Perp"}, 0.42, {
"1.3"}};
2790 {
"Collision_Term",
"String_Parameters",
"Strange_Supp"}, 0.16, {
"1.3"}};
2803 {
"Collision_Term",
"String_Parameters",
"String_Sigma_T"}, 0.5, {
"1.3"}};
2818 {
"Collision_Term",
"String_Parameters",
"String_Tension"}, 1.0, {
"1.3"}};
2831 {
"Collision_Term",
"String_Parameters",
"StringZ_A"}, 2.0, {
"1.3"}};
2845 {
"Collision_Term",
"String_Parameters",
"StringZ_A_Leading"},
2860 {
"Collision_Term",
"String_Parameters",
"StringZ_B"}, 0.55, {
"1.3"}};
2875 {
"Collision_Term",
"String_Parameters",
"StringZ_B_Leading"},
2894 {
"Collision_Term",
"String_Parameters",
"Use_Monash_Tune"},
2911 {
"Collision_Term",
"Dileptons",
"Decays"},
false, {
"0.50"}};
2923 {
"Collision_Term",
"Photons",
"2to2_Scatterings"},
false, {
"1.8"}};
2935 {
"Collision_Term",
"Photons",
"Bremsstrahlung"},
false, {
"1.8"}};
2948 {
"Collision_Term",
"Photons",
"Fractional_Photons"}, {
"1.8"}};
2967 {
"Modi",
"Collider",
"E_Kin"}, {
"0.50"}};
2983 {
"Modi",
"Collider",
"E_Tot"}, {
"2.0.2"}};
3000 {
"Modi",
"Collider",
"P_Lab"}, {
"0.50"}};
3015 {
"Modi",
"Collider",
"Sqrtsnn"}, {
"0.50"}};
3039 {
"Modi",
"Collider",
"Calculation_Frame"},
3055 {
"Modi",
"Collider",
"Collisions_Within_Nucleus"},
false, {
"1.0"}};
3087 {
"Modi",
"Collider",
"Initial_Distance"}, 2.0, {
"0.50"}};
3108 {
"Modi",
"Collider",
"Projectile",
"Diffusiveness"}, {
"0.90"}};
3113 {
"Modi",
"Collider",
"Target",
"Diffusiveness"}, {
"0.90"}};
3132 {
"Modi",
"Collider",
"Projectile",
"Particles"}, {
"0.50"}};
3138 {
"Modi",
"Collider",
"Target",
"Particles"}, {
"0.50"}};
3158 {
"Modi",
"Collider",
"Projectile",
"Radius"}, {
"0.50"}};
3163 {
"Modi",
"Collider",
"Target",
"Radius"}, {
"0.50"}};
3179 {
"Modi",
"Collider",
"Projectile",
"Saturation_Density"}, {
"0.50"}};
3184 {
"Modi",
"Collider",
"Target",
"Saturation_Density"}, {
"0.50"}};
3201 {
"Modi",
"Collider",
"Projectile",
"E_Kin"}, {
"0.50"}};
3206 {
"Modi",
"Collider",
"Target",
"E_Kin"}, {
"0.50"}};
3220 {
"Modi",
"Collider",
"Projectile",
"E_Tot"}, {
"2.0.2"}};
3225 {
"Modi",
"Collider",
"Target",
"E_Tot"}, {
"2.0.2"}};
3247 {
"Modi",
"Collider",
"Projectile",
"P_Lab"}, {
"0.50"}};
3252 {
"Modi",
"Collider",
"Target",
"P_Lab"}, {
"0.50"}};
3272 {
"Modi",
"Collider",
"Projectile",
"Custom",
"File_Directory"},
3279 {
"Modi",
"Collider",
"Target",
"Custom",
"File_Directory"}, {
"1.6"}};
3291 {
"Modi",
"Collider",
"Projectile",
"Custom",
"File_Name"}, {
"1.6"}};
3296 {
"Modi",
"Collider",
"Target",
"Custom",
"File_Name"}, {
"1.6"}};
3332 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Automatic"}, {
"1.5"}};
3337 {
"Modi",
"Collider",
"Target",
"Deformed",
"Automatic"}, {
"1.5"}};
3350 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Beta_2"}, 0.0, {
"1.5"}};
3355 {
"Modi",
"Collider",
"Target",
"Deformed",
"Beta_2"}, 0.0, {
"1.5"}};
3368 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Beta_3"}, 0.0, {
"3.0"}};
3373 {
"Modi",
"Collider",
"Target",
"Deformed",
"Beta_3"}, 0.0, {
"3.0"}};
3386 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Beta_4"}, 0.0, {
"1.5"}};
3391 {
"Modi",
"Collider",
"Target",
"Deformed",
"Beta_4"}, 0.0, {
"1.5"}};
3404 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Gamma"}, 0.0, {
"3.0"}};
3409 {
"Modi",
"Collider",
"Target",
"Deformed",
"Gamma"}, 0.0, {
"3.0"}};
3430 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Orientation",
"Phi"},
3437 {
"Modi",
"Collider",
"Target",
"Deformed",
"Orientation",
"Phi"},
3452 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Orientation",
"Psi"},
3459 {
"Modi",
"Collider",
"Target",
"Deformed",
"Orientation",
"Psi"},
3474 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Orientation",
3483 {
"Modi",
"Collider",
"Target",
"Deformed",
"Orientation",
3499 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Orientation",
3508 {
"Modi",
"Collider",
"Target",
"Deformed",
"Orientation",
"Theta"},
3523 {
"Modi",
"Collider",
"Impact",
"Max"}, 0.0, {
"0.50"}};
3536 {
"Modi",
"Collider",
"Impact",
"Random_Reaction_Plane"},
false, {
"1.8"}};
3549 {
"Modi",
"Collider",
"Impact",
"Range"}, {{0.0, 0.0}}, {
"0.50"}};
3581 {
"Modi",
"Collider",
"Impact",
"Value"}, 0.0, {
"0.50"}};
3597 {
"Modi",
"Collider",
"Impact",
"Values"}, {
"0.80"}};
3611 {
"Modi",
"Collider",
"Impact",
"Yields"}, {
"0.80"}};
3633 {
"Modi",
"Sphere",
"Init_Multiplicities"}, {
"0.50"}};
3645 {
"Modi",
"Sphere",
"Radius"}, {
"0.50"}};
3657 {
"Modi",
"Sphere",
"Start_Time"}, {
"0.50"}};
3669 {
"Modi",
"Sphere",
"Temperature"}, {
"1.5.2"}};
3691 {
"Modi",
"Sphere",
"Account_Resonance_Widths"},
true, {
"1.7"}};
3708 {
"Modi",
"Sphere",
"Add_Radial_Velocity"}, -1.0, {
"2.2"}};
3723 {
"Modi",
"Sphere",
"Baryon_Chemical_Potential"}, 0.0, {
"1.0"}};
3738 {
"Modi",
"Sphere",
"Charge_Chemical_Potential"}, 0.0, {
"2.1"}};
3762 {
"Modi",
"Sphere",
"Initial_Condition"},
3779 {
"Modi",
"Sphere",
"Strange_Chemical_Potential"}, 0.0, {
"1.0"}};
3799 {
"Modi",
"Sphere",
"Use_Thermal_Multiplicities"},
false, {
"1.0"}};
3822 {
"Modi",
"Sphere",
"Jet",
"Jet_Momentum"}, 20.0, {
"1.5.2"}};
3834 {
"Modi",
"Sphere",
"Jet",
"Jet_PDG"}, {
"1.5.2"}};
3874 {
"Modi",
"Box",
"Initial_Condition"}, {
"0.50"}};
3899 {
"Modi",
"Box",
"Start_Time"}, {
"0.50"}};
3911 {
"Modi",
"Box",
"Temperature"}, {
"0.50"}};
3940 {
"Modi",
"Box",
"Account_Resonance_Widths"},
true, {
"1.7"}};
3953 {
"Modi",
"Box",
"Baryon_Chemical_Potential"}, 0.0, {
"1.0"}};
3966 {
"Modi",
"Box",
"Charge_Chemical_Potential"}, 0.0, {
"2.0"}};
3982 {
"Modi",
"Box",
"Equilibration_Time"}, -1.0, {
"1.8"}};
3996 {
"Modi",
"Box",
"Strange_Chemical_Potential"}, 0.0, {
"1.0"}};
4010 {
"Modi",
"Box",
"Use_Thermal_Multiplicities"},
false, {
"1.0"}};
4035 {
"Modi",
"Box",
"Jet",
"Jet_Momentum"}, 20.0, {
"1.7"}};
4048 {
"Modi",
"Box",
"Jet",
"Jet_PDG"}, {
"1.7"}};
4062 {
"Modi",
"List",
"File_Directory"}, {
"0.60"}};
4077 {
"Modi",
"List",
"Filename"}, {
"3.1"}};
4090 {
"Modi",
"List",
"File_Prefix"}, {
"0.60"}};
4107 {
"Modi",
"List",
"Shift_Id"}, 0, {
"0.60"}};
4120 {
"Modi",
"ListBox",
"File_Directory"}, {
"2.1"}};
4133 {
"Modi",
"ListBox",
"Filename"}, {
"3.1"}};
4146 {
"Modi",
"ListBox",
"File_Prefix"}, {
"2.1"}};
4159 {
"Modi",
"ListBox",
"Length"}, {
"2.1"}};
4172 {
"Modi",
"ListBox",
"Shift_Id"}, 0, {
"2.1"}};
4193 {
"Output",
"Density_Type"},
"none", {
"0.60"}};
4208 {
"Output",
"Output_Interval"}, {
"0.50"}};
4230 {
"Output",
"Output_Times"}, {
"1.7"}};
4264 {
"Output",
"Particles",
"Format"}, {}, {
"1.2"}};
4269 {
"Output",
"Collisions",
"Format"}, {}, {
"1.2"}};
4274 {
"Output",
"Dileptons",
"Format"}, {}, {
"0.85"}};
4279 {
"Output",
"Photons",
"Format"}, {}, {
"1.0"}};
4285 {
"Output",
"Initial_Conditions",
"Format"}, {}, {
"1.7"}};
4290 {
"Output",
"Rivet",
"Format"}, {}, {
"2.0.2"}};
4295 {
"Output",
"Coulomb",
"Format"}, {}, {
"2.1"}};
4301 {
"Output",
"Thermodynamics",
"Format"}, {}, {
"1.2"}};
4327 {
"Output",
"Particles",
"Extended"},
false, {
"1.2"}};
4363 {
"Output",
"Collisions",
"Extended"},
false, {
"1.2"}};
4378 {
"Output",
"Collisions",
"Print_Start_End"},
false, {
"0.50"}};
4396 {
"Output",
"Dileptons",
"Extended"},
false, {
"1.2"}};
4414 {
"Output",
"Photons",
"Extended"},
false, {
"1.5"}};
4433 {
"Output",
"Initial_Conditions",
"Extended"},
false, {
"1.7"}};
4446 {
"Output",
"Initial_Conditions",
"Lower_Bound"}, 0.5, {
"1.8"}};
4466 {
"Output",
"Initial_Conditions",
"Proper_Time"}, {
"1.7"}};
4482 {
"Output",
"Initial_Conditions",
"pT_Cut"}, {
"2.2"}};
4499 {
"Output",
"Initial_Conditions",
"Rapidity_Cut"}, {
"2.2"}};
4521 {
"Output",
"Rivet",
"Analyses"}, {
"2.0.2"}};
4534 {
"Output",
"Rivet",
"Cross_Section"}, {
"2.0.2"}};
4548 {
"Output",
"Rivet",
"Ignore_Beams"},
true, {
"2.0.2"}};
4577 {
"Output",
"Rivet",
"Paths"}, {
"2.0.2"}};
4591 {
"Output",
"Rivet",
"Preloads"}, {
"2.0.2"}};
4609 {
"Output",
"Rivet",
"Weights",
"Cap"}, {
"2.0.2"}};
4637 {
"Output",
"Rivet",
"Weights",
"NLO_Smearing"}, {
"2.0.2"}};
4650 {
"Output",
"Rivet",
"Weights",
"No_Multi"}, {
"2.0.2"}};
4663 {
"Output",
"Rivet",
"Weights",
"Nominal"}, {
"2.0.2"}};
4676 {
"Output",
"Rivet",
"Weights",
"Select"}, {
"2.0.2"}};
4722 {
"Output",
"Thermodynamics",
"Only_Participants"},
false, {
"2.1"}};
4735 {
"Output",
"Thermodynamics",
"Position"}, {{0.0, 0.0, 0.0}}, {
"1.0"}};
4763 {
"Output",
"Thermodynamics",
"Quantities"}, {}, {
"1.0"}};
4800 {
"Output",
"Thermodynamics",
"Smearing"},
true, {
"1.0"}};
4859 {
"Lattice",
"Cell_Number"}, {
"0.80"}};
4878 {
"Lattice",
"Origin"}, {
"0.80"}};
4908 {
"Lattice",
"Potentials_Affect_Thresholds"},
false, {
"1.3"}};
4922 {
"Lattice",
"Sizes"}, {
"0.80"}};
4937 {
"Potentials",
"Use_Potentials_Outside_Lattice"},
true, {
"3.1"}};
4949 {
"Potentials",
"Skyrme",
"Skyrme_A"}, {
"0.60"}};
4961 {
"Potentials",
"Skyrme",
"Skyrme_B"}, {
"0.60"}};
4974 {
"Potentials",
"Skyrme",
"Skyrme_Tau"}, {
"0.60"}};
4989 {
"Potentials",
"Symmetry",
"gamma"}, {
"1.7"}};
5001 {
"Potentials",
"Symmetry",
"S_Pot"}, {
"0.60"}};
5013 {
"Potentials",
"VDF",
"Coeffs"}, {
"2.1"}};
5028 {
"Potentials",
"VDF",
"Powers"}, {
"2.1"}};
5040 {
"Potentials",
"VDF",
"Sat_rhoB"}, {
"2.1"}};
5052 {
"Potentials",
"Coulomb",
"R_Cut"}, {
"2.1"}};
5065 {
"Potentials",
"Momentum_Dependence",
"C"}, {
"3.1"}};
5078 {
"Potentials",
"Momentum_Dependence",
"Lambda"}, {
"3.1"}};
5097 {
"Forced_Thermalization",
"Cell_Number"}, {
"1.1"}};
5110 {
"Forced_Thermalization",
"Critical_Edens"}, {
"1.1"}};
5123 {
"Forced_Thermalization",
"Start_Time"}, {
"1.1"}};
5135 {
"Forced_Thermalization",
"Timestep"}, {
"1.1"}};
5181 {
"Forced_Thermalization",
"Lattice_Sizes"}, {
"1.1"}};
5203 {
"Forced_Thermalization",
"Microcanonical"},
false, {
"1.7"}};
5207 std::reference_wrapper<const Key<bool>>,
5208 std::reference_wrapper<const Key<int>>,
5209 std::reference_wrapper<const Key<double>>,
5210 std::reference_wrapper<const Key<std::string>>,
5211 std::reference_wrapper<const Key<std::array<int, 3>>>,
5212 std::reference_wrapper<const Key<std::array<double, 2>>>,
5213 std::reference_wrapper<const Key<std::array<double, 3>>>,
5214 std::reference_wrapper<const Key<std::pair<double, double>>>,
5215 std::reference_wrapper<const Key<std::vector<double>>>,
5216 std::reference_wrapper<const Key<std::vector<std::string>>>,
5217 std::reference_wrapper<const Key<std::set<ThermodynamicQuantity>>>,
5218 std::reference_wrapper<const Key<std::map<PdgCode, int>>>,
5219 std::reference_wrapper<const Key<std::map<std::string, std::string>>>,
5220 std::reference_wrapper<const Key<einhard::LogLevel>>,
5221 std::reference_wrapper<const Key<BoxInitialCondition>>,
5222 std::reference_wrapper<const Key<CalculationFrame>>,
5223 std::reference_wrapper<const Key<CollisionCriterion>>,
5224 std::reference_wrapper<const Key<DensityType>>,
5225 std::reference_wrapper<const Key<DerivativesMode>>,
5226 std::reference_wrapper<const Key<ExpansionMode>>,
5227 std::reference_wrapper<const Key<FermiMotion>>,
5228 std::reference_wrapper<const Key<FieldDerivativesMode>>,
5229 std::reference_wrapper<const Key<MultiParticleReactionsBitSet>>,
5230 std::reference_wrapper<const Key<NNbarTreatment>>,
5231 std::reference_wrapper<const Key<OutputOnlyFinal>>,
5232 std::reference_wrapper<const Key<PdgCode>>,
5233 std::reference_wrapper<const Key<PseudoResonance>>,
5234 std::reference_wrapper<const Key<ReactionsBitSet>>,
5235 std::reference_wrapper<const Key<RestFrameDensityDerivativesMode>>,
5236 std::reference_wrapper<const Key<Sampling>>,
5237 std::reference_wrapper<const Key<SmearingMode>>,
5238 std::reference_wrapper<const Key<SphereInitialCondition>>,
5239 std::reference_wrapper<const Key<ThermalizationAlgorithm>>,
5240 std::reference_wrapper<const Key<TimeStepMode>>,
5241 std::reference_wrapper<const Key<TotalCrossSectionStrategy>>>;
5244 inline static const std::vector<key_references_variant>
list = {
Object to store a YAML input file key together with metadata associated to it.
Key(const std::initializer_list< std::string_view > &labels, const std::optional< default_type > &value, const std::initializer_list< std::string_view > &versions)
Construct a new Key object with default value.
std::optional< Version > removed_in_
SMASH version in which the key has been removed, if any.
bool is_allowed() const noexcept
Get whether the key is still allowed or not.
Key(const std::initializer_list< std::string_view > &labels, const std::initializer_list< std::string_view > &versions)
Construct a new Key object without default value.
bool has_same_labels(const KeyLabels &labels) const noexcept
Check if given labels are the same as those of this object.
Version deprecated_in() const
Get the SMASH version in which the key has been deprecated.
std::optional< Version > deprecated_in_
SMASH version in which the key has been deprecated, if any.
Version removed_in() const
Get the SMASH version in which the key has been removed.
bool is_deprecated() const noexcept
Get whether the key is deprecated or not.
std::optional< default_type > default_
Key default value, if any.
default_type default_value() const
Get the default value of the key.
const KeyLabels & labels() const
Method to access the Key labels.
default_type type
Let the clients of this class have access to the key type.
Version introduced_in_
SMASH version in which the key has been introduced.
KeyLabels labels_
The label(s) identifying the key in the YAML input file.
Version introduced_in() const noexcept
Get the SMASH version in which the key has been introduced.
@ Off
Don't use fermi motion.
std::bitset< 10 > ReactionsBitSet
Container for the 2 to 2 reactions in the code.
@ Strings
Use string fragmentation.
@ Fixed
Use fixed time step.
@ TopDownMeasured
Mix the two above, using the parametrizations only for measured processes, and summing up partials fo...
@ Quadratic
Sample from areal / quadratic distribution.
std::bitset< 4 > MultiParticleReactionsBitSet
Container for the n to m reactions in the code.
@ Covariant
Covariant Criterion.
@ ThermalMomentaBoltzmann
A thermalized ensemble is generated, with momenta sampled from a Maxwell-Boltzmann distribution.
@ LargestFromUnstable
Heaviest possible resonance from processes with at least one resonance in the incoming particles.
@ Yes
Print only final-state particles.
std::vector< std::string > KeyLabels
Descriptive alias for storing key labels, i.e.
std::string quote(const std::string &s)
Add quotes around string.
std::string join(const std::vector< std::string > &v, const std::string &delim)
Join strings using delimiter.
std::string Version
Descriptive alias for storing SMASH versions associated to keys metadata.
std::variant< std::reference_wrapper< const Key< bool > >, std::reference_wrapper< const Key< int > >, std::reference_wrapper< const Key< double > >, std::reference_wrapper< const Key< std::string > >, std::reference_wrapper< const Key< std::array< int, 3 > >>, std::reference_wrapper< const Key< std::array< double, 2 > >>, std::reference_wrapper< const Key< std::array< double, 3 > >>, std::reference_wrapper< const Key< std::pair< double, double > >>, std::reference_wrapper< const Key< std::vector< double > >>, std::reference_wrapper< const Key< std::vector< std::string > >>, std::reference_wrapper< const Key< std::set< ThermodynamicQuantity > >>, std::reference_wrapper< const Key< std::map< PdgCode, int > >>, std::reference_wrapper< const Key< std::map< std::string, std::string > >>, std::reference_wrapper< const Key< einhard::LogLevel > >, std::reference_wrapper< const Key< BoxInitialCondition > >, std::reference_wrapper< const Key< CalculationFrame > >, std::reference_wrapper< const Key< CollisionCriterion > >, std::reference_wrapper< const Key< DensityType > >, std::reference_wrapper< const Key< DerivativesMode > >, std::reference_wrapper< const Key< ExpansionMode > >, std::reference_wrapper< const Key< FermiMotion > >, std::reference_wrapper< const Key< FieldDerivativesMode > >, std::reference_wrapper< const Key< MultiParticleReactionsBitSet > >, std::reference_wrapper< const Key< NNbarTreatment > >, std::reference_wrapper< const Key< OutputOnlyFinal > >, std::reference_wrapper< const Key< PdgCode > >, std::reference_wrapper< const Key< PseudoResonance > >, std::reference_wrapper< const Key< ReactionsBitSet > >, std::reference_wrapper< const Key< RestFrameDensityDerivativesMode > >, std::reference_wrapper< const Key< Sampling > >, std::reference_wrapper< const Key< SmearingMode > >, std::reference_wrapper< const Key< SphereInitialCondition > >, std::reference_wrapper< const Key< ThermalizationAlgorithm > >, std::reference_wrapper< const Key< TimeStepMode > >, std::reference_wrapper< const Key< TotalCrossSectionStrategy > >> key_references_variant
Alias for the type to be used in the list of keys.
Thrown when too few or too many versions are passed to the constructor.