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 {
1047 {
"General",
"Minimum_Nonempty_Ensembles",
"Maximum_Ensembles_Run"},
1060 {
"General",
"Minimum_Nonempty_Ensembles",
"Number"}, {
"1.0"}};
1091 {
"General",
"Delta_Time"}, 1.0, {
"1.0"}};
1114 {
"General",
"Derivatives_Mode"},
1131 {
"General",
"Discrete_Weight"}, 1. / 3, {
"1.0"}};
1161 {
"General",
"Ensembles"}, 1, {
"1.0"}};
1179 {
"General",
"Expansion_Rate"}, 0.1, {
"1.0"}};
1208 {
"General",
"Field_Derivatives_Mode"},
1223 {
"General",
"Gauss_Cutoff_In_Sigma"}, 4.0, {
"1.0"}};
1236 {
"General",
"Gaussian_Sigma"}, 1.0, {
"1.0"}};
1268 {
"General",
"Rest_Frame_Density_Derivatives_Mode"},
1357 {
"General",
"Testparticles"}, 1, {
"1.0"}};
1394 {
"General",
"Triangular_Range"}, 2.0, {
"1.0"}};
1408 {
"General",
"Use_Grid"},
true, {
"1.0"}};
1450 {
"Logging",
"Collider"}, {
"1.0"}};
1462 {
"Logging",
"Configuration"}, {
"1.0"}};
1474 {
"Logging",
"Experiment"}, {
"1.0"}};
1486 {
"Logging",
"GrandcanThermalizer"}, {
"1.0"}};
1498 {
"Logging",
"InitialConditions"}, {
"1.0"}};
1585 {
"Logging",
"CrossSections"}, {
"1.0"}};
1597 {
"Logging",
"DecayModes"}, {
"1.0"}};
1621 {
"Logging",
"Distributions"}, {
"1.0"}};
1633 {
"Logging",
"FindScatter"}, {
"1.0"}};
1669 {
"Logging",
"HyperSurfaceCrossing"}, {
"1.0"}};
1681 {
"Logging",
"InputParser"}, {
"1.0"}};
1717 {
"Logging",
"ParticleType"}, {
"1.0"}};
1729 {
"Logging",
"PauliBlocking"}, {
"1.0"}};
1741 {
"Logging",
"Propagation"}, {
"1.0"}};
1765 {
"Logging",
"Resonances"}, {
"1.0"}};
1777 {
"Logging",
"ScatterAction"}, {
"1.0"}};
1790 {
"Logging",
"ScatterActionMulti"}, {
"1.0"}};
1836 {
"Collision_Term",
"Additional_Elastic_Cross_Section"}, 0.0, {
"1.0"}};
1882 {
"Collision_Term",
"Collision_Criterion"},
1899 {
"Collision_Term",
"Cross_Section_Scaling"}, 1.0, {
"1.0"}};
1914 {
"Collision_Term",
"Elastic_Cross_Section"}, -1.0, {
"1.0"}};
1932 {
"Collision_Term",
"Elastic_NN_Cutoff_Sqrts"}, 1.98, {
"1.0"}};
1947 {
"Collision_Term",
"Fixed_Min_Cell_Length"}, 2.5, {
"1.0"}};
1960 {
"Collision_Term",
"Force_Decays_At_End"},
true, {
"1.0"}};
1978 {
"Collision_Term",
"Include_Weak_And_EM_Decays_At_The_End"},
2012 {
"Collision_Term",
"Included_2to2"},
2026 {
"Collision_Term",
"Isotropic"},
false, {
"1.0"}};
2048 {
"Collision_Term",
"Maximum_Cross_Section"}, {
"1.0"}};
2094 {
"Collision_Term",
"Multi_Particle_Reactions"},
2134 {
"Collision_Term",
"No_Collisions"},
false, {
"1.0"}};
2150 {
"Collision_Term",
"Only_Warn_For_High_Probability"},
false, {
"1.0"}};
2174 {
"Collision_Term",
"Resonance_Lifetime_Modifier"}, 1.0, {
"1.0"}};
2218 {
"Collision_Term",
"Strings_with_Probability"},
true, {
"1.0"}};
2230 {
"Collision_Term",
"Two_to_One"},
true, {
"1.0"}};
2260 {
"Collision_Term",
"Use_AQM"},
true, {
"1.0"}};
2272 {
"Collision_Term",
"Pauli_Blocking",
"Gaussian_Cutoff"}, 2.2, {
"1.0"}};
2285 {
"Collision_Term",
"Pauli_Blocking",
"Momentum_Averaging_Radius"},
2299 {
"Collision_Term",
"Pauli_Blocking",
"Spatial_Averaging_Radius"},
2313 {
"Collision_Term",
"String_Transition",
"KN_Offset"}, 15.15, {
"3.0"}};
2328 {
"Collision_Term",
"String_Transition",
"PiPi_Offset"}, 1.12, {
"3.0"}};
2341 {
"Collision_Term",
"String_Transition",
"Sqrts_Lower"}, 0.9, {
"3.0"}};
2359 {
"Collision_Term",
"String_Transition",
"Sqrts_Range_NN"},
2360 std::make_pair(3.5, 4.5),
2376 {
"Collision_Term",
"String_Transition",
"Sqrts_Range_Npi"},
2377 std::make_pair(1.9, 2.2),
2392 {
"Collision_Term",
"String_Transition",
"Sqrts_Range_Width"},
2407 {
"Collision_Term",
"String_Parameters",
"Diquark_Supp"}, 0.036, {
"1.0"}};
2420 {
"Collision_Term",
"String_Parameters",
"Form_Time_Factor"},
2434 {
"Collision_Term",
"String_Parameters",
"Formation_Time"}, 1.0, {
"1.0"}};
2447 {
"Collision_Term",
"String_Parameters",
"Gluon_Beta"}, 0.5, {
"1.0"}};
2461 {
"Collision_Term",
"String_Parameters",
"Gluon_Pmin"}, 0.001, {
"1.0"}};
2475 {
"Collision_Term",
"String_Parameters",
"Mass_Dependent_Formation_Times"},
2490 {
"Collision_Term",
"String_Parameters",
"Quark_Alpha"}, 2.0, {
"1.0"}};
2503 {
"Collision_Term",
"String_Parameters",
"Quark_Beta"}, 7.0, {
"1.0"}};
2518 {
"Collision_Term",
"String_Parameters",
"Popcorn_Rate"}, 0.15, {
"1.0"}};
2534 {
"Collision_Term",
"String_Parameters",
"Power_Particle_Formation"},
2549 {
"Collision_Term",
"String_Parameters",
"Prob_proton_to_d_uu"},
2564 {
"Collision_Term",
"String_Parameters",
"Separate_Fragment_Baryon"},
2584 {
"Collision_Term",
"String_Parameters",
"Sigma_Perp"}, 0.42, {
"1.0"}};
2602 {
"Collision_Term",
"String_Parameters",
"Strange_Supp"}, 0.16, {
"1.0"}};
2615 {
"Collision_Term",
"String_Parameters",
"String_Sigma_T"}, 0.5, {
"1.0"}};
2630 {
"Collision_Term",
"String_Parameters",
"String_Tension"}, 1.0, {
"1.0"}};
2643 {
"Collision_Term",
"String_Parameters",
"StringZ_A"}, 2.0, {
"1.0"}};
2657 {
"Collision_Term",
"String_Parameters",
"StringZ_A_Leading"},
2672 {
"Collision_Term",
"String_Parameters",
"StringZ_B"}, 0.55, {
"1.0"}};
2687 {
"Collision_Term",
"String_Parameters",
"StringZ_B_Leading"},
2706 {
"Collision_Term",
"String_Parameters",
"Use_Monash_Tune"},
2723 {
"Collision_Term",
"Dileptons",
"Decays"},
false, {
"1.0"}};
2735 {
"Collision_Term",
"Photons",
"2to2_Scatterings"},
false, {
"1.0"}};
2747 {
"Collision_Term",
"Photons",
"Bremsstrahlung"},
false, {
"1.0"}};
2760 {
"Collision_Term",
"Photons",
"Fractional_Photons"}, {
"1.0"}};
2779 {
"Modi",
"Collider",
"E_Kin"}, {
"1.0"}};
2795 {
"Modi",
"Collider",
"E_Tot"}, {
"1.0"}};
2812 {
"Modi",
"Collider",
"P_Lab"}, {
"1.0"}};
2827 {
"Modi",
"Collider",
"Sqrtsnn"}, {
"1.0"}};
2851 {
"Modi",
"Collider",
"Calculation_Frame"},
2867 {
"Modi",
"Collider",
"Collisions_Within_Nucleus"},
false, {
"1.0"}};
2899 {
"Modi",
"Collider",
"Initial_Distance"}, 2.0, {
"1.0"}};
2920 {
"Modi",
"Collider",
"Projectile",
"Diffusiveness"}, {
"1.0"}};
2925 {
"Modi",
"Collider",
"Target",
"Diffusiveness"}, {
"1.0"}};
2944 {
"Modi",
"Collider",
"Projectile",
"Particles"}, {
"1.0"}};
2950 {
"Modi",
"Collider",
"Target",
"Particles"}, {
"1.0"}};
2970 {
"Modi",
"Collider",
"Projectile",
"Radius"}, {
"1.0"}};
2975 {
"Modi",
"Collider",
"Target",
"Radius"}, {
"1.0"}};
2991 {
"Modi",
"Collider",
"Projectile",
"Saturation_Density"}, {
"1.0"}};
2996 {
"Modi",
"Collider",
"Target",
"Saturation_Density"}, {
"1.0"}};
3013 {
"Modi",
"Collider",
"Projectile",
"E_Kin"}, {
"1.0"}};
3018 {
"Modi",
"Collider",
"Target",
"E_Kin"}, {
"1.0"}};
3032 {
"Modi",
"Collider",
"Projectile",
"E_Tot"}, {
"1.0"}};
3037 {
"Modi",
"Collider",
"Target",
"E_Tot"}, {
"1.0"}};
3059 {
"Modi",
"Collider",
"Projectile",
"P_Lab"}, {
"1.0"}};
3064 {
"Modi",
"Collider",
"Target",
"P_Lab"}, {
"1.0"}};
3084 {
"Modi",
"Collider",
"Projectile",
"Custom",
"File_Directory"},
3091 {
"Modi",
"Collider",
"Target",
"Custom",
"File_Directory"}, {
"1.0"}};
3103 {
"Modi",
"Collider",
"Projectile",
"Custom",
"File_Name"}, {
"1.0"}};
3108 {
"Modi",
"Collider",
"Target",
"Custom",
"File_Name"}, {
"1.0"}};
3144 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Automatic"}, {
"1.0"}};
3149 {
"Modi",
"Collider",
"Target",
"Deformed",
"Automatic"}, {
"1.0"}};
3162 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Beta_2"}, 0.0, {
"1.0"}};
3167 {
"Modi",
"Collider",
"Target",
"Deformed",
"Beta_2"}, 0.0, {
"1.0"}};
3180 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Beta_3"}, 0.0, {
"1.0"}};
3185 {
"Modi",
"Collider",
"Target",
"Deformed",
"Beta_3"}, 0.0, {
"1.0"}};
3198 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Beta_4"}, 0.0, {
"1.0"}};
3203 {
"Modi",
"Collider",
"Target",
"Deformed",
"Beta_4"}, 0.0, {
"1.0"}};
3216 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Gamma"}, 0.0, {
"1.0"}};
3221 {
"Modi",
"Collider",
"Target",
"Deformed",
"Gamma"}, 0.0, {
"1.0"}};
3242 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Orientation",
"Phi"},
3249 {
"Modi",
"Collider",
"Target",
"Deformed",
"Orientation",
"Phi"},
3264 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Orientation",
"Psi"},
3271 {
"Modi",
"Collider",
"Target",
"Deformed",
"Orientation",
"Psi"},
3286 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Orientation",
3295 {
"Modi",
"Collider",
"Target",
"Deformed",
"Orientation",
3311 {
"Modi",
"Collider",
"Projectile",
"Deformed",
"Orientation",
3320 {
"Modi",
"Collider",
"Target",
"Deformed",
"Orientation",
"Theta"},
3335 {
"Modi",
"Collider",
"Impact",
"Max"}, 0.0, {
"1.0"}};
3348 {
"Modi",
"Collider",
"Impact",
"Random_Reaction_Plane"},
false, {
"1.0"}};
3361 {
"Modi",
"Collider",
"Impact",
"Range"}, {{0.0, 0.0}}, {
"1.0"}};
3393 {
"Modi",
"Collider",
"Impact",
"Value"}, 0.0, {
"1.0"}};
3409 {
"Modi",
"Collider",
"Impact",
"Values"}, {
"1.0"}};
3423 {
"Modi",
"Collider",
"Impact",
"Yields"}, {
"1.0"}};
3445 {
"Modi",
"Sphere",
"Init_Multiplicities"}, {
"1.0"}};
3457 {
"Modi",
"Sphere",
"Radius"}, {
"1.0"}};
3469 {
"Modi",
"Sphere",
"Start_Time"}, {
"1.0"}};
3481 {
"Modi",
"Sphere",
"Temperature"}, {
"1.0"}};
3503 {
"Modi",
"Sphere",
"Account_Resonance_Widths"},
true, {
"1.0"}};
3520 {
"Modi",
"Sphere",
"Add_Radial_Velocity"}, -1.0, {
"1.0"}};
3535 {
"Modi",
"Sphere",
"Baryon_Chemical_Potential"}, 0.0, {
"1.0"}};
3550 {
"Modi",
"Sphere",
"Charge_Chemical_Potential"}, 0.0, {
"1.0"}};
3574 {
"Modi",
"Sphere",
"Initial_Condition"},
3591 {
"Modi",
"Sphere",
"Strange_Chemical_Potential"}, 0.0, {
"1.0"}};
3611 {
"Modi",
"Sphere",
"Use_Thermal_Multiplicities"},
false, {
"1.0"}};
3634 {
"Modi",
"Sphere",
"Jet",
"Jet_Momentum"}, 20.0, {
"1.0"}};
3646 {
"Modi",
"Sphere",
"Jet",
"Jet_PDG"}, {
"1.0"}};
3686 {
"Modi",
"Box",
"Initial_Condition"}, {
"1.0"}};
3711 {
"Modi",
"Box",
"Start_Time"}, {
"1.0"}};
3723 {
"Modi",
"Box",
"Temperature"}, {
"1.0"}};
3752 {
"Modi",
"Box",
"Account_Resonance_Widths"},
true, {
"1.0"}};
3765 {
"Modi",
"Box",
"Baryon_Chemical_Potential"}, 0.0, {
"1.0"}};
3778 {
"Modi",
"Box",
"Charge_Chemical_Potential"}, 0.0, {
"1.0"}};
3794 {
"Modi",
"Box",
"Equilibration_Time"}, -1.0, {
"1.0"}};
3808 {
"Modi",
"Box",
"Strange_Chemical_Potential"}, 0.0, {
"1.0"}};
3822 {
"Modi",
"Box",
"Use_Thermal_Multiplicities"},
false, {
"1.0"}};
3847 {
"Modi",
"Box",
"Jet",
"Jet_Momentum"}, 20.0, {
"1.0"}};
3860 {
"Modi",
"Box",
"Jet",
"Jet_PDG"}, {
"1.0"}};
3874 {
"Modi",
"List",
"File_Directory"}, {
"1.0"}};
3886 {
"Modi",
"List",
"File_Prefix"}, {
"1.0"}};
3912 {
"Modi",
"ListBox",
"File_Directory"}, {
"1.0"}};
3925 {
"Modi",
"ListBox",
"File_Prefix"}, {
"1.0"}};
3938 {
"Modi",
"ListBox",
"Length"}, {
"1.0"}};
3951 {
"Modi",
"ListBox",
"Shift_Id"}, {
"1.0"}};
3972 {
"Output",
"Density_Type"},
"none", {
"1.0"}};
3987 {
"Output",
"Output_Interval"}, {
"1.0"}};
4009 {
"Output",
"Output_Times"}, {
"1.0"}};
4043 {
"Output",
"Particles",
"Format"}, {}, {
"1.0"}};
4048 {
"Output",
"Collisions",
"Format"}, {}, {
"1.0"}};
4053 {
"Output",
"Dileptons",
"Format"}, {}, {
"1.0"}};
4058 {
"Output",
"Photons",
"Format"}, {}, {
"1.0"}};
4064 {
"Output",
"Initial_Conditions",
"Format"}, {}, {
"1.0"}};
4069 {
"Output",
"Rivet",
"Format"}, {}, {
"1.0"}};
4074 {
"Output",
"Coulomb",
"Format"}, {}, {
"1.0"}};
4080 {
"Output",
"Thermodynamics",
"Format"}, {}, {
"1.0"}};
4106 {
"Output",
"Particles",
"Extended"},
false, {
"1.0"}};
4142 {
"Output",
"Collisions",
"Extended"},
false, {
"1.0"}};
4157 {
"Output",
"Collisions",
"Print_Start_End"},
false, {
"1.0"}};
4175 {
"Output",
"Dileptons",
"Extended"},
false, {
"1.0"}};
4193 {
"Output",
"Photons",
"Extended"},
false, {
"1.0"}};
4212 {
"Output",
"Initial_Conditions",
"Extended"},
false, {
"1.0"}};
4225 {
"Output",
"Initial_Conditions",
"Lower_Bound"}, 0.5, {
"1.0"}};
4245 {
"Output",
"Initial_Conditions",
"Proper_Time"}, {
"1.0"}};
4261 {
"Output",
"Initial_Conditions",
"pT_Cut"}, {
"1.0"}};
4278 {
"Output",
"Initial_Conditions",
"Rapidity_Cut"}, {
"1.0"}};
4300 {
"Output",
"Rivet",
"Analyses"}, {
"1.0"}};
4313 {
"Output",
"Rivet",
"Cross_Section"}, {
"1.0"}};
4327 {
"Output",
"Rivet",
"Ignore_Beams"},
true, {
"1.0"}};
4356 {
"Output",
"Rivet",
"Paths"}, {
"1.0"}};
4370 {
"Output",
"Rivet",
"Preloads"}, {
"1.0"}};
4388 {
"Output",
"Rivet",
"Weights",
"Cap"}, {
"1.0"}};
4416 {
"Output",
"Rivet",
"Weights",
"NLO_Smearing"}, {
"1.0"}};
4429 {
"Output",
"Rivet",
"Weights",
"No_Multi"}, {
"1.0"}};
4442 {
"Output",
"Rivet",
"Weights",
"Nominal"}, {
"1.0"}};
4455 {
"Output",
"Rivet",
"Weights",
"Select"}, {
"1.0"}};
4501 {
"Output",
"Thermodynamics",
"Only_Participants"},
false, {
"1.0"}};
4514 {
"Output",
"Thermodynamics",
"Position"}, {{0.0, 0.0, 0.0}}, {
"1.0"}};
4542 {
"Output",
"Thermodynamics",
"Quantities"}, {}, {
"1.0"}};
4579 {
"Output",
"Thermodynamics",
"Smearing"},
true, {
"1.0"}};
4638 {
"Lattice",
"Cell_Number"}, {
"1.0"}};
4657 {
"Lattice",
"Origin"}, {
"1.0"}};
4687 {
"Lattice",
"Potentials_Affect_Thresholds"},
false, {
"1.0"}};
4701 {
"Lattice",
"Sizes"}, {
"1.0"}};
4713 {
"Potentials",
"Skyrme",
"Skyrme_A"}, {
"1.0"}};
4725 {
"Potentials",
"Skyrme",
"Skyrme_B"}, {
"1.0"}};
4738 {
"Potentials",
"Skyrme",
"Skyrme_Tau"}, {
"1.0"}};
4753 {
"Potentials",
"Symmetry",
"gamma"}, {
"1.0"}};
4765 {
"Potentials",
"Symmetry",
"S_Pot"}, {
"1.0"}};
4777 {
"Potentials",
"VDF",
"Coeffs"}, {
"1.0"}};
4792 {
"Potentials",
"VDF",
"Powers"}, {
"1.0"}};
4804 {
"Potentials",
"VDF",
"Sat_rhoB"}, {
"1.0"}};
4816 {
"Potentials",
"Coulomb",
"R_Cut"}, {
"1.0"}};
4835 {
"Forced_Thermalization",
"Cell_Number"}, {
"1.0"}};
4848 {
"Forced_Thermalization",
"Critical_Edens"}, {
"1.0"}};
4861 {
"Forced_Thermalization",
"Start_Time"}, {
"1.0"}};
4873 {
"Forced_Thermalization",
"Timestep"}, {
"1.0"}};
4919 {
"Forced_Thermalization",
"Lattice_Sizes"}, {
"1.0"}};
4941 {
"Forced_Thermalization",
"Microcanonical"},
false, {
"1.0"}};
4945 std::reference_wrapper<const Key<bool>>,
4946 std::reference_wrapper<const Key<int>>,
4947 std::reference_wrapper<const Key<double>>,
4948 std::reference_wrapper<const Key<std::string>>,
4949 std::reference_wrapper<const Key<std::array<int, 3>>>,
4950 std::reference_wrapper<const Key<std::array<double, 2>>>,
4951 std::reference_wrapper<const Key<std::array<double, 3>>>,
4952 std::reference_wrapper<const Key<std::pair<double, double>>>,
4953 std::reference_wrapper<const Key<std::vector<double>>>,
4954 std::reference_wrapper<const Key<std::vector<std::string>>>,
4955 std::reference_wrapper<const Key<std::set<ThermodynamicQuantity>>>,
4956 std::reference_wrapper<const Key<std::map<PdgCode, int>>>,
4957 std::reference_wrapper<const Key<std::map<std::string, std::string>>>,
4958 std::reference_wrapper<const Key<einhard::LogLevel>>,
4959 std::reference_wrapper<const Key<BoxInitialCondition>>,
4960 std::reference_wrapper<const Key<CalculationFrame>>,
4961 std::reference_wrapper<const Key<CollisionCriterion>>,
4962 std::reference_wrapper<const Key<DensityType>>,
4963 std::reference_wrapper<const Key<DerivativesMode>>,
4964 std::reference_wrapper<const Key<ExpansionMode>>,
4965 std::reference_wrapper<const Key<FermiMotion>>,
4966 std::reference_wrapper<const Key<FieldDerivativesMode>>,
4967 std::reference_wrapper<const Key<MultiParticleReactionsBitSet>>,
4968 std::reference_wrapper<const Key<NNbarTreatment>>,
4969 std::reference_wrapper<const Key<OutputOnlyFinal>>,
4970 std::reference_wrapper<const Key<PdgCode>>,
4971 std::reference_wrapper<const Key<ReactionsBitSet>>,
4972 std::reference_wrapper<const Key<RestFrameDensityDerivativesMode>>,
4973 std::reference_wrapper<const Key<Sampling>>,
4974 std::reference_wrapper<const Key<SmearingMode>>,
4975 std::reference_wrapper<const Key<SphereInitialCondition>>,
4976 std::reference_wrapper<const Key<ThermalizationAlgorithm>>,
4977 std::reference_wrapper<const Key<TimeStepMode>>>;
4980 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.
@ Quadratic
Sample from areal / quadratic distribution.
std::bitset< 4 > MultiParticleReactionsBitSet
Container for the n to m reactions in the code.
@ Covariant
Covariant Criterion.
@ ThermalMomentaBoltzmann
@ 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.
Thrown when too few or too many versions are passed to the constructor.