Thermal-FIST  1.3
Package for hadron resonance gas model applications
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
thermalfist::ThermalModelPCE Class Reference

Class implementing HRG in partial chemical equilibrium. More...

#include <ThermalModelPCE.h>

Classes

class  BroydenEquationsPCE
 

Public Types

enum  PCEMode { AtFixedTemperature = 0, AtFixedVolume = 1 }
 Whether partial chemical equilibrium should be calculated at a fixed value of the temperature or a fixed value of the volume. More...
 

Public Member Functions

 ThermalModelPCE (ThermalModelBase *THMbase, bool FreezeLonglived=false, double LonglivedResoWidthCut=0.015)
 Construct a new ThermalModelPCE object. More...
 
virtual ~ThermalModelPCE (void)
 Destroy the ThermalModelPCE object. More...
 
ThermalModelBaseThermalModel () const
 Pointer to the HRG model used in calculations. More...
 
virtual void CalculatePCE (double param, PCEMode mode=AtFixedTemperature)
 Solves the equations of partial chemical equilibrium at a fixed temperature or a fixed volume. More...
 
const std::vector< double > & ChemicalPotentials () const
 
double Volume () const
 
void ApplyFixForBoseCondensation ()
 Modifies the decay threshold masses of bosonic resonances such that the Bose-Condesation does not occur due to large fugacities. More...
 
void UseSahaForNuclei (bool flag)
 Whether the nuclear abundances are evaluated through the Saha equation. More...
 
bool UseSahaForNuclei () const
 
void FreezeLonglivedResonances (bool flag)
 Whether long-lived resonances yields should be frozen. More...
 
bool FreezeLonglivedResonances () const
 
void SetLonglivedResonanceWidthCut (double width_cut)
 The threshold resonance width value to consider the resonance long-lived and its abundance frozen in the hadronic phase. More...
 
double LonglivedResonanceWidthCut () const
 
virtual void SetStabilityFlags (const std::vector< int > &StabilityFlags)
 Manually set the PCE stability flags for all species. More...
 
const std::vector< int > & StabilityFlags () const
 
void SetChemicalFreezeout (const ThermalModelParameters &params, const std::vector< double > &ChemInit=std::vector< double >(0))
 Sets the chemical freeze-out conditions to be used as an initial condition for PCE calculations. More...
 
void SetEntropyDensityChem (double sinit)
 Sets the entropy density at the chemical freeze-out. More...
 
double EntropyDensityChem () const
 

Static Public Member Functions

static void PrepareNucleiForPCE (ThermalParticleSystem *TPS)
 Fills the "decay" products of light nuclei in accordance with their baryon content. More...
 
static std::vector< int > ComputePCEStabilityFlags (const ThermalParticleSystem *TPS, bool SahaEquationForNuclei=true, bool FreezeLongLived=false, double WidthCut=0.015)
 Computes the PCE stability flags based on the provided particle list and a number of parameters. More...
 

Protected Attributes

ThermalModelBasem_model
 
bool m_UseSahaForNuclei
 Whether nuclear abundances are calculated via the Saha equation. More...
 
bool m_FreezeLonglivedResonances
 Whether long-lived resonances are frozen at Tch. More...
 
double m_ResoWidthCut
 Resonance width cut for freezeing the resonance abundances. More...
 
bool m_ChemicalFreezeoutSet
 Whether the chemical freeze-out "initial" condition has been set. More...
 
bool m_IsCalculated
 Whether PCE has been calculated. More...
 
bool m_StabilityFlagsSet
 PCE configuration, list of stable species etc. More...
 
std::vector< int > m_StabilityFlags
 
int m_StableComponentsNumber
 
std::vector< std::vector< double > > m_EffectiveCharges
 
std::vector< int > m_StableMapTo
 
ThermalModelParameters m_ParametersInit
 Parameters at the chemical freeze-out. More...
 
std::vector< double > m_ChemInit
 
std::vector< double > m_DensitiesInit
 
std::vector< double > m_StableDensitiesInit
 
double m_EntropyDensityInit
 
double m_ParticleDensityInit
 
ThermalModelParameters m_ParametersCurrent
 The current PCE thermal paratmeres and chemical potentials. More...
 
std::vector< double > m_ChemCurrent
 

Detailed Description

Class implementing HRG in partial chemical equilibrium.

Partial chemical equilbiirum (PCE) describes the hadronic phase dynamics.

The basic ideas about PCE can be found in H. Bebie, P. Gerber, J.L. Goity, H. Leutwyler, Nucl. Phys. B 378, 95 (1992)

The present implementation was used (and described) in a paper V. Vovchenko, K. Gallmeister, J. Schaffner-Bielich, C. Greiner, Phys. Lett. B 800, 135131 (2020), arXiv:1903.10024

A typical usage pattern is the following:

  1. Create a ThermalModelBase() instance implementing a particular grand-canonical HRG model.
  2. Create a ThermalModelPCE() instance using the ThermalModelBase() instance from the first step. Configure PCE options like which hadrons should be considered stable and whether the Saha equation should be used for light nuclei.
  3. Set the chemical freeze-out conditions via SetChemicalFreezeout()
  4. Evaluate the PCE conditions at a given temperature or volume in the hadronic phase via CalculatePCE()
  5. Use the pointer ThermalModel() to the HRG model to access the various physical properties at the given PCE point, like various hadron yields or the equation of state.
Examples:
PCE-Saha-LHC.cpp.

Definition at line 35 of file ThermalModelPCE.h.

Member Enumeration Documentation

Whether partial chemical equilibrium should be calculated at a fixed value of the temperature or a fixed value of the volume.

Used in CalculatePCE()

Enumerator
AtFixedTemperature 

Partial chemical equilibrium at fixed value of the temperature.

AtFixedVolume 

Partial chemical equilibrium at fixed value of the volume.

Definition at line 45 of file ThermalModelPCE.h.

Constructor & Destructor Documentation

thermalfist::ThermalModelPCE::ThermalModelPCE ( ThermalModelBase THMbase,
bool  FreezeLonglived = false,
double  LonglivedResoWidthCut = 0.015 
)

Construct a new ThermalModelPCE object.

Parameters
THMbaseA pointer to the ThermalModelBase object containing the HRG model implementation
FreezeLonglivedWhether long-lived resonance abundances should be frozen at Tch along with the stable hadrons
LonglivedResoWidthCutThreshold width for the long-lived resonances to be considered stable in the PCE

Definition at line 15 of file ThermalModelPCE.cpp.

virtual thermalfist::ThermalModelPCE::~ThermalModelPCE ( void  )
inlinevirtual

Destroy the ThermalModelPCE object.

Definition at line 66 of file ThermalModelPCE.h.

Member Function Documentation

void thermalfist::ThermalModelPCE::ApplyFixForBoseCondensation ( )

Modifies the decay threshold masses of bosonic resonances such that the Bose-Condesation does not occur due to large fugacities.

This is only necessary if energy-dependent Breit-Wigner widths are used.

Definition at line 335 of file ThermalModelPCE.cpp.

void thermalfist::ThermalModelPCE::CalculatePCE ( double  param,
PCEMode  mode = AtFixedTemperature 
)
virtual

Solves the equations of partial chemical equilibrium at a fixed temperature or a fixed volume.

Parameters
paramTemperature (in GeV) if mode correspond to PCE at fixed temperature, Volume (in fm^3) if mode correspond to PCE at fixed volume.
modeDetermines whether the PCE calculation is perfored at a fixed temperature (default) or at a fixed volume.
Examples:
PCE-Saha-LHC.cpp.

Definition at line 117 of file ThermalModelPCE.cpp.

const std::vector<double>& thermalfist::ThermalModelPCE::ChemicalPotentials ( ) const
inline
Returns
Vector of chemical potentials of all particles species, as resulted from the last CalculatePCE() call
Examples:
PCE-Saha-LHC.cpp.

Definition at line 156 of file ThermalModelPCE.h.

vector< int > thermalfist::ThermalModelPCE::ComputePCEStabilityFlags ( const ThermalParticleSystem TPS,
bool  SahaEquationForNuclei = true,
bool  FreezeLongLived = false,
double  WidthCut = 0.015 
)
static

Computes the PCE stability flags based on the provided particle list and a number of parameters.

Parameters
TPSPointer to the particle list
SahaEquationForNucleiWhether the Saha equation is applied to light nuclei
FreezeLongLivedWhether long-lived resonance yields are frozen at the chemical freeze-out
WidthCutThe threshold resonance width value to consider the resonance long-lived and its abundance frozen [GeV]

Definition at line 305 of file ThermalModelPCE.cpp.

double thermalfist::ThermalModelPCE::EntropyDensityChem ( ) const
inline

Definition at line 135 of file ThermalModelPCE.h.

void thermalfist::ThermalModelPCE::FreezeLonglivedResonances ( bool  flag)
inline

Whether long-lived resonances yields should be frozen.

If set, the long-lived resonance with width smaller than LonglivedResonanceWidthCut() are frozen at the chemical freeze-out of stable hadrons. Otherwise, their abundances are evaluated through the chemical potentials of their decay products.

Parameters
flagWhether long-lived resonances yields should be frozen.
Examples:
PCE-Saha-LHC.cpp.

Definition at line 89 of file ThermalModelPCE.h.

bool thermalfist::ThermalModelPCE::FreezeLonglivedResonances ( ) const
inline

Definition at line 90 of file ThermalModelPCE.h.

double thermalfist::ThermalModelPCE::LonglivedResonanceWidthCut ( ) const
inline

Definition at line 102 of file ThermalModelPCE.h.

void thermalfist::ThermalModelPCE::PrepareNucleiForPCE ( ThermalParticleSystem TPS)
static

Fills the "decay" products of light nuclei in accordance with their baryon content.

Parameters
TPSPointer to the particle list

Definition at line 182 of file ThermalModelPCE.cpp.

void thermalfist::ThermalModelPCE::SetChemicalFreezeout ( const ThermalModelParameters params,
const std::vector< double > &  ChemInit = std::vector<double>(0) 
)

Sets the chemical freeze-out conditions to be used as an initial condition for PCE calculations.

Parameters
paramsThermal parameters at the chemical freeze-out.
ChemInitChemical potentials of all species at the chemical freeze-out. If this vector is empty (default value), the chemical potentials are populated using params
Examples:
PCE-Saha-LHC.cpp.

Definition at line 74 of file ThermalModelPCE.cpp.

void thermalfist::ThermalModelPCE::SetEntropyDensityChem ( double  sinit)
inline

Sets the entropy density at the chemical freeze-out.

Parameters
sinitEntropy density at the chemical freeze-out.

Definition at line 134 of file ThermalModelPCE.h.

void thermalfist::ThermalModelPCE::SetLonglivedResonanceWidthCut ( double  width_cut)
inline

The threshold resonance width value to consider the resonance long-lived and its abundance frozen in the hadronic phase.

Note: This function sets FreezeLonglivedResonances() to true.

Parameters
width_cutThe threshold resonance width [GeV].

Definition at line 101 of file ThermalModelPCE.h.

void thermalfist::ThermalModelPCE::SetStabilityFlags ( const std::vector< int > &  StabilityFlags)
virtual

Manually set the PCE stability flags for all species.

Parameters
StabilityFlagsVector of stability flags. Each element corresponds to a particle specie with the same 0-based index in the particle list. Element i equal to zero means particle yield is not frozen in the hadronic phase, otherwise it is frozen.

Definition at line 27 of file ThermalModelPCE.cpp.

const std::vector<int>& thermalfist::ThermalModelPCE::StabilityFlags ( ) const
inline

Definition at line 114 of file ThermalModelPCE.h.

ThermalModelBase* thermalfist::ThermalModelPCE::ThermalModel ( ) const
inline

Pointer to the HRG model used in calculations.

Examples:
PCE-Saha-LHC.cpp.

Definition at line 141 of file ThermalModelPCE.h.

void thermalfist::ThermalModelPCE::UseSahaForNuclei ( bool  flag)
inline

Whether the nuclear abundances are evaluated through the Saha equation.

If not set, the nuclear abundances are frozed at the chemical freeze-out of stable hadrons.

Parameters
flagFlag whether the Saha equation is used.
Examples:
PCE-Saha-LHC.cpp.

Definition at line 76 of file ThermalModelPCE.h.

bool thermalfist::ThermalModelPCE::UseSahaForNuclei ( ) const
inline

Definition at line 77 of file ThermalModelPCE.h.

double thermalfist::ThermalModelPCE::Volume ( ) const
inline
Returns
The system volume, as resulted from the last CalculatePCE() call

Definition at line 161 of file ThermalModelPCE.h.

Member Data Documentation

std::vector<double> thermalfist::ThermalModelPCE::m_ChemCurrent
protected

Definition at line 226 of file ThermalModelPCE.h.

bool thermalfist::ThermalModelPCE::m_ChemicalFreezeoutSet
protected

Whether the chemical freeze-out "initial" condition has been set.

Definition at line 204 of file ThermalModelPCE.h.

std::vector<double> thermalfist::ThermalModelPCE::m_ChemInit
protected

Definition at line 218 of file ThermalModelPCE.h.

std::vector<double> thermalfist::ThermalModelPCE::m_DensitiesInit
protected

Definition at line 219 of file ThermalModelPCE.h.

std::vector< std::vector<double> > thermalfist::ThermalModelPCE::m_EffectiveCharges
protected

Definition at line 213 of file ThermalModelPCE.h.

double thermalfist::ThermalModelPCE::m_EntropyDensityInit
protected

Definition at line 221 of file ThermalModelPCE.h.

bool thermalfist::ThermalModelPCE::m_FreezeLonglivedResonances
protected

Whether long-lived resonances are frozen at Tch.

Definition at line 199 of file ThermalModelPCE.h.

bool thermalfist::ThermalModelPCE::m_IsCalculated
protected

Whether PCE has been calculated.

Definition at line 207 of file ThermalModelPCE.h.

ThermalModelBase* thermalfist::ThermalModelPCE::m_model
protected

Definition at line 193 of file ThermalModelPCE.h.

ThermalModelParameters thermalfist::ThermalModelPCE::m_ParametersCurrent
protected

The current PCE thermal paratmeres and chemical potentials.

Definition at line 225 of file ThermalModelPCE.h.

ThermalModelParameters thermalfist::ThermalModelPCE::m_ParametersInit
protected

Parameters at the chemical freeze-out.

Definition at line 217 of file ThermalModelPCE.h.

double thermalfist::ThermalModelPCE::m_ParticleDensityInit
protected

Definition at line 222 of file ThermalModelPCE.h.

double thermalfist::ThermalModelPCE::m_ResoWidthCut
protected

Resonance width cut for freezeing the resonance abundances.

Definition at line 201 of file ThermalModelPCE.h.

std::vector<int> thermalfist::ThermalModelPCE::m_StabilityFlags
protected

Definition at line 211 of file ThermalModelPCE.h.

bool thermalfist::ThermalModelPCE::m_StabilityFlagsSet
protected

PCE configuration, list of stable species etc.

Definition at line 210 of file ThermalModelPCE.h.

int thermalfist::ThermalModelPCE::m_StableComponentsNumber
protected

Definition at line 212 of file ThermalModelPCE.h.

std::vector<double> thermalfist::ThermalModelPCE::m_StableDensitiesInit
protected

Definition at line 220 of file ThermalModelPCE.h.

std::vector<int> thermalfist::ThermalModelPCE::m_StableMapTo
protected

Definition at line 214 of file ThermalModelPCE.h.

bool thermalfist::ThermalModelPCE::m_UseSahaForNuclei
protected

Whether nuclear abundances are calculated via the Saha equation.

Definition at line 196 of file ThermalModelPCE.h.


The documentation for this class was generated from the following files: