  | 
  
     Version: SMASH-2.0 
   | 
           
 | 
 
 
 
 
Go to the documentation of this file.
    8 #ifndef SRC_INCLUDE_SMASH_TABULATION_H_ 
    9 #define SRC_INCLUDE_SMASH_TABULATION_H_ 
   53   Tabulation(
double x_min, 
double range, 
size_t num,
 
   54              std::function<
double(
double)> f);
 
  139   if (sqrts <= stable_mass + resonance_mass) {
 
  146          pCM(sqrts, stable_mass, resonance_mass);
 
  169   if (sqrts <= res_mass_1 + res_mass_2) {
 
  176          pCM(sqrts, res_mass_1, res_mass_2);
 
  194   const double m_stable = stable.
mass();
 
  195   return Tabulation(m_min + m_stable, range, 100, [&](
double srts) {
 
  196     return integrate(m_min, srts - m_stable, [&](
double m) {
 
  217   return Tabulation(m1_min + m2_min, range, 125, [&](
double srts) {
 
  218     const double m1_max = srts - m2_min;
 
  219     const double m2_max = srts - m1_min;
 
  221         m1_min, m1_max, m2_min, m2_max, [&](
double m1, 
double m2) {
 
  229 #endif  // SRC_INCLUDE_SMASH_TABULATION_H_ 
  
 
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.
 
double get_value_step(double x) const
Look up a value from the tabulation (without any interpolation, simply using the closest tabulated va...
 
A C++ interface for numerical integration in two dimensions with the Cuba Cuhre integration function.
 
static Tabulation from_file(std::ifstream &stream, sha256::Hash hash)
Construct a tabulation object by reading binary data from a stream.
 
double inv_dx_
inverse step size 1/dx
 
Tabulation()
Construct an empty tabulation object.
 
double x_min_
lower bound for tabulation
 
A C++ interface for numerical integration in one dimension with the GSL CQUAD integration functions.
 
double spectral_function(double m) const
Full spectral function  of the resonance (relativistic Breit-Wigner distribution with mass-dependent ...
 
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.
 
T pCM(const T sqrts, const T mass_a, const T mass_b) noexcept
 
Tabulation spectral_integral_unstable(Integrator2d &integrate2d, const ParticleType &res1, const ParticleType &res2, double range)
Create a table for the spectral integral of two resonances.
 
void write(std::ofstream &stream, sha256::Hash hash) const
Write a binary representation of the tabulation to a stream.
 
static Integrator integrate
 
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 pa...
 
A class for storing a one-dimensional lookup table of floating-point values.
 
std::array< uint8_t, HASH_SIZE > Hash
A SHA256 hash.
 
static Integrator2d integrate2d(1E7)
 
Extrapolation
The kind of extrapolation used by the tabulation.
 
double min_mass_kinematic() const
The minimum mass of the resonance that is kinematically allowed.
 
double get_value_linear(double x, Extrapolation extrapolation=Extrapolation::Linear) const
Look up a value from the tabulation using linear interpolation.
 
std::vector< double > values_
vector for storing tabulated values
 
double x_max_
upper bound for tabulation