Version: SMASH-1.5
density.h File Reference
#include <iostream>
#include <typeinfo>
#include <utility>
#include <vector>
#include "energymomentumtensor.h"
#include "experimentparameters.h"
#include "forwarddeclarations.h"
#include "fourvector.h"
#include "lattice.h"
#include "particledata.h"
#include "particles.h"
#include "pdgcode.h"
#include "threevector.h"

Go to the source code of this file.

Classes

class  smash::DensityParameters
 A class to pre-calculate and store parameters relevant for density calculation. More...
 
class  smash::DensityOnLattice
 A class for time-efficient (time-memory trade-off) calculation of density on the lattice. More...
 

Namespaces

 smash
 

Typedefs

typedef RectangularLattice< DensityOnLattice > smash::DensityLattice
 Conveniency typedef for lattice of density. More...
 

Enumerations

enum  smash::DensityType {
  smash::DensityType::None = 0, smash::DensityType::Hadron = 1, smash::DensityType::Baryon = 2, smash::DensityType::BaryonicIsospin = 3,
  smash::DensityType::Pion = 4
}
 Allows to choose which kind of density to calculate. More...
 

Functions

std::ostream & smash::operator<< (std::ostream &os, DensityType dt)
 Create the output operator for the densities. More...
 
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. More...
 
double smash::smearing_factor_norm (const double two_sigma_sqr)
 Norm of the Gaussian smearing function. More...
 
double smash::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 > 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. More...
 
std::tuple< double, ThreeVector, ThreeVector, ThreeVector > smash::rho_eckart (const ThreeVector &r, const ParticleList &plist, const DensityParameters &par, DensityType dens_type, bool compute_gradient)
 Calculates Eckart rest frame density and optionally the gradient of the density in an arbitary frame, the curl of the 3-currrent and the time derivative of the 3-current. More...
 
std::tuple< double, ThreeVector, ThreeVector, ThreeVector > smash::rho_eckart (const ThreeVector &r, const Particles &plist, const DensityParameters &par, DensityType dens_type, bool compute_gradient)
 convenience overload of the above (ParticleList -> Particles) More...
 
template<typename T >
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. More...