Skip to content
FastReso --- program for computing irreducible components of the particle distribution from direct resonance decays.
C++ CMake
Branch: master
Clone or download


# * Copyright (c) 2019 Aleksas Mazeliauskas, Stefan Floerchinger, 
#                      Eduardo Grossi, and Derek Teaney
# * All rights reserved.
# *
# * FastReso is distributed under MIT license;
# * see the LICENSE file that should be present in the root
# * of the source distribution, or alternately available at:
# *
# */

# FastReso -- calculates the irreducible spectral components for resonance
# decays for the given list of particles and decay chains.
# When using FastReso please refer to/cite the accompanying publication 
# "Fast resonance decays in nuclear collisions"  Eur. Phys. J. C79 (2019) [arXiv:1809.11049]
# by Aleksas Mazeliauskas, Stefan Floerchinger, Eduardo Grossi, Derek Teaney
# COMPILATION (needed libraries: gsl, cmake and standard c++14):
  cmake ./
# RUNING FastReso ( by default will compute ideal components feq1 and feq for pi,K,pi, multi-strange baryons and photons
# in the temperature interval T=140-160 MeV in 1 MeV steps). It should take a several minutes on 4-core laptop.
# using input files from THERMINATOR
  run_fastreso_therminator.exe ./
# using input files from AZYHYDRO-like hydro codes, e.g. MUSIC or VISHNU
  run_fastreso_azyhydro.exe ./
# CONFIGURATION: The main configuration is done by user supplied particle and decay data
# files. The current read-in routines are compatible with the files used 
# by MC event generators THERMINATOR 2 (arxiv:1102.0273) and SHARE (arxiv:nucl-th/0404083)
# by hydro codes stemming from AZYHYDRO (arxiv:) and QCD equation of state parametrization  (arxiv:) 
# Any commented line is skipped (i.e. no particles created or decayed). The
# decay list should be mass ordered, and, of course all particles appearing
# in decays should appear in the particles list.
# Additional configuration (e.g. for the momentum grid) can be done using
# 1) Runing
  run_fastreso_therminator.exe ./
#will first create derived class TFastReso_THERMINATOR from TFastReso, which is responsible for reading-in input
#files and performing the decay calculations.

# 2) TFastReso object must be then invoked with read-in method
# The method reads the resonance list (see and creates a list
# of particles class TParticle_THERMINATOR (derived from TParticle), which will contain the irreducible components
# and the printout proceedures.

# 3) Then irreducible weight fj (or F_j) must be initialized, which depends on
# the freeze-out parameters (e.g. temperature). 
# A big change in thisversion of the code is that irreducible components are multiplpied factors of momentum to
# make calculating integrals easier.
# Additional functions can be
# easily added in TFastReso_formulas.h). See note.pdf and the paper for
# documentation.
# Initialization is done by the method do_thermal (which also has optional parameters, e.g.
# chemical potential. See TFastReso class
# Then optionally the initial components can be printed out through

# 4) The actual decay procedure is calculated by (see TFastReso_formulas.h)
# This methods reads sequentially the decay list and performs the decay
# incrementing the irreducible components of the decay product. To include
# all feed-down, decays should be done from the heaviest resonances. After a
# resonance is decay, its data is locked to prevent modification.
# If irreducible components are needed for a particular intermediate decay,
# it can be printed out using print_buffer routines (buffer is cleaned after
# each decay).

# 5) Finally particles, whose final decay components, are needed should be specified
# in run_fastreso_therminator.cpp  (e.g. pions, Kaons, protons) by their names in

# Analogous routine applies to other forms of import, e.g. AZYHYDRO. For custom imput files, it is easiest
# to create new derivative classes of TFastReso and TParticles. The decay procedure only needs
# few of available information, e.g. masses and branching ratios, but in the future decay width could be used.

# cmake confirugation file
# the main program file (add final printout calls here)
# The main class files (add intermediate printout calls here, add additional
# delta f's here)
  TFastReso_THERMINATOR.h .cpp
  TFastReso_AZYHYDRO.h .cpp
# Particle data holder class. Printout routines and momentum grid is defined
# here.
  TParticle_THERMINATOR.h .cpp
  TParticle_AZYHYDRO.h .cpp
# Particle and decay data files
# a table of Clebsch-Gordan coefficients to calculate the correct branching
# ratio (needed for THERMINATOR type input)
# Grid and gsl integration parameters
# Documentation file

# Notes:
# 1)Photons spectra omitted for photons (hard-coded by hand). Also, the
# degeneracy factor (2 instead of 3) has to be hard-coded. Note that if mass
# <=1MeV, particle is treaded as massless.
# 2) Finite widths of resonances is neglected. If decay process violate formal
# mass conservation, i.e. Ma < Ma+Mb+(Mc), decay is skipped.
# 3) All decays which are not commented out in are performed,
# including weak decays. Comment out unwanted decays manually or add a rule,
# e.g. min width in TFastReso_THERMINATOR.cpp.
# 4) For production results we typically use the following grid and integration parameters (which might
# take longer on a simple laptop, but is not a problem on a single ~16 core machine)
  static const int fNpbar = 201; // number of points fluid restfram pbar grid
  static const double fPbarMax = 5.5; //  the max pbar value
  const double fEpsRel = 1e-6;
  const double fEpsAbs = 1e-10;
  const int fKey = GSL_INTEG_GAUSS51;
# 5) To initialize bulk perturbations the user needs to provide (temperature
# dependent) speed of sound cs2(T)
# New (2019-07-23):
# 1) Decays into massless particles, i.e. photon, is now supported through the change of variables
# in integration variables. This only affects photon spectra, but is not well
# tested. See notes.pdf
# 2) For easier integration the irreducible components were multiplied by powers of mometum. See TFastReso_formulas.h and Notes.pdf
# 3) Some checks on integration status was introduced, so that error handler could be turn-off if really needed.
# 4) Old version of the code is saved on the branch 1809.11049

You can’t perform that action at this time.