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. | |
Test | |
transit_high_energy | |
constants related to transition between low and high collision energies | |
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 | BinaryOutputInitialConditions |
Writes the particles when crossing the hypersurface to the binary file. More... | |
class | BinaryOutputParticles |
Writes the particle list at specific times to the binary file. More... | |
class | BoxModus |
BoxModus: Provides a modus for infinite matter calculations. More... | |
class | Clock |
Clock tracks the time in the simulation. More... | |
class | ColliderModus |
ColliderModus: Provides a modus for colliding nuclei. More... | |
class | CollisionBranch |
CollisionBranch is a derivative of ProcessBranch, which is used to represent particular final-state channels in a collision. 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... | |
class | CustomClock |
Clock with explicitly defined time steps. 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 | DecayBranch |
DecayBranch is a derivative of ProcessBranch, which is used to represent decay channels. 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 | DeformedNucleus |
DeformedNucleus: Child of nucleus for deformed nuclei. More... | |
class | DensityOnLattice |
A class for time-efficient (time-memory trade-off) calculation of density on the lattice. More... | |
class | DensityParameters |
A class to pre-calculate and store parameters relevant for density calculation. More... | |
class | DisableFloatTraps |
Guard type that safely disables floating point traps for the scope in which it is placed. More... | |
class | EnergyMomentumTensor |
The EnergyMomentumTensor class represents a symmetric positive semi-definite energy-momentum tensor \( T^{\mu \nu}\). More... | |
class | EosTable |
A class to hold, compute and access tabulated EoS. More... | |
struct | ExpansionProperties |
Struct containing the type of the metric and the expansion parameter of the metric. More... | |
class | Experiment |
The main class, where the simulation of an experiment is executed. More... | |
class | ExperimentBase |
Non-template interface to Experiment<Modus>. More... | |
struct | ExperimentParameters |
Helper structure for Experiment. More... | |
struct | FileDeleter |
FileDeleter is the deleter class for std::unique_ptr of std::FILE. More... | |
class | FileLock |
Guard to create a file lock. More... | |
struct | FinalStateCrossSection |
Represent a final-state cross section. More... | |
struct | FormattingHelper |
class | FourVector |
The FourVector class holds relevant values in Minkowski spacetime with (+, −, −, −) metric signature. More... | |
class | GrandCanThermalizer |
The GrandCanThermalizer class implements the following functionality: 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 | GridBase |
Base class for Grid to host common functions that do not depend on the GridOptions parameter. More... | |
struct | GslWorkspaceDeleter |
A deleter type for std::unique_ptr to be used with gsl_integration_workspace pointers. More... | |
class | HadronGasEos |
Class to handle the equation of state (EoS) of the hadron gas, consisting of all hadrons included into SMASH. More... | |
struct | HistoryData |
A structure to hold information about the history of the particle, e.g. More... | |
class | HyperSurfaceCrossActionsFinder |
Finder for hypersurface crossing actions. More... | |
class | HypersurfacecrossingAction |
Hypersurfacecrossingaction is a special action which indicates that a particle has crossed a hypersurface of given proper time. More... | |
class | I_tot_range |
Range of total isospin for reaction of particle a with particle b. More... | |
class | ICOutput |
SMASH output in ASCII format containing initial conditions for hydrodynamic codes. 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 | Integrator |
A C++ interface for numerical integration in one dimension with the GSL CQUAD integration functions. More... | |
class | Integrator1dMonte |
A C++ interface for numerical integration in one dimension with the GSL Monte-Carlo integration functions. More... | |
class | Integrator2d |
A C++ interface for numerical integration in two dimensions with the GSL Monte-Carlo integration functions. More... | |
class | Integrator2dCuhre |
A C++ interface for numerical integration in two dimensions with the Cuba Cuhre integration function. More... | |
class | InterpolateDataLinear |
Represent a piecewise linear interpolation. More... | |
class | InterpolateDataSpline |
Represent a cubic spline interpolation. More... | |
class | InterpolateLinear |
Represent a linear interpolation. More... | |
class | IsoParticleType |
IsoParticleType is a class to represent isospin multiplets. More... | |
class | KaonNucleonRatios |
Calculate and store isospin ratios for K N -> K Delta reactions. More... | |
struct | Line |
Line consists of a line number and the contents of that line. More... | |
class | ListModus |
ListModus: Provides a modus for running SMASH on an external particle list, for example as an afterburner calculation. More... | |
class | ModusDefault |
Base class for Modus classes that provides default function implementations. More... | |
struct | NeighborLookup |
A strust containing the informations needed to search the neighboring cell. More... | |
struct | Nucleoncustom |
Contains data for one nucleon that is read in from the list. 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 |
class | OutputInterface |
Abstraction of generic output. More... | |
struct | OutputParameters |
Helper structure for Experiment to hold output options and parameters. More... | |
struct | pair_hash |
Hash a pair of integers. More... | |
class | ParticleData |
ParticleData contains the dynamic information of a certain particle. More... | |
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... | |
struct | PrintParticleListDetailed |
class | ProcessBranch |
ProcessBranch represents one possible final state of an interaction process. More... | |
class | QuantumNumbers |
A container for storing conserved values. More... | |
class | RectangularLattice |
A container class to hold all the arrays on the lattice and access them. More... | |
class | RenamingFilePtr |
A RAII type to replace std::FILE * . More... | |
class | Result |
The result type returned from integrations, containing the value and an error. More... | |
class | RootOutput |
SMASH output to ROOT fileSMASH supports ROOT output as an option (see http://root.cern.ch). 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 | 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... | |
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 | ThermLatticeNode |
The ThermLatticeNode class is intended to compute thermodynamical quantities in a cell given a set of particles. More... | |
class | ThermodynamicOutput |
Writes the thermodynamic quantities at a specified point versus time. 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 | ThreeVector |
The ThreeVector class represents a physical three-vector \( \vec{x} = (x_1,x_2,x_3)\) with the components \( x_1,x_2,x_3 \). More... | |
class | TimeStampCounter |
A low-overhead timer for benchmarking small regions of code. More... | |
class | TwoBodyDecay |
TwoBodyDecay represents a decay type with two final-state particles. More... | |
class | TwoBodyDecayDilepton |
TwoBodyDecayDilepton represents a decay with a lepton and its antilepton as the 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 | TwoBodyDecayStable |
TwoBodyDecayStable represents a decay type with two stable final-state particles. More... | |
class | TwoBodyDecayUnstable |
TwoBodyDecayUnstable represents a decay type with two unstable final-state particles. More... | |
class | UniformClock |
Clock with uniformly spaced time steps. More... | |
class | VtkOutput |
SMASH output in a paraview format, intended for simple visualization. More... | |
class | WallCrossActionsFinder |
Finder for wall crossing actions, when using peridic boundary conditons. More... | |
class | WallcrossingAction |
WallcrossingAction is a special action which indicates that a particle has crossed a box wall. 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... | |
using | FilePtr = std::unique_ptr< std::FILE, FileDeleter > |
A RAII type to replace std::FILE * . More... | |
using | Permutation = std::vector< size_t > |
Represent a permutation. 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 | clebsch_gordan (const int j_a, const int j_b, const int j_c, const int m_a, const int m_b, const int m_c) |
Calculate Clebsch-Gordan coefficient \((-1)^{j_a - j_b + m_c} \sqrt{(2 j_c + 1)} \cdot [Wigner 3J symbol] \). 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... | |
template<typename T , typename... Args> | |
std::unique_ptr< T > | make_unique (Args &&...args) |
Definition for make_unique Is in C++14's standard library; necessary for older compilers. More... | |
double | y_l_0 (int l, double cosx) |
Spherical harmonics Y_2_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, ThreeVector > | 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, the curl of the 3-current and the time derivative of the 3-current. More... | |
std::tuple< double, FourVector, ThreeVector, ThreeVector, ThreeVector > | 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 Particles &particles, const bool compute_gradient=false) |
Updates the contents on the lattice. 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 (const double energy, const double momentum_sqr, const double temperature) |
Returns the Maxwell-Boltzmann distribution. 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 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 More... | |
double | juttner_distribution_func (const double momentum_radial, const double mass, const double temperature, const double baryon_chemical_potential, const double lam) |
Relativistic Juttner distribution function. More... | |
double | 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}}\] . 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 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 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) 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 More... | |
std::ostream & | operator<< (std::ostream &, const EnergyMomentumTensor &) |
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 (67, '-') |
String representing a horizontal line. More... | |
std::string | format_measurements (const Particles &particles, uint64_t scatterings_this_interval, const QuantumNumbers &conserved_initial, SystemTimePoint time_start, double time) |
Generate the tabulated string which will be printed to the screen when SMASH is running. More... | |
void | check_interactions_total (uint64_t interactions_total) |
Make sure interactions_total can be represented as a 32-bit integer. More... | |
FilePtr | fopen (const bf::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 (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 , 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_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_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... | |
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::Logger & | retrieve_logger_impl (int id) |
template<typename LogAreaTag > | |
einhard::Logger & | logger () |
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 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... | |
std::unique_ptr< OutputInterface > | create_oscar_output (const std::string &format, const std::string &content, const bf::path &path, const OutputParameters &out_par) |
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 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 | 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_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, 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, eq. More... | |
double | pp_total (double mandelstam_s) |
pp total cross section parametrization Sources: low-p: Cugnon:1996kh highest-p: Buss:2011mx More... | |
double | np_elastic (double mandelstam_s) |
np elastic cross section parametrization Source: Weil:2013mya, eq. More... | |
double | np_total (double mandelstam_s) |
np total cross section parametrization Sources: low-p: Cugnon:1996kh highest-p: Buss:2011mx More... | |
double | ppbar_elastic (double mandelstam_s) |
ppbar elastic cross section parametrization Source: Bass:1998ca More... | |
double | ppbar_total (double mandelstam_s) |
ppbar total cross section parametrization Source: Bass:1998ca 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. 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, 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, B.3.9. More... | |
double | kminusn_elastic_background (double mandelstam_s) |
K- n elastic background cross section parametrization Source: Buss:2011mx, B.3.9. More... | |
double | k0p_elastic_background (double mandelstam_s) |
K0 p elastic background cross section parametrization Source: Buss:2011mx, B.3.9. More... | |
double | k0n_elastic_background (double mandelstam_s) |
K0 n elastic background cross section parametrization Source: Buss:2011mx, B.3.9. More... | |
double | kbar0p_elastic_background (double mandelstam_s) |
Kbar0 p elastic background cross section parametrization Source: Buss:2011mx, B.3.9. More... | |
double | kbar0n_elastic_background (double mandelstam_s) |
Kbar0 n elastic background cross section parametrization Source: Buss:2011mx, B.3.9. More... | |
double | kplusp_inelastic_background (double mandelstam_s) |
K+ p inelastic background cross section parametrization Source: Buss:2011mx, B.3.8. More... | |
double | kplusn_inelastic_background (double mandelstam_s) |
K+ n inelastic background cross section parametrization Source: Buss:2011mx, 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). More... | |
double | kminusp_piplussigmaminus (double sqrts) |
K- p <-> pi+ Sigma- cross section parametrization Taken from UrQMD (Graef:2014mra). 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). 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). 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). 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). 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). 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). 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). 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). 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). 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). 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). 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). 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... | |
Parity | operator- (Parity p) |
Parity | operator* (Parity x, Parity y) |
void | operator*= (Parity &x, Parity y) |
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 (Particles *particles, double dt, const Potentials &pot, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *FB_lat, RectangularLattice< std::pair< ThreeVector, ThreeVector >> *FI3_lat) |
Updates the momenta of all particles at the current time step according to the equations of motion: More... | |
std::pair< std::string, std::string > | load_particles_and_decaymodes (const char *particles_file, const char *decaymodes_file) |
Loads particles and decaymodes from provided files particles_file and decaymodes_file. More... | |
void | load_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... | |
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... | |
std::unique_ptr< 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... | |
std::unique_ptr< Tabulation > | spectral_integral_unstable (Integrator2dCuhre &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 \vec{a} \). More... | |
ThreeVector | operator* (const double &a, ThreeVector b) |
multiply a three-vector by constant factor \( a \vec{b} \). More... | |
double | operator* (ThreeVector a, const ThreeVector &b) |
ThreeVector | operator/ (ThreeVector a, const double &b) |
divide a three-vector by constant factor \( \vec{a} / b \). More... | |
std::ostream & | operator<< (std::ostream &out, const TimeStampCounter &tsc) |
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 \[ R = \sigma(AB \to CD) / \sigma(CD \to AB) \] where \( A, B, C, D \) are stable. 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 \[ R = \sigma(AB \to CD) / \sigma(CD \to AB) \] where \(A\) is unstable, \(B\) is a kaon and \(C, D\) are stable. 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 \[ R = \sigma(AB \to CD) / \sigma(CD \to AB) \] where \(A\) and \(B\) are unstable, and \(C\) and \(D\) are stable. 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 double | sum_xs_of (CollisionBranchList &list) |
Helper function: Sum all cross sections of the given process list. 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, ThreeVector > | 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, the curl of the 3-current and the time derivative of the 3-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... | |
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 | 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... | |
Variables | |
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 | 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 | a1_mass = 1.26 |
a1 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... | |
constexpr double | maximum_cross_section = 200. |
The maximal cross section (in mb) for which it is guaranteed that all collisions with this cross section will be found. 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... | |
KaonNucleonRatios | kaon_nucleon_ratios |
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 data on K- p total cross section: momentum in lab frame. More... | |
const std::initializer_list< double > | KMINUSP_TOT_SIG |
PDG 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... | |
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... | |
std::vector< DecayTypePtr > * | all_decay_types = nullptr |
Global pointer to the decay types list. More... | |
constexpr int | num_tab_pts = 200 |
static Integrator | integrate |
static Integrator2dCuhre | integrate2d (1E7) |
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 IsoParticleTypeList | iso_type_list |
static Integrator | integrate |
static Integrator2dCuhre | integrate2d |
static einhard::LogLevel | global_default_loglevel = einhard::ALL |
The default logging level is ALL. More... | |
static std::array< einhard::Logger<>, std::tuple_size< LogArea::AreaTuple >::value > | global_logger_collection |
An array that stores all pre-configured Logger objects. More... | |
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::Permutation = typedef std::vector<size_t> |
Represent a permutation.
Definition at line 104 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 21 of file crosssectionsphoton.h.
|
strong |
|
strong |
Specifier to classify the different hadron species according to their quantum numbers.
Definition at line 143 of file grandcan_thermalizer.h.
|
strong |
|
strong |
Indentifies the strategy of determining the cell size.
Enumerator | |
---|---|
Optimal |
Look for optimal cell size. |
Largest |
Make cells as large as possible. This means a single cell for normal boundary conditions and 8 cells for periodic boundary conditions. |
Definition at line 33 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 35 of file lattice.h.
|
strong |
Represent the parity of a particle type.
Enumerator | |
---|---|
Pos |
Positive parity. |
Neg |
Negative parity. |
Definition at line 24 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 32 of file particletype.h.
|
strong |
Process Types are used to identify the type of the process.
Corresponding integer numbers are given explicitly, because they appear in the output.
Enumerator | |
---|---|
None |
nothing |
Elastic |
elastic scattering: particles remain the same, only momenta change |
TwoToOne |
resonance formation (2->1) |
TwoToTwo |
2->2 inelastic scattering |
Decay |
resonance decays |
Wall |
box wall crossing |
Thermalization |
forced thermalization, many particles are replaced by a thermalized ensemble |
HyperSurfaceCrossing |
Hypersurface crossing Particles are removed from the evolution and printed to a separate output to serve as initial conditions for hybrid models. |
StringSoftSingleDiffractiveAX |
(41-45) soft string excitations. Here "soft" means that the process does not involve quark or gluon scattering. A string is formed by quark and antiquark, or quark and diquark, in its ends. Then this string decays. Depending on which quark and anti- (or di-)quarks are selected for string formation, the process has one of the following types.single diffractive AB->AX. Both quark and anti-/di-quark taken from B. |
StringSoftSingleDiffractiveXB |
single diffractive AB->XB. Both quark and anti-/di-quark taken from A. It makes sense to distinguish it from AB->AX, because A and B can be particles of different types, for example, a pion and a proton. It matters then, whether the pion creates a string or the proton. |
StringSoftDoubleDiffractive |
double diffractive. Two strings are formed, one from A and one from B. |
StringSoftAnnihilation |
a special case of baryon-antibaryon annihilation. One pair qqbar annihilates immediately and then two strings are formed. |
StringSoftNonDiffractive |
non-diffractive. Two strings are formed both have ends in A and B. |
StringHard |
hard string process involving 2->2 QCD process by PYTHIA. Here quarks do not simply form a string. They actually scatter on parton level first. |
Definition at line 25 of file processbranch.h.
|
strong |
The kind of extrapolation used by the tabulation.
Enumerator | |
---|---|
Zero | |
Const | |
Linear |
Definition at line 24 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 |
|
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 | ||
) |
Remove duplicates from data (x, y) by averaging y.
Assumes (x, y) is sorted.
T | Type of the values (should be floating point). |
x | x-values. |
y | y-values. |
Definition at line 65 of file average.h.
double smash::clebsch_gordan | ( | const int | j_a, |
const int | j_b, | ||
const int | j_c, | ||
const int | m_a, | ||
const int | m_b, | ||
const int | m_c | ||
) |
Calculate Clebsch-Gordan coefficient \((-1)^{j_a - j_b + m_c} \sqrt{(2 j_c + 1)} \cdot [Wigner 3J symbol] \).
[in] | j_a | spin of first particle |
[in] | j_b | spin of second particle |
[in] | j_c | spin of resonance |
[in] | m_a | isospin of first particle |
[in] | m_b | isospin of second particle |
[in] | m_c | isospin of resonance |
Note that the calculation assumes that the spin/isospin values (j/m) have been multiplied by two (in order to be integer).
Definition at line 17 of file clebschgordan.cc.
|
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 42 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 50 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 83 of file clebschgordan.cc.
|
inline |
Definition for make_unique Is in C++14's standard library; necessary for older compilers.
Definition at line 25 of file cxx14compat.h.
double smash::y_l_0 | ( | int | l, |
double | cosx | ||
) |
Spherical harmonics Y_2_0 and Y_4_0.
[in] | l | Angular momentum value (2 and 4 are supported) |
[in] | cosx | Cosine of the polar angle |
domain_error | if unsupported l is encountered |
Definition at line 296 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 163 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 |
|
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\) |
Definition at line 97 of file density.h.
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, ThreeVector > 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, the curl of the 3-current and the time derivative of the 3-current.
\[j^{\mu} = (\sqrt{2\pi} \sigma )^{-3} \sum_{i=1}^N C_i u^{\mu}_i exp \left(- \frac{(\vec r -\vec r_i + \frac{\gamma_i^2}{1 + \gamma_i} \vec \beta_i (\vec \beta_i, \vec r - \vec r_i))^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 149 of file density.cc.
std::tuple< double, FourVector, ThreeVector, ThreeVector, ThreeVector > 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 156 of file density.cc.
void smash::update_lattice | ( | RectangularLattice< T > * | lat, |
const LatticeUpdate | update, | ||
const DensityType | dens_type, | ||
const DensityParameters & | par, | ||
const Particles & | particles, | ||
const bool | compute_gradient = false |
||
) |
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] | particles | the particles vector |
[in] | compute_gradient | Whether to compute the gradients |
T | LatticeType |
Definition at line 400 of file density.h.
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 23 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 30 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 35 of file distributions.cc.
double smash::density_integrand | ( | const double | energy, |
const double | momentum_sqr, | ||
const double | temperature | ||
) |
Returns the Maxwell-Boltzmann distribution.
[in] | energy | \(E\) (in GeV) |
[in] | momentum_sqr | squared \(p\) (in GeV \(^2\)) |
[in] | temperature | \(T\) (in GeV) |
Definition at line 41 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 46 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
[in] | energy | \(E\) (in GeV) |
[in] | momentum_sqr | squared \(p\) (in GeV \(^2\)) |
[in] | temperature | \(T\) (in GeV) |
Definition at line 52 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
[in] | energy | \(E\) (in GeV) |
[in] | momentum_sqr | squared \(p\) (in GeV \(^2\)) |
[in] | temperature | \(T\) (in GeV) |
Definition at line 59 of file distributions.cc.
double smash::juttner_distribution_func | ( | const double | momentum_radial, |
const double | mass, | ||
const double | temperature, | ||
const double | baryon_chemical_potential, | ||
const double | lam | ||
) |
Relativistic Juttner distribution function.
[in] | momentum_radial | \(|\vec{p}|\) in units of [GeV] |
[in] | mass | Mass of the particle: in units of [GeV] |
[in] | temperature | Temperature of the system \(T\) in units of [GeV] |
[in] | baryon_chemical_potential | \(n*\mu_{B}\) default = 0 |
[in] | lam | +/-1 or 0 to determine the distribution type lam=0, for Juttner distribution lam=-1, for Bose-Einstein distribution lam=1, for Fermi-Dirac distribution |
Definition at line 70 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 81 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
[in] | temperature | Temperature \(T\) [GeV] |
[in] | mass | Mass of the particle: \(m = \sqrt{E^2 - p^2}\) [GeV] |
Definition at line 115 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
[in] | temperature | Temperature \(T\) [GeV] |
[in] | mass | Mass of the particle: \(m = \sqrt{E^2 - p^2}\) [GeV] |
Definition at line 152 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) 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 {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 189 of file distributions.cc.
double smash::sample_momenta_IC_ES | ( | const double | temperature | ) |
Sample momenta according to the momentum distribution in Bazow:2016oky
[in] | temperature | The temperature for the distribution [GeV] |
Definition at line 238 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 557 of file experiment.h.
ExperimentParameters smash::create_experiment_parameters | ( | Configuration | config | ) |
Gathers all general Experiment parameters.
[in,out] | config | Configuration element |
Definition at line 326 of file experiment.cc.
const std::string smash::hline | ( | 67 | , |
'-' | |||
) |
String representing a horizontal line.
std::string smash::format_measurements | ( | const Particles & | particles, |
uint64_t | scatterings_this_interval, | ||
const QuantumNumbers & | conserved_initial, | ||
SystemTimePoint | time_start, | ||
double | time | ||
) |
Generate the tabulated string which will be printed to the screen when SMASH is running.
[in] | particles | The interacting particles. Their information will be used to check the conservation of the total energy and momentum. the total number of the particles will be used and printed as well. |
[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/c] |
Definition at line 392 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 1677 of file experiment.h.
FilePtr smash::fopen | ( | const bf::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 33 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 or eq. (13) in Post:2003hu.
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 75 of file formfactors.h.
|
inline |
For the π⁰ see Landsberg:1986fd. For the η the Lambda parameter is fitted to NA60 data, see Arnaldi:2009aa.
pdg | PDG code of the decaying meson. |
mass | Invariant dilepton mass [GeV]. |
Definition at line 97 of file formfactors.h.
|
inline |
For the ω, see Bratkovskaya:1996qe.
pdg | PDG code of the decaying meson. |
mass | Invariant dilepton mass [GeV]. |
Definition at line 120 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 144 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 366 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 387 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 408 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 419 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 441 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 90 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 20 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.
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 115 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 132 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 151 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 198 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_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 211 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 224 of file kinematics.h.
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.
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 42 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 62 of file numerics.h.
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 30 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 44 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 48 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 52 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 56 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 60 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 64 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 68 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
[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 80 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 91 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 95 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 99 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 123 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 130 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 140 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 174 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 209 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 255 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 275 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 295 of file parametrizations.cc.
double smash::pp_elastic | ( | double | mandelstam_s | ) |
pp elastic cross section parametrization Source: Weil:2013mya, eq.
(44)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 310 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, 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 329 of file parametrizations.cc.
double smash::pp_total | ( | double | mandelstam_s | ) |
pp total cross section parametrization Sources: low-p: Cugnon:1996kh highest-p: Buss:2011mx
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 337 of file parametrizations.cc.
double smash::np_elastic | ( | double | mandelstam_s | ) |
np elastic cross section parametrization Source: Weil:2013mya, eq.
(45)
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 353 of file parametrizations.cc.
double smash::np_total | ( | double | mandelstam_s | ) |
np total cross section parametrization Sources: low-p: Cugnon:1996kh highest-p: Buss:2011mx
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 372 of file parametrizations.cc.
double smash::ppbar_elastic | ( | double | mandelstam_s | ) |
ppbar elastic cross section parametrization Source: Bass:1998ca
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 388 of file parametrizations.cc.
double smash::ppbar_total | ( | double | mandelstam_s | ) |
ppbar total cross section parametrization Source: Bass:1998ca
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 401 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 414 of file parametrizations.cc.
double smash::deuteron_nucleon_elastic | ( | double | mandelstam_s | ) |
Deuteron nucleon elastic cross-section [mb] parametrized by Oh:2009gx.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 419 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, B.3.8
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 425 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, B.3.8.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 438 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, B.3.8
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 442 of file parametrizations.cc.
double smash::kminusp_elastic_background | ( | double | mandelstam_s | ) |
K- p elastic background cross section parametrization Source: Buss:2011mx, B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 466 of file parametrizations.cc.
double smash::kminusn_elastic_background | ( | double | mandelstam_s | ) |
K- n elastic background cross section parametrization Source: Buss:2011mx, B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 510 of file parametrizations.cc.
double smash::k0p_elastic_background | ( | double | mandelstam_s | ) |
K0 p elastic background cross section parametrization Source: Buss:2011mx, B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 512 of file parametrizations.cc.
double smash::k0n_elastic_background | ( | double | mandelstam_s | ) |
K0 n elastic background cross section parametrization Source: Buss:2011mx, B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 517 of file parametrizations.cc.
double smash::kbar0p_elastic_background | ( | double | mandelstam_s | ) |
Kbar0 p elastic background cross section parametrization Source: Buss:2011mx, B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 522 of file parametrizations.cc.
double smash::kbar0n_elastic_background | ( | double | mandelstam_s | ) |
Kbar0 n elastic background cross section parametrization Source: Buss:2011mx, B.3.9.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 527 of file parametrizations.cc.
double smash::kplusp_inelastic_background | ( | double | mandelstam_s | ) |
K+ p inelastic background cross section parametrization Source: Buss:2011mx, B.3.8.
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 532 of file parametrizations.cc.
double smash::kplusn_inelastic_background | ( | double | mandelstam_s | ) |
K+ n inelastic background cross section parametrization Source: Buss:2011mx, 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 548 of file parametrizations.cc.
double smash::kminusp_kbar0n | ( | double | mandelstam_s | ) |
K- p <-> Kbar0 n cross section parametrization.
Source: Buss:2011mx, B.3.9
[in] | mandelstam_s | the rest frame total energy squared [GeV^2] |
Definition at line 670 of file parametrizations.cc.
double smash::kminusp_piminussigmaplus | ( | double | sqrts | ) |
K- p <-> pi- Sigma+ cross section parametrization Taken from UrQMD (Graef:2014mra).
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 683 of file parametrizations.cc.
double smash::kminusp_piplussigmaminus | ( | double | sqrts | ) |
K- p <-> pi+ Sigma- cross section parametrization Taken from UrQMD (Graef:2014mra).
[in] | sqrts | the rest frame total energy [GeV] |
Definition at line 687 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 691 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 695 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 699 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 704 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).
[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 710 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).
[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 716 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 720 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 725 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 729 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 738 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 742 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).
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 751 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 755 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 759 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 763 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).
[in] | sqrts_sqrts0 | the rest frame total energy minus threshold energy [GeV] |
Definition at line 767 of file parametrizations.cc.
x | Left-hand parity |
y | Right-hand parity |
x
and y
. Definition at line 62 of file particletype.h.
x | Left-hand parity |
y | Right-hand parity |
x
and y
. Definition at line 75 of file particletype.h.
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.
constexpr uint64_t smash::pack | ( | int32_t | x, |
int32_t | y | ||
) |
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 107 of file pdgcode_constants.h.
|
inline |
Efficient template for calculating integer powers using squaring.
T | Type that implements multiplication. |
[in] | base | |
[in] | exponent |
Definition at line 23 of file pow.h.
|
inline |
Efficient template for calculating the square.
T | Type that implements multiplication. |
[in] | base | value that gets squared |
Definition at line 38 of file pow.h.
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 \(\vec v=H(t) \vec x\) Tindall:2016try
[in] | time | time in the computational frame. [fm] |
[in] | metric | Struct containing the parameters needed to calculate the metric. |
Definition at line 20 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:
\[ \vec x^\prime = \vec x + \vec v \Delta t \]
where \(\vec x\) is the current position, \(\vec 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 43 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 | ( | Particles * | particles, |
double | dt, | ||
const Potentials & | pot, | ||
RectangularLattice< std::pair< ThreeVector, ThreeVector >> * | FB_lat, | ||
RectangularLattice< std::pair< ThreeVector, ThreeVector >> * | FI3_lat | ||
) |
Updates the momenta of all particles at the current time step according to the equations of motion:
\[ \frac{dp}{dt} = \vec E + \vec v \times \vec 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 |
Definition at line 111 of file propagation.cc.
std::pair< std::string, std::string > smash::load_particles_and_decaymodes | ( | const char * | particles_file, |
const char * | 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. |
[out] | a | pair of strings – the contents of particle and decaymode files. |
Definition at line 31 of file setup_particles_decaymodes.cc.
void smash::load_default_particles_and_decaymodes | ( | ) |
Loads default smash particle list and decaymodes.
Definition at line 72 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 75 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 84 of file stringfunctions.cc.
void smash::isoclean | ( | std::string & | s | ) |
Remove ⁺, ⁻, ⁰ from string.
[in,out] | s | String to be cleaned. |
Definition at line 92 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 120 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 103 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 132 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 156 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 178 of file tabulation.h.
|
inline |
Definition at line 190 of file threevector.h.
|
inline |
Definition at line 203 of file threevector.h.
|
inline |
multiply a three-vector by constant factor \( b \vec{a} \).
Definition at line 216 of file threevector.h.
|
inline |
multiply a three-vector by constant factor \( a \vec{b} \).
Definition at line 222 of file threevector.h.
|
inline |
Definition at line 231 of file threevector.h.
|
inline |
divide a three-vector by constant factor \( \vec{a} / b \).
Definition at line 254 of file threevector.h.
std::ostream & smash::operator<< | ( | std::ostream & | out, |
const TimeStampCounter & | tsc | ||
) |
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 37 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 43 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 435 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 |
Helper function: Sum all cross sections of the given process list.
Definition at line 104 of file crosssections.cc.
|
static |
|
static |
Definition at line 148 of file decaymodes.cc.
|
static |
Definition at line 25 of file decaytype.cc.
|
static |
Definition at line 39 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 113 of file decaytype.cc.
|
static |
sort the particle list
Definition at line 273 of file decaytype.cc.
std::tuple<double, FourVector, ThreeVector, ThreeVector, ThreeVector> 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, the curl of the 3-current and the time derivative of the 3-current.
\[j^{\mu} = (\sqrt{2\pi} \sigma )^{-3} \sum_{i=1}^N C_i u^{\mu}_i exp \left(- \frac{(\vec r -\vec r_i + \frac{\gamma_i^2}{1 + \gamma_i} \vec \beta_i (\vec \beta_i, \vec r - \vec r_i))^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 67 of file density.cc.
|
static |
Helper function for IsoParticleType::try_find and friends.
Definition at line 25 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 70 of file isoparticletype.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 135 of file listmodus.cc.
constexpr std::enable_if<(index == stop), int>::type smash::find_longest_logger_name | ( | ) |
Recursively find the longest logger name at compile time.
Beginning of the recursion.
index | Recursion index. |
stop | Stopping index. |
Definition at line 51 of file logging.cc.
constexpr std::enable_if<(index > stop), int>::type smash::find_longest_logger_name | ( | ) |
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 70 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 83 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 global_logger_collection 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 100 of file logging.cc.
std::ostream& smash::operator<< | ( | std::ostream & | out, |
const Nucleus & | n | ||
) |
Definition at line 513 of file nucleus.cc.
|
static |
Definition at line 108 of file parametrizations.cc.
|
static |
Definition at line 194 of file parametrizations.cc.
|
static |
Definition at line 451 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 573 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 147 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 186 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 766 of file particletype.cc.
|
static |
Computes the B coefficients from the Cugnon parametrization of the angular distribution in elastic pp scattering.
See equation (8) in Cugnon:1996kh. Note: The original Cugnon parametrization is only applicable for plab < 6 GeV and keeps rising above that. We add an upper limit of b <= 9, in order to be compatible with high-energy data (up to plab ~ 25 GeV).
[in] | plab | Lab momentum in GeV. |
Definition at line 219 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.
[in] | plab | Lab momentum in GeV. |
Definition at line 238 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 833 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 188 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 111 of file stringfunctions.cc.
constexpr double smash::hbarc = 0.197327053 |
GeV <-> fm conversion factor.
Definition at line 25 of file constants.h.
constexpr double smash::fm2_mb = 0.1 |
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 double smash::mev_to_gev = 1.e-3 |
MeV to GeV conversion factor.
Definition at line 34 of file constants.h.
constexpr double smash::really_small = 1.0e-6 |
Numerical error tolerance.
Definition at line 37 of file constants.h.
constexpr double smash::twopi = 2. * M_PI |
\( 2\pi \).
Definition at line 42 of file constants.h.
constexpr double smash::nuclear_density = 0.168 |
Ground state density of symmetric nuclear matter [fm^-3].
Definition at line 45 of file constants.h.
constexpr double smash::small_number = 1.0e-4 |
Physical error tolerance.
Definition at line 48 of file constants.h.
constexpr double smash::nucleon_mass = 0.938 |
Nucleon mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 55 of file constants.h.
constexpr double smash::pion_mass = 0.138 |
Pion mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 62 of file constants.h.
constexpr double smash::kaon_mass = 0.494 |
Kaon mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 69 of file constants.h.
constexpr double smash::omega_mass = 0.783 |
omega mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 76 of file constants.h.
constexpr double smash::a1_mass = 1.26 |
a1 mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 83 of file constants.h.
constexpr double smash::delta_mass = 1.232 |
Delta mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 89 of file constants.h.
constexpr double smash::deuteron_mass = 1.8756 |
Deuteron mass in GeV.
Note that this should be the same as in particles.txt.
Definition at line 95 of file constants.h.
constexpr double smash::fine_structure = 7.2973525698e-3 |
Fine-struture constant, approximately 1/137.
Definition at line 98 of file constants.h.
constexpr double smash::maximum_cross_section = 200. |
The maximal cross section (in mb) for which it is guaranteed that all collisions with this cross section will be found.
This means that all particle pairs, where the transverse distance is smaller or equal to \( \sqrt{200mb/\pi} \), will be checked for collions.
This maximum occurs in the Delta peak of the pi+p cross section. The only exception of physical cross sections going above 200 mb are the elastic NN and KN cross sections, which diverge at threshold.
Definition at line 111 of file constants.h.
constexpr int smash::maximum_rndm_seed_in_pythia = 900000000 |
The maximum value of the random seed used in PYTHIA.
Definition at line 116 of file constants.h.
constexpr double smash::minimum_sqrts_pythia_can_handle = 10.0 |
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 124 of file constants.h.
constexpr std::uint32_t smash::ID_PROCESS_PHOTON |
Process ID for any photon process.
It is chosen such that it will not conflict with any other process.
Definition at line 131 of file constants.h.
KaonNucleonRatios smash::kaon_nucleon_ratios |
Definition at line 668 of file parametrizations.cc.
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 20 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 68 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KMINUSP_ELASTIC data.
Definition at line 107 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSP_TOT_PLAB |
PDG data on K- p total cross section: momentum in lab frame.
Definition at line 110 of file parametrizations_data.h.
const std::initializer_list<double> smash::KMINUSP_TOT_SIG |
PDG data on K- p total cross section: cross section.
Definition at line 165 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 210 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 226 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KMINUSP_RES data.
Definition at line 244 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 252 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 273 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KPLUSN_TOT data.
Definition at line 288 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 291 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 320 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the KPLUSP_TOT data.
Definition at line 343 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 346 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 365 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_ELASTIC data.
Definition at line 384 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 387 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 400 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_LAMBDAK0 data.
Definition at line 415 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 418 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 425 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_SIGMAMINUSKPLUS data.
Definition at line 436 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 439 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 457 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_SIGMA0K0_RES data.
Definition at line 482 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIMINUSP_RES_SQRTS |
Center-of-mass energy.
Definition at line 485 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 560 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIMINUSP_RES data.
Definition at line 633 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 636 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 656 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIPLUSP_ELASTIC_SIG data.
Definition at line 672 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 675 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 684 of file parametrizations_data.h.
|
static |
An interpolation that gets lazily filled using the PIPLUSP_SIGMAPLUSKPLUS_SIG data.
Definition at line 698 of file parametrizations_data.h.
const std::initializer_list<double> smash::PIPLUSP_RES_SQRTS |
Center-of-mass energy.
Definition at line 701 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 757 of file parametrizations_data.h.
|
static |
A null interpolation that gets filled using the PIPLUSP_RES data.
Definition at line 819 of file parametrizations_data.h.
RectangularLattice< double > * smash::UB_lat_pointer = nullptr |
Pointer to the skyrme potential on the lattice.
Definition at line 15 of file potential_globals.cc.
RectangularLattice< double > * 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.
std::vector<DecayTypePtr>* smash::all_decay_types = nullptr |
Global pointer to the decay types list.
Definition at line 27 of file decaymodes.cc.
constexpr int smash::num_tab_pts = 200 |
Definition at line 146 of file decaytype.cc.
|
static |
Definition at line 147 of file decaytype.cc.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 16 of file isoparticletype.cc.
|
static |
Definition at line 154 of file isoparticletype.cc.
|
static |
Definition at line 195 of file isoparticletype.cc.
|
static |
The default logging level is ALL.
Definition at line 20 of file logging.cc.
|
static |
An array that stores all pre-configured Logger objects.
The objects can be accessed via the logger function.
Definition at line 33 of file logging.cc.