Thermal-FIST 1.5
Package for hadron resonance gas model applications
Loading...
Searching...
No Matches
SphericalBlastWaveEventGenerator.cpp
Go to the documentation of this file.
1/*
2 * Thermal-FIST package
3 *
4 * Copyright (c) 2015-2019 Volodymyr Vovchenko
5 *
6 * GNU General Public License (GPLv3 or later)
7 */
9
10#include <algorithm>
11
12#include "HRGBase/xMath.h"
16
17namespace thermalfist {
18
23
26 m_T(T), m_Beta(beta)
27 {
28 SetConfiguration(TPS, config);
29
30 //SetMomentumGenerators();
31 }
32
33
36 m_T(T), m_Beta(beta) {
39 if (THM->Ensemble() == ThermalModelBase::CE)
41 if (THM->Ensemble() == ThermalModelBase::SCE)
43 if (THM->Ensemble() == ThermalModelBase::CCE)
45
47
48 config.fEnsemble = ensemble;
49 config.fModelType = modeltype;
50 config.CFOParameters = THM->Parameters();
51 config.B = THM->Parameters().B;
52 config.Q = THM->Parameters().Q;
53 config.S = THM->Parameters().S;
54 config.C = THM->Parameters().C;
55
56 config.bij.resize(THMEVVDW->ComponentsNumber());
57 for (size_t i = 0; i < config.bij.size(); ++i) {
58 config.bij[i].resize(THMEVVDW->ComponentsNumber());
59 for (size_t j = 0; j < config.bij.size(); ++j) {
60 config.bij[i][j] = THMEVVDW->VirialCoefficient(i, j);
61 }
62 }
63
64 config.aij.resize(THMEVVDW->ComponentsNumber());
65 for (size_t i = 0; i < config.bij.size(); ++i) {
66 config.aij[i].resize(THMEVVDW->ComponentsNumber());
67 for (size_t j = 0; j < config.bij.size(); ++j) {
68 config.aij[i][j] = THMEVVDW->AttractionCoefficient(i, j);
69 }
70 }
71
72 SetConfiguration(THM->TPS(), config);
73
75 }
76
78 m_T = T;
79 m_Beta = beta;
80 m_ParametersSet = false;
81 //SetMomentumGenerators();
82 }
83
85 {
87 m_BWGens.resize(0);
88
89 double gamma = 1. / sqrt(1 - GetBeta() * GetBeta());
90 double R = pow(3. * m_THM->Volume() / (4. * xMath::Pi()) / gamma, 1. / 3.);
91
92 if (m_THM != NULL) {
93 for (size_t i = 0; i < m_THM->TPS()->Particles().size(); ++i) {
94 const ThermalParticle& part = m_THM->TPS()->Particles()[i];
95 //m_MomentumGens.push_back(new RandomGenerators::SiemensRasmussenMomentumGeneratorGeneralized(m_T, m_Beta, m_THM->TPS()->Particles()[i].Mass()));
96 m_MomentumGens.push_back(new RandomGenerators::SiemensRasmussenMomentumGeneratorGeneralized(m_T, m_Beta, R, part.Mass(), part.Statistics(), m_THM->FullIdealChemicalPotential(i)));
97
98 double T = m_THM->Parameters().T;
99 double Mu = m_THM->FullIdealChemicalPotential(i);
100 if (m_THM->TPS()->ResonanceWidthIntegrationType() == ThermalParticle::eBW || m_THM->TPS()->ResonanceWidthIntegrationType() == ThermalParticle::eBWconstBR)
101 m_BWGens.push_back(new RandomGenerators::ThermalEnergyBreitWignerGenerator(&m_THM->TPS()->Particle(i), T, Mu));
102 else
103 m_BWGens.push_back(new RandomGenerators::ThermalBreitWignerGenerator(&m_THM->TPS()->Particle(i), T, Mu));
104 }
105 }
106 }
107
108 //void SphericalBlastWaveEventGenerator::SetParameters()
109 //{
110 // SetMomentumGenerators();
111 // m_ParametersSet = true;
112 //}
113
114} // namespace thermalfist
std::vector< RandomGenerators::ThermalBreitWignerGenerator * > m_BWGens
std::vector< RandomGenerators::ParticleMomentumGenerator * > m_MomentumGens
Vector of momentum generators for each particle species.
void ClearMomentumGenerators()
Clears the momentum generators for all particles.
void SetConfiguration(ThermalParticleSystem *TPS, const EventGeneratorConfiguration &config)
Sets the event generator configuration.
A generalized class for generating the momentum of a particle in accordance with the Siemens-Rasmusse...
Class for generating mass of resonance in accordance with the constant width Breit-Wigner distributio...
Class for generating mass of resonance in accordance with the energy-dependent Breit-Wigner distribut...
void SetBlastWaveParameters(double Tkin, double beta)
Sets the momentum distribution parameters.
Abstract base class for an HRG model implementation.
virtual double AttractionCoefficient(int, int) const
QvdW mean field attraction coefficient .
int ComponentsNumber() const
Number of different particle species in the list.
virtual double VirialCoefficient(int, int) const
Excluded volume coefficient .
const ThermalModelParameters & Parameters() const
@ SCE
Strangeness-canonical ensemble.
@ CCE
Charm-canonical ensemble.
Class containing all information about a particle specie.
int Statistics() const
Particle's statistics.
double Mass() const
Particle's mass [GeV].
@ eBWconstBR
Energy-dependent Breit-Wigner scheme (eBW) with constant branching ratios when evaluating feeddown.
@ eBW
Energy-dependent Breit-Wigner scheme (eBW)
Class containing the particle list.
constexpr double Pi()
Pi constant.
Definition xMath.h:23
The main namespace where all classes and functions of the Thermal-FIST library reside.
Definition CosmicEoS.h:9
Structure containing the thermal event generator configuration.
Ensemble fEnsemble
The statistical ensemble used.
Ensemble
Enumerates the statistical ensembles.
ModelType
Enumerates the different interaction models.
Contains some extra mathematical functions used in the code.