Thermal-FIST (or simply The FIST) is a C++ package designed for a convenient general-purpose analysis within the family of hadron resonance gas (HRG) models. This mainly includes statistical analysis of particle production in heavy-ion collisions and phenomenology of the equation of state of hadronic matter.
-
HRG equation of state and related properties
- Thermodynamics
- Susceptibilities
- Speed of sound and heat capacity
- Hadron yields
- Fluctuations and correlations
- Statisical ensembles
- Grand-canonical
- Canonical
- Mixed-canonical
-
Extensions of the standard (ideal) HRG model
- Finite resonance widths
- Repulsive interactions
- van der Waals
- Generalized excluded volume (Carnahan-Starling etc.)
- Multi-component
- Mean-field interactions
- van der Waals and beyond
- vector density functional
- Partial chemical equilibrium
- Fluctuations and correlations of both conserved (charges) and non-conserved (hadron numbers) quantities
-
Heavy-ion applications
- Thermal fits
- Small systems and canonical effects
- Light nuclei
- Chemical non-equilibrium
- Partial chemical equilibrium
- Saha equation for light nuclei
- Baryon annihilation
- Monte Carlo event generator
- Blast-Wave, Cracow, Siemens-Rasmussen models
- Based on hydrodynamics hypersurface
- Canonical ensemble and hard-core repulsion
-
Other applications
- Neutron star matter equation of state
- Early Universe (cosmic trajectories)
-
Graphical User Interface (QtThermalFIST)
The package includes QtThermalFIST -- a Qt-based graphical user interface frontend designed for a fast and convenient general-purpose thermal model analysis. Typical tasks, such as calculating the equation of state properties or performing the thermal fits, can be done in GUI. Using the GUI can therefore be a good starting point.
Thermal-FIST is a C++ package, and can be used in C++ code. Common usage patters include:
- C++ macro using linking to the Thermal-FIST library. See src/examples for illustration.
- As a submodule. See https://github.com/vlvovch/finite-resonance-widths for an example.
- As an event generator. See https://github.com/vlvovch/fist-sampler for an example.
- Using graphical user interface.
- As a Jupyter notebook. See https://github.com/vlvovch/fist-jupyter for an example. (NOTE: does not work on Apple Silicon)
Please see the Quick Start Guide to get started as well as the examples in src/examples for illustration.
For running Thermal-FIST in the cloud, you may use GitHub Codespaces. It may even possible to run the GUI from a browser, see https://github.com/devcontainers/features/tree/main/src/desktop-lite
Please see the Thermal-FIST documentation
- It is recommended to use the latest version of the package. See the CHANGELOG
- Undocumented new features and bugfixes often first appear in the devel branch
- Open an issue if you have possible improvements/new features/bugfixes in mind
- Calculations may break down for excessive/overstressed parameters. This should be carefully monitored, and the accuracy of the output assessed. If in doubt, contact the program author(s).
- Eigen C++ template library for linear algebra (MPL2). Tested with version 3.4.0
- MINUIT2 function minimization package from CERN-ROOT toolkit (LGPL2.1)
- Mersenne Twister random number generator by M. Matsutomo and T. Nishimura (implementation by R. J. Wagner), slightly adapted to make it compatible with C++17.
- Qt6 or Qt5 framework for the GUI frontend (LGPL3)
- QCustomPlot Qt C++ widget for plotting and data visualization by Emanuel Eichhammer (GPL)
Please cite the following paper when using this code:
- V. Vovchenko, H. Stoecker, Thermal-FIST: A package for heavy-ion collisions and hadronic equation of state, Comput. Phys. Commun. 244, 295 (2019), arXiv:1901.05249 [nucl-th]
Other citations may be needed depending on the specific features and inputs used.
It is expected that changes to the code are documented.
Copyright (C) 2018-2025 Volodymyr Vovchenko