Namespaces | |
anonymous_namespace{configuration.cc} | |
anonymous_namespace{decaymodes.cc} | |
anonymous_namespace{oscaroutput.cc} | |
anonymous_namespace{particletype.cc} | |
anonymous_namespace{smash.cc} | |
decaytree | |
LogArea | |
The namespace where log areas are declared. | |
lowess | |
pdg | |
Constants representing PDG codes. | |
random | |
Namespace random provides functions for random Number Generation. | |
sha256 | |
Test | |
utf8 | |
Classes | |
class | Action |
Action is the base class for a generic process that takes a number of incoming particles and transforms them into any number of outgoing particles. More... | |
class | ActionFinderInterface |
ActionFinderInterface is the abstract base class for all action finders, i.e. More... | |
class | Actions |
The Actions class abstracts the storage and manipulation of actions. More... | |
class | Angles |
Angles provides a common interface for generating directions: i.e., two angles that should be interpreted as azimuthal and polar angles. More... | |
class | Average |
Calculate an average value incrementally. More... | |
class | BinaryOutputBase |
Base class for SMASH binary output. More... | |
class | BinaryOutputCollisions |
Saves SMASH collision history to binary file. More... | |
class | BinaryOutputParticles |
Writes the particle list at specific times to the binary file. More... | |
class | BinaryOutputInitialConditions |
Writes the particles when crossing the hypersurface to the binary file. More... | |
class | BoxModus |
BoxModus: Provides a modus for infinite matter calculations. More... | |
class | BremsstrahlungAction |
BremsAction is a special action which takes two incoming particles and performs a perturbative scattering where a Bremsstrahlung photon is produced. More... | |
class | ChemicalPotentialSolver |
A class which encapsulates a GSL algorithm for finding the effective chemical potential and supporting functions. More... | |
class | I_tot_range |
Range of total isospin for reaction of particle a with particle b. More... | |
class | ClebschGordan |
Class to store and retrieve/calculate Clebsch-Gordan coefficients. More... | |
class | Clock |
Clock tracks the time in the simulation. More... | |
class | UniformClock |
Clock with uniformly spaced time steps. More... | |
class | CustomClock |
Clock with explicitly defined time steps. More... | |
class | ColliderModus |
ColliderModus: Provides a modus for colliding nuclei. More... | |
class | Configuration |
Interface to the SMASH configuration files. More... | |
class | CrossSections |
The cross section class assembels everything that is needed to calculate the cross section and returns a list of all possible reactions for the incoming particles at the given energy with the calculated cross sections. More... | |
class | CrosssectionsPhoton |
class | CrosssectionsPhoton< ComputationMethod::Analytic > |
Class to calculate the cross-section of a meson-meson to meson-photon process. More... | |
struct | Nucleoncustom |
Contains data for one nucleon that is read in from the list. More... | |
class | CustomNucleus |
Inheriting from Nucleus-Class using modified Nucleon configurations. More... | |
class | DecayAction |
DecayAction is a special action which takes one single particle in the initial state and makes it decay into a number of daughter particles (currently two or three). More... | |
class | DecayActionDilepton |
DecayActionDilepton is special action created for particles that can decay into dileptons. More... | |
class | DecayActionsFinder |
A simple decay finder: Just loops through all particles and checks if they can decay during the next timestep. More... | |
class | DecayActionsFinderDilepton |
A dilepton decay finder: Loops through all particles and if they can decay into dileptons, it treats the decays with the shining method. More... | |
class | DecayModes |
The DecayModes class is used to store and update information about decay branches (i.e. More... | |
class | DecayType |
DecayType is the abstract base class for all decay types. More... | |
class | TwoBodyDecay |
TwoBodyDecay represents a decay type with two final-state particles. More... | |
class | TwoBodyDecayStable |
TwoBodyDecayStable represents a decay type with two stable final-state particles. More... | |
class | TwoBodyDecaySemistable |
TwoBodyDecaySemistable represents a decay type with two final-state particles, one of which is stable and the other is unstable. More... | |
class | TwoBodyDecayUnstable |
TwoBodyDecayUnstable represents a decay type with two unstable final-state particles. More... | |
class | TwoBodyDecayDilepton |
TwoBodyDecayDilepton represents a decay with a lepton and its antilepton as the final-state particles. More... | |
class | ThreeBodyDecay |
ThreeBodyDecay represents a decay type with three final-state particles. More... | |
class | ThreeBodyDecayDilepton |
ThreeBodyDecayDilepton represents a decay type with three final-state particles, two of which are leptons. More... | |
class | DeformedNucleus |
DeformedNucleus: Child of nucleus for deformed nuclei. More... | |
class | DensityParameters |
A class to pre-calculate and store parameters relevant for density calculation. More... | |
class | DensityOnLattice |
A class for time-efficient (time-memory trade-off) calculation of density on the lattice. More... | |
class | EnergyMomentumTensor |
The EnergyMomentumTensor class represents a symmetric positive semi-definite energy-momentum tensor \( T^{\mu \nu}\). More... | |
class | ExperimentBase |
Non-template interface to Experiment<Modus>. More... | |
class | Experiment |
The main class, where the simulation of an experiment is executed. More... | |
struct | ExperimentParameters |
Helper structure for Experiment. More... | |
class | FieldsOnLattice |
A class for calculating the fields A^mu associated with the VDF potentials. More... | |
struct | FileDeleter |
FileDeleter is the deleter class for std::unique_ptr of std::FILE. More... | |
class | RenamingFilePtr |
A RAII type to replace std::FILE * . More... | |
class | FileLock |
Guard to create a file lock. More... | |
class | FourVector |
The FourVector class holds relevant values in Minkowski spacetime with (+, −, −, −) metric signature. More... | |
class | DisableFloatTraps |
Guard type that safely disables floating point traps for the scope in which it is placed. More... | |
class | FreeforallAction |
Action class to create any incoming/outgoing particle combination freely. More... | |
class | ThermLatticeNode |
The ThermLatticeNode class is intended to compute thermodynamical quantities in a cell given a set of particles. More... | |
class | GrandCanThermalizer |
The GrandCanThermalizer class implements the following functionality: More... | |
class | GridBase |
Base class for Grid to host common functions that do not depend on the GridOptions parameter. More... | |
class | Grid |
Abstracts a list of cells that partition the particles in the experiment into regions of space that can interact / cannot interact. More... | |
class | EosTable |
A class to hold, compute and access tabulated EoS. More... | |
class | HadronGasEos |
Class to handle the equation of state (EoS) of the hadron gas, consisting of all hadrons included in SMASH. More... | |
class | HepMcInterface |
Base class for output handlers that need the HepMC3 structure. More... | |
class | HepMcOutput |
SMASH output to HepMC file. More... | |
class | HypersurfacecrossingAction |
Hypersurfacecrossingaction is a special action which indicates that a particle has crossed a hypersurface of given proper time. More... | |
class | HyperSurfaceCrossActionsFinder |
Finder for hypersurface crossing actions. More... | |
class | ICOutput |
SMASH output in ASCII format containing initial conditions for hydrodynamic codes. More... | |
class | Key |
Object to store a YAML input file key together with metadata associated to it. More... | |
struct | InputKeys |
A container to keep track of all ever existed input keys. More... | |
struct | Line |
Line consists of a line number and the contents of that line. More... | |
struct | GslWorkspaceDeleter |
A deleter type for std::unique_ptr to be used with gsl_integration_workspace pointers. More... | |
class | Result |
The result type returned from integrations, containing the value and an error. More... | |
class | Integrator |
A C++ interface for numerical integration in one dimension with the GSL CQUAD integration functions. More... | |
struct | Integrand2d |
This is a wrapper for the integrand, so we can pass the limits as well for renormalizing to the unit cube. More... | |
class | Integrator2d |
A C++ interface for numerical integration in two dimensions with the Cuba Cuhre integration function. More... | |
class | InterpolateLinear |
Represent a linear interpolation. More... | |
class | InterpolateDataLinear |
Represent a piecewise linear interpolation. More... | |
class | InterpolateDataSpline |
Represent a cubic spline interpolation. More... | |
class | InterpolateData2DSpline |
Represent a bicubic spline interpolation. More... | |
class | IsoParticleType |
IsoParticleType is a class to represent isospin multiplets. More... | |
class | RectangularLattice |
A container class to hold all the arrays on the lattice and access them. More... | |
class | ListModus |
ListModus: Provides a modus for running SMASH on an external particle list, for example as an afterburner calculation. More... | |
class | ListBoxModus |
ListBox: Provides a modus for running the SMASH Box with an external particle list,. More... | |
struct | FormattingHelper |
class | ModusDefault |
Base class for Modus classes that provides default function implementations. More... | |
class | Nucleus |
A nucleus is a collection of particles that are initialized, before the beginning of the simulation and all have the same velocity. More... | |
class | OscarOutput |
struct | EventInfo |
Structure to contain custom data for output. More... | |
class | OutputInterface |
Abstraction of generic output. More... | |
struct | RivetOutputParameters |
Helper structure for OutputParameters in order to store and hand over Rivet parameters. More... | |
struct | OutputParameters |
Helper structure for Experiment to hold output options and parameters. More... | |
struct | pair_hash |
Hash a pair of integers. More... | |
class | KaonNucleonRatios |
Calculate and store isospin ratios for K N -> K Delta reactions. More... | |
struct | HistoryData |
A structure to hold information about the history of the particle, e.g. More... | |
class | ParticleData |
ParticleData contains the dynamic information of a certain particle. More... | |
struct | PrintParticleListDetailed |
class | Particles |
The Particles class abstracts the storage and manipulation of particles. More... | |
class | ParticleType |
Particle type contains the static properties of a particle species. More... | |
class | ParticleTypePtr |
A pointer-like interface to global references to ParticleType objects. More... | |
class | PauliBlocker |
A class that stores parameters needed for Pauli blocking, tabulates necessary integrals and computes phase-space density. More... | |
class | PdgCode |
PdgCode stores a Particle Data Group Particle Numbering Scheme particle type number. More... | |
class | Potentials |
A class that stores parameters of potentials, calculates potentials and their gradients. More... | |
class | ProcessBranch |
ProcessBranch represents one possible final state of an interaction process. More... | |
class | CollisionBranch |
CollisionBranch is a derivative of ProcessBranch, which is used to represent particular final-state channels in a collision. More... | |
class | DecayBranch |
DecayBranch is a derivative of ProcessBranch, which is used to represent decay channels. More... | |
struct | ExpansionProperties |
Struct containing the type of the metric and the expansion parameter of the metric. More... | |
class | QuantumNumbers |
A container for storing conserved values. More... | |
class | QuantumSampling |
This class: More... | |
class | RivetOutput |
SMASH output to Rivet analyses. More... | |
class | RootOutput |
class | RootSolver1D |
A class used for calculating the root of a one-dimensional equation. More... | |
class | ScatterAction |
ScatterAction is a special action which takes two incoming particles and performs a scattering, producing one or more final-state particles. More... | |
class | ScatterActionMulti |
ScatterActionMulti is a special action which takes any number of incoming particles and performs a scattering with the use of the stochastic criterion, producing one or more final-state particles. More... | |
class | ScatterActionPhoton |
ScatterActionPhoton is a special action which takes two incoming particles and performs a perturbative electromagnetic scattering. More... | |
class | ScatterActionsFinder |
A simple scatter finder: Just loops through all particles and checks each pair for a collision. More... | |
struct | StringTransitionParameters |
Constants related to transition between low and high collision energies. More... | |
struct | ScatterActionsFinderParameters |
Helper structure for ScatterActionsFinder. More... | |
class | SphereModus |
SphereModus: Provides a modus for expanding matter calculations. More... | |
class | StringProcess |
String excitation processes used in SMASH. More... | |
class | Tabulation |
A class for storing a one-dimensional lookup table of floating-point values. More... | |
class | ThermalizationAction |
ThermalizationAction implements forced thermalization as an Action class. More... | |
class | ThermodynamicLatticeOutput |
Writes the thermodynamic quantities at lattice points versus time. More... | |
class | ThermodynamicOutput |
Writes the thermodynamic quantities at a specified point versus time. More... | |
class | ThreeVector |
The ThreeVector class represents a physical three-vector \( \mathbf{x} = (x_1,x_2,x_3)\) with the components \( x_1,x_2,x_3 \). More... | |
class | VtkOutput |
SMASH output in a paraview format, intended for simple visualization. More... | |
class | WallcrossingAction |
WallcrossingAction is a special action which indicates that a particle has crossed a box wall. More... | |
class | WallCrossActionsFinder |
Finder for wall crossing actions, when using peridic boundary conditons. More... | |
struct | NeighborLookup |
A strust containing the informations needed to search the neighboring cell. More... | |
struct | FinalStateCrossSection |
Represent a final-state cross section. More... | |
Typedefs | |
using | SystemTimePoint = std::chrono::time_point< std::chrono::system_clock > |
Type (alias) that is used to store the current time. More... | |
using | SystemClock = std::chrono::system_clock |
Type (alias) used to obtain the current time via SystemClock:Now(). More... | |
using | SystemTimeSpan = SystemClock::duration |
The time duration type (alias) used for measuring run times. More... | |
typedef RectangularLattice< DensityOnLattice > | DensityLattice |
Conveniency typedef for lattice of density. More... | |
typedef RectangularLattice< FieldsOnLattice > | FieldsLattice |
Conveniency typedef for lattice of fields. More... | |
using | FilePtr = std::unique_ptr< std::FILE, FileDeleter > |
A RAII type to replace std::FILE * . More... | |
using | Version = std::string |
Descriptive alias for storing SMASH versions associated to keys metadata. More... | |
using | KeyLabels = std::vector< std::string > |
Descriptive alias for storing key labels, i.e. More... | |
using | Permutation = std::vector< size_t > |
Represent a permutation. More... | |
Enumerations | |
enum class | ComputationMethod { Analytic } |
Calculation method for the cross sections. More... | |
enum class | DensityType { None = 0 , Hadron = 1 , Baryon = 2 , BaryonicIsospin = 3 , Pion = 4 , Isospin3_tot = 5 , Charge = 6 , Strangeness = 7 } |
Allows to choose which kind of density to calculate. More... | |
enum class | HadronClass { Baryon = 0 , Antibaryon = 1 , PositiveSMeson = 2 , NegativeSMeson = 3 , PositiveQZeroSMeson = 4 , NegativeQZeroSMeson = 5 , ZeroQZeroSMeson = 6 } |
Specifier to classify the different hadron species according to their quantum numbers. More... | |
enum class | GridOptions : char { Normal = 0 , PeriodicBoundaries = 1 } |
Identifies the mode of the Grid. More... | |
enum class | CellSizeStrategy : char { Optimal , Largest } |
Indentifies the strategy of determining the cell size. More... | |
enum class | CellNumberLimitation : char { None , ParticleNumber } |
Identifies whether the number of cells should be limited. More... | |
enum class | LatticeUpdate { AtOutput = 0 , EveryTimestep = 1 , EveryFixedInterval = 2 } |
Enumerator option for lattice updates. More... | |
enum | OscarOutputFormat { OscarFormat2013 , OscarFormat2013Extended , OscarFormat1999 } |
Selector for the output format of OscarOutput. More... | |
enum | OscarOutputContents { OscarInteractions = 0x001 , OscarTimesteps = 0x002 , OscarAtEventstart = 0x004 , OscarParticlesAtEventend = 0x008 , OscarParticlesAtEventendIfNotEmpty = 0x010 , OscarParticlesIC = 0x020 } |
Flags for the Contents template parameter of OscarOutput. More... | |
enum class | BelongsTo : uint8_t { Nothing = 0 , Projectile = 1 , Target = 2 } |
enum class | Parity { Pos , Neg } |
Represent the parity of a particle type. More... | |
enum class | WhichDecaymodes { All , Hadronic , Dileptons } |
Decide which decay mode widths are returned in get partical widths. More... | |
enum class | ProcessType { None = 0 , Elastic = 1 , TwoToOne = 2 , TwoToTwo = 3 , TwoToThree = 4 , TwoToFour = 15 , TwoToFive = 13 , Decay = 5 , Wall = 6 , Thermalization = 7 , HyperSurfaceCrossing = 8 , Bremsstrahlung = 9 , MultiParticleThreeMesonsToOne = 10 , MultiParticleThreeToTwo = 11 , MultiParticleFourToTwo = 14 , MultiParticleFiveToTwo = 12 , StringSoftSingleDiffractiveAX = 41 , StringSoftSingleDiffractiveXB = 42 , StringSoftDoubleDiffractive = 43 , StringSoftAnnihilation = 44 , StringSoftNonDiffractive = 45 , StringHard = 46 , FailedString = 47 , Freeforall = 90 } |
ProcessType s are used to identify the type of the process. More... | |
enum class | Extrapolation { Zero = 0 , Const = 1 , Linear = 2 } |
The kind of extrapolation used by the tabulation. More... | |
enum class | NeedsToWrap { PlusLength , No , MinusLength } |
The options determining what to do if a particle flies out of the grids PlusLength: Used if a periodic boundary condition is applied and a particle passes through the lower bound of the grid. More... | |
Functions | |
std::vector< ActionPtr > & | operator+= (std::vector< ActionPtr > &lhs, std::vector< ActionPtr > &&rhs) |
Append vector of action pointers. More... | |
std::ostream & | operator<< (std::ostream &out, const ActionPtr &action) |
Convenience: dereferences the ActionPtr to Action. More... | |
std::ostream & | operator<< (std::ostream &out, const ActionList &actions) |
Writes multiple actions to the out stream. More... | |
template<typename Iterator > | |
static bool | enforce_periodic_boundaries (Iterator begin, const Iterator &end, typename std::iterator_traits< Iterator >::value_type length) |
Enforces periodic boundaries on the given collection of values. More... | |
template<typename Container , typename UnaryPredicate > | |
bool | all_of (Container &&c, UnaryPredicate &&p) |
Convenience wrapper for std::all_of that operates on a complete container. More... | |
template<typename Container , typename UnaryFunction > | |
UnaryFunction | for_each (Container &&c, UnaryFunction &&f) |
Convenience wrapper for std::for_each that operates on a complete container. More... | |
std::ostream & | operator<< (std::ostream &out, const Angles &a) |
Creates output for an Angles object in the form "φ: 0.1294, cos ϑ: 0.423". More... | |
template<typename T > | |
std::pair< std::vector< T >, std::vector< T > > | dedup_avg (const std::vector< T > &x, const std::vector< T > &y) |
Remove duplicates from data (x, y) by averaging y. More... | |
double | isospin_clebsch_gordan_sqr_2to1 (const ParticleType &p_a, const ParticleType &p_b, const ParticleType &Res) |
Calculate the squared isospin Clebsch-Gordan coefficient for two particles p_a and p_b coupling to a resonance Res. More... | |
double | isospin_clebsch_gordan_sqr_3to1 (const ParticleType &p_a, const ParticleType &p_b, const ParticleType &p_c, const ParticleType &Res) |
Calculate the squared isospin Clebsch-Gordan coefficient for three particles p_a, p_b and p_c coupling to a resonance Res. More... | |
double | isospin_clebsch_gordan_sqr_2to2 (const ParticleType &p_a, const ParticleType &p_b, const ParticleType &p_c, const ParticleType &p_d, const int I=-1) |
Calculate the squared isospin Clebsch-Gordan coefficient for a 2-to-2 reaction A + B -> C + D. More... | |
double | cut_off (const double sigma_mb) |
Cross section after cut off. More... | |
double | y_l_m (int l, int m, double cosx, double phi) |
Spherical harmonics Y_2_0, Y_2_2, Y_3_0 and Y_4_0. More... | |
std::ostream & | operator<< (std::ostream &os, DensityType dt) |
Create the output operator for the densities. More... | |
double | density_factor (const ParticleType &type, DensityType dens_type) |
Get the factor that determines how much a particle contributes to the density type that is computed. More... | |
double | smearing_factor_norm (const double two_sigma_sqr) |
Norm of the Gaussian smearing function. More... | |
double | smearing_factor_rcut_correction (const double rcut_in_sigma) |
Gaussians used for smearing are cut at radius \(r_{cut} = a \sigma \) for calculation speed-up. More... | |
std::pair< double, ThreeVector > | unnormalized_smearing_factor (const ThreeVector &r, const FourVector &p, const double m_inv, const DensityParameters &dens_par, const bool compute_gradient=false) |
Implements gaussian smearing for any quantity. More... | |
std::tuple< double, FourVector, ThreeVector, ThreeVector, FourVector, FourVector, FourVector, FourVector > | current_eckart (const ThreeVector &r, const ParticleList &plist, const DensityParameters &par, DensityType dens_type, bool compute_gradient, bool smearing) |
Calculates Eckart rest frame density and 4-current of a given density type and optionally the gradient of the density in an arbitary frame (grad j0), the curl of the 3-current, and the time, x, y, and z derivatives of the 4-current. More... | |
std::tuple< double, FourVector, ThreeVector, ThreeVector, FourVector, FourVector, FourVector, FourVector > | current_eckart (const ThreeVector &r, const Particles &plist, const DensityParameters &par, DensityType dens_type, bool compute_gradient, bool smearing) |
convenience overload of the above (ParticleList -> Particles) More... | |
template<typename T > | |
void | update_lattice (RectangularLattice< T > *lat, const LatticeUpdate update, const DensityType dens_type, const DensityParameters &par, const std::vector< Particles > &ensembles, const bool compute_gradient) |
Updates the contents on the lattice. More... | |
void | update_lattice (RectangularLattice< DensityOnLattice > *lat, RectangularLattice< FourVector > *old_jmu, RectangularLattice< FourVector > *new_jmu, RectangularLattice< std::array< FourVector, 4 >> *four_grad_lattice, const LatticeUpdate update, const DensityType dens_type, const DensityParameters &par, const std::vector< Particles > &ensembles, const double time_step, const bool compute_gradient) |
Updates the contents on the lattice of DensityOnLattice type. More... | |
double | breit_wigner (double m, double pole, double width) |
Returns a relativistic Breit-Wigner distribution. More... | |
double | breit_wigner_nonrel (double m, double pole, double width) |
Returns a non-relativistic Breit-Wigner distribution, which is essentially a Cauchy distribution with half width. More... | |
double | cauchy (double x, double pole, double width) |
Returns a Cauchy distribution (sometimes also called Lorentz or non-relativistic Breit-Wigner distribution) with the given parameters. More... | |
double | density_integrand_mass (const double energy, const double momentum_sqr, const double temperature) |
density_integrand_mass - off_equilibrium distribution for massive particles More... | |
double | density_integrand_1M_IC (const double energy, const double momentum_sqr, const double temperature) |
density integrand - 1M_IC massless particles for expanding metric initialization, see Bazow:2016oky [7] More... | |
double | density_integrand_2M_IC (const double energy, const double momentum_sqr, const double temperature) |
density integrand - 2M_IC massless particles for expanding metric initialization, see Bazow:2016oky [7] More... | |
double | juttner_distribution_func (double momentum_radial, double mass, double temperature, double effective_chemical_potential, double statistics) |
Relativistic Juttner distribution function is just a convenience wrapper for displaying Fermi, Bose, and Boltzmann distributions in one mathematical form. More... | |
double | sample_momenta_non_eq_mass (const double temperature, const double mass) |
Samples a momentum via rejection method from the non-equilibrium distribution. More... | |
double | sample_momenta_1M_IC (const double temperature, const double mass) |
Samples a momentum from the non-equilibrium distribution 1M_IC from Bazow:2016oky [7]. More... | |
double | sample_momenta_2M_IC (const double temperature, const double mass) |
Samples a momentum from the non-equilibrium distribution 2M_IC from Bazow:2016oky [7]. More... | |
double | sample_momenta_from_thermal (const double temperature, const double mass) |
Samples a momentum from the Maxwell-Boltzmann (thermal) distribution in a faster way, given by Scott Pratt (see Pratt:2014vja [44]) APPENDIX: ALGORITHM FOR GENERATING PARTICLES math trick: for \( x^{n-1}e^{-x} \) distribution, sample x by: \( x = -ln(r_1 r_2 r_3 ... r_n) \) where \( r_i \) are uniform random numbers between [0,1) for \( T/m > 0.6 \): \( p^2 e^{-E/T} = p^2 e^{-p/T} * e^{(p-E)/T} \), where \( e^{(p-E)/T}\) is used as rejection weight. More... | |
double | sample_momenta_IC_ES (const double temperature) |
Sample momenta according to the momentum distribution in Bazow:2016oky [7]. More... | |
std::ostream & | operator<< (std::ostream &out, const EnergyMomentumTensor &Tmn) |
Prints out 4x4 tensor to the output stream. More... | |
EnergyMomentumTensor | operator+ (EnergyMomentumTensor a, const EnergyMomentumTensor &b) |
Direct addition operator. More... | |
EnergyMomentumTensor | operator- (EnergyMomentumTensor a, const EnergyMomentumTensor &b) |
Direct subtraction operator. More... | |
EnergyMomentumTensor | operator* (EnergyMomentumTensor a, const double b) |
Direct multiplication operator. More... | |
EnergyMomentumTensor | operator* (const double a, EnergyMomentumTensor b) |
Direct multiplication operator. More... | |
EnergyMomentumTensor | operator/ (EnergyMomentumTensor a, const double b) |
Direct division operator. More... | |
template<typename Modus > | |
std::ostream & | operator<< (std::ostream &out, const Experiment< Modus > &e) |
Creates a verbose textual description of the setup of the Experiment. More... | |
ExperimentParameters | create_experiment_parameters (Configuration &config) |
Gathers all general Experiment parameters. More... | |
const std::string | hline (113, '-') |
String representing a horizontal line. More... | |
std::string | format_measurements (const std::vector< Particles > &ensembles, uint64_t scatterings_this_interval, const QuantumNumbers &conserved_initial, SystemTimePoint time_start, double time, double E_mean_field, double E_mean_field_initial) |
Generate a string which will be printed to the screen when SMASH is running. More... | |
double | calculate_mean_field_energy (const Potentials &potentials, RectangularLattice< smash::DensityOnLattice > &jmu_B_lat, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *em_lattice, const ExperimentParameters ¶meters) |
Calculate the total mean field energy of the system; this will be printed to the screen when SMASH is running. More... | |
EventInfo | fill_event_info (const std::vector< Particles > &ensembles, double E_mean_field, double modus_impact_parameter, const ExperimentParameters ¶meters, bool projectile_target_interact, bool kinematic_cut_for_SMASH_IC) |
Generate the EventInfo object which is passed to outputs_. More... | |
void | validate_and_adjust_particle_list (ParticleList &particle_list) |
Validate a particle list adjusting each particle to be a valid SMASH particle. More... | |
void | check_interactions_total (uint64_t interactions_total) |
Make sure interactions_total can be represented as a 32-bit integer. More... | |
void | update_fields_lattice (RectangularLattice< FieldsOnLattice > *fields_lat, RectangularLattice< FourVector > *old_fields, RectangularLattice< FourVector > *new_fields, RectangularLattice< std::array< FourVector, 4 >> *fields_four_grad_lattice, DensityLattice *jmu_B_lat, const LatticeUpdate fields_lat_update, const Potentials &potentials, const double time_step) |
Updates the contents on the lattice of FieldsOnLattice type. More... | |
FilePtr | fopen (const std::filesystem::path &filename, const std::string &mode) |
Open a file with given mode. More... | |
double | blatt_weisskopf_sqr (const double p_ab, const int L) |
double | post_ff_sqr (double m, double M0, double srts0, double L) |
An additional form factor for unstable final states as used in GiBUU, according to M. More... | |
double | em_form_factor_ps (PdgCode pdg, double mass) |
double | em_form_factor_sqr_vec (PdgCode pdg, double mass) |
double | form_factor_delta ([[maybe_unused]] double m) |
FourVector | operator+ (FourVector a, const FourVector &b) |
add two FourVectors More... | |
FourVector | operator- (FourVector a, const FourVector &b) |
subtract two FourVectors More... | |
FourVector | operator* (FourVector a, double b) |
multiply a vector with a scalar More... | |
FourVector | operator* (double b, FourVector a) |
multiply a vector with a scalar More... | |
FourVector | operator/ (FourVector a, const double &b) |
divide a vector by a scalar More... | |
std::ostream & | operator<< (std::ostream &os, const FourVector &vec) |
Writes the four components of the vector to the output stream. More... | |
bool | enable_float_traps (int) |
Fallback that fails to set the trap. More... | |
void | setup_default_float_traps () |
Setup the floating-point traps used throughout SMASH. More... | |
template<typename F > | |
void | without_float_traps (F &&f) |
Convenience function to create a scope where all floating point traps are disabled. More... | |
std::ostream & | operator<< (std::ostream &s, const ThermLatticeNode &node) |
This operator writes all the thermodynamic quantities at a certain position to the file out. More... | |
std::string | build_error_string (std::string message, const Line &line) |
Builds a meaningful error message. More... | |
build_vector_< Line > | line_parser (const std::string &input) |
Helper function for parsing particles.txt and decaymodes.txt. More... | |
void | ensure_all_read (std::istream &input, const Line &line) |
Makes sure that nothing is left to read from this line. More... | |
std::string | read_all (std::istream &&input) |
Utility function to read a complete input stream (e.g. More... | |
bool | has_crlf_line_ending (const std::string in) |
Check if a line in the string ends with \r\n. More... | |
template<typename T > | |
T | interpolate_trilinear (T ax, T ay, T az, T f1, T f2, T f3, T f4, T f5, T f6, T f7, T f8) |
Perform a trilinear 1st order interpolation. More... | |
template<typename T , typename Cmp > | |
Permutation | generate_sort_permutation (std::vector< T > const &v, Cmp compare) |
Calculate the permutations necessary for sorting a vector. More... | |
template<typename T > | |
std::vector< T > | apply_permutation (const std::vector< T > &v, const Permutation &p) |
Apply a permutation to a vector. More... | |
template<typename T > | |
void | check_duplicates (const std::vector< T > &x, const std::string &error_position) |
Check whether two components have the same value in a sorted vector x. More... | |
template<typename T > | |
size_t | find_index (const std::vector< T > &v, T x) |
Find the index in v that corresponds to the last value strictly smaller than x. More... | |
template<int w = 9, int p = w - 3, typename CharT , typename Traits > | |
std::basic_ostream< CharT, Traits > & | field (std::basic_ostream< CharT, Traits > &s) |
Stream modifier to align the next object to a specific width w . More... | |
double | center_of_velocity_v (double s, double ma, double mb) |
double | fixed_target_projectile_v (double s, double ma, double mb) |
template<typename T > | |
T | pCM_sqr_from_s (const T s, const T mass_a, const T mass_b) noexcept |
template<typename T > | |
T | pCM_from_s (const T s, const T mass_a, const T mass_b) noexcept |
template<typename T > | |
T | pCM (const T sqrts, const T mass_a, const T mass_b) noexcept |
template<typename T > | |
T | pCM_sqr (const T sqrts, const T mass_a, const T mass_b) noexcept |
template<typename T > | |
std::array< T, 2 > | get_t_range (const T sqrts, const T m1, const T m2, const T m3, const T m4) |
Get the range of Mandelstam-t values allowed in a particular 2->2 process, see PDG 2014 booklet, eq. More... | |
static void | check_energy (double mandelstam_s, double m_sum) |
Helper function for plab_from_s. More... | |
static void | check_radicand (double mandelstam_s, double radicand) |
Helper function for plab_from_s. More... | |
double | plab_from_s (double mandelstam_s, double mass) |
Convert Mandelstam-s to p_lab in a fixed-target collision. More... | |
double | plab_from_s (double mandelstam_s) |
Convert Mandelstam-s to p_lab in a fixed-target collision. More... | |
double | plab_from_s (double mandelstam_s, double m_projectile, double m_target) |
Convert Mandelstam-s to p_lab in a fixed-target collision. More... | |
double | s_from_Etot (double e_tot, double m_P, double m_T) |
Convert E_tot to Mandelstam-s for a fixed-target setup, with a projectile of mass m_P and a total energy e_tot and a target of mass m_T at rest. More... | |
double | s_from_Etot (double e_tot_p, double e_tot_t, double m_p, double m_t) |
Convert E_tot to Mandelstam-s for two beams with total energies and masses (E,m) More... | |
double | s_from_Ekin (double e_kin, double m_P, double m_T) |
Convert E_kin to Mandelstam-s for a fixed-target setup, with a projectile of mass m_P and a kinetic energy e_kin and a target of mass m_T at rest. More... | |
double | s_from_Ekin (double e_kin_p, double e_kin_t, double m_p, double m_t) |
Convert E_kin=(E_tot-m) to Mandelstam-s for two beams with total energies and masses (E,m) More... | |
double | s_from_plab (double plab, double m_P, double m_T) |
Convert p_lab to Mandelstam-s for a fixed-target setup, with a projectile of mass m_P and momentum plab and a target of mass m_T at rest. More... | |
double | s_from_plab (double plab_p, double plab_t, double m_p, double m_t) |
Convert P_lab to Mandelstam-s for two beams with total momenta and masses (P,m) (P_lab gives per nucleon, P=P_lab*A) More... | |
Configuration | setup_config_and_logging (const std::string &config_file, const std::string &particles_file={}, const std::string &decaymodes_file={}, const std::vector< std::string > &extra_config={}) |
Set up configuration and logging from input files and extra config. More... | |
void | initialize_particles_decays_and_tabulations (Configuration &configuration, const std::string &version, const std::string &tabulations_dir={}) |
Initialize the particles and decays from the given configuration, plus tabulate the resonance integrals. More... | |
void | create_all_loggers (Configuration config) |
Called from main() right after the Configuration object is fully set up to create all logger objects (as defined by LogArea::AreaTuple) with the correct area names and log levels. More... | |
einhard::LogLevel | default_loglevel () |
void | set_default_loglevel (einhard::LogLevel level) |
Set the default log level (what will be returned from subsequent default_loglevel calls). More... | |
template<typename T > | |
FormattingHelper< T > | format (const T &value, const char *unit, int width=-1, int precision=-1) |
Acts as a stream modifier for std::ostream to output an object with an optional suffix string and with a given field width and precision. More... | |
template<typename T > | |
std::vector< T > | smooth (const std::vector< T > &x, const std::vector< T > &y, T span=2./3, size_t iter=3, T delta=0) |
Apply the LOWESS smoother (see the reference below) to the given data (x, y). More... | |
template<typename D , typename S > | |
constexpr D | numeric_cast (const S value) |
Function template to perform a safe numeric conversion between types. More... | |
template<> | |
constexpr uint32_t | numeric_cast (const size_t value) |
Function template specialization to perform a safe numeric conversion from size_t to uint32_t . More... | |
template<typename N > | |
bool | almost_equal (const N x, const N y) |
Checks two numbers for relative approximate equality. More... | |
template<typename N > | |
bool | almost_equal_physics (const N x, const N y) |
Same as smash::almost_equal, but for physical checks like energy-momentum conservation small_number is enough precision-wise. More... | |
template<typename T = std::initializer_list<double>> | |
bool | is_any_nan (const T &collection) |
This function iterates through the elements of a collection and checks if any of them is NaN using the std::isnan function. More... | |
std::unique_ptr< OutputInterface > | create_oscar_output (const std::string &format, const std::string &content, const std::filesystem::path &path, const OutputParameters &out_par) |
bool | parametrization_exists (const PdgCode &pdg_a, const PdgCode &pdg_b) |
Checks if supplied codes have existing parametrizations of total cross sections. More... | |
double | xs_high_energy (double mandelstam_s, bool is_opposite_charge, double ma, double mb, double P, double R1, double R2) |
total hadronic cross sections at high energies parametrized in the 2016 PDG book(http://pdg.lbl.gov/2016/reviews/rpp2016-rev-cross-section-plots.pdf) More... | |
double | pp_high_energy (double mandelstam_s) |
pp total cross section at high energies More... | |
double | ppbar_high_energy (double mandelstam_s) |
ppbar total cross section at high energies More... | |
double | np_high_energy (double mandelstam_s) |
np total cross section at high energies More... | |
double | npbar_high_energy (double mandelstam_s) |
npbar total cross section at high energies More... | |
double | piplusp_high_energy (double mandelstam_s) |
pi+p total cross section at high energies More... | |
double | piminusp_high_energy (double mandelstam_s) |
pi-p total cross section at high energies More... | |
double | xs_ppbar_annihilation (double mandelstam_s) |
parametrized cross-section for proton-antiproton annihilation used in the UrQMD model More... | |
double | xs_string_hard (double mandelstam_s, double xs_0, double e_0, double lambda_pow) |
Utility function called by specific other parametrizations Parametrized hard scattering cross section (with partonic scattering) This parametrization is a direct fit to cross sections in PYTHIA See Sjostrand:1987su [51]. More... | |
double | NN_string_hard (double mandelstam_s) |
nucleon-nucleon hard scattering cross section (with partonic scattering) More... | |
double | Npi_string_hard (double mandelstam_s) |
nucleon-pion hard scattering cross section (with partonic scattering) More... | |
double | pipi_string_hard (double mandelstam_s) |
pion-pion hard scattering cross section (with partonic scattering) More... | |
double | pipluspiminus_total (double sqrts) |
pi+ pi- total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm. More... | |
double | pizeropizero_total (double sqrts) |
pi0 pi0 total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm. More... | |
double | piplusp_total (double sqrts) |
pi+ p total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm. More... | |
double | piplusp_elastic_high_energy (double mandelstam_s, double m1, double m2) |
pi+p elactic cross section parametrization. More... | |
double | piplusp_elastic_AQM (double mandelstam_s, double m1, double m2) |
An overload of piplusp_elastic_high_energy in which the very low part is replaced by a flat 5 mb cross section; used for meson-meson interactions. More... | |
double | piplusp_elastic (double mandelstam_s) |
pi+p elastic cross section parametrization, PDG data. More... | |
double | piplusp_sigmapluskplus_pdg (double mandelstam_s) |
pi+ p to Sigma+ K+ cross section parametrization, PDG data. More... | |
double | piminusp_total (double sqrts) |
pi- p total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm. More... | |
double | piminusp_elastic (double mandelstam_s) |
pi-p elastic cross section parametrization Source: GiBUU:parametrizationBarMes_HighEnergy.f90 More... | |
double | piminusp_lambdak0_pdg (double mandelstam_s) |
pi- p -> Lambda K0 cross section parametrization, PDG data. More... | |
double | piminusp_sigmaminuskplus_pdg (double mandelstam_s) |
pi- p -> Sigma- K+ cross section parametrization, PDG data. More... | |
double | piminusp_sigma0k0_res (double mandelstam_s) |
pi- p -> Sigma0 K0 cross section parametrization, resonance contribution. More... | |
double | pp_elastic (double mandelstam_s) |
pp elastic cross section parametrization Source: Weil:2013mya [60], eq. More... | |
double | pp_elastic_high_energy (double mandelstam_s, double m1, double m2) |
pp elastic cross section parametrization, with only the high energy part generalized to all energy regimes (used for AQM) Source: Weil:2013mya [60], eq. More... | |
double | pp_total (double mandelstam_s) |
pp total cross section parametrization Sources: low-p: Cugnon:1996kh [18] highest-p: Buss:2011mx [13] More... | |
double | np_elastic (double mandelstam_s) |
np elastic cross section parametrization Source: Weil:2013mya [60], eq. More... | |
double | np_total (double mandelstam_s) |
np total cross section parametrization Sources: low-p: Cugnon:1996kh [18] highest-p: Buss:2011mx [13] More... | |
double | ppbar_elastic (double mandelstam_s) |
ppbar elastic cross section parametrization Source: Bass:1998ca [5] More... | |
double | ppbar_total (double mandelstam_s) |
ppbar total cross section parametrization Source: Bass:1998ca [5] More... | |
double | deuteron_pion_elastic (double mandelstam_s) |
Deuteron pion elastic cross-section [mb] parametrized to fit pi-d elastic scattering data (the data collection was be obtained from SAID data base, gwdac.phys.gwu.edu) More... | |
double | deuteron_nucleon_elastic (double mandelstam_s) |
Deuteron nucleon elastic cross-section [mb] parametrized by Oh:2009gx [39]. More... | |
double | kplusp_total (double mandelstam_s) |
K+ p total cross section parametrization. More... | |
double | kplusn_total (double mandelstam_s) |
K+ n total cross section parametrization. More... | |
double | kminusn_total (double mandelstam_s) |
K- n total cross section parametrization. More... | |
double | kminusp_total (double mandelstam_s) |
K- p total cross section parametrization. More... | |
double | kplusp_elastic_background (double mandelstam_s) |
K+ p elastic background cross section parametrization. More... | |
double | kplusn_elastic_background (double mandelstam_s) |
K+ n elastic background cross section parametrization sigma(K+n->K+n) = sigma(K+n->K0p) = 0.5 * sigma(K+p->K+p) Source: Buss:2011mx [13], B.3.8. More... | |
double | kplusn_k0p (double mandelstam_s) |
K+ n charge exchange cross section parametrization. More... | |
double | kminusp_elastic_background (double mandelstam_s) |
K- p elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9. More... | |
double | kminusn_elastic_background (double mandelstam_s) |
K- n elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9. More... | |
double | k0p_elastic_background (double mandelstam_s) |
K0 p elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9. More... | |
double | k0n_elastic_background (double mandelstam_s) |
K0 n elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9. More... | |
double | kbar0p_elastic_background (double mandelstam_s) |
Kbar0 p elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9. More... | |
double | kbar0n_elastic_background (double mandelstam_s) |
Kbar0 n elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9. More... | |
double | kplusp_inelastic_background (double mandelstam_s) |
K+ p inelastic background cross section parametrization Source: Buss:2011mx [13], B.3.8. More... | |
double | kplusn_inelastic_background (double mandelstam_s) |
K+ n inelastic background cross section parametrization Source: Buss:2011mx [13], B.3.8. More... | |
double | kminusp_kbar0n (double mandelstam_s) |
K- p <-> Kbar0 n cross section parametrization. More... | |
double | kminusp_piminussigmaplus (double sqrts) |
K- p <-> pi- Sigma+ cross section parametrization Taken from UrQMD (Graef:2014mra [24]). More... | |
double | kminusp_piplussigmaminus (double sqrts) |
K- p <-> pi+ Sigma- cross section parametrization Taken from UrQMD (Graef:2014mra [24]). More... | |
double | kminusp_pi0sigma0 (double sqrts) |
K- p <-> pi0 Sigma0 cross section parametrization Fit to Landolt-Börnstein instead of UrQMD values. More... | |
double | kminusp_pi0lambda (double sqrts) |
K- p <-> pi0 Lambda cross section parametrization Fit to Landolt-Börnstein instead of UrQMD values. More... | |
double | kminusn_piminussigma0 (double sqrts) |
K- n <-> pi- Sigma0 cross section parametrization Follow from the parametrization with the same strange product via isospin symmetry. More... | |
double | kminusn_pi0sigmaminus (double sqrts) |
K- n <-> pi0 Sigma- cross section parametrization Follow from the parametrization with the same strange product via isospin symmetry. More... | |
double | kminusn_piminuslambda (double sqrts) |
K- n <-> pi- Lambda cross section parametrization Follow from the parametrization with the same strange product via isospin symmetry. More... | |
double | lambdalambda_ximinusp (double sqrts_sqrts0, double p_N, double p_lambda) |
Lambda Lambda <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | lambdalambda_xi0n (double sqrts_sqrts0, double p_N, double p_lambda) |
Lambda Lambda <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | lambdasigmaplus_xi0p (double sqrts_sqrts0) |
Lambda Sigma+ <-> Xi0 p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | lambdasigmaminus_ximinusn (double sqrts_sqrts0) |
Lambda Sigma- <-> Xi- n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | lambdasigma0_ximinusp (double sqrts_sqrts0) |
Lambda Sigma0 <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | lambdasigma0_xi0n (double sqrts_sqrts0) |
Lambda Sigma0 <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | sigma0sigma0_ximinusp (double sqrts_sqrts0) |
Sigma0 Sigma0 <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | sigma0sigma0_xi0n (double sqrts_sqrts0) |
Sigma0 Sigma0 <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | sigmaplussigmaminus_xi0p (double sqrts_sqrts0) |
Sigma+ Sigma- <-> Xi0 p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | sigma0sigmaminus_ximinusn (double sqrts_sqrts0) |
Sigma0 Sigma- <-> Xi- n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | sigmaplussigmaminus_ximinusp (double sqrts_sqrts0) |
Sigma+ Sigma- <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
double | sigmaplussigmaminus_xi0n (double sqrts_sqrts0) |
Sigma+ Sigma- <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]). More... | |
std::ostream & | operator<< (std::ostream &s, const ParticleData &p) |
Writes the state of the particle to the output stream. More... | |
std::ostream & | operator<< (std::ostream &out, const ParticleList &particle_list) |
Writes a compact overview over the particles in the particle_list argument to the stream. More... | |
PrintParticleListDetailed | detailed (const ParticleList &list) |
Request the ParticleList to be printed in full detail (i.e. More... | |
std::ostream & | operator<< (std::ostream &out, const PrintParticleListDetailed &particle_list) |
Writes a detailed overview over the particles in the particle_list argument to the stream. More... | |
ParticleData | create_valid_smash_particle_matching_provided_quantities (PdgCode pdgcode, double mass, const FourVector &four_position, const FourVector &four_momentum, int log_area, bool &mass_warning, bool &on_shell_warning) |
This function creates a SMASH particle validating the provided information. More... | |
bool | are_particles_identical_at_given_time (const ParticleData &p1, const ParticleData &p2, double time) |
Utility function to compare two ParticleData instances with respect to their PDG code, 4-position and 4-momenta. More... | |
Parity | operator- (Parity p) |
Parity | operator* (Parity x, Parity y) |
void | operator*= (Parity &x, Parity y) |
ParticleTypePtrList | list_possible_resonances (const ParticleTypePtr type_a, const ParticleTypePtr type_b) |
Lists the possible resonances that decay into two particles. More... | |
std::istream & | operator>> (std::istream &is, PdgCode &code) |
Sets the PDG code from the textual representation in the input stream. More... | |
std::ostream & | operator<< (std::ostream &is, const PdgCode &code) |
Writes the textual representation of the PDG code to the output stream. More... | |
bool | is_dilepton (const PdgCode pdg1, const PdgCode pdg2) |
bool | has_lepton_pair (const PdgCode pdg1, const PdgCode pdg2, const PdgCode pdg3) |
constexpr uint64_t | pack (int32_t x, int32_t y) |
Pack two int32_t into an uint64_t. More... | |
template<class T > | |
constexpr T | pow_int (const T base, unsigned const exponent) |
Efficient template for calculating integer powers using squaring. More... | |
template<class T > | |
constexpr T | square (const T base) |
Efficient template for calculating the square. More... | |
bool | is_string_soft_process (ProcessType p) |
Check if a given process type is a soft string excitation. More... | |
std::ostream & | operator<< (std::ostream &os, ProcessType process_type) |
Writes the textual representation of the process_type to the output stream os . More... | |
std::ostream & | operator<< (std::ostream &os, const CollisionBranch &cbranch) |
Writes the textual representation of the Collision Branch cbranch to the output stream os . More... | |
double | calc_hubble (double time, const ExpansionProperties &metric) |
Calculate the Hubble parameter \(H(t)\), which describes how large the expansion flow is. More... | |
double | propagate_straight_line (Particles *particles, double to_time, const std::vector< FourVector > &beam_momentum) |
Propagates the positions of all particles on a straight line to a given moment. More... | |
void | expand_space_time (Particles *particles, const ExperimentParameters ¶meters, const ExpansionProperties &metric) |
Modifies positions and momentum of all particles to account for space-time deformation. More... | |
void | update_momenta (std::vector< Particles > &particles, double dt, const Potentials &pot, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *FB_lat, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *FI3_lat, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *EM_lat, DensityLattice *jB_lat) |
Updates the momenta of all particles at the current time step according to the equations of motion: More... | |
ScatterActionsFinderParameters | create_finder_parameters (Configuration &config, const ExperimentParameters ¶meters) |
Gather all relevant parameters for a ScatterActionsFinder either getting them from an ExperimentParameters instance or extracting them from a Configuration . More... | |
std::pair< std::string, std::string > | load_particles_and_decaymodes (const std::filesystem::path &particles_file, const std::filesystem::path &decaymodes_file) |
Loads particles and decaymodes from provided files particles_file and decaymodes_file. More... | |
void | initialize_default_particles_and_decaymodes () |
Loads default smash particle list and decaymodes. More... | |
std::string | trim (const std::string &s) |
Strip leading and trailing whitespaces. More... | |
void | remove_substr (std::string &s, const std::string &p) |
Remove all instances of a substring p in a string s. More... | |
void | isoclean (std::string &s) |
Remove ⁺, ⁻, ⁰ from string. More... | |
std::vector< std::string > | split (const std::string &s, char delim) |
Split string by delimiter. More... | |
std::string | join (const std::vector< std::string > &v, const std::string &delim) |
Join strings using delimiter. More... | |
std::string | quote (const std::string &s) |
Add quotes around string. More... | |
double | spec_func_integrand_1res (double resonance_mass, double sqrts, double stable_mass, const ParticleType &type) |
Spectral function integrand for GSL integration, with one resonance in the final state (the second particle is stable). More... | |
double | spec_func_integrand_2res (double sqrts, double res_mass_1, double res_mass_2, const ParticleType &t1, const ParticleType &t2) |
Spectral function integrand for GSL integration, with two resonances in the final state. More... | |
Tabulation | spectral_integral_semistable (Integrator &integrate, const ParticleType &resonance, const ParticleType &stable, double range) |
Create a table for the spectral integral of a resonance and a stable particle. More... | |
Tabulation | spectral_integral_unstable (Integrator2d &integrate2d, const ParticleType &res1, const ParticleType &res2, double range) |
Create a table for the spectral integral of two resonances. More... | |
std::ostream & | operator<< (std::ostream &, const ThreeVector &) |
Writes the three components of the vector to the output stream. More... | |
ThreeVector | operator+ (ThreeVector a, const ThreeVector &b) |
ThreeVector | operator- (ThreeVector a, const ThreeVector &b) |
ThreeVector | operator* (ThreeVector a, const double &b) |
multiply a three-vector by constant factor: \( b\cdot\mathbf{a} \). More... | |
ThreeVector | operator* (const double &a, ThreeVector b) |
multiply a three-vector by constant factor: \( a\cdot\mathbf{b} \). More... | |
double | operator* (ThreeVector a, const ThreeVector &b) |
ThreeVector | operator/ (ThreeVector a, const double &b) |
divide a three-vector by constant factor: \(\mathbf{a}/b\). More... | |
std::ostream & | operator<< (std::ostream &out, const BoxModus &m) |
static double | isospin_clebsch_gordan_2to1 (const ParticleType &p_a, const ParticleType &p_b, const int I_tot, const int I_z) |
Calculate isospin Clebsch-Gordan coefficient for two particles p_a and p_b coupling to a total isospin. More... | |
std::ostream & | operator<< (std::ostream &out, const ColliderModus &m) |
static double | detailed_balance_factor_stable (double s, const ParticleType &a, const ParticleType &b, const ParticleType &c, const ParticleType &d) |
Helper function: Calculate the detailed balance factor R such that. More... | |
static double | detailed_balance_factor_RK (double sqrts, double pcm, const ParticleType &a, const ParticleType &b, const ParticleType &c, const ParticleType &d) |
Helper function: Calculate the detailed balance factor R such that. More... | |
static double | detailed_balance_factor_RR (double sqrts, double pcm, const ParticleType &a, const ParticleType &b, const ParticleType &c, const ParticleType &d) |
Helper function: Calculate the detailed balance factor R such that. More... | |
static void | append_list (CollisionBranchList &main_list, CollisionBranchList in_list, double weight=1.) |
Helper function: Append a list of processes to another (main) list of processes. More... | |
static int | min_angular_momentum (int s0, int s1, int s2) |
static int | min_angular_momentum (int s0, int s1, int s2, int s3) |
static double | integrand_rho_Manley_1res (double sqrts, double mass, double stable_mass, ParticleTypePtr type, int L) |
static double | integrand_rho_Manley_2res (double sqrts, double m1, double m2, ParticleTypePtr t1, ParticleTypePtr t2, int L) |
static ParticleTypePtrList & | arrange_particles (ParticleTypePtrList &part_types) |
Rearrange the particle list such that the first particle is the stable one. More... | |
static ParticleTypePtrList | sort_particles (ParticleTypePtrList part_types) |
sort the particle list More... | |
template<typename T > | |
std::tuple< double, FourVector, ThreeVector, ThreeVector, FourVector, FourVector, FourVector, FourVector > | current_eckart_impl (const ThreeVector &r, const T &plist, const DensityParameters &par, DensityType dens_type, bool compute_gradient, bool smearing) |
Calculates Eckart rest frame density and 4-current of a given density type and optionally the gradient of the density in an arbitary frame (grad j0), the curl of the 3-current, and the time, x, y, and z derivatives of the 4-current. More... | |
static IsoParticleType * | try_find_private (const std::string &name) |
Helper function for IsoParticleType::try_find and friends. More... | |
static std::string | multiplet_name (std::string name) |
Construct the name-string for an isospin multiplet from the given name-string for the particle. More... | |
static std::filesystem::path | generate_tabulation_path (const std::filesystem::path &dir, const std::string &prefix, const std::string &res_name) |
void | cache_integral (std::unordered_map< std::string, Tabulation > &tabulations, const std::filesystem::path &dir, sha256::Hash hash, const IsoParticleType &part, const IsoParticleType &res, const IsoParticleType *antires, bool unstable) |
static Configuration | create_configuration (const std::string &, const std::vector< std::string > &) |
static void | do_minimal_loggers_setup_for_config_validation () |
static void | fully_validate_configuration (const Configuration &) |
static void | setup_logging (Configuration &) |
static void | read_particles_and_decaymodes_files_setting_keys_in_configuration (const std::string &, const std::string &, Configuration &) |
std::ostream & | operator<< (std::ostream &out, const ListModus &m) |
template<int index, int stop = 0> | |
constexpr std::enable_if<(index==stop), int >::type | find_longest_logger_name () |
template<int index, int stop = 0, int mid = (index + stop) / 2> | |
constexpr std::enable_if<(index > stop), int >::type | find_longest_logger_name () |
template<std::size_t index, int > | |
std::enable_if<(index==0)>::type | create_all_loggers_impl (Configuration &) |
template<std::size_t index, int longest_name = find_longest_logger_name<index - 1>()> | |
std::enable_if<(index !=0)>::type | create_all_loggers_impl (Configuration &config) |
std::ostream & | operator<< (std::ostream &out, const Nucleus &n) |
static double | piplusp_elastic_pdg (double mandelstam_s) |
static double | piminusp_elastic_pdg (double mandelstam_s) |
static double | kminusp_elastic_pdg (double mandelstam_s) |
static void | initialize (std::unordered_map< std::pair< uint64_t, uint64_t >, double, pair_hash > &ratios) |
Calculate and store isospin ratios for K N -> K Delta reactions. More... | |
std::ostream & | operator<< (std::ostream &out, const Particles &particles) |
static std::string | antiname (const std::string &name, PdgCode code) |
Construct an antiparticle name-string from the given name-string for the particle and its PDG code. More... | |
static std::string | chargestr (int charge) |
Construct a charge string, given the charge as integer. More... | |
std::ostream & | operator<< (std::ostream &out, const ParticleType &type) |
static double | high_energy_bpp (double plab) |
Computes the B coefficients from the STAR fit, see fig. More... | |
static double | Cugnon_bpp (double plab) |
Computes the B coefficients from the Cugnon parametrization of the angular distribution in elastic pp scattering. More... | |
static double | Cugnon_bnp (double plab) |
Computes the B coefficients from the Cugnon parametrization of the angular distribution in elastic np scattering. More... | |
static void | deduplicate (std::vector< FinalStateCrossSection > &final_state_xs) |
Deduplicate the final-state cross sections by summing. More... | |
std::ostream & | operator<< (std::ostream &out, const SphereModus &m) |
template<typename Out > | |
void | split (const std::string &s, char delim, Out result) |
Split string by delimiter. More... | |
static void | swrite (std::ofstream &stream, double x) |
Write binary representation to stream. More... | |
static double | sread_double (std::ifstream &stream) |
Read binary representation of a double. More... | |
static void | swrite (std::ofstream &stream, size_t x) |
Write binary representation to stream. More... | |
static size_t | sread_size (std::ifstream &stream) |
Read binary representation of a size_t. More... | |
static void | swrite (std::ofstream &stream, const std::vector< double > x) |
Write binary representation to stream. More... | |
static std::vector< double > | sread_vector (std::ifstream &stream) |
Read binary representation of a vector of doubles. More... | |
static void | swrite (std::ofstream &stream, sha256::Hash x) |
Write binary representation to stream. More... | |
static sha256::Hash | sread_hash (std::ifstream &stream) |
Read binary representation of a SHA256 hash. More... | |
std::ostream & | operator<< (std::ostream &out, const TimeStampCounter &tsc) |
Variables | |
static constexpr int | LAction = LogArea::Action::id |
static constexpr int | LClock = LogArea::Clock::id |
constexpr double | hbarc = 0.197327053 |
GeV <-> fm conversion factor. More... | |
constexpr double | fm2_mb = 0.1 |
mb <-> fm^2 conversion factor. More... | |
constexpr double | gev2_mb = hbarc * hbarc / fm2_mb |
GeV^-2 <-> mb conversion factor. More... | |
constexpr double | mev_to_gev = 1.e-3 |
MeV to GeV conversion factor. More... | |
constexpr double | really_small = 1.0e-6 |
Numerical error tolerance. More... | |
constexpr double | very_small_double = 1.0e-15 |
A very small double, used to avoid division by zero. More... | |
constexpr double | twopi = 2. * M_PI |
\( 2\pi \). More... | |
constexpr double | nuclear_density = 0.168 |
Ground state density of symmetric nuclear matter [fm^-3]. More... | |
constexpr double | small_number = 1.0e-4 |
Physical error tolerance. More... | |
constexpr double | nucleon_mass = 0.938 |
Nucleon mass in GeV. More... | |
constexpr double | pion_mass = 0.138 |
Pion mass in GeV. More... | |
constexpr double | kaon_mass = 0.494 |
Kaon mass in GeV. More... | |
constexpr double | omega_mass = 0.783 |
omega mass in GeV. More... | |
constexpr double | delta_mass = 1.232 |
Delta mass in GeV. More... | |
constexpr double | deuteron_mass = 1.8756 |
Deuteron mass in GeV. More... | |
constexpr double | fine_structure = 7.2973525698e-3 |
Fine-struture constant, approximately 1/137. More... | |
const double | elementary_charge = std::sqrt(fine_structure * 4 * M_PI) |
Elementary electric charge in natural units, approximately 0.3. More... | |
constexpr int | maximum_rndm_seed_in_pythia = 900000000 |
The maximum value of the random seed used in PYTHIA. More... | |
constexpr double | minimum_sqrts_pythia_can_handle = 10.0 |
Energy in GeV, below which hard reactions via pythia are impossible. More... | |
constexpr std::uint32_t | ID_PROCESS_PHOTON |
Process ID for any photon process. More... | |
const std::initializer_list< double > | BREMS_SQRTS |
Center-of-mass energy. More... | |
const std::initializer_list< double > | BREMS_K |
photon momentum More... | |
const std::initializer_list< double > | BREMS_THETA |
theta angle with respect to collision axis of incoming pions More... | |
const std::initializer_list< double > | BREMS_PIPI_PIPI_OPP_SIG |
Total π+- + π-+ -> π+- + π-+ + γ cross section. More... | |
const std::initializer_list< double > | BREMS_PIPI_PIPI_OPP_DIFF_SIG_K |
dSigma/dk for π+- + π-+ -> π+- + π-+ + γ More... | |
const std::initializer_list< double > | BREMS_PIPI_PIPI_OPP_DIFF_SIG_THETA |
dSigma/dtheta for π+- + π-+ -> π+- + π-+ + γ More... | |
const std::initializer_list< double > | BREMS_PIPI_PIPI_SAME_SIG |
Total π+ + π+ -> π+ + π+ + γ or π- + π- -> π- + π- + γ cross section. More... | |
const std::initializer_list< double > | BREMS_PIPI_PIPI_SAME_DIFF_SIG_K |
dSigma/dk for π+ + π+ -> π+ + π+ + γ or π- + π- -> π- + π- + γ More... | |
const std::initializer_list< double > | BREMS_PIPI_PIPI_SAME_DIFF_SIG_THETA |
dSigma/dtheta for π+ + π+ -> π+ + π+ + γ or π- + π- -> π- + π- + γ More... | |
const std::initializer_list< double > | BREMS_PIPI0_PIPI0_SIG |
Total π0 + π -> π0 + π + γ cross section. More... | |
const std::initializer_list< double > | BREMS_PIPI0_PIPI0_DIFF_SIG_K |
dSigma/dk for π0 + π -> π0 + π + γ More... | |
const std::initializer_list< double > | BREMS_PIPI0_PIPI0_DIFF_SIG_THETA |
dSigma/dtheta for π0 + π -> π0 + π + γ More... | |
const std::initializer_list< double > | BREMS_PIPI_PI0PI0_SIG |
Total π+- + π-+ -> π0 + π0 + γ cross section. More... | |
const std::initializer_list< double > | BREMS_PIPI_PI0PI0_DIFF_SIG_K |
dSigma/dk for π+- + π-+ -> π0 + π0 + γ More... | |
const std::initializer_list< double > | BREMS_PIPI_PI0PI0_DIFF_SIG_THETA |
dSigma/dtheta for π+- + π-+ -> π0 + π0 + γ More... | |
const std::initializer_list< double > | BREMS_PI0PI0_PIPI_SIG |
Total π0 + π0 -> π+- + π-+ + γ cross section. More... | |
const std::initializer_list< double > | BREMS_PI0PI0_PIPI_DIFF_SIG_K |
dSigma/dk for π0 + π0 -> π+- + π-+ + γ More... | |
const std::initializer_list< double > | BREMS_PI0PI0_PIPI_DIFF_SIG_THETA |
dSigma/dtheta for π0 + π0 -> π+- + π-+ + γ More... | |
static constexpr int | LDensity = LogArea::Density::id |
static constexpr int | LMain = LogArea::Main::id |
static constexpr int | LInitialConditions = LogArea::InitialConditions::id |
static constexpr int | LLattice = LogArea::Lattice::id |
std::array< einhard::Logger<>, std::tuple_size< LogArea::AreaTuple >::value > | logg |
An array that stores all pre-configured Logger objects. More... | |
static constexpr int | LOutput = LogArea::Output::id |
static constexpr int | LExperiment = LogArea::Experiment::id |
KaonNucleonRatios | kaon_nucleon_ratios |
const std::initializer_list< double > | KMINUSN_TOT_PLAB |
PDG data on K- n total cross section: momentum in lab frame. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | kminusn_total_interpolation = nullptr |
An interpolation that gets lazily filled using the KMINUSN_TOT data. More... | |
const std::initializer_list< double > | KMINUSN_TOT_SIG |
PDG data on K- n total cross section: cross section. More... | |
const std::initializer_list< double > | KMINUSP_ELASTIC_P_LAB |
PDG data on K- p elastic cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | KMINUSP_ELASTIC_SIG |
PDG data on K- p elastic cross section: cross section. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | kminusp_elastic_interpolation = nullptr |
An interpolation that gets lazily filled using the KMINUSP_ELASTIC data. More... | |
const std::initializer_list< double > | KMINUSP_TOT_PLAB |
PDG smoothed data on K- p total cross section: momentum in lab frame. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | kminusp_total_interpolation = nullptr |
An interpolation that gets lazily filled using the KMINUSP_TOT data. More... | |
const std::initializer_list< double > | KMINUSP_TOT_SIG |
PDG smoothed data on K- p total cross section: cross section. More... | |
const std::initializer_list< double > | KMINUSP_RES_SQRTS |
Center-of-mass energy list for K̅⁻ N⁺ More... | |
const std::initializer_list< double > | KMINUSP_RES_SIG |
Elastic K̅⁻ N⁺ cross section contributions from decays. More... | |
static std::unique_ptr< InterpolateDataSpline > | kminusp_elastic_res_interpolation = nullptr |
An interpolation that gets lazily filled using the KMINUSP_RES data. More... | |
const std::initializer_list< double > | KPLUSN_TOT_PLAB |
PDG data on K+ n total cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | KPLUSN_TOT_SIG |
PDG data on K+ n total cross section: cross section. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | kplusn_total_interpolation = nullptr |
An interpolation that gets lazily filled using the KPLUSN_TOT data. More... | |
const std::initializer_list< double > | KPLUSP_TOT_PLAB |
PDG data on K+ p total cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | KPLUSP_TOT_SIG |
PDG data on K+ p total cross section: cross section. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | kplusp_total_interpolation = nullptr |
An interpolation that gets lazily filled using the KPLUSP_TOT data. More... | |
const std::initializer_list< double > | PIMINUSP_ELASTIC_P_LAB |
PDG data on pi- p elastic cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | PIMINUSP_ELASTIC_SIG |
PDG data on pi- p elastic cross section: cross section. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | piminusp_elastic_interpolation = nullptr |
An interpolation that gets lazily filled using the PIMINUSP_ELASTIC data. More... | |
const std::initializer_list< double > | PIMINUSP_LAMBDAK0_P_LAB |
PDG data on pi- p to Lambda K0 cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | PIMINUSP_LAMBDAK0_SIG |
PDG data on pi- p to Lambda K0 cross section: cross section. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | piminusp_lambdak0_interpolation = nullptr |
An interpolation that gets lazily filled using the PIMINUSP_LAMBDAK0 data. More... | |
const std::initializer_list< double > | PIMINUSP_SIGMAMINUSKPLUS_P_LAB |
PDG data on pi- p to Sigma- K+ cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | PIMINUSP_SIGMAMINUSKPLUS_SIG |
PDG data on pi- p to Sigma- K+ cross section: cross section. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | piminusp_sigmaminuskplus_interpolation = nullptr |
An interpolation that gets lazily filled using the PIMINUSP_SIGMAMINUSKPLUS data. More... | |
const std::initializer_list< double > | PIMINUSP_SIGMA0K0_RES_SQRTS |
pi- p to Sigma0 K0 cross section: square root s More... | |
const std::initializer_list< double > | PIMINUSP_SIGMA0K0_RES_SIG |
pi- p to Sigma0 K0 cross section: cross section More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | piminusp_sigma0k0_interpolation = nullptr |
An interpolation that gets lazily filled using the PIMINUSP_SIGMA0K0_RES data. More... | |
const std::initializer_list< double > | PIMINUSP_RES_SQRTS |
Center-of-mass energy. More... | |
const std::initializer_list< double > | PIMINUSP_RES_SIG |
Elastic π⁻N⁺ cross section contributions from decays. More... | |
static std::unique_ptr< InterpolateDataSpline > | piminusp_elastic_res_interpolation = nullptr |
An interpolation that gets lazily filled using the PIMINUSP_RES data. More... | |
const std::initializer_list< double > | PIPLUSP_ELASTIC_P_LAB |
PDG data on pi+ p elastic cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | PIPLUSP_ELASTIC_SIG |
PDG data on pi+ p elastic cross section: cross section. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | piplusp_elastic_interpolation = nullptr |
An interpolation that gets lazily filled using the PIPLUSP_ELASTIC_SIG data. More... | |
const std::initializer_list< double > | PIPLUSP_SIGMAPLUSKPLUS_P_LAB |
PDG data on pi+ p to Sigma+ K+ cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | PIPLUSP_SIGMAPLUSKPLUS_SIG |
PDG data on pi+ p to Sigma+ K+ section: cross section. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | piplusp_sigmapluskplus_interpolation = nullptr |
An interpolation that gets lazily filled using the PIPLUSP_SIGMAPLUSKPLUS_SIG data. More... | |
const std::initializer_list< double > | PIPLUSP_RES_SQRTS |
Center-of-mass energy. More... | |
const std::initializer_list< double > | PIPLUSP_RES_SIG |
Elastic π⁺N⁺ cross section contributions from decays. More... | |
static std::unique_ptr< InterpolateDataSpline > | piplusp_elastic_res_interpolation = nullptr |
A null interpolation that gets filled using the PIPLUSP_RES data. More... | |
const std::initializer_list< double > | PIPLUSP_TOT_SQRTS |
Center-of-mass energy. More... | |
const std::initializer_list< double > | PIPLUSP_TOT_SIG |
Total p π⁺ cross section parametrized from bottom-up SMASH-3.0, using the hadronic list from PDG2018. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | piplusp_total_interpolation = nullptr |
An interpolation that gets lazily filled using the PIPLUSP_TOT data. More... | |
const std::initializer_list< double > | PIMINUSP_TOT_SQRTS |
Center-of-mass energy. More... | |
const std::initializer_list< double > | PIMINUSP_TOT_SIG |
Total p π⁻ cross section parametrized from bottom-up SMASH-3.0, using the hadronic list from PDG2018. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | piminusp_total_interpolation = nullptr |
An interpolation that gets lazily filled using the PIMINUSP_TOT data. More... | |
const std::initializer_list< double > | PIPLUSPIMINUS_TOT_SQRTS |
Center-of-mass energy. More... | |
const std::initializer_list< double > | PIPLUSPIMINUS_TOT_SIG |
Total π⁺ π⁻ cross section parametrized from bottom-up SMASH-3.0, using the hadronic list from PDG2018. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | pipluspiminus_total_interpolation = nullptr |
An interpolation that gets lazily filled using the PIPLUSPIMINUS_TOT data. More... | |
const std::initializer_list< double > | PIZEROPIZERO_TOT_SQRTS |
Center-of-mass energy. More... | |
const std::initializer_list< double > | PIZEROPIZERO_TOT_SIG |
Total π⁰ π⁰ cross section parametrized from bottom-up SMASH-3.0 using the hadronic list from PDG2018. More... | |
static std::unique_ptr< InterpolateDataLinear< double > > | pizeropizero_total_interpolation = nullptr |
An interpolation that gets lazily filled using the PIZEROPIZERO_TOT data. More... | |
RectangularLattice< FourVector > * | UB_lat_pointer = nullptr |
Pointer to the skyrme potential on the lattice. More... | |
RectangularLattice< FourVector > * | UI3_lat_pointer = nullptr |
Pointer to the symmmetry potential on the lattice. More... | |
Potentials * | pot_pointer = nullptr |
Pointer to a Potential class. More... | |
static constexpr int | LPotentials = LogArea::Potentials::id |
static constexpr int | LRootSolver = LogArea::RootSolver::id |
static constexpr int | LPythia = LogArea::Pythia::id |
static constexpr int | LPauliBlocking = LogArea::PauliBlocking::id |
static constexpr int | LHyperSurfaceCrossing = LogArea::HyperSurfaceCrossing::id |
static constexpr int | LBox = LogArea::Box::id |
static constexpr int | LScatterAction = LogArea::ScatterAction::id |
static constexpr int | LResonances = LogArea::Resonances::id |
static constexpr int | LCollider = LogArea::Collider::id |
static constexpr int | LConfiguration = LogArea::Configuration::id |
static constexpr int | LCrossSections = LogArea::CrossSections::id |
static constexpr int | LScatterAction = LogArea::ScatterAction::id |
static constexpr int | LCollider = LogArea::Collider::id |
static constexpr int | LDecayModes = LogArea::DecayModes::id |
static constexpr int | LDecayModes = LogArea::DecayModes::id |
std::vector< DecayTypePtr > * | all_decay_types = nullptr |
Global pointer to the decay types list. More... | |
constexpr size_t | num_tab_pts = 200 |
Number of tabulation points. More... | |
static Integrator | integrate |
static Integrator2d | integrate2d (1E7) |
static constexpr int | LDistributions = LogArea::Distributions::id |
static constexpr int | LTmn = LogArea::Tmn::id |
static constexpr int | LFpe = LogArea::Fpe::id |
static constexpr int | LGrandcanThermalizer = LogArea::GrandcanThermalizer::id |
static constexpr int | LGrid = LogArea::Grid::id |
static const std::initializer_list< GridBase::SizeType > | ZERO {0} |
static const std::initializer_list< GridBase::SizeType > | ZERO_ONE {0, 1} |
static const std::initializer_list< GridBase::SizeType > | MINUS_ONE_ZERO {-1, 0} |
static const std::initializer_list< GridBase::SizeType > | MINUS_ONE_ZERO_ONE |
static constexpr int | LResonances = LogArea::Resonances::id |
static constexpr int | LHyperSurfaceCrossing = LogArea::HyperSurfaceCrossing::id |
static constexpr int | LHyperSurfaceCrossing = LogArea::HyperSurfaceCrossing::id |
static constexpr int | LInputParser = LogArea::InputParser::id |
static constexpr int | LParticleType = LogArea::ParticleType::id |
static IsoParticleTypeList | iso_type_list |
static std::vector< const IsoParticleType * > | iso_baryon_resonances |
static Integrator | integrate |
static Integrator2d | integrate2d |
static std::unordered_map< std::string, Tabulation > | NR_tabulations |
Tabulation of all N R integrals. More... | |
static std::unordered_map< std::string, Tabulation > | piR_tabulations |
Tabulation of all pi R integrals. More... | |
static std::unordered_map< std::string, Tabulation > | RK_tabulations |
Tabulation of all K R integrals. More... | |
static std::unordered_map< std::string, Tabulation > | DeltaR_tabulations |
Tabulation of all Delta R integrals. More... | |
static std::unordered_map< std::string, Tabulation > | rhoR_tabulations |
Tabulation of all rho rho integrals. More... | |
static constexpr int | LMain = LogArea::Main::id |
static constexpr int | LList = LogArea::List::id |
static einhard::LogLevel | global_default_loglevel = einhard::ALL |
The default logging level is ALL. More... | |
static constexpr int | LNucleus = LogArea::Nucleus::id |
static constexpr int | LHyperSurfaceCrossing = LogArea::HyperSurfaceCrossing::id |
static constexpr int | LParticleType = LogArea::ParticleType::id |
static constexpr int | LResonances = LogArea::Resonances::id |
static constexpr int | LPauliBlocking = LogArea::PauliBlocking::id |
static constexpr int | LPropagation = LogArea::Propagation::id |
static constexpr int | LGrandcanThermalizer = LogArea::GrandcanThermalizer::id |
static constexpr int | LHyperSurfaceCrossing = LogArea::HyperSurfaceCrossing::id |
static constexpr int | LScatterAction = LogArea::ScatterAction::id |
static constexpr int | LScatterActionMulti = LogArea::ScatterActionMulti::id |
static constexpr int | LScatterAction = LogArea::ScatterAction::id |
static constexpr int | LFindScatter = LogArea::FindScatter::id |
static constexpr int | LSphere = LogArea::Sphere::id |
static constexpr int | LOutput = LogArea::Output::id |
Interpolation objects for π+- + π-+ -> π+- + π-+ + γ processes | |
(opposite charge incoming pions, charged pions in final state) | |
static std::unique_ptr< InterpolateDataLinear< double > > | pipi_pipi_opp_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pipi_pipi_opp_dsigma_dk_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pipi_pipi_opp_dsigma_dtheta_interpolation = nullptr |
Interpolation objects for π+ + π+ -> π+ + π+ + γ and | |
or π- + π- -> π- + π- + γ processes (same charge incoming pions) | |
static std::unique_ptr< InterpolateDataLinear< double > > | pipi_pipi_same_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pipi_pipi_same_dsigma_dk_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pipi_pipi_same_dsigma_dtheta_interpolation = nullptr |
Interpolation objects for π + π0 -> π + π0 + γ processes | |
static std::unique_ptr< InterpolateDataLinear< double > > | pipi0_pipi0_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pipi0_pipi0_dsigma_dk_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pipi0_pipi0_dsigma_dtheta_interpolation = nullptr |
Interpolation objects for π+- + π-+ -> π0 + π0 + γ processes | |
static std::unique_ptr< InterpolateDataLinear< double > > | pipi_pi0pi0_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pipi_pi0pi0_dsigma_dk_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pipi_pi0pi0_dsigma_dtheta_interpolation = nullptr |
Interpolation objects for π0 + π0 -> π+- + π-+ + γ processes | |
static std::unique_ptr< InterpolateDataLinear< double > > | pi0pi0_pipi_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pi0pi0_pipi_dsigma_dk_interpolation = nullptr |
static std::unique_ptr< InterpolateData2DSpline > | pi0pi0_pipi_dsigma_dtheta_interpolation = nullptr |
using smash::SystemTimePoint = typedef std::chrono::time_point<std::chrono::system_clock> |
using smash::SystemClock = typedef std::chrono::system_clock |
using smash::SystemTimeSpan = typedef SystemClock::duration |
using smash::FilePtr = typedef std::unique_ptr<std::FILE, FileDeleter> |
A RAII type to replace std::FILE *
.
This is an alias type for std::unique_ptr to automatically free the std::FILE resource after the last reference goes out of scope. It is important to use a custom deleter type, and therefore SMASH code should never use std::unique_ptr directly with std::FILE.
using smash::Version = typedef std::string |
Descriptive alias for storing SMASH versions associated to keys metadata.
At the moment simply a std::string
.
Definition at line 32 of file input_keys.h.
using smash::KeyLabels = typedef std::vector<std::string> |
Descriptive alias for storing key labels, i.e.
the series of strings that identify a key in the input file from the main section. At the moment simply a std::vector<std::string>
.
Definition at line 39 of file input_keys.h.
using smash::Permutation = typedef std::vector<size_t> |
Represent a permutation.
Definition at line 136 of file interpolation.h.
|
strong |
Calculation method for the cross sections.
It has only one member at the moment. In the future there will be more options.
Enumerator | |
---|---|
Analytic |
Definition at line 37 of file crosssectionsphoton.h.
|
strong |
Allows to choose which kind of density to calculate.
The baryon density is necessary for the Skyrme potential. For the symmetry potential one needs to know the isospin density.
Enumerator | |
---|---|
None | |
Hadron | |
Baryon | |
BaryonicIsospin | |
Pion | |
Isospin3_tot | |
Charge | |
Strangeness |
Definition at line 36 of file density.h.
|
strong |
Specifier to classify the different hadron species according to their quantum numbers.
Definition at line 153 of file grandcan_thermalizer.h.
|
strong |
|
strong |
|
strong |
Identifies whether the number of cells should be limited.
For the geometric criterion it makes sense to not have less than 1 particle in each cell, since the grid cell search is an optimization and the cells can be always made larger. For the stochastic collision criterion, the cell size is an important calculation parameter, which should be kept constant. The number of cells therefore cannot be limited as the medium grows even though this might be inefficient for large systems.
Enumerator | |
---|---|
None | No cell number limitation. |
ParticleNumber | Limit the number of cells to the number of particles. |
Definition at line 55 of file grid.h.
|
strong |
Enumerator option for lattice updates.
Updating the lattice is a costly operation and should be performed only if necessary. Possible needs are:
Enumerator | |
---|---|
AtOutput | |
EveryTimestep | |
EveryFixedInterval |
Definition at line 36 of file lattice.h.
|
strong |
Enumerator | |
---|---|
Nothing | |
Projectile | |
Target |
Definition at line 20 of file particledata.h.
|
strong |
Represent the parity of a particle type.
Enumerator | |
---|---|
Pos | Positive parity. |
Neg | Negative parity. |
Definition at line 25 of file particletype.h.
|
strong |
Decide which decay mode widths are returned in get partical widths.
Enumerator | |
---|---|
All | All decay mode widths. |
Hadronic | Ignore dilepton decay modes widths. |
Dileptons | Only return dilepton decays widths. |
Definition at line 33 of file particletype.h.
|
strong |
ProcessType
s are used to identify the type of the process.
Corresponding integer numbers are given explicitly, because they appear in the output.
Enumerator | |
---|---|
None | See here for a short description. |
Elastic | See here for a short description. |
TwoToOne | See here for a short description. |
TwoToTwo | See here for a short description. |
TwoToThree | See here for a short description. |
TwoToFour | See here for a short description. |
TwoToFive | See here for a short description. |
Decay | See here for a short description. |
Wall | See here for a short description. |
Thermalization | See here for a short description. |
HyperSurfaceCrossing | See here for a short description. |
Bremsstrahlung | See here for a short description. |
MultiParticleThreeMesonsToOne | See here for a short description. |
MultiParticleThreeToTwo | See here for a short description. |
MultiParticleFourToTwo | See here for a short description. |
MultiParticleFiveToTwo | See here for a short description. |
StringSoftSingleDiffractiveAX | See here for a short description. |
StringSoftSingleDiffractiveXB | See here for a short description. |
StringSoftDoubleDiffractive | See here for a short description. |
StringSoftAnnihilation | See here for a short description. |
StringSoftNonDiffractive | See here for a short description. |
StringHard | See here for a short description. |
FailedString | See here for a short description. |
Freeforall | See here for a short description. |
Definition at line 39 of file processbranch.h.
|
strong |
The kind of extrapolation used by the tabulation.
Enumerator | |
---|---|
Zero | |
Const | |
Linear |
Definition at line 26 of file tabulation.h.
|
strong |
The options determining what to do if a particle flies out of the grids PlusLength: Used if a periodic boundary condition is applied and a particle passes through the lower bound of the grid.
No: Used if the boundary condition is not periodic. MinusLength: Used if a periodic boundary condition is applied and a particle passes through the upper bound of the grid.
Enumerator | |
---|---|
PlusLength | |
No | |
MinusLength |
Definition at line 355 of file grid.cc.
|
inline |
Append vector of action pointers.
[in] | lhs | vector of action pointers that is appended to |
[in] | rhs | vector of action pointers that is appended |
|
static |
Enforces periodic boundaries on the given collection of values.
The values in an arbitrary container, starting from begin
and ending at end
, will be checked. If the value is less than 0, length
will be added to it. If the value is greater than or equal to length
, length
will be subtracted from it.
The implementation therefore assumes that the values are at most one length
away from the 0 to length
range.
Iterator | Type of the iterator. |
begin | Iterator pointing to the first value to check. |
end | End iterator. |
length | The length of the valid interval. |
Definition at line 53 of file algorithms.h.
|
inline |
Convenience wrapper for std::all_of
that operates on a complete container.
Container | Type of the container. |
UnaryPredicate | Type of the predicate. |
c | A container of elements to examine. |
p | Unary predicate. |
c
return true
when passed to p
. Definition at line 80 of file algorithms.h.
|
inline |
Convenience wrapper for std::for_each
that operates on a complete container.
Container | Type of the container. |
UnaryFunction | Type of the function. |
c | A container of elements on which to perform the function f |
f | A function to apply on all elements of the container c |
Definition at line 96 of file algorithms.h.
std::pair<std::vector<T>, std::vector<T> > smash::dedup_avg | ( | const std::vector< T > & | x, |
const std::vector< T > & | y | ||
) |
|
inline |
Calculate the squared isospin Clebsch-Gordan coefficient for two particles p_a and p_b coupling to a resonance Res.
[in] | p_a | Information on spin/isospin of particle a |
[in] | p_b | Information on spin/isospin of particle b |
[in] | Res | Information on spin/isospin of resonance |
Definition at line 26 of file clebschgordan.h.
double smash::isospin_clebsch_gordan_sqr_3to1 | ( | const ParticleType & | p_a, |
const ParticleType & | p_b, | ||
const ParticleType & | p_c, | ||
const ParticleType & | Res | ||
) |
Calculate the squared isospin Clebsch-Gordan coefficient for three particles p_a, p_b and p_c coupling to a resonance Res.
[in] | p_a | Information on spin/isospin of particle a |
[in] | p_b | Information on spin/isospin of particle b |
[in] | p_c | Information on spin/isospin of particle c |
[in] | Res | Information on spin/isospin of resonance |
Definition at line 37 of file clebschgordan.cc.
double smash::isospin_clebsch_gordan_sqr_2to2 | ( | const ParticleType & | p_a, |
const ParticleType & | p_b, | ||
const ParticleType & | p_c, | ||
const ParticleType & | p_d, | ||
const int | I = -1 |
||
) |
Calculate the squared isospin Clebsch-Gordan coefficient for a 2-to-2 reaction A + B -> C + D.
If a total isospin value I is given (doubled in order to be integer), then only contributions with that total isospin will be counted.
[in] | p_a | Information on spin/isospin of particle a |
[in] | p_b | Information on spin/isospin of particle b |
[in] | p_c | Information on spin/isospin of particle c |
[in] | p_d | Information on spin/isospin of particle d |
[in] | I | total isospin of the reaction |
Definition at line 71 of file clebschgordan.cc.
double smash::cut_off | ( | const double | sigma_mb | ) |
Cross section after cut off.
Photon cross sections diverge tremendously at the threshold which becomes particularly problematic when running with broad rho mesons. Then the actual photon cross section is used for the weight: W = Sigma_photon/Sigma_hadron. If the photon cross section diverges, the weight becomes huge and we significantly overestimate photon production. This cutoff fixes the problem.
Either the cross section is returned or, if the cross section i larger than the cut off, the cut off value is returned.
[in] | sigma_mb | cross section before cut off [mb] |
Definition at line 55 of file crosssectionsphoton.cc.
double smash::y_l_m | ( | int | l, |
int | m, | ||
double | cosx, | ||
double | phi | ||
) |
Spherical harmonics Y_2_0, Y_2_2, Y_3_0 and Y_4_0.
[in] | l | Angular momentum value (2 and 4 are supported) |
[in] | m | projection value (l = 2 and m = 2 are supported) |
[in] | cosx | Cosine of the polar angle |
[in] | phi | Azimuthal angle |
domain_error | if unsupported l is encountered |
Definition at line 242 of file deformednucleus.cc.
std::ostream & smash::operator<< | ( | std::ostream & | os, |
DensityType | dt | ||
) |
Create the output operator for the densities.
[out] | os | Output operator for the densities |
[in] | dt | Type of density (e.g. baryon density) |
Definition at line 280 of file density.cc.
double smash::density_factor | ( | const ParticleType & | type, |
DensityType | dens_type | ||
) |
Get the factor that determines how much a particle contributes to the density type that is computed.
E.g. positive pion contributes with factor 1 to total particle density and with factor 0 to baryon density. Proton contributes with factor 1 to baryon density, anti-proton - with factor -1 to baryon density, and so on.
[in] | type | type of the particle to be tested |
[in] | dens_type | The density type |
Definition at line 17 of file density.cc.
|
inline |
Norm of the Gaussian smearing function.
[in] | two_sigma_sqr | \(2 \sigma^2 \) [fm \(^2\)], \( \sigma \) - width of gaussian smearing |
|
inline |
Gaussians used for smearing are cut at radius \(r_{cut} = a \sigma \) for calculation speed-up.
In the limit of \(a \to \infty \) smearing factor is normalized to 1:
\[ \frac{4 \pi}{(2 \pi \sigma^2)^{3/2}} \int_0^{\infty} e^{-r^2/2 \sigma^2} r^2 dr = 1 \]
However, for finite \( a\) integral is less than one:
\[ g(a) \equiv \frac{4 \pi}{(2 \pi \sigma^2)^{3/2}} \int_0^{a \sigma} e^{-r^2/2 \sigma^2} r^2 dr = -\sqrt{\frac{2}{\pi}} a e^{-a^2/2} + Erf[a/\sqrt{2}] \]
This \( g(a) \) is typically close to 1. For example, for \(r_{cut} = 3 \sigma \), and thus \( a=3 \), g(3) = 0.9707; g(4) = 0.9987. The aim of this function is to compensate for this factor.
[in] | rcut_in_sigma | \( a = r_{cut} / \sigma\) |
std::pair< double, ThreeVector > smash::unnormalized_smearing_factor | ( | const ThreeVector & | r, |
const FourVector & | p, | ||
const double | m_inv, | ||
const DensityParameters & | dens_par, | ||
const bool | compute_gradient = false |
||
) |
Implements gaussian smearing for any quantity.
Computes smearing factor taking Lorentz contraction into account. Integral of unnormalized smearing factor over space should be \( (2 \pi \sigma^2)^{3/2} \). Division over norm is split for efficiency: it is not nice to recalculate the same constant norm at every call.
[in] | r | vector from the particle to the point of interest [fm] |
[in] | p | particle 4-momentum to account for Lorentz contraction [GeV] |
[in] | m_inv | particle mass, \( (E^2 - p^2)^{-1/2} \) [GeV] |
[in] | dens_par | object containing precomputed parameters for density calculation. |
[in] | compute_gradient | option, true - compute gradient, false - no |
Definition at line 38 of file density.cc.
std::tuple< double, FourVector, ThreeVector, ThreeVector, FourVector, FourVector, FourVector, FourVector > smash::current_eckart | ( | const ThreeVector & | r, |
const ParticleList & | plist, | ||
const DensityParameters & | par, | ||
DensityType | dens_type, | ||
bool | compute_gradient, | ||
bool | smearing | ||
) |
Calculates Eckart rest frame density and 4-current of a given density type and optionally the gradient of the density in an arbitary frame (grad j0), the curl of the 3-current, and the time, x, y, and z derivatives of the 4-current.
\[ j^{\mu} = (\sqrt{2\pi} \sigma )^{-3} \sum_{i=1}^N C_i u^{\mu}_i \exp \left( - \frac{\bigl[\mathbf{r} - \mathbf{r}_i + \frac{\gamma_i^2}{1 + \gamma_i} \boldsymbol{\beta}_i (\boldsymbol{\beta}_i, \mathbf{r} - \mathbf{r}_i) \bigr]^2}{2\sigma^2} \right) \]
\[ \rho^{Eckart} = \sqrt{j^{\mu} j_{\mu}} \]
Here \( C_i \) is a corresponding value of "charge". If baryon current option is selected then \( C_i \) is 1 for baryons, -1 for antibaryons and 0 otherwise. For proton/neutron current \( C_i = 1\) for proton/neutron and 0 otherwise.
To avoid the problems with Eckart frame definition, densities for positive and negative charges, \(\rho_+ \) and \( \rho_-\), are computed separately and final density is \(\rho_+ - \rho_-\).
[in] | r | Arbitrary space point where 4-current is calculated [fm]; ignored if smearing is false |
[in] | plist | List of all particles to be used in \(j^{\mu}\) calculation. If smearing is false or if the distance between particle and calculation point r, \( |r-r_i| > r_{cut} \) then particle input to density will be ignored. |
Next four values are taken from ExperimentalParameters structure:
[in] | par | Set of parameters packed in one structure. From them the cutting radius r_cut \( r_{cut} / \sigma \), number of test-particles ntest and the gaussian width gs_sigma are needed. |
[in] | dens_type | type of four-currect to be calculated: baryon, proton or neutron options are currently available |
[in] | compute_gradient | true - compute gradient, false - no |
[in] | smearing | whether to use gaussian smearing or not. If false, this parameter will use ALL particles equally to calculate the current, and that as such it will not be normalized wrt volume. This should be true for any internal calculation of any quantity and only makes sense to turn off for output purposes in a box. |
Definition at line 171 of file density.cc.
std::tuple< double, FourVector, ThreeVector, ThreeVector, FourVector, FourVector, FourVector, FourVector > smash::current_eckart | ( | const ThreeVector & | r, |
const Particles & | plist, | ||
const DensityParameters & | par, | ||
DensityType | dens_type, | ||
bool | compute_gradient, | ||
bool | smearing | ||
) |
convenience overload of the above (ParticleList -> Particles)
Definition at line 179 of file density.cc.
void smash::update_lattice | ( | RectangularLattice< T > * | lat, |
const LatticeUpdate | update, | ||
const DensityType | dens_type, | ||
const DensityParameters & | par, | ||
const std::vector< Particles > & | ensembles, | ||
const bool | compute_gradient | ||
) |
Updates the contents on the lattice.
[out] | lat | The lattice on which the content will be updated |
[in] | update | tells if called for update at printout or at timestep |
[in] | dens_type | density type to be computed on the lattice |
[in] | par | a structure containing testparticles number and gaussian smearing parameters. |
[in] | ensembles | the particles vector for each ensemble |
[in] | compute_gradient | Whether to compute the gradients |
T | LatticeType |
Definition at line 542 of file density.h.
void smash::update_lattice | ( | RectangularLattice< DensityOnLattice > * | lat, |
RectangularLattice< FourVector > * | old_jmu, | ||
RectangularLattice< FourVector > * | new_jmu, | ||
RectangularLattice< std::array< FourVector, 4 >> * | four_grad_lattice, | ||
const LatticeUpdate | update, | ||
const DensityType | dens_type, | ||
const DensityParameters & | par, | ||
const std::vector< Particles > & | ensembles, | ||
const double | time_step, | ||
const bool | compute_gradient | ||
) |
Updates the contents on the lattice of DensityOnLattice type.
[out] | lat | The lattice of DensityOnLattice type on which the content will be updated |
[in] | old_jmu | Auxiliary lattice, filled with current values at t0, needed for calculating time derivatives |
[in] | new_jmu | Auxiliary lattice,filled with current values at t0 + dt, needed for calculating time derivatives |
[in] | four_grad_lattice | Auxiliary lattice for calculating the fourgradient of the current |
[in] | update | Tells if called for update at printout or at timestep |
[in] | dens_type | Density type to be computed on the lattice |
[in] | par | a structure containing testparticles number and gaussian smearing parameters. |
[in] | ensembles | The particles vector for each ensemble |
[in] | time_step | Time step used in the simulation |
[in] | compute_gradient | Whether to compute the gradients |
Definition at line 186 of file density.cc.
double smash::breit_wigner | ( | double | m, |
double | pole, | ||
double | width | ||
) |
Returns a relativistic Breit-Wigner distribution.
The normalization is such that the integration over \( \sqrt{s} \) from 0 to infinity yields one.
[in] | m | Argument of the Breit-Wigner function (off-shell mass m in GeV) |
[in] | pole | Resonance pole mass \( m_0 \) in GeV |
[in] | width | Resonance width \( \Gamma \) in GeV |
Definition at line 25 of file distributions.cc.
double smash::breit_wigner_nonrel | ( | double | m, |
double | pole, | ||
double | width | ||
) |
Returns a non-relativistic Breit-Wigner distribution, which is essentially a Cauchy distribution with half width.
[in] | m | Argument of the Breit-Wigner function (off-shell mass m in GeV) |
[in] | pole | resonance pole mass \( m_0 \) in GeV |
[in] | width | resonance width \( \Gamma \) in GeV |
Definition at line 32 of file distributions.cc.
double smash::cauchy | ( | double | x, |
double | pole, | ||
double | width | ||
) |
Returns a Cauchy distribution (sometimes also called Lorentz or non-relativistic Breit-Wigner distribution) with the given parameters.
The normalization is such that integrating over x from -infinity to +infinity yields one.
x | Argument of the Cauchy function in GeV. |
pole | Pole parameter \( m_0 \) of the Cauchy function in GeV, i.e. location of the peak. |
width | Width parameter \( \Gamma \) of the Cauchy function in GeV, determining the sharpness of the peak. |
Definition at line 37 of file distributions.cc.
double smash::density_integrand_mass | ( | const double | energy, |
const double | momentum_sqr, | ||
const double | temperature | ||
) |
density_integrand_mass - off_equilibrium distribution for massive particles
[in] | energy | \(E\) (in GeV) |
[in] | momentum_sqr | squared \(p\) (in GeV \(^2\)) |
[in] | temperature | \(T\) (in GeV) |
\[f=pe^{-\frac{\sqrt{m^2+p^2}}{T_0}}\]
Definition at line 42 of file distributions.cc.
double smash::density_integrand_1M_IC | ( | const double | energy, |
const double | momentum_sqr, | ||
const double | temperature | ||
) |
density integrand - 1M_IC massless particles for expanding metric initialization, see Bazow:2016oky [7]
[in] | energy | \(E\) (in GeV) |
[in] | momentum_sqr | squared \(p\) (in GeV \(^2\)) |
[in] | temperature | \(T\) (in GeV) |
Definition at line 48 of file distributions.cc.
double smash::density_integrand_2M_IC | ( | const double | energy, |
const double | momentum_sqr, | ||
const double | temperature | ||
) |
density integrand - 2M_IC massless particles for expanding metric initialization, see Bazow:2016oky [7]
[in] | energy | \(E\) (in GeV) |
[in] | momentum_sqr | squared \(p\) (in GeV \(^2\)) |
[in] | temperature | \(T\) (in GeV) |
Definition at line 55 of file distributions.cc.
double smash::juttner_distribution_func | ( | double | momentum_radial, |
double | mass, | ||
double | temperature, | ||
double | effective_chemical_potential, | ||
double | statistics | ||
) |
Relativistic Juttner distribution function is just a convenience wrapper for displaying Fermi, Bose, and Boltzmann distributions in one mathematical form.
Juttner distribution is a unified way of introducing quantum thermal distributions, in which the "statistics" variable controls the type of the distribution used: statistics = 0: Boltzmann distribution statistics = -1: Bose distribution statistics = +1: Fermi distribution.
[in] | momentum_radial | length of the momentum vector [GeV] |
[in] | mass | (pole) mass of the particle species [GeV] |
[in] | temperature | temperature of the system [GeV] |
[in] | effective_chemical_potential | effective chemical potential of the system [GeV] |
[in] | statistics | quantum statistics of the particles species (+1 for Fermi, -1 for Bose, 0 for Boltzmann) |
Definition at line 74 of file distributions.cc.
double smash::sample_momenta_non_eq_mass | ( | const double | temperature, |
const double | mass | ||
) |
Samples a momentum via rejection method from the non-equilibrium distribution.
\[f=pe^{-\frac{\sqrt{m^2+p^2}}{T_0}}\]
[in] | temperature | Temperature \(T\) [GeV] |
[in] | mass | Mass of the particle: \(m = \sqrt{E^2 - p^2}\) [GeV] |
Definition at line 86 of file distributions.cc.
double smash::sample_momenta_1M_IC | ( | const double | temperature, |
const double | mass | ||
) |
Samples a momentum from the non-equilibrium distribution 1M_IC from Bazow:2016oky [7].
[in] | temperature | Temperature \(T\) [GeV] |
[in] | mass | Mass of the particle: \(m = \sqrt{E^2 - p^2}\) [GeV] |
Definition at line 120 of file distributions.cc.
double smash::sample_momenta_2M_IC | ( | const double | temperature, |
const double | mass | ||
) |
Samples a momentum from the non-equilibrium distribution 2M_IC from Bazow:2016oky [7].
[in] | temperature | Temperature \(T\) [GeV] |
[in] | mass | Mass of the particle: \(m = \sqrt{E^2 - p^2}\) [GeV] |
Definition at line 157 of file distributions.cc.
double smash::sample_momenta_from_thermal | ( | const double | temperature, |
const double | mass | ||
) |
Samples a momentum from the Maxwell-Boltzmann (thermal) distribution in a faster way, given by Scott Pratt (see Pratt:2014vja [44]) APPENDIX: ALGORITHM FOR GENERATING PARTICLES math trick: for \( x^{n-1}e^{-x} \) distribution, sample x by: \( x = -ln(r_1 r_2 r_3 ... r_n) \) where \( r_i \) are uniform random numbers between [0,1) for \( T/m > 0.6 \): \( p^2 e^{-E/T} = p^2 e^{-p/T} * e^{(p-E)/T} \), where \( e^{(p-E)/T}\) is used as rejection weight.
Since \(T/m > 0.6 \), \( e^{(p-E)/T}\) is close to 1. for \( T/m < 0.6 \), there are many rejections another manipulation is used: \( p^2 e^{-E/T} dp = dE \frac{E}{p} p^2 e^{-E/T} \) \( = dK \frac{p}{E} (K+m)^2 e^{-K/T} e^{-m/T} \) \( = dK (K^2 + 2mK + m^2) e^{-K/T} \frac{p}{E}\) where \( \frac{p}{E} \) is used as rejection weight.
[in] | temperature | Temperature \(T\) [GeV] |
[in] | mass | Mass of the particle: \(m = \sqrt{E^2 - p^2}\) [GeV] |
Definition at line 194 of file distributions.cc.
double smash::sample_momenta_IC_ES | ( | const double | temperature | ) |
Sample momenta according to the momentum distribution in Bazow:2016oky [7].
[in] | temperature | The temperature for the distribution [GeV] |
Definition at line 243 of file distributions.cc.
|
inline |
Direct addition operator.
Definition at line 162 of file energymomentumtensor.h.
|
inline |
Direct subtraction operator.
Definition at line 176 of file energymomentumtensor.h.
|
inline |
Direct multiplication operator.
Definition at line 189 of file energymomentumtensor.h.
|
inline |
Direct multiplication operator.
Definition at line 194 of file energymomentumtensor.h.
|
inline |
Direct division operator.
Definition at line 206 of file energymomentumtensor.h.
std::ostream & smash::operator<< | ( | std::ostream & | out, |
const Experiment< Modus > & | e | ||
) |
Creates a verbose textual description of the setup of the Experiment.
Writes the initial state for the Experiment to the output stream.
It automatically appends the output of the current Modus.
Definition at line 713 of file experiment.h.
ExperimentParameters smash::create_experiment_parameters | ( | Configuration & | config | ) |
Gathers all general Experiment parameters.
[in,out] | config | Configuration element |
The maximum around 200 mb occurs in the Delta peak of the pi+p cross section. Many SMASH cross sections diverge at the threshold, these divergent parts are effectively cut off. If deuteron production via d' is considered, then the default should be increased to 2000 mb to function correctly (see Oliinychenko:2018ugs [42]). If the cross sections are globally scaled, the maximum cross section is also scaled.
The maximum around 200 mb occurs in the Delta peak of the pi+p cross section. Many SMASH cross sections diverge at the threshold, these divergent parts are effectively cut off. If deuteron production via d' is considered, then the default should be increased to 2000 mb to function correctly (see Oliinychenko:2018ugs [42]). If the cross sections are globally scaled, the maximum cross section is also scaled.
Definition at line 132 of file experiment.cc.
const std::string smash::hline | ( | 113 | , |
'-' | |||
) |
String representing a horizontal line.
std::string smash::format_measurements | ( | const std::vector< Particles > & | ensembles, |
uint64_t | scatterings_this_interval, | ||
const QuantumNumbers & | conserved_initial, | ||
SystemTimePoint | time_start, | ||
double | time, | ||
double | E_mean_field, | ||
double | E_mean_field_initial | ||
) |
Generate a string which will be printed to the screen when SMASH is running.
[in] | ensembles | The simulated particles: one Particles object per ensemble. The information about particles is used to check the conservation of the total energy and momentum as well as print other useful information. |
[in] | scatterings_this_interval | Number of the scatterings occur within the current timestep. |
[in] | conserved_initial | Initial quantum numbers needed to check the conservations. |
[in] | time_start | Moment in the REAL WORLD when SMASH starts to run [s]. |
[in] | time | Current moment in SMASH [fm]. |
[in] | E_mean_field | Value of the mean-field contribution to the total energy of the system at the current time. |
[in] | E_mean_field_initial | Value of the mean-field contribution to the total energy of the system at t=0. |
Definition at line 349 of file experiment.cc.
double smash::calculate_mean_field_energy | ( | const Potentials & | potentials, |
RectangularLattice< smash::DensityOnLattice > & | jmu_B_lat, | ||
RectangularLattice< std::pair< ThreeVector, ThreeVector >> * | em_lattice, | ||
const ExperimentParameters & | parameters | ||
) |
Calculate the total mean field energy of the system; this will be printed to the screen when SMASH is running.
Using the baryon density lattice is necessary.
[in] | potentials | Parameters of the potentials used in the simulation. |
[in] | jmu_B_lat | Lattice of baryon density and baryon current values as well as their gradients at each lattice node. |
[in] | em_lattice | Lattice containing the electric and magnetic field in fm^-2 |
[in] | parameters | Parameters of the experiment, needed for the access to the number of testparticles. |
Definition at line 397 of file experiment.cc.
EventInfo smash::fill_event_info | ( | const std::vector< Particles > & | ensembles, |
double | E_mean_field, | ||
double | modus_impact_parameter, | ||
const ExperimentParameters & | parameters, | ||
bool | projectile_target_interact, | ||
bool | kinematic_cut_for_SMASH_IC | ||
) |
Generate the EventInfo object which is passed to outputs_.
[in] | ensembles | The simulated particles: one Particles object per ensemble. Information about all particles (positions, momenta, etc.)is passed to the output. |
[in] | E_mean_field | Value of the mean-field contribution to the total energy of the system at the current time. |
[in] | modus_impact_parameter | The impact parameter |
[in] | parameters | structure that holds various global parameters such as testparticle number, see ExperimentParameters |
[in] | projectile_target_interact | true if there was at least one collision |
[in] | kinematic_cut_for_SMASH_IC | true if kinematic cuts in y or pT are enabled when exracting initial conditions for hydrodynamics |
Definition at line 617 of file experiment.cc.
void smash::validate_and_adjust_particle_list | ( | ParticleList & | particle_list | ) |
Validate a particle list adjusting each particle to be a valid SMASH particle.
If the provided particle has an invalid PDG code, it is removed from the list and the user warned. If the particles in the list are adjusted, the function warns the user only the first time this function is called.
[in] | particle_list | The particle list which should be adjusted |
Definition at line 639 of file experiment.cc.
|
inline |
Make sure interactions_total
can be represented as a 32-bit integer.
This is necessary for converting to a id_process
. The latter is 32-bit integer, because it is written like this to binary output.
[in] | interactions_total | Total interaction number |
Definition at line 2510 of file experiment.h.
void smash::update_fields_lattice | ( | RectangularLattice< FieldsOnLattice > * | fields_lat, |
RectangularLattice< FourVector > * | old_fields, | ||
RectangularLattice< FourVector > * | new_fields, | ||
RectangularLattice< std::array< FourVector, 4 >> * | fields_four_grad_lattice, | ||
DensityLattice * | jmu_B_lat, | ||
const LatticeUpdate | fields_lat_update, | ||
const Potentials & | potentials, | ||
const double | time_step | ||
) |
Updates the contents on the lattice of FieldsOnLattice type.
[out] | fields_lat | The lattice of FieldsOnLattice type on which the content will be updated |
[in] | old_fields | Auxiliary lattice, filled with field values at t0, needed for calculating time derivatives |
[in] | new_fields | Auxiliary lattice, filled with field values at t0 + dt, needed for calculating time derivatives |
[in] | fields_four_grad_lattice | Auxiliary lattice for calculating the fourgradient of the fields |
[in] | jmu_B_lat | Lattice of baryon four-current |
[in] | fields_lat_update | Tells if called for update at printout or at timestep |
[in] | potentials | mean-field potentials used in the simulation |
[in] | time_step | Time step used in the simulation |
Definition at line 14 of file fields.cc.
FilePtr smash::fopen | ( | const std::filesystem::path & | filename, |
const std::string & | mode | ||
) |
Open a file with given mode.
This wraps std::fopen but uses FileDeleter to automatically close the file.
[in] | filename | Path to the file. |
[in] | mode | The mode in which the file should be opened (see std::fopen ). |
FilePtr
. Definition at line 14 of file file.cc.
|
inline |
p_ab | Momentum of outgoing particles A and B in center-of-mass frame [GeV] |
L | Angular momentum of outgoing particles A and B. |
This is used as a standard form factor for all hadronic decays. Note that all the Blatt-Weisskopf functions approach one for large p_ab and behave like p_ab**L for small p_ab
. They are increasing monotonically with p_ab
.
Definition at line 35 of file formfactors.h.
|
inline |
An additional form factor for unstable final states as used in GiBUU, according to M.
Post, see eq. (174) in Buss:2011mx [13] or eq. (13) in Post:2003hu [43].
m | Actual mass of the decaying resonance [GeV]. |
M0 | Pole mass of the decaying resonance [GeV]. |
srts0 | Threshold of the reaction, i.e. minimum possible sqrt(s) [GeV]. |
L | Lambda parameter of the form factor [GeV]. This is a cut-off parameter that can be different for baryons and mesons. |
This form factor is equal to one at m=M0 and m=srts0. For decreasing values of L, the form factor results in a stronger and stronger suppression of the high-mass tail (m > M0) and a corresponding enhancement of the low-mass tail (m < M0).
Definition at line 77 of file formfactors.h.
|
inline |
For the π⁰ see Landsberg:1985gaz [33]. For the η the Lambda parameter is fitted to NA60 data, see NA60:2009una [4].
pdg | PDG code of the decaying meson. |
mass | Invariant dilepton mass [GeV]. |
Definition at line 99 of file formfactors.h.
|
inline |
For the ω, see Bratkovskaya:1996qe [11].
pdg | PDG code of the decaying meson. |
mass | Invariant dilepton mass [GeV]. |
Definition at line 122 of file formfactors.h.
|
inline |
m
.m | Invariant dilepton mass [GeV]. |
Currently assumed to be constant, normalized at the real-photon point.
Definition at line 146 of file formfactors.h.
|
inline |
add two FourVectors
[in] | a | The first FourVector to add |
[in] | b | The second FourVector to add |
Definition at line 376 of file fourvector.h.
|
inline |
subtract two FourVectors
[in] | a | The FourVector from which to subtract |
[in] | b | The FourVector to subtract |
Definition at line 397 of file fourvector.h.
|
inline |
multiply a vector with a scalar
[in] | a | The FourVector to multiply |
[in] | b | The value with which to multiply |
Definition at line 418 of file fourvector.h.
|
inline |
multiply a vector with a scalar
[in] | b | The value with which to multiply |
[in] | a | The FourVector to multiply |
Definition at line 429 of file fourvector.h.
|
inline |
divide a vector by a scalar
[in] | a | The FourVector to divide |
[in] | b | The value with which to divide |
Definition at line 451 of file fourvector.h.
|
inline |
Fallback that fails to set the trap.
Definition at line 40 of file fpenvironment.h.
void smash::setup_default_float_traps | ( | ) |
Setup the floating-point traps used throughout SMASH.
If possible, this function additionally installs a signal handler that prints what kind of condition triggered the trap. This requires POSIX.1-2001 to work.
Definition at line 69 of file fpenvironment.cc.
void smash::without_float_traps | ( | F && | f | ) |
Convenience function to create a scope where all floating point traps are disabled.
Example:
f | A functor (e.g. lambda) that is executed in the cleared floating point environment. |
F | type of the functor |
Definition at line 129 of file fpenvironment.h.
std::ostream & smash::operator<< | ( | std::ostream & | s, |
const ThermLatticeNode & | node | ||
) |
This operator writes all the thermodynamic quantities at a certain position to the file out.
[in] | s | location of the output |
[in] | node | position on the lattice, where the output is generated |
Definition at line 97 of file grandcan_thermalizer.cc.
|
inline |
Builds a meaningful error message.
Takes the message and quotes the Line where the error occurs
[in] | message | Error message |
[in] | line | Line object containing line number and line content. |
Definition at line 42 of file inputfunctions.h.
std::vector< Line > smash::line_parser | ( | const std::string & | input | ) |
Helper function for parsing particles.txt and decaymodes.txt.
This function goes through an input stream line by line and removes comments and empty lines. The remaining lines will be returned as a vector of strings and linenumber pairs (Line).
[in] | input | an lvalue reference to an input stream |
Definition at line 21 of file inputfunctions.cc.
|
inline |
Makes sure that nothing is left to read from this line.
Definition at line 59 of file inputfunctions.h.
|
inline |
Utility function to read a complete input stream (e.g.
file) into one string.
[in] | input | The input stream. Since it reads until EOF und thus "uses up the whole input stream" the function takes an rvalue reference to the stream object (just pass a temporary). |
Definition at line 80 of file inputfunctions.h.
|
inline |
Check if a line in the string ends with \r\n.
This may happen when a file was edited on Windows.
[in] | in | Input string |
Definition at line 91 of file inputfunctions.h.
T smash::interpolate_trilinear | ( | T | ax, |
T | ay, | ||
T | az, | ||
T | f1, | ||
T | f2, | ||
T | f3, | ||
T | f4, | ||
T | f5, | ||
T | f6, | ||
T | f7, | ||
T | f8 | ||
) |
Perform a trilinear 1st order interpolation.
Assume, we seek the value of a function f at position (x, y, z). We know the position (x, y, z) lies within a 3D cube, for which the values of the function f are known at each corner (f1, ..., f8). We can now interpolate those values trilinearly to obtain an estimate of f at position (x, y, z).
[in] | ax | fraction of the step in x-direction |
[in] | ay | fraction of the step in y-direction |
[in] | az | fraction of the step in z-direction |
[in] | f1 | Value at the lower left front corner of the cube |
[in] | f2 | Value at the lower right front corner of the cube |
[in] | f3 | Value at the upper left front corner of the cube |
[in] | f4 | Value at the upper right front corner of the cube |
[in] | f5 | Value at the lower left back corner of the cube |
[in] | f6 | Value at the lower right back corner of the cube |
[in] | f7 | Value at the upper left back corner of the cube |
[in] | f8 | Value at the upper right back corner of the cube |
Definition at line 126 of file interpolation.h.
Permutation smash::generate_sort_permutation | ( | std::vector< T > const & | v, |
Cmp | compare | ||
) |
Calculate the permutations necessary for sorting a vector.
Cmp | Type of comparison function. |
v | Vector to be sorted. |
compare | Comparison function (see std::sort ). |
Definition at line 147 of file interpolation.h.
std::vector<T> smash::apply_permutation | ( | const std::vector< T > & | v, |
const Permutation & | p | ||
) |
Apply a permutation to a vector.
T | Type of values to be permuted. |
v | Vector to be permuted. |
p | Permutation to be applied. |
Definition at line 164 of file interpolation.h.
void smash::check_duplicates | ( | const std::vector< T > & | x, |
const std::string & | error_position | ||
) |
Check whether two components have the same value in a sorted vector x.
Throws an exception if duplicates are encountered.
T | Type of values to be checked for duplicates. |
x | Vector to be checked for duplicates. |
error_position | String used in the error message, indicating where the error originated. |
Definition at line 183 of file interpolation.h.
size_t smash::find_index | ( | const std::vector< T > & | v, |
T | x | ||
) |
Find the index in v that corresponds to the last value strictly smaller than x.
If no such value exists, the first value is returned.
This assumes v is sorted and uses a binary search.
T | Type of values to be compared to x. |
v | Vector to be searched. |
x | Upper bound for indexed value. |
Example:
std::vector<int> x = { 0, 2, 4, 6, 8, 10 }; find_index(x, 2)
0
find_index(x, 3)
1
Definition at line 230 of file interpolation.h.
|
inline |
[in] | s | Mandelstam s of the collision [GeV^2] |
[in] | ma | Mass of the first particle [GeV] |
[in] | mb | Mass of the second particle [GeV] |
Definition at line 26 of file kinematics.h.
|
inline |
[in] | s | Mandelstam s of the collision [GeV^2] |
[in] | ma | Mass of the projectile [GeV] |
[in] | mb | Mass of the target [GeV] |
Definition at line 39 of file kinematics.h.
|
noexcept |
[in] | s | Mandelstam s of the process [GeV^2]. |
[in] | mass_a | Mass of first particle [GeV]. |
[in] | mass_b | Mass of second particle [GeV]. |
Definition at line 52 of file kinematics.h.
|
noexcept |
[in] | s | Mandelstam s of the process [GeV^2]. |
[in] | mass_a | Mass of first particle [GeV]. |
[in] | mass_b | Mass of second particle [GeV]. |
Definition at line 66 of file kinematics.h.
|
noexcept |
[in] | sqrts | sqrt(s) of the process [GeV]. |
[in] | mass_a | Mass of first particle [GeV]. |
[in] | mass_b | Mass of second particle [GeV]. |
Definition at line 79 of file kinematics.h.
|
noexcept |
[in] | sqrts | sqrt(s) of the process [GeV]. |
[in] | mass_a | Mass of first particle [GeV]. |
[in] | mass_b | Mass of second particle [GeV]. |
Definition at line 91 of file kinematics.h.
std::array<T, 2> smash::get_t_range | ( | const T | sqrts, |
const T | m1, | ||
const T | m2, | ||
const T | m3, | ||
const T | m4 | ||
) |
Get the range of Mandelstam-t values allowed in a particular 2->2 process, see PDG 2014 booklet, eq.
(46.34).
[in] | sqrts | sqrt(s) of the process [GeV]. |
[in] | m1 | Mass of first incoming particle [GeV]. |
[in] | m2 | Mass of second incoming particle [GeV]. |
[in] | m3 | Mass of first outgoing particle [GeV]. |
[in] | m4 | Mass of second outgoing particle [GeV]. |
Note that both t_min and t_max are negative, with |t_min| < |t_max|, i.e. t_min > t_max.
Definition at line 109 of file kinematics.h.
|
inlinestatic |
Helper function for plab_from_s.
[in] | mandelstam_s | The Mandelstam variable s [GeV^2] |
[in] | m_sum | Sum of masses of target and projectile [GeV] \( m_1 + m_2 \) |
Definition at line 127 of file kinematics.h.
|
inlinestatic |
Helper function for plab_from_s.
[in] | mandelstam_s | The Mandelstam variable s [GeV^2] |
[in] | radicand | \( (s - (m_1 + m_2)^2) * (s - (m_1 - m_2)^2) \) where \( m_1 \) and \( m_2 \) are masses of incoming particles [GeV^4] |
Definition at line 142 of file kinematics.h.
|
inline |
Convert Mandelstam-s to p_lab in a fixed-target collision.
This assumes both particles have the given mass.
[in] | mandelstam_s | The Mandelstam variable s [GeV^2] |
[in] | mass | Mass of projectile and target [GeV] |
Definition at line 157 of file kinematics.h.
|
inline |
Convert Mandelstam-s to p_lab in a fixed-target collision.
This assumes both particles have the mass of a nucleon.
[in] | mandelstam_s | The Mandelstam variable s [GeV^2] |
Definition at line 173 of file kinematics.h.
|
inline |
Convert Mandelstam-s to p_lab in a fixed-target collision.
The mass of the projectile and the mass of the target have to be given.
[in] | mandelstam_s | the Mandelstam variable s [GeV^2] |
[in] | m_projectile | mass of the projectile [GeV] |
[in] | m_target | mass of the target [GeV] |
Definition at line 185 of file kinematics.h.
|
inline |
Convert E_tot to Mandelstam-s for a fixed-target setup, with a projectile of mass m_P and a total energy e_tot and a target of mass m_T at rest.
[in] | e_tot | energy of the projectile in the lab frame [GeV] |
[in] | m_P | mass of the projectile [GeV] |
[in] | m_T | mass of the target [GeV] |
Definition at line 211 of file kinematics.h.
|
inline |
Convert E_tot to Mandelstam-s for two beams with total energies and masses (E,m)
[in] | e_tot_p | Total energy of projectile [GeV] |
[in] | e_tot_t | Total energy of target [GeV] |
[in] | m_p | Mass of projectile [GeV] |
[in] | m_t | Mass of target [GeV] |
Definition at line 224 of file kinematics.h.
|
inline |
Convert E_kin to Mandelstam-s for a fixed-target setup, with a projectile of mass m_P and a kinetic energy e_kin and a target of mass m_T at rest.
[in] | e_kin | kinetic energy of the projectile in the lab frame [GeV] |
[in] | m_P | mass of the projectile [GeV] |
[in] | m_T | mass of the target [GeV] |
Definition at line 239 of file kinematics.h.
|
inline |
Convert E_kin=(E_tot-m) to Mandelstam-s for two beams with total energies and masses (E,m)
[in] | e_kin_p | Kinetic energy of projectile [GeV] |
[in] | e_kin_t | Kinetic energy of target [GeV] |
[in] | m_p | Mass of projectile [GeV] |
[in] | m_t | Mass of target [GeV] |
Definition at line 252 of file kinematics.h.
|
inline |
Convert p_lab to Mandelstam-s for a fixed-target setup, with a projectile of mass m_P and momentum plab and a target of mass m_T at rest.
[in] | plab | Momentum of the projectile in the lab frame [GeV] |
[in] | m_P | Mass of the projectile [GeV] |
[in] | m_T | Mass of the target [GeV] |
Definition at line 265 of file kinematics.h.
|
inline |
Convert P_lab to Mandelstam-s for two beams with total momenta and masses (P,m) (P_lab gives per nucleon, P=P_lab*A)
[in] | plab_p | Kinetic energy of projectile [GeV] |
[in] | plab_t | Kinetic energy of target [GeV] |
[in] | m_p | Mass of projectile [GeV] |
[in] | m_t | Mass of target [GeV] |
Definition at line 278 of file kinematics.h.
Configuration smash::setup_config_and_logging | ( | const std::string & | config_file, |
const std::string & | particles_file = {} , |
||
const std::string & | decaymodes_file = {} , |
||
const std::vector< std::string > & | extra_config = {} |
||
) |
Set up configuration and logging from input files and extra config.
[in] | config_file | Path to config input file |
[in] | particles_file | Path to particles input file. |
[in] | decaymodes_file | Path to decaymodes input file. |
[in] | extra_config | Extra config entries. |
If no particles and decaymodes files are given the default files in the input directory are used.
Definition at line 33 of file library.cc.
void smash::initialize_particles_decays_and_tabulations | ( | Configuration & | configuration, |
const std::string & | version, | ||
const std::string & | tabulations_dir = {} |
||
) |
Initialize the particles and decays from the given configuration, plus tabulate the resonance integrals.
[in] | configuration | Fully-setup configuration i.e. including particles and decaymodes. |
[in] | version | Current version of SMASH. |
[in] | tabulations_dir | Path where tabulations should be stored. |
Definition at line 45 of file library.cc.
std::vector<T> smash::smooth | ( | const std::vector< T > & | x, |
const std::vector< T > & | y, | ||
T | span = 2. / 3 , |
||
size_t | iter = 3 , |
||
T | delta = 0 |
||
) |
Apply the LOWESS smoother (see the reference below) to the given data (x, y).
x | x-values. |
y | y-values. |
span | The smoother span. This gives the proportion of points in the plot which influence the smoothness at each value. Larger values give more smoothness. |
iter | The number of robustifying iterations which should be performed. Using smaller values of iter will make lowess run faster. |
delta | Values of x which lie within delta of each other replaced by a single value in the output from lowess. For delta = 0, delta will be calculated. |
References:
Definition at line 289 of file lowess.h.
|
constexpr |
Function template to perform a safe numeric conversion between types.
D | Destination type |
S | Source type |
[in] | value | Input value to be converted |
D
. std::overflow_error | If the value to be converted cannot be represented by any value of the destination type. |
NOTE: This template is only declared and not implemented! Only specializations are implemented so that only given conversions do not result in compilation errors.
|
constexpr |
Function template specialization to perform a safe numeric conversion from size_t
to uint32_t
.
[in] | value | Input value to be converted |
uint32_t
type. std::overflow_error | If the value to be converted is larger than the maximum of uint32_t type. |
Definition at line 42 of file numeric_cast.h.
bool smash::almost_equal | ( | const N | x, |
const N | y | ||
) |
Checks two numbers for relative approximate equality.
N | Number type. |
x | Left-hand side. |
y | Right-hand side. |
\[|x - y| \stackrel{?}{\le} \delta \mbox{ or } |x - y| \stackrel{?}{\le} \frac{|x| + |y|}{2} \cdot \delta\]
Definition at line 44 of file numerics.h.
bool smash::almost_equal_physics | ( | const N | x, |
const N | y | ||
) |
Same as smash::almost_equal, but for physical checks like energy-momentum conservation small_number is enough precision-wise.
N | Number type. |
x | Left-hand side. |
y | Right-hand side. |
Definition at line 64 of file numerics.h.
bool smash::is_any_nan | ( | const T & | collection | ) |
This function iterates through the elements of a collection and checks if any of them is NaN using the std::isnan
function.
NaN is a special floating-point value that represents undefined or unrepresentable values.
T | The type of the collection. It can be any iterable container of numeric values. |
collection | The collection to be checked for NaN values. |
true
if any element in the collection is NaN, false
otherwise Definition at line 82 of file numerics.h.
Checks if supplied codes have existing parametrizations of total cross sections.
[in] | pdg_a | PDG code of first incoming particle |
[in] | pdg_b | PDG code of second incoming particle |
Definition at line 30 of file parametrizations.cc.
double smash::xs_high_energy | ( | double | mandelstam_s, |
bool | is_opposite_charge, | ||
double | ma, | ||
double | mb, | ||
double | P, | ||
double | R1, | ||
double | R2 | ||
) |
total hadronic cross sections at high energies parametrized in the 2016 PDG book(http://pdg.lbl.gov/2016/reviews/rpp2016-rev-cross-section-plots.pdf)
This function is a utility function called from specific parametrizations.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
[in] | is_opposite_charge | whether the particles being collided have opposite charges |
[in] | ma | mass of first particle [GeV] |
[in] | mb | mass of second particle [GeV] |
[in] | P | Pomeranchuk's constant term [mb] |
[in] | R1 | intensity of the first Regge pole contribution [mb] |
[in] | R2 | intensity of the second Regge pole contribution [mb] |
Definition at line 40 of file parametrizations.cc.
double smash::pp_high_energy | ( | double | mandelstam_s | ) |
pp total cross section at high energies
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 54 of file parametrizations.cc.
double smash::ppbar_high_energy | ( | double | mandelstam_s | ) |
ppbar total cross section at high energies
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 58 of file parametrizations.cc.
double smash::np_high_energy | ( | double | mandelstam_s | ) |
np total cross section at high energies
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 62 of file parametrizations.cc.
double smash::npbar_high_energy | ( | double | mandelstam_s | ) |
npbar total cross section at high energies
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 66 of file parametrizations.cc.
double smash::piplusp_high_energy | ( | double | mandelstam_s | ) |
pi+p total cross section at high energies
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 70 of file parametrizations.cc.
double smash::piminusp_high_energy | ( | double | mandelstam_s | ) |
pi-p total cross section at high energies
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 74 of file parametrizations.cc.
double smash::xs_ppbar_annihilation | ( | double | mandelstam_s | ) |
parametrized cross-section for proton-antiproton annihilation used in the UrQMD model
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 78 of file parametrizations.cc.
double smash::xs_string_hard | ( | double | mandelstam_s, |
double | xs_0, | ||
double | e_0, | ||
double | lambda_pow | ||
) |
Utility function called by specific other parametrizations Parametrized hard scattering cross section (with partonic scattering) This parametrization is a direct fit to cross sections in PYTHIA See Sjostrand:1987su [51].
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
[in] | xs_0 | a fit parameter [mb] |
[in] | e_0 | a fit parameter [GeV] |
[in] | lambda_pow | a fit parameter |
Definition at line 90 of file parametrizations.cc.
double smash::NN_string_hard | ( | double | mandelstam_s | ) |
nucleon-nucleon hard scattering cross section (with partonic scattering)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 101 of file parametrizations.cc.
double smash::Npi_string_hard | ( | double | mandelstam_s | ) |
nucleon-pion hard scattering cross section (with partonic scattering)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 105 of file parametrizations.cc.
double smash::pipi_string_hard | ( | double | mandelstam_s | ) |
pion-pion hard scattering cross section (with partonic scattering)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 109 of file parametrizations.cc.
double smash::pipluspiminus_total | ( | double | sqrts | ) |
pi+ pi- total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm.
If the requested energy is out of the interpolation bounds, the hard string value is returned.
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 113 of file parametrizations.cc.
double smash::pizeropizero_total | ( | double | sqrts | ) |
pi0 pi0 total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm.
If the requested energy is out of the interpolation bounds, the hard string value is returned.
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 128 of file parametrizations.cc.
double smash::piplusp_total | ( | double | sqrts | ) |
pi+ p total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm.
If the requested energy is out of the interpolation bounds, the high energy cross section is returned.
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 143 of file parametrizations.cc.
double smash::piplusp_elastic_high_energy | ( | double | mandelstam_s, |
double | m1, | ||
double | m2 | ||
) |
pi+p elactic cross section parametrization.
Source: GiBUU:parametrizationBarMes_HighEnergy.f90 Elastic contributions from decays are not subtracted, high energy parametrization used at all energies (useful for AQM)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
[in] | m1 | the mass of the first particle [GeV] |
[in] | m2 | the mass of the second particle [GeV] |
Definition at line 175 of file parametrizations.cc.
double smash::piplusp_elastic_AQM | ( | double | mandelstam_s, |
double | m1, | ||
double | m2 | ||
) |
An overload of piplusp_elastic_high_energy in which the very low part is replaced by a flat 5 mb cross section; used for meson-meson interactions.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
[in] | m1 | the mass of the first particle [GeV] |
[in] | m2 | the mass of the second particle [GeV] |
Definition at line 182 of file parametrizations.cc.
double smash::piplusp_elastic | ( | double | mandelstam_s | ) |
pi+p elastic cross section parametrization, PDG data.
Source: GiBUU:parametrizationBarMes_HighEnergy.f90
The parametrizations of the elastic pion+nucleon cross sections are still under tuning. The parametrizaton is employed to give a non-zero cross section at high energies. To make sure it doesn't affect the cross section at the low energies, I truncate the parametrization at p_lab = 8 GeV, which correspons to square root of s equal to 4 GeV.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 192 of file parametrizations.cc.
double smash::piplusp_sigmapluskplus_pdg | ( | double | mandelstam_s | ) |
pi+ p to Sigma+ K+ cross section parametrization, PDG data.
The PDG data is smoothed using the LOWESS algorithm. If more than one cross section was given for one p_lab value, the corresponding cross sections are averaged.
Definition at line 226 of file parametrizations.cc.
double smash::piminusp_total | ( | double | sqrts | ) |
pi- p total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm.
If the requested energy is out of the interpolation bounds, the high energy cross section is returned.
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 241 of file parametrizations.cc.
double smash::piminusp_elastic | ( | double | mandelstam_s | ) |
pi-p elastic cross section parametrization Source: GiBUU:parametrizationBarMes_HighEnergy.f90
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 273 of file parametrizations.cc.
double smash::piminusp_lambdak0_pdg | ( | double | mandelstam_s | ) |
pi- p -> Lambda K0 cross section parametrization, PDG data.
The PDG data is smoothed using the LOWESS algorithm. If more than one cross section was given for one p_lab value, the corresponding cross sections are averaged.
Definition at line 317 of file parametrizations.cc.
double smash::piminusp_sigmaminuskplus_pdg | ( | double | mandelstam_s | ) |
pi- p -> Sigma- K+ cross section parametrization, PDG data.
The PDG data is smoothed using the LOWESS algorithm. If more than one cross section was given for one p_lab value, the corresponding cross sections are averaged.
Definition at line 334 of file parametrizations.cc.
double smash::piminusp_sigma0k0_res | ( | double | mandelstam_s | ) |
pi- p -> Sigma0 K0 cross section parametrization, resonance contribution.
The data is smoothed using the LOWESS algorithm. If more than one cross section was given for one sqrts value, the corresponding cross sections are averaged.
Definition at line 351 of file parametrizations.cc.
double smash::pp_elastic | ( | double | mandelstam_s | ) |
pp elastic cross section parametrization Source: Weil:2013mya [60], eq.
(44)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 363 of file parametrizations.cc.
double smash::pp_elastic_high_energy | ( | double | mandelstam_s, |
double | m1, | ||
double | m2 | ||
) |
pp elastic cross section parametrization, with only the high energy part generalized to all energy regimes (used for AQM) Source: Weil:2013mya [60], eq.
(44)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
[in] | m1 | the mass of the first particle [GeV] |
[in] | m2 | the mass of the second particle [GeV] |
Definition at line 382 of file parametrizations.cc.
double smash::pp_total | ( | double | mandelstam_s | ) |
pp total cross section parametrization Sources: low-p: Cugnon:1996kh [18] highest-p: Buss:2011mx [13]
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 390 of file parametrizations.cc.
double smash::np_elastic | ( | double | mandelstam_s | ) |
np elastic cross section parametrization Source: Weil:2013mya [60], eq.
(45)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 406 of file parametrizations.cc.
double smash::np_total | ( | double | mandelstam_s | ) |
np total cross section parametrization Sources: low-p: Cugnon:1996kh [18] highest-p: Buss:2011mx [13]
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 425 of file parametrizations.cc.
double smash::ppbar_elastic | ( | double | mandelstam_s | ) |
ppbar elastic cross section parametrization Source: Bass:1998ca [5]
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 441 of file parametrizations.cc.
double smash::ppbar_total | ( | double | mandelstam_s | ) |
ppbar total cross section parametrization Source: Bass:1998ca [5]
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 458 of file parametrizations.cc.
double smash::deuteron_pion_elastic | ( | double | mandelstam_s | ) |
Deuteron pion elastic cross-section [mb] parametrized to fit pi-d elastic scattering data (the data collection was be obtained from SAID data base, gwdac.phys.gwu.edu)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 475 of file parametrizations.cc.
double smash::deuteron_nucleon_elastic | ( | double | mandelstam_s | ) |
Deuteron nucleon elastic cross-section [mb] parametrized by Oh:2009gx [39].
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 480 of file parametrizations.cc.
double smash::kplusp_total | ( | double | mandelstam_s | ) |
K+ p total cross section parametrization.
Source: Buss:2011mx [13], B.3.8
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 486 of file parametrizations.cc.
double smash::kplusn_total | ( | double | mandelstam_s | ) |
K+ n total cross section parametrization.
Source: Buss:2011mx [13], B.3.8
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 498 of file parametrizations.cc.
double smash::kminusn_total | ( | double | mandelstam_s | ) |
K- n total cross section parametrization.
Source: Buss:2011mx [13], B.3.8
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 523 of file parametrizations.cc.
double smash::kminusp_total | ( | double | mandelstam_s | ) |
K- p total cross section parametrization.
Source: Buss:2011mx [13], B.3.8
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 510 of file parametrizations.cc.
double smash::kplusp_elastic_background | ( | double | mandelstam_s | ) |
K+ p elastic background cross section parametrization.
sigma(K+n->K+n) = sigma(K+n->K0p) = 0.5 * sigma(K+p->K+p) Source: Buss:2011mx [13], B.3.8
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 535 of file parametrizations.cc.
double smash::kplusn_elastic_background | ( | double | mandelstam_s | ) |
K+ n elastic background cross section parametrization sigma(K+n->K+n) = sigma(K+n->K0p) = 0.5 * sigma(K+p->K+p) Source: Buss:2011mx [13], B.3.8.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 548 of file parametrizations.cc.
double smash::kplusn_k0p | ( | double | mandelstam_s | ) |
K+ n charge exchange cross section parametrization.
sigma(K+n->K+n) = sigma(K+n->K0p) = 0.5 * sigma(K+p->K+p) Source: Buss:2011mx [13], B.3.8
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 552 of file parametrizations.cc.
double smash::kminusp_elastic_background | ( | double | mandelstam_s | ) |
K- p elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 573 of file parametrizations.cc.
double smash::kminusn_elastic_background | ( | double | mandelstam_s | ) |
K- n elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 617 of file parametrizations.cc.
double smash::k0p_elastic_background | ( | double | mandelstam_s | ) |
K0 p elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 619 of file parametrizations.cc.
double smash::k0n_elastic_background | ( | double | mandelstam_s | ) |
K0 n elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 624 of file parametrizations.cc.
double smash::kbar0p_elastic_background | ( | double | mandelstam_s | ) |
Kbar0 p elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 629 of file parametrizations.cc.
double smash::kbar0n_elastic_background | ( | double | mandelstam_s | ) |
Kbar0 n elastic background cross section parametrization Source: Buss:2011mx [13], B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 634 of file parametrizations.cc.
double smash::kplusp_inelastic_background | ( | double | mandelstam_s | ) |
K+ p inelastic background cross section parametrization Source: Buss:2011mx [13], B.3.8.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 639 of file parametrizations.cc.
double smash::kplusn_inelastic_background | ( | double | mandelstam_s | ) |
K+ n inelastic background cross section parametrization Source: Buss:2011mx [13], B.3.8.
This interpolates the experimental data of the total cross section and subtracts the elastic and charge exchange cross section.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 652 of file parametrizations.cc.
double smash::kminusp_kbar0n | ( | double | mandelstam_s | ) |
K- p <-> Kbar0 n cross section parametrization.
Source: Buss:2011mx [13], B.3.9
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 771 of file parametrizations.cc.
double smash::kminusp_piminussigmaplus | ( | double | sqrts | ) |
K- p <-> pi- Sigma+ cross section parametrization Taken from UrQMD (Graef:2014mra [24]).
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 784 of file parametrizations.cc.
double smash::kminusp_piplussigmaminus | ( | double | sqrts | ) |
K- p <-> pi+ Sigma- cross section parametrization Taken from UrQMD (Graef:2014mra [24]).
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 788 of file parametrizations.cc.
double smash::kminusp_pi0sigma0 | ( | double | sqrts | ) |
K- p <-> pi0 Sigma0 cross section parametrization Fit to Landolt-Börnstein instead of UrQMD values.
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 792 of file parametrizations.cc.
double smash::kminusp_pi0lambda | ( | double | sqrts | ) |
K- p <-> pi0 Lambda cross section parametrization Fit to Landolt-Börnstein instead of UrQMD values.
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 796 of file parametrizations.cc.
double smash::kminusn_piminussigma0 | ( | double | sqrts | ) |
K- n <-> pi- Sigma0 cross section parametrization Follow from the parametrization with the same strange product via isospin symmetry.
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 800 of file parametrizations.cc.
double smash::kminusn_pi0sigmaminus | ( | double | sqrts | ) |
K- n <-> pi0 Sigma- cross section parametrization Follow from the parametrization with the same strange product via isospin symmetry.
[in] | sqrts | the rest frame total energy [GeV] |
double smash::kminusn_piminuslambda | ( | double | sqrts | ) |
K- n <-> pi- Lambda cross section parametrization Follow from the parametrization with the same strange product via isospin symmetry.
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 805 of file parametrizations.cc.
double smash::lambdalambda_ximinusp | ( | double | sqrts_sqrts0, |
double | p_N, | ||
double | p_lambda | ||
) |
Lambda Lambda <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
[in] | p_N | momentum of outgoing nucleon in center of mass frame [GeV] |
[in] | p_lambda | momentum of incoming lambda in center of mass frame [GeV] |
Definition at line 811 of file parametrizations.cc.
double smash::lambdalambda_xi0n | ( | double | sqrts_sqrts0, |
double | p_N, | ||
double | p_lambda | ||
) |
Lambda Lambda <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
[in] | p_N | momentum of outgoing nucleon in center of mass frame [GeV] |
[in] | p_lambda | momentum of incoming lambda in center of mass frame [GeV] |
Definition at line 817 of file parametrizations.cc.
double smash::lambdasigmaplus_xi0p | ( | double | sqrts_sqrts0 | ) |
Lambda Sigma+ <-> Xi0 p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 821 of file parametrizations.cc.
double smash::lambdasigmaminus_ximinusn | ( | double | sqrts_sqrts0 | ) |
Lambda Sigma- <-> Xi- n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 826 of file parametrizations.cc.
double smash::lambdasigma0_ximinusp | ( | double | sqrts_sqrts0 | ) |
Lambda Sigma0 <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 830 of file parametrizations.cc.
double smash::lambdasigma0_xi0n | ( | double | sqrts_sqrts0 | ) |
Lambda Sigma0 <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 839 of file parametrizations.cc.
double smash::sigma0sigma0_ximinusp | ( | double | sqrts_sqrts0 | ) |
Sigma0 Sigma0 <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 843 of file parametrizations.cc.
double smash::sigma0sigma0_xi0n | ( | double | sqrts_sqrts0 | ) |
Sigma0 Sigma0 <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
Note that there is a typo in the paper in equation (6): "Lambda Sigma0 -> Xi0 n" should be "Sigma0 Sigma0 -> Xi0 n".
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 852 of file parametrizations.cc.
double smash::sigmaplussigmaminus_xi0p | ( | double | sqrts_sqrts0 | ) |
Sigma+ Sigma- <-> Xi0 p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 856 of file parametrizations.cc.
double smash::sigma0sigmaminus_ximinusn | ( | double | sqrts_sqrts0 | ) |
Sigma0 Sigma- <-> Xi- n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 860 of file parametrizations.cc.
double smash::sigmaplussigmaminus_ximinusp | ( | double | sqrts_sqrts0 | ) |
Sigma+ Sigma- <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 864 of file parametrizations.cc.
double smash::sigmaplussigmaminus_xi0n | ( | double | sqrts_sqrts0 | ) |
Sigma+ Sigma- <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model by Feng Li, as in UrQMD (Graef:2014mra [24]).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 868 of file parametrizations.cc.
ParticleData smash::create_valid_smash_particle_matching_provided_quantities | ( | PdgCode | pdgcode, |
double | mass, | ||
const FourVector & | four_position, | ||
const FourVector & | four_momentum, | ||
int | log_area, | ||
bool & | mass_warning, | ||
bool & | on_shell_warning | ||
) |
This function creates a SMASH particle validating the provided information.
This function possibly warns the user, if requested.
[in] | pdgcode | PdgCode of the particle which is supposed to be checked |
[in] | mass | Mass of the new particle |
[in] | four_position | Position four vector of the new particle |
[in] | four_momentum | Momentum four vector of the new particle |
[in] | log_area | Logging area for the warning |
[in,out] | mass_warning | Whether to warn about mass discrepancies |
[in,out] | on_shell_warning | Whether to warn about off-shell particles |
false
after having warned the user. Definition at line 165 of file particledata.cc.
bool smash::are_particles_identical_at_given_time | ( | const ParticleData & | p1, |
const ParticleData & | p2, | ||
double | time | ||
) |
Utility function to compare two ParticleData
instances with respect to their PDG code, 4-position and 4-momenta.
The particles are propagated to the given time before being compared. 4-vectors are compared using the FourVector::operator==
overload.
p1 | The first particle |
p2 | The second particle |
time | The time at which the comparison should take place |
true
if the two particles have the same PDG codes, 4-position and 4-momentum; false
otherwise. Definition at line 250 of file particledata.cc.
x | Left-hand parity |
y | Right-hand parity |
x
and y
. Definition at line 63 of file particletype.h.
x | Left-hand parity |
y | Right-hand parity |
x
and y
. Definition at line 76 of file particletype.h.
ParticleTypePtrList smash::list_possible_resonances | ( | const ParticleTypePtr | type_a, |
const ParticleTypePtr | type_b | ||
) |
Lists the possible resonances that decay into two particles.
[in] | type_a | first incoming particle. |
[in] | type_b | second incoming particle. |
static std::map
is used as a caching mechanism and is filled the first time this function is called, such that calling it again just returns the same list. Definition at line 775 of file particletype.cc.
std::istream & smash::operator>> | ( | std::istream & | is, |
PdgCode & | code | ||
) |
Sets the PDG code from the textual representation in the input stream.
istream >> PdgCode assigns the PDG Code from an istream.
[in] | is | input string |
[out] | code | PdgCode to be set |
Definition at line 14 of file pdgcode.cc.
Definition at line 1129 of file pdgcode.h.
|
constexpr |
Pack two int32_t into an uint64_t.
This is useful for switch statements on pairs.
x | First integer to be packed. |
y | Second integer to be packed. |
Definition at line 130 of file pdgcode_constants.h.
|
inlineconstexpr |
Efficient template for calculating integer powers using squaring.
T | Type that implements multiplication. |
[in] | base | |
[in] | exponent |
|
inlineconstexpr |
bool smash::is_string_soft_process | ( | ProcessType | p | ) |
Check if a given process type is a soft string excitation.
[in] | p | The process type |
Definition at line 18 of file processbranch.cc.
double smash::calc_hubble | ( | double | time, |
const ExpansionProperties & | metric | ||
) |
Calculate the Hubble parameter \(H(t)\), which describes how large the expansion flow is.
The flow \(\mathbf{v}=H(t)\:\mathbf{x}\) Tindall:2016try [58]
[in] | time | time in the computational frame. [fm] |
[in] | metric | Struct containing the parameters needed to calculate the metric. |
Definition at line 21 of file propagation.cc.
double smash::propagate_straight_line | ( | Particles * | particles, |
double | to_time, | ||
const std::vector< FourVector > & | beam_momentum | ||
) |
Propagates the positions of all particles on a straight line to a given moment.
For each particle, the position is shifted:
\[ \mathbf{x}^\prime = \mathbf{x} + \mathbf{v}\:\Delta t \]
where \(\mathbf{x}\) is the current position, \(\mathbf{v}\) its velocity and \(\Delta t\) the duration of this timestep.
[out] | particles | The particle list in the event |
[in] | to_time | final time [fm] |
[in] | beam_momentum | This vector of 4-momenta should have non-zero size only if "frozen Fermi motion" is on. The the Fermi momenta are only used for collisions, but not for propagation. In this case beam_momentum is used for propagating the initial nucleons. [GeV] |
Definition at line 44 of file propagation.cc.
void smash::expand_space_time | ( | Particles * | particles, |
const ExperimentParameters & | parameters, | ||
const ExpansionProperties & | metric | ||
) |
Modifies positions and momentum of all particles to account for space-time deformation.
[out] | particles | All the particles in the event |
[in] | parameters | A struct containing the parameters from which we extract the time in the computational frame. |
[in] | metric | A struct containing the parameters need to calculate the metric |
Definition at line 86 of file propagation.cc.
void smash::update_momenta | ( | std::vector< Particles > & | particles, |
double | dt, | ||
const Potentials & | pot, | ||
RectangularLattice< std::pair< ThreeVector, ThreeVector >> * | FB_lat, | ||
RectangularLattice< std::pair< ThreeVector, ThreeVector >> * | FI3_lat, | ||
RectangularLattice< std::pair< ThreeVector, ThreeVector >> * | EM_lat, | ||
DensityLattice * | jB_lat | ||
) |
Updates the momenta of all particles at the current time step according to the equations of motion:
\[ \frac{dp}{dt} = q\,(\mathbf{E} + \mathbf{v} \times \mathbf{B}) \]
[out] | particles | The particle list in the event |
[in] | dt | timestep |
[in] | pot | The potentials in the system |
[in] | FB_lat | Lattice for the electric and magnetic components of the Skyrme force |
[in] | FI3_lat | Lattice for the electric and magnetic components of the symmetry force |
[in] | EM_lat | Lattice for the electric and magnetic field |
[in] | jB_lat | Lattice of the net baryon density |
Definition at line 111 of file propagation.cc.
ScatterActionsFinderParameters smash::create_finder_parameters | ( | Configuration & | config, |
const ExperimentParameters & | parameters | ||
) |
Gather all relevant parameters for a ScatterActionsFinder
either getting them from an ExperimentParameters
instance or extracting them from a Configuration
.
[in] | parameters | The parameters of the considered experiment |
[in,out] | config | SMASH input configuration |
ScatterActionsFinderParameters
appropriately filled. Definition at line 130 of file scatteractionsfinder.cc.
std::pair< std::string, std::string > smash::load_particles_and_decaymodes | ( | const std::filesystem::path & | particles_file, |
const std::filesystem::path & | decaymodes_file | ||
) |
Loads particles and decaymodes from provided files particles_file and decaymodes_file.
In case if particles_file or decaymodes_file are nullptr, the defaults are taken
[in] | particles_file | a file containing particles list. See Particles. |
[in] | decaymodes_file | a file containing decay modes of the resonances. See Decay modes. |
Definition at line 28 of file setup_particles_decaymodes.cc.
void smash::initialize_default_particles_and_decaymodes | ( | ) |
Loads default smash particle list and decaymodes.
Definition at line 70 of file setup_particles_decaymodes.cc.
std::string smash::trim | ( | const std::string & | s | ) |
Strip leading and trailing whitespaces.
s | String to be trimmed. |
Definition at line 76 of file stringfunctions.cc.
void smash::remove_substr | ( | std::string & | s, |
const std::string & | p | ||
) |
Remove all instances of a substring p in a string s.
[in,out] | s | String to be searched and modified. |
[in] | p | Substring to be removed. |
Definition at line 85 of file stringfunctions.cc.
void smash::isoclean | ( | std::string & | s | ) |
Remove ⁺, ⁻, ⁰ from string.
[in,out] | s | String to be cleaned. |
Definition at line 93 of file stringfunctions.cc.
std::vector< std::string > smash::split | ( | const std::string & | s, |
char | delim | ||
) |
Split string by delimiter.
[in] | s | String to be split. |
[in] | delim | Splitting delimiter. |
Definition at line 121 of file stringfunctions.cc.
std::string smash::join | ( | const std::vector< std::string > & | v, |
const std::string & | delim | ||
) |
Join strings using delimiter.
[in] | v | Strings to be joint. |
[in] | delim | Joining delimiter. |
Definition at line 127 of file stringfunctions.cc.
std::string smash::quote | ( | const std::string & | s | ) |
Add quotes around string.
This is a simpler version of std::quoted
that also escapes e.g. contained quotes and cannot directly be converted to a string.
[in] | s | Strings to be quoted. |
Definition at line 134 of file stringfunctions.cc.
|
inline |
Spectral function integrand for GSL integration, with one resonance in the final state (the second particle is stable).
The integrand is \( A(m) p_{cm}^f \), where \( m \) is the resonance mass, \( A(m) \) is the spectral function and \( p_{cm}^f \) is the center-of-mass momentum of the final state.
[in] | resonance_mass | Actual mass of the resonance [GeV]. |
[in] | sqrts | Center-of-mass Energy, i.e. sqrt of Mandelstam s [GeV]. |
[in] | stable_mass | Mass of the stable particle in the final state [GeV]. |
[in] | type | Type of the resonance. |
Definition at line 136 of file tabulation.h.
|
inline |
Spectral function integrand for GSL integration, with two resonances in the final state.
The integrand is \( A_1(m_1) A_2(m_2) p_{cm}^f \), where \( m_1 \) and \( m_2 \) are the resonance masses, \( A_1 \) and \( A_2 \) are the spectral functions and \( p_{cm}^f \) is the center-of-mass momentum of the final state.
[in] | sqrts | Center-of-mass energy, i.e. sqrt of Mandelstam s [GeV]. |
[in] | res_mass_1 | Actual mass of the first resonance [GeV]. |
[in] | res_mass_2 | Actual mass of the second resonance [GeV]. |
[in] | t1 | Type of the first resonance. |
[in] | t2 | Type of the second resonance. |
Definition at line 165 of file tabulation.h.
|
inline |
Create a table for the spectral integral of a resonance and a stable particle.
[in,out] | integrate | Numerical integrator. |
[in] | resonance | Type of the resonance particle. |
[in] | stable | Type of the stable particle. |
[in] | range | Distance between tabulation points [GeV]. |
Definition at line 189 of file tabulation.h.
|
inline |
Create a table for the spectral integral of two resonances.
[in,out] | integrate2d | Numerical integrator. |
[in] | res1 | Type of the first resonance particle. |
[in] | res2 | Type of the second resonance particle. |
[in] | range | Distance between tabulation points [GeV]. |
Definition at line 211 of file tabulation.h.
|
inline |
Definition at line 202 of file threevector.h.
|
inline |
Definition at line 215 of file threevector.h.
|
inline |
multiply a three-vector by constant factor: \( b\cdot\mathbf{a} \).
Definition at line 228 of file threevector.h.
|
inline |
multiply a three-vector by constant factor: \( a\cdot\mathbf{b} \).
Definition at line 234 of file threevector.h.
|
inline |
Definition at line 242 of file threevector.h.
|
inline |
divide a three-vector by constant factor: \(\mathbf{a}/b\).
Definition at line 261 of file threevector.h.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const BoxModus & | m | ||
) |
[in] | out | The ostream into which to output |
[in] | m | The BoxModus object to write into out |
Definition at line 32 of file boxmodus.cc.
|
static |
Calculate isospin Clebsch-Gordan coefficient for two particles p_a and p_b coupling to a total isospin.
[in] | p_a | Information of particle type for first particle |
[in] | p_b | Information of particle type for second particle |
[out] | I_tot | Total isospin of the reaction |
[out] | I_z | Total isospin 3 component of the reaction |
Definition at line 30 of file clebschgordan.cc.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const ColliderModus & | m | ||
) |
[in] | out | The ostream into which to output |
[in] | m | The ColliderModus object to write into out |
Definition at line 273 of file collidermodus.cc.
|
static |
Helper function: Calculate the detailed balance factor R such that.
\[ R = \sigma(AB \to CD) / \sigma(CD \to AB) \]
where \( A, B, C, D \) are stable.
Definition at line 28 of file crosssections.cc.
|
static |
Helper function: Calculate the detailed balance factor R such that.
\[ R = \sigma(AB \to CD) / \sigma(CD \to AB) \]
where \(A\) is unstable, \(B\) is a kaon and \(C, D\) are stable.
Definition at line 47 of file crosssections.cc.
|
static |
Helper function: Calculate the detailed balance factor R such that.
\[ R = \sigma(AB \to CD) / \sigma(CD \to AB) \]
where \(A\) and \(B\) are unstable, and \(C\) and \(D\) are stable.
Definition at line 70 of file crosssections.cc.
|
static |
Helper function: Append a list of processes to another (main) list of processes.
Definition at line 91 of file crosssections.cc.
|
static |
Definition at line 138 of file decaymodes.cc.
|
static |
Definition at line 148 of file decaymodes.cc.
|
static |
Definition at line 21 of file decaytype.cc.
|
static |
Definition at line 35 of file decaytype.cc.
|
static |
Rearrange the particle list such that the first particle is the stable one.
[in,out] | part_types | Particle list to be rearranged. |
Definition at line 109 of file decaytype.cc.
|
static |
sort the particle list
Definition at line 269 of file decaytype.cc.
std::tuple<double, FourVector, ThreeVector, ThreeVector, FourVector, FourVector, FourVector, FourVector> smash::current_eckart_impl | ( | const ThreeVector & | r, |
const T & | plist, | ||
const DensityParameters & | par, | ||
DensityType | dens_type, | ||
bool | compute_gradient, | ||
bool | smearing | ||
) |
Calculates Eckart rest frame density and 4-current of a given density type and optionally the gradient of the density in an arbitary frame (grad j0), the curl of the 3-current, and the time, x, y, and z derivatives of the 4-current.
\[ j^{\mu} = (\sqrt{2\pi} \sigma )^{-3} \sum_{i=1}^N C_i u^{\mu}_i \exp \left( - \frac{\bigl[\mathbf{r} - \mathbf{r}_i + \frac{\gamma_i^2}{1 + \gamma_i} \boldsymbol{\beta}_i (\boldsymbol{\beta}_i, \mathbf{r} - \mathbf{r}_i) \bigr]^2}{2\sigma^2} \right) \]
\[ \rho^{Eckart} = \sqrt{j^{\mu} j_{\mu}} \]
Here \( C_i \) is a corresponding value of "charge". If baryon current option is selected then \( C_i \) is 1 for baryons, -1 for antibaryons and 0 otherwise. For proton/neutron current \( C_i = 1\) for proton/neutron and 0 otherwise.
To avoid the problems with Eckart frame definition, densities for positive and negative charges, \(\rho_+ \) and \( \rho_-\), are computed separately and final density is \(\rho_+ - \rho_-\).
[in] | r | Arbitrary space point where 4-current is calculated [fm]; ignored if smearing is false |
[in] | plist | List of all particles to be used in \(j^{\mu}\) calculation. If smearing is false or if the distance between particle and calculation point r, \( |r-r_i| > r_{cut} \) then particle input to density will be ignored. |
Next four values are taken from ExperimentalParameters structure:
[in] | par | Set of parameters packed in one structure. From them the cutting radius r_cut \( r_{cut} / \sigma \), number of test-particles ntest and the gaussian width gs_sigma are needed. |
[in] | dens_type | type of four-currect to be calculated: baryon, proton or neutron options are currently available |
[in] | compute_gradient | true - compute gradient, false - no |
[in] | smearing | whether to use gaussian smearing or not. If false, this parameter will use ALL particles equally to calculate the current, and that as such it will not be normalized wrt volume. This should be true for any internal calculation of any quantity and only makes sense to turn off for output purposes in a box. |
Definition at line 68 of file density.cc.
|
static |
Helper function for IsoParticleType::try_find and friends.
Definition at line 44 of file isoparticletype.cc.
|
static |
Construct the name-string for an isospin multiplet from the given name-string for the particle.
[in] | name | name-string of the particle |
Definition at line 89 of file isoparticletype.cc.
|
static |
Definition at line 219 of file isoparticletype.cc.
|
inline |
Definition at line 225 of file isoparticletype.cc.
|
static |
Definition at line 74 of file library.cc.
|
static |
Definition at line 89 of file library.cc.
|
static |
Definition at line 98 of file library.cc.
|
static |
Definition at line 105 of file library.cc.
|
static |
Definition at line 112 of file library.cc.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const ListModus & | m | ||
) |
[in] | out | The ostream into which to output |
[in] | m | The ListModus object to write into out |
Definition at line 75 of file listmodus.cc.
|
constexpr |
Recursively find the longest logger name at compile time.
Beginning of the recursion.
index | Recursion index. |
stop | Stopping index. |
Definition at line 53 of file logging.cc.
|
constexpr |
Recursively find the longest logger name at compile time.
All cases except for the beginning of the recursion.
index | Recursion index. |
stop | Stopping index. |
mid | Middle index. |
Definition at line 72 of file logging.cc.
|
inline |
Recurse over the log areas in the LogArea::AreaTuple type. Do nothing here to end the recursion (see also below).
Definition at line 85 of file logging.cc.
|
inline |
Recurse over the log areas in the LogArea::AreaTuple type. (The recursion is ended via the overload above.)
For every entry in the list the corresponding Logger object in logg is set up with area name and verbosity.
index | Recursion index. |
longest_name | Length of longest log area name. |
[in,out] | config | Configuration object. |
Definition at line 102 of file logging.cc.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const Nucleus & | n | ||
) |
Definition at line 512 of file nucleus.cc.
|
static |
Definition at line 163 of file parametrizations.cc.
|
static |
Definition at line 261 of file parametrizations.cc.
|
static |
Definition at line 561 of file parametrizations.cc.
|
static |
Calculate and store isospin ratios for K N -> K Delta reactions.
See the documentation of KaonNucleonRatios
for details.
[in] | ratios | An empty map where the ratios for K N -> K Delta reactions are stored. |
Definition at line 674 of file parametrizations.cc.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const Particles & | particles | ||
) |
[in] | out | The ostream into which to output |
[in] | particles | The Particles object to write into out |
Definition at line 148 of file particles.cc.
|
static |
Construct an antiparticle name-string from the given name-string for the particle and its PDG code.
[in] | name | the name-string of the particle to convert |
[in] | code | the pdgcode of the particle to convert |
Definition at line 143 of file particletype.cc.
|
static |
Construct a charge string, given the charge as integer.
[in] | charge | charge of a particle |
runtime_error | if the charge is not an integer between -2 and 2 |
Definition at line 182 of file particletype.cc.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const ParticleType & | type | ||
) |
[out] | out | The ostream into which to output |
[in] | type | The ParticleType object to write into out |
Definition at line 760 of file particletype.cc.
|
static |
Computes the B coefficients from the STAR fit, see fig.
(6) in STAR:2020phn [1].
[in] | plab | Lab momentum in GeV. |
Definition at line 408 of file scatteraction.cc.
|
static |
Computes the B coefficients from the Cugnon parametrization of the angular distribution in elastic pp scattering.
See equation (8) in Cugnon:1996kh [18]. Note: The original Cugnon parametrization is only applicable for plab < 6 GeV and keeps rising above that.
[in] | plab | Lab momentum in GeV. |
Definition at line 425 of file scatteraction.cc.
|
static |
Computes the B coefficients from the Cugnon parametrization of the angular distribution in elastic np scattering.
See equation (10) in Cugnon:1996kh [18].
[in] | plab | Lab momentum in GeV. |
Definition at line 444 of file scatteraction.cc.
|
static |
Deduplicate the final-state cross sections by summing.
[in,out] | final_state_xs | Final-state cross sections. |
Definition at line 923 of file scatteractionsfinder.cc.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const SphereModus & | m | ||
) |
[in] | out | The ostream into which to output |
[in] | m | The SphereModus object to write into out |
Definition at line 72 of file spheremodus.cc.
void smash::split | ( | const std::string & | s, |
char | delim, | ||
Out | result | ||
) |
Split string by delimiter.
[in] | s | String to be split. |
[in] | delim | Splitting delimiter. |
[out] | result | Split string as iterator. |
Necessary for the next function
Definition at line 112 of file stringfunctions.cc.
|
static |
Write binary representation to stream.
stream | Output stream. |
x | Value to be written. |
Definition at line 62 of file tabulation.cc.
|
static |
Read binary representation of a double.
[in] | stream | Input stream. |
Definition at line 72 of file tabulation.cc.
|
static |
Write binary representation to stream.
stream | Output stream. |
x | Value to be written. |
Definition at line 84 of file tabulation.cc.
|
static |
Read binary representation of a size_t.
[in] | stream | Input stream. |
Definition at line 98 of file tabulation.cc.
|
static |
Write binary representation to stream.
stream | Output stream. |
x | Value to be written. |
Definition at line 113 of file tabulation.cc.
|
static |
Read binary representation of a vector of doubles.
[in] | stream | Input stream. |
Definition at line 127 of file tabulation.cc.
|
static |
Write binary representation to stream.
stream | Output stream. |
x | Value to be written. |
Definition at line 141 of file tabulation.cc.
|
static |
Read binary representation of a SHA256 hash.
[in] | stream | Input stream. |
Definition at line 153 of file tabulation.cc.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const TimeStampCounter & | tsc | ||
) |
|
staticconstexpr |
|
staticconstexpr |
|
constexpr |
GeV <-> fm conversion factor.
Definition at line 25 of file constants.h.
|
constexpr |
mb <-> fm^2 conversion factor.
Definition at line 28 of file constants.h.
GeV^-2 <-> mb conversion factor.
Definition at line 31 of file constants.h.
|
constexpr |
MeV to GeV conversion factor.
Definition at line 34 of file constants.h.
|
constexpr |
Numerical error tolerance.
Definition at line 37 of file constants.h.
|
constexpr |
A very small double, used to avoid division by zero.
Definition at line 40 of file constants.h.
|
constexpr |
\( 2\pi \).
Definition at line 45 of file constants.h.
|
constexpr |
Ground state density of symmetric nuclear matter [fm^-3].
Definition at line 48 of file constants.h.
|
constexpr |
Physical error tolerance.
Definition at line 51 of file constants.h.
|
constexpr |
Nucleon mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 58 of file constants.h.
|
constexpr |
Pion mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 65 of file constants.h.
|
constexpr |
Kaon mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 72 of file constants.h.
|
constexpr |
omega mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 79 of file constants.h.
|
constexpr |
Delta mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 86 of file constants.h.
|
constexpr |
Deuteron mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 92 of file constants.h.
|
constexpr |
Fine-struture constant, approximately 1/137.
Definition at line 95 of file constants.h.
const double smash::elementary_charge = std::sqrt(fine_structure * 4 * M_PI) |
Elementary electric charge in natural units, approximately 0.3.
Definition at line 98 of file constants.h.
|
constexpr |
The maximum value of the random seed used in PYTHIA.
Definition at line 103 of file constants.h.
|
constexpr |
Energy in GeV, below which hard reactions via pythia are impossible.
This constraint is technical and comes from the pythia model itself. At the same time, physics-wise, hard cross-sections at the low energies are so small, that this constrant is well justified.
Definition at line 111 of file constants.h.
|
constexpr |
Process ID for any photon process.
It is chosen such that it will not conflict with any other process.
Definition at line 118 of file constants.h.
const std::initializer_list<double> smash::BREMS_SQRTS |
Center-of-mass energy.
Definition at line 24 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_K |
photon momentum
Definition at line 50 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_THETA |
theta angle with respect to collision axis of incoming pions
Definition at line 70 of file crosssectionsbrems.h.
|
static |
Definition at line 89 of file crosssectionsbrems.h.
|
static |
Definition at line 91 of file crosssectionsbrems.h.
|
static |
Definition at line 93 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PIPI_OPP_SIG |
Total π+- + π-+ -> π+- + π-+ + γ cross section.
Definition at line 97 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PIPI_OPP_DIFF_SIG_K |
dSigma/dk for π+- + π-+ -> π+- + π-+ + γ
Definition at line 139 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PIPI_OPP_DIFF_SIG_THETA |
dSigma/dtheta for π+- + π-+ -> π+- + π-+ + γ
Definition at line 4642 of file crosssectionsbrems.h.
|
static |
Definition at line 8969 of file crosssectionsbrems.h.
|
static |
Definition at line 8971 of file crosssectionsbrems.h.
|
static |
Definition at line 8973 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PIPI_SAME_SIG |
Total π+ + π+ -> π+ + π+ + γ or π- + π- -> π- + π- + γ cross section.
Definition at line 8977 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PIPI_SAME_DIFF_SIG_K |
dSigma/dk for π+ + π+ -> π+ + π+ + γ or π- + π- -> π- + π- + γ
Definition at line 9025 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PIPI_SAME_DIFF_SIG_THETA |
dSigma/dtheta for π+ + π+ -> π+ + π+ + γ or π- + π- -> π- + π- + γ
Definition at line 14428 of file crosssectionsbrems.h.
|
static |
Definition at line 18754 of file crosssectionsbrems.h.
|
static |
Definition at line 18756 of file crosssectionsbrems.h.
|
static |
Definition at line 18758 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI0_PIPI0_SIG |
Total π0 + π -> π0 + π + γ cross section.
Definition at line 18762 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI0_PIPI0_DIFF_SIG_K |
dSigma/dk for π0 + π -> π0 + π + γ
Definition at line 18810 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI0_PIPI0_DIFF_SIG_THETA |
dSigma/dtheta for π0 + π -> π0 + π + γ
Definition at line 23313 of file crosssectionsbrems.h.
|
static |
Definition at line 27639 of file crosssectionsbrems.h.
|
static |
Definition at line 27641 of file crosssectionsbrems.h.
|
static |
Definition at line 27643 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PI0PI0_SIG |
Total π+- + π-+ -> π0 + π0 + γ cross section.
Definition at line 27647 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PI0PI0_DIFF_SIG_K |
dSigma/dk for π+- + π-+ -> π0 + π0 + γ
Definition at line 27695 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PIPI_PI0PI0_DIFF_SIG_THETA |
dSigma/dtheta for π+- + π-+ -> π0 + π0 + γ
Definition at line 31556 of file crosssectionsbrems.h.
|
static |
Definition at line 35882 of file crosssectionsbrems.h.
|
static |
Definition at line 35884 of file crosssectionsbrems.h.
|
static |
Definition at line 35886 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PI0PI0_PIPI_SIG |
Total π0 + π0 -> π+- + π-+ + γ cross section.
Definition at line 35890 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PI0PI0_PIPI_DIFF_SIG_K |
dSigma/dk for π0 + π0 -> π+- + π-+ + γ
Definition at line 35938 of file crosssectionsbrems.h.
const std::initializer_list<double> smash::BREMS_PI0PI0_PIPI_DIFF_SIG_THETA |
dSigma/dtheta for π0 + π0 -> π+- + π-+ + γ
Definition at line 41341 of file crosssectionsbrems.h.
|
staticconstexpr |
|
staticconstexpr |
Definition at line 89 of file experiment.h.
|
staticconstexpr |
Definition at line 90 of file experiment.h.
|
staticconstexpr |
|
staticconstexpr |
Definition at line 26 of file outputinterface.h.
|
staticconstexpr |
Definition at line 22 of file outputparameters.h.
KaonNucleonRatios smash::kaon_nucleon_ratios |
Definition at line 769 of file parametrizations.cc.
const std::initializer_list<double> smash::KMINUSN_TOT_PLAB |
PDG data on K- n total cross section: momentum in lab frame.
Definition at line 20 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KMINUSN_TOT data.
Definition at line 32 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSN_TOT_SIG |
PDG data on K- n total cross section: cross section.
Definition at line 35 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSP_ELASTIC_P_LAB |
PDG data on K- p elastic cross section: momentum in lab frame.
Definition at line 46 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSP_ELASTIC_SIG |
PDG data on K- p elastic cross section: cross section.
Definition at line 94 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KMINUSP_ELASTIC data.
Definition at line 133 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSP_TOT_PLAB |
PDG smoothed data on K- p total cross section: momentum in lab frame.
Definition at line 136 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KMINUSP_TOT data.
Definition at line 192 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSP_TOT_SIG |
PDG smoothed data on K- p total cross section: cross section.
Definition at line 195 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSP_RES_SQRTS |
Center-of-mass energy list for K̅⁻ N⁺
Definition at line 240 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSP_RES_SIG |
Elastic K̅⁻ N⁺ cross section contributions from decays.
These need to be subtracted from the interpolation of the PDG data on elastic cross sections. This data was generated using the SMASH analysis suite and should be updated when strange resonances are changed or added.
Definition at line 256 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KMINUSP_RES data.
Definition at line 274 of file parametrizations_data.h.
const std::initializer_list<double> smash::KPLUSN_TOT_PLAB |
PDG data on K+ n total cross section: momentum in lab frame.
One data point is ignored because it is an outlier and messes up the smoothing.
Definition at line 282 of file parametrizations_data.h.
const std::initializer_list<double> smash::KPLUSN_TOT_SIG |
PDG data on K+ n total cross section: cross section.
One data point is ignored because it is an outlier and messes up the smoothing.
Definition at line 303 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KPLUSN_TOT data.
Definition at line 318 of file parametrizations_data.h.
const std::initializer_list<double> smash::KPLUSP_TOT_PLAB |
PDG data on K+ p total cross section: momentum in lab frame.
Definition at line 321 of file parametrizations_data.h.
const std::initializer_list<double> smash::KPLUSP_TOT_SIG |
PDG data on K+ p total cross section: cross section.
Definition at line 350 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KPLUSP_TOT data.
Definition at line 373 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_ELASTIC_P_LAB |
PDG data on pi- p elastic cross section: momentum in lab frame.
Definition at line 376 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_ELASTIC_SIG |
PDG data on pi- p elastic cross section: cross section.
Definition at line 395 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_ELASTIC data.
Definition at line 414 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_LAMBDAK0_P_LAB |
PDG data on pi- p to Lambda K0 cross section: momentum in lab frame.
Definition at line 417 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_LAMBDAK0_SIG |
PDG data on pi- p to Lambda K0 cross section: cross section.
Definition at line 430 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_LAMBDAK0 data.
Definition at line 445 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_SIGMAMINUSKPLUS_P_LAB |
PDG data on pi- p to Sigma- K+ cross section: momentum in lab frame.
Definition at line 448 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_SIGMAMINUSKPLUS_SIG |
PDG data on pi- p to Sigma- K+ cross section: cross section.
Definition at line 455 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_SIGMAMINUSKPLUS data.
Definition at line 466 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_SIGMA0K0_RES_SQRTS |
pi- p to Sigma0 K0 cross section: square root s
Definition at line 469 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_SIGMA0K0_RES_SIG |
pi- p to Sigma0 K0 cross section: cross section
The experimental data is missing, so the cross section is obtained by running the simulation, and purely contributed by the resonances
Definition at line 487 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_SIGMA0K0_RES data.
Definition at line 512 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_RES_SQRTS |
Center-of-mass energy.
Definition at line 515 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_RES_SIG |
Elastic π⁻N⁺ cross section contributions from decays.
These need to be subtracted from the interpolation of the PDG data on elastic cross sections. This data was generated using the SMASH analysis suite and should be updated when strange resonances are changed or added.
Definition at line 590 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_RES data.
Definition at line 663 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_ELASTIC_P_LAB |
PDG data on pi+ p elastic cross section: momentum in lab frame.
Definition at line 666 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_ELASTIC_SIG |
PDG data on pi+ p elastic cross section: cross section.
Definition at line 686 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIPLUSP_ELASTIC_SIG data.
Definition at line 702 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_SIGMAPLUSKPLUS_P_LAB |
PDG data on pi+ p to Sigma+ K+ cross section: momentum in lab frame.
Definition at line 705 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_SIGMAPLUSKPLUS_SIG |
PDG data on pi+ p to Sigma+ K+ section: cross section.
Definition at line 714 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIPLUSP_SIGMAPLUSKPLUS_SIG data.
Definition at line 728 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_RES_SQRTS |
Center-of-mass energy.
Definition at line 731 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_RES_SIG |
Elastic π⁺N⁺ cross section contributions from decays.
These need to be subtracted from the interpolation of the PDG data on elastic cross sections. This data was generated using the SMASH analysis suite and should be updated when strange resonances are changed or added.
Definition at line 787 of file parametrizations_data.h.
|
static |
A null interpolation that gets filled using the PIPLUSP_RES data.
Definition at line 849 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_TOT_SQRTS |
Center-of-mass energy.
Definition at line 852 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_TOT_SIG |
Total p π⁺ cross section parametrized from bottom-up SMASH-3.0, using the hadronic list from PDG2018.
Definition at line 914 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIPLUSP_TOT data.
Definition at line 985 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_TOT_SQRTS |
Center-of-mass energy.
Definition at line 988 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_TOT_SIG |
Total p π⁻ cross section parametrized from bottom-up SMASH-3.0, using the hadronic list from PDG2018.
Definition at line 1079 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_TOT data.
Definition at line 1169 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSPIMINUS_TOT_SQRTS |
Center-of-mass energy.
Definition at line 1172 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSPIMINUS_TOT_SIG |
Total π⁺ π⁻ cross section parametrized from bottom-up SMASH-3.0, using the hadronic list from PDG2018.
Definition at line 1236 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIPLUSPIMINUS_TOT data.
Definition at line 1307 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIZEROPIZERO_TOT_SQRTS |
Center-of-mass energy.
Definition at line 1310 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIZEROPIZERO_TOT_SIG |
Total π⁰ π⁰ cross section parametrized from bottom-up SMASH-3.0 using the hadronic list from PDG2018.
Definition at line 1374 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIZEROPIZERO_TOT data.
Definition at line 1436 of file parametrizations_data.h.
RectangularLattice< FourVector > * smash::UB_lat_pointer = nullptr |
Pointer to the skyrme potential on the lattice.
Definition at line 15 of file potential_globals.cc.
RectangularLattice< FourVector > * smash::UI3_lat_pointer = nullptr |
Pointer to the symmmetry potential on the lattice.
Definition at line 16 of file potential_globals.cc.
Potentials * smash::pot_pointer = nullptr |
Pointer to a Potential class.
Definition at line 17 of file potential_globals.cc.
|
staticconstexpr |
Definition at line 28 of file potentials.h.
|
staticconstexpr |
Definition at line 25 of file rootsolver.h.
|
staticconstexpr |
Definition at line 26 of file stringprocess.h.
|
staticconstexpr |
|
staticconstexpr |
Definition at line 22 of file binaryoutput.cc.
|
staticconstexpr |
Definition at line 29 of file boxmodus.cc.
|
staticconstexpr |
Definition at line 17 of file bremsstrahlungaction.cc.
|
staticconstexpr |
Definition at line 20 of file clebschgordan_lookup.cc.
|
staticconstexpr |
Definition at line 29 of file collidermodus.cc.
|
staticconstexpr |
Definition at line 26 of file configuration.cc.
|
staticconstexpr |
Definition at line 19 of file crosssections.cc.
|
staticconstexpr |
Definition at line 20 of file crosssections.cc.
|
staticconstexpr |
Definition at line 20 of file customnucleus.cc.
|
staticconstexpr |
Definition at line 17 of file decayaction.cc.
|
staticconstexpr |
Definition at line 22 of file decaymodes.cc.
std::vector<DecayTypePtr>* smash::all_decay_types = nullptr |
Global pointer to the decay types list.
Definition at line 27 of file decaymodes.cc.
|
constexpr |
Number of tabulation points.
Definition at line 142 of file decaytype.cc.
|
static |
Definition at line 143 of file decaytype.cc.
|
static |
|
staticconstexpr |
Definition at line 22 of file distributions.cc.
|
staticconstexpr |
Definition at line 21 of file energymomentumtensor.cc.
|
staticconstexpr |
Definition at line 21 of file fpenvironment.cc.
|
staticconstexpr |
Definition at line 20 of file grandcan_thermalizer.cc.
|
staticconstexpr |
|
static |
|
static |
|
static |
|
static |
|
staticconstexpr |
Definition at line 26 of file hadgas_eos.cc.
|
staticconstexpr |
Definition at line 16 of file hypersurfacecrossingaction.cc.
|
staticconstexpr |
Definition at line 18 of file icoutput.cc.
|
staticconstexpr |
Definition at line 19 of file inputfunctions.cc.
|
staticconstexpr |
Definition at line 17 of file isoparticletype.cc.
|
static |
Definition at line 19 of file isoparticletype.cc.
|
static |
Definition at line 20 of file isoparticletype.cc.
|
static |
Definition at line 181 of file isoparticletype.cc.
|
static |
Definition at line 182 of file isoparticletype.cc.
|
static |
Tabulation of all N R integrals.
Keys are the multiplet names (which are unique).
Definition at line 189 of file isoparticletype.cc.
|
static |
Tabulation of all pi R integrals.
Keys are the multiplet names (which are unique).
Definition at line 196 of file isoparticletype.cc.
|
static |
Tabulation of all K R integrals.
Keys are the multiplet names (which are unique).
Definition at line 203 of file isoparticletype.cc.
|
static |
Tabulation of all Delta R integrals.
Keys are the pairs of multiplet names (which are unique).
Definition at line 210 of file isoparticletype.cc.
|
static |
Tabulation of all rho rho integrals.
Keys are the pairs of multiplet names (which are unique).
Definition at line 217 of file isoparticletype.cc.
|
staticconstexpr |
Definition at line 23 of file library.cc.
|
staticconstexpr |
Definition at line 36 of file listmodus.cc.
|
static |
The default logging level is ALL.
Definition at line 20 of file logging.cc.
|
staticconstexpr |
Definition at line 23 of file nucleus.cc.
|
staticconstexpr |
Definition at line 21 of file oscaroutput.cc.
|
staticconstexpr |
Definition at line 31 of file particletype.cc.
|
staticconstexpr |
Definition at line 32 of file particletype.cc.
|
staticconstexpr |
Definition at line 16 of file pauliblocking.cc.
|
staticconstexpr |
Definition at line 19 of file propagation.cc.
|
staticconstexpr |
|
staticconstexpr |
Definition at line 20 of file rootoutput.cc.
|
staticconstexpr |
Definition at line 26 of file scatteraction.cc.
|
staticconstexpr |
Definition at line 23 of file scatteractionmulti.cc.
|
staticconstexpr |
Definition at line 24 of file scatteractionphoton.cc.
|
staticconstexpr |
Definition at line 26 of file scatteractionsfinder.cc.
|
staticconstexpr |
Definition at line 35 of file spheremodus.cc.
|
staticconstexpr |
Definition at line 20 of file stringprocess.cc.