37 m_Parameters.muS = 0.;
41 m_TAG =
"ThermalModelCanonicalStrangeness";
44 m_InteractionModel =
Ideal;
54 m_Parameters.muS = 0.;
59 m_Parameters.muS = 0.0;
67 m_ConstrainMuS =
false;
68 m_ConstrainMuC =
false;
75 m_QuantumStats = stats;
76 for (
int i = 0; i < m_TPS->ComponentsNumber(); ++i)
77 if (m_TPS->Particles()[i].Strangeness() == 0) m_TPS->Particle(i).UseStatistics(stats);
78 else m_TPS->Particle(i).UseStatistics(
false);
82 for (
int i = 0; i < m_TPS->ComponentsNumber(); ++i) {
85 m_GCECalculated =
true;
90 for (
int i = 0; i < m_TPS->ComponentsNumber(); ++i) {
98 for (
int i = 0; i < m_TPS->ComponentsNumber(); ++i) {
105 if (!m_GCECalculated)
111 vector<double> xi(3, 0.), yi(3, 0.);
113 for (
size_t i = 0; i <
m_StrVals.size(); ++i) {
115 for (
int j = 0; j < m_TPS->ComponentsNumber(); ++j)
116 if (
m_StrVals[i] == m_TPS->Particles()[j].Strangeness())
120 for (
int i = 0; i < 3; ++i) {
131 m_xiSum = xi[0] + xi[1] + xi[2];
133 for (
unsigned int i = 0; i <
m_StrVals.size(); ++i) {
136 for (
int m = -iters; m <= iters; ++m)
137 for (
int n = -iters; n <= iters; ++n) {
141 pow(yi[0],
m_StrVals[i] - 3 * m - 2 * n) *
144 if (tmp != tmp)
continue;
152 assert(m_IGFExtraConfig.MagneticField.B == 0.);
155 throw std::runtime_error(
"ThermalModelCanonicalStrangeness::CalculatePrimordialDensities(): PCE not supported!");
158 m_FluctuationsCalculated =
false;
167 for (
int i = 0; i < m_TPS->ComponentsNumber(); ++i) {
168 if (
m_StrMap.count(-m_TPS->Particles()[i].Strangeness()))
178 m_wprim.resize(m_densities.size());
179 m_wtot.resize(m_densities.size());
180 for (
size_t i = 0; i < m_wprim.size(); ++i) {
195 for (
int i = 0; i < m_TPS->ComponentsNumber(); ++i)
196 if (
m_StrMap.count(-m_TPS->Particles()[i].Strangeness()))
208 for (
int i = 0; i < m_TPS->ComponentsNumber(); ++i)
209 if (m_TPS->Particles()[i].Strangeness() != 0) {
210 if (
m_StrMap.count(-m_TPS->Particles()[i].Strangeness()))
224 for (
int i = 0; i < m_TPS->ComponentsNumber(); ++i)
225 if (
m_StrMap.count(-m_TPS->Particles()[i].Strangeness()))
map< string, double > params
virtual void ChangeTPS(ThermalParticleSystem *TPS)
Change the particle list.
bool UsePartialChemicalEquilibrium()
Whether partial chemical equilibrium with additional chemical potentials is used.
virtual void FixParameters()
Method which actually implements ConstrainChemicalPotentials() (for backward compatibility).
virtual void SetParameters(const ThermalModelParameters ¶ms)
The thermal parameters.
virtual void ValidateCalculation()
Checks whether issues have occured during the calculation of particle densities in the CalculateDensi...
ThermalModelBase(ThermalParticleSystem *TPS, const ThermalModelParameters ¶ms=ThermalModelParameters())
Construct a new ThermalModelBase object.
virtual void CalculateDensities()
Calculates the primordial and total (after decays) densities of all species.
@ SCE
Strangeness-canonical ensemble.
std::vector< double > m_Zsum
virtual void SetStatistics(bool stats)
double m_xiSum
Sum of Bessel arguments, stored for entropy calculation.
virtual void CalculateEnergyDensitiesGCE()
Calculates the grand-canonical energy densities.
virtual void CalculateDensitiesGCE()
Calculates the particle densities in a grand-canonical ensemble.
virtual double CalculateEnergyDensity()
virtual void CalculatePrimordialDensities()
Calculates the primordial densities of all species.
ThermalModelCanonicalStrangeness(ThermalParticleSystem *TPS, const ThermalModelParameters ¶ms=ThermalModelParameters())
Construct a new ThermalModelCanonicalStrangeness object.
virtual void SetStrangenessChemicalPotential(double muS)
Override the base class method to always set to zero.
virtual void FixParameters()
Method which actually implements ConstrainChemicalPotentials() (for backward compatibility).
std::vector< int > m_StrVals
virtual void CalculateSums(double Vc)
Calculates the strangeness-canonical partition functions.
std::map< int, int > m_StrMap
void CalculateFluctuations()
Dummy function. Fluctuations not yet supported.
std::vector< double > m_partialS
virtual ~ThermalModelCanonicalStrangeness(void)
Destroy the ThermalModelCanonicalStrangeness object.
virtual bool IsConservedChargeCanonical(ConservedCharge::Name charge) const
virtual void CalculatePressuresGCE()
Calculates the grand-canonical pressures.
std::vector< double > m_pressuresGCE
virtual void ChangeTPS(ThermalParticleSystem *TPS)
Change the particle list.
std::vector< double > m_densitiesGCE
virtual void SetParameters(const ThermalModelParameters ¶ms)
The thermal parameters.
virtual double CalculateEntropyDensity()
std::vector< double > m_energydensitiesGCE
virtual double CalculatePressure()
Class containing the particle list.
double BesselIexp(int n, double x)
Modified Bessel function I_n(x), divided by exponential factor.
The main namespace where all classes and functions of the Thermal-FIST library reside.
Name
Set of all conserved charges considered.
@ StrangenessCharge
Strangeness.
Structure containing all thermal parameters of the model.
Contains some extra mathematical functions used in the code.