.. |Tmunu| replace:: :math:`T^{\mu\nu}` .. |e| replace:: :math:`\epsilon` .. |u| replace:: :math:`u^\mu` .. |pimunu| replace:: :math:`\pi^{\mu\nu}` .. |Pi| replace:: :math:`\Pi` .. |Tmunu(X)| replace:: :math:`T^{\mu\nu}(X)` .. |e(X)| replace:: :math:`\epsilon(X)` .. |u(X)| replace:: :math:`u^\mu(X)` .. |pimunu(X)| replace:: :math:`\pi^{\mu\nu}(X)` .. |Pi(X)| replace:: :math:`\Pi(X)` .. role:: bash(code) :language: bash After hydrodynamics: Particlization with Cooper-Frye ===================================================== .. warning :: Particlization and hadron content of the equation of state For the energy-momentum tensor to be conserved in the conversion from fluid to particles, the hadron content of the equation of state must match that of the hadron list used in Cooper-Frye. Recall that equation of states used in hydrodynamic simulations of heavy ions match high-temperature lattice calculations with the thermodynamics of a hadron resonance gas at lower temperatures (:math:`T\lesssim 160` MeV). The hadron content of Cooper-Frye should further match that expected by the final state of the simulation. **MUSIC** can simulate hadronic decays as the final state of the simulation, although hadronic transport simulations such as SMASH or UrQMD are more commonly used nowadays. This consistency with the equation of state, Cooper-Frye and decays was built into the original version of **MUSIC**, but the implementation of Cooper-Frye in **MUSIC** was not designed to keep up with regular changes in the hadron list. As such, using new equations of state in **MUSIC** without updating the Cooper-Frye implementation will introduce some break of energy-momentum tensor conservation at the level of Cooper-Frye. Maintaining this consistency of the hadron content across the simulation can be challenging. One solution is to fix the hadron content as the one consistent with the final hadronic transport, and to make Cooper-Frye and the equation of state consistent with this equation of state. An example of matching of the equation of state to the hadron content of SMASH and UrQMD can be found here: https://github.com/j-f-paquet/eos_maker . Cooper-Frye sampling codes such as `frzout `_, `iSS `_ and `iS3D `_ have been matched to the hadron content of SMASH and UrQMD. This is how modern simulations such as https://inspirehep.net/literature/1763462 and https://inspirehep.net/literature/1827929 have been performed. In **MUSIC**, the energy-momentum tensor |Tmunu(X)| is converted to hadrons using the Cooper-Frye formula: .. math :: E \frac{d^3 N_s}{d p^3}= g_s \int_{\Sigma} d\Sigma_\mu P^\mu f_s\left( P,\epsilon(X),u^\mu(X),\pi^{\mu\nu}(X),\Pi(X) \right) where :math:`\int_{\Sigma} d\Sigma_\mu` is an integral over the particlization hypersurface discussed at the end of the "Hydrodynamics" section and :math:`d\Sigma_\mu` is a surface element of this hypersurface pointing in the orthogonal direction from the surface. Recall that in **MUSIC** the particlization surface is built by connecting all spacetime points at a fixed temperature or energy density (set by input parameters :bash:`T_freeze` or :bash:`epsilon_freeze`\ ). Function :math:`f_s\left( P,\epsilon(X),u^\mu(X),\pi^{\mu\nu}(X),\Pi(X) \right)` is the momentum distribution of species "s" of hadrons inside the fluid, and :math:`g_s` is the degeneracy of this species of hadrons. .. note :: The above equation must include a factor :math:`1/(2\pi)^3`. Here this factor is assumed to be included in the the momentum distribution :math:`f_s\left( P,\epsilon(X),u^\mu(X),\pi^{\mu\nu}(X),\Pi(X) \right)`. The simplest form that :math:`f_s\left( P,\epsilon(X),u^\mu(X),\pi^{\mu\nu}(X),\Pi(X) \right)` can take is in the ideal hydrodynamics case. Cooper-Frye with ideal hydrodynamics ------------------------------------- Our assumption is that ideal hydrodynamics describes a fluid that is close to local thermal equilibrium. The local momentum distribution of hadrons in a fluid described by ideal hydrodynamics should thus be thermal distributions, either Fermi-Dirac or Bose-Einstein. Of course, this fluid is in general not at rest, that is .. math :: u^\mu(X)\neq (1,0,0,0) This means that hadrons will generally have a boosted thermal distribution, rather than a thermal distribution. We can thus write .. math :: f_s\left( P,\epsilon(X),u^\mu(X),\pi^{\mu\nu}(X),\Pi(X) \right) = f_{F/B}\left( \frac{P \cdot u}{T(X)} \right) The temperature :math:`T(X)` is calculated from the energy density |e(X)| through the equation of state. Note that when the particlization hypersurface is constructed at a uniform value of temperature, :math:`T(X)` is constant across the entire hypersurface and is equal to input parameter :bash:`T_freeze`\ . :math:`f_{F/B}(p)` is the Fermi-Dirac if hadron "s" is a fermion and the Bose-Einstein distribution is "s" is a boson Note that aside from Bose-Einstein or Fermi-Dirac, the species only enters through :math:`P` as the mass of the hadron. The Cooper-Frye formula thus simplifies significantly: .. math :: E \frac{d^3 N_s}{d p^3}=g_s \int_{\Sigma} d\Sigma_\mu P^\mu f_{F/B}\left( \frac{P \cdot u}{T(X)} \right) Cooper-Frye with viscous hydrodynamics --------------------------------------- The Cooper-Frye procedure in viscous hydrodynamics is more subtle. In viscous hydrodynamics, we assume the fluid is not exactly in equilibrium, but is nevertheless close to equilibrium. Recall that |pimunu| and |Pi| are the viscous (dissipative) parts of the energy-momentum tensor |Tmunu|. If :math:`\pi^{\mu\nu}=0` and :math:`\Pi=0`, the momentum distribution :math:`f_s\left( P,\epsilon,u^\mu,\pi^{\mu\nu},\Pi \right)` should be the equilibrium one (Bose-Einstein/Fermi-Dirac). If :math:`\pi^{\mu\nu}` and :math:`\Pi` are non-zero, the momentum distribution :math:`f_s\left( P,\epsilon,u^\mu,\pi^{\mu\nu},\Pi \right)` deviates from the equilibrium distribution, with the deviation being related to :math:`\pi^{\mu\nu}` and :math:`\Pi`. The procedure adopted in **MUSIC** and in many other hydrodynamic simulation of heavy ion collisions is that the near-equilibrium distribution :math:`f_s\left( P,\epsilon,u^\mu,\pi^{\mu\nu},\Pi \right)` can be written as: .. math :: f_s\left( P,\epsilon,u^\mu,\pi^{\mu\nu},\Pi \right) = f_{F/B}\left( \frac{P \cdot u}{T} \right) + \delta f_s\left( P,\epsilon,u^\mu,\pi^{\mu\nu}, \Pi \right) where :math:`\delta f_s` should represent small modifications to the equilibrium momentum distribution :math:`f_{F/B}`. The general assumption is that :math:`\delta f_s` can be linearised in |pimunu| and |Pi|: .. math :: \delta f_s = \underbrace{\pi^{\mu\nu} P_\mu P_\nu C_s^{\textrm{shear}}\left( P,\epsilon \right)}_{\delta f_s^{\textrm{shear}}} + \underbrace{\Pi C_s^{\textrm{bulk}} \left( P,\epsilon \right)}_{\delta f_s^{\textrm{bulk}}} .. warning :: The viscous corrections in **MUSIC** for shear and bulk viscosities are not necessarily consistent. Simulation that include bulk viscosity should take a closer look at the bulk viscous correction. In **MUSIC**, .. math :: \delta f_s^{\textrm{shear}} = \frac{\pi^{\mu\nu} P_\mu P_\nu}{2 T^2 (\epsilon+\mathcal{P})} f_{F/B}(P) (1 + \sigma_{F/B} f_{F/B}(P)) .. math :: \delta f_s^{\textrm{bulk}} = - \Pi \left[ \frac{1}{3} \frac{m^2}{T^2} \frac{1}{P^0/T}-\frac{P^0}{T} \left( \frac{1}{3}-c_s^2 \right) \right] \frac{\tau_\Pi}{\zeta} f_{B/F}^{(0)}(P) (1 + \sigma_{B/F} f^{(0)}(P) ) Cooper-Frye implementation in **MUSIC** ---------------------------------------- Cooper-Frye is calculated in **MUSIC** by using input parameter :bash:`mode 3`. It is computed from the particlization hypersurface that is produced by the hydrodynamic evolution, :bash:`mode 2`\ . The result of Cooper-Frye is the single hadron momentum distribution :math:`E d^3 N_s/d p^3`. Evaluating Cooper-Frye numerically involves discretizing the momentum :math:`\vec{p}` on a grid. The momentum is written as a function of :math:`p_T`, :math:`\phi` and :math:`\eta`\ . The momentum grid in **MUSIC** is uniform in :math:`\phi` and :math:`\eta`\ , and a quadratic sampling in :math:`p_T`: .. code-block :: c++ particleList[ip].pt[ipt] = ( ptmin + (ptmax - ptmin)*pow(static_cast(ipt), 2.) /pow(static_cast(iptmax - 1), 2.)); The **MUSIC** input parameters that control the momentum grid on which the results of Cooper-Frye are discretized are: .. code :: max_pseudorapidity 5.0 # the range of pseudo-rapidity # (-maximal_rapidity, maximal_rapidity) pseudo_steps 51 # number of rapidity slices to compute # particle spectra min_pt 0.01 # the minimum pT value for particle spectra max_pt 3.0 # the maximum pT value for particle spectra pt_steps 15 # number of points in pT phi_steps 40 # number of points in phi (0, 2pi) The viscous corrections :math:`\delta f_s^{\textrm{shear}}` and :math:`\delta f_s^{\textrm{bulk}}` are hard-coded in **MUSIC**. They can be turned on and off with the following two input parameters: .. code :: Include_deltaf 1 # flag to include shear delta f correction # in Cooper-Frye formula Include_deltaf_bulk 0 # flag to include bulk delta f correction # in Cooper-Frye formula .. topic :: Species in Cooper-Frye Cooper-Frye is implemented in **MUSIC** in source file "freeze_pseudo.cpp", with some helper functions in "freeze.cpp". As mentioned earlier, we want the list of hadrons produced to match the equation of state. **MUSIC** was originally implemented such that the list of hadron species produced is read from the file "pdg05.dat" in the "EOS" directory. The file is read in "freeze.cpp": .. code-block :: c++ void Freeze::ReadParticleData([...]) { // read in particle and decay information from file: partid = new int[MAXINTV]; music_message.info("reading particle data"); // open particle data file: const char* EOSPATH = "HYDROPROGRAMPATH"; char * pre_envPath= getenv(EOSPATH); std::string envPath; if (pre_envPath == 0) { envPath="."; } else { envPath=pre_envPath; } string p_name = envPath + "/EOS/pdg05.dat"; if (DATA->whichEOS == 7 || DATA->whichEOS == 10) { p_name = envPath + "/EOS/pdg-urqmd_v3.3+.dat"; } music_message << "read in particle species table from " << p_name; music_message.flush("info"); } In theory, Cooper-Frye should be calculated for every species of hadrons included in the equation of state. In practice, the lighter hadrons carry most of the energy and momentum, and neglecting heavier hadrons can speed up the calculation without sacrificing too much the accuracy of the calculations. Consequently there are parameters to control how many hadrons are calculated in Cooper-Frye: .. code :: number_of_particles_to_include 40 # how many hadrons to include (counting from the lightest) when evaluating Cooper-Frye # current maximum = 320 particle_spectrum_to_compute 0 # If equal to 0: Do all up to "number_of_particles_to_include" # any natural number: # Do the particle with this (internal) ID The results of Cooper-Frye is saved in a file named "yptphiSpectra.dat". It is saved for each species of hadrons and the discretized momentum grid discussed above. The momentum distribution of particles predicted by Cooper-Frye should not be compared directly with measurements. Additional late stage hadronic physics must be added beforehand.