Thermal-FIST  1.3
Package for hadron resonance gas model applications
CylindricalBlastWaveEventGenerator.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 
17 namespace thermalfist {
18 
19  //CylindricalBlastWaveEventGenerator::CylindricalBlastWaveEventGenerator() {
20  // m_THM = NULL;
21  //}
22 
23  CylindricalBlastWaveEventGenerator::CylindricalBlastWaveEventGenerator(ThermalParticleSystem * TPS, const EventGeneratorConfiguration & config, double T, double betas, double etamax, double npow) :
24  m_T(T), m_BetaS(betas), m_EtaMax(etamax), m_n(npow)
25  {
26  SetConfiguration(TPS, config);
27 
29  }
30 
31  CylindricalBlastWaveEventGenerator::CylindricalBlastWaveEventGenerator(ThermalModelBase *THM, double T, double betas, double etamax, double npow, bool /*onlyStable*/, EventGeneratorConfiguration::ModelType EV, ThermalModelBase *THMEVVDW) :m_T(T), m_BetaS(betas), m_EtaMax(etamax), m_n(npow) {
34  if (THM->Ensemble() == ThermalModelBase::CE)
36  if (THM->Ensemble() == ThermalModelBase::SCE)
38  if (THM->Ensemble() == ThermalModelBase::CCE)
40 
42 
43  config.fEnsemble = ensemble;
44  config.fModelType = modeltype;
45  config.CFOParameters = THM->Parameters();
46  config.B = THM->Parameters().B;
47  config.Q = THM->Parameters().Q;
48  config.S = THM->Parameters().S;
49  config.C = THM->Parameters().C;
50 
51  config.bij.resize(THMEVVDW->ComponentsNumber());
52  for (size_t i = 0; i < config.bij.size(); ++i) {
53  config.bij[i].resize(THMEVVDW->ComponentsNumber());
54  for (size_t j = 0; j < config.bij.size(); ++j) {
55  config.bij[i][j] = THMEVVDW->VirialCoefficient(i, j);
56  }
57  }
58 
59  config.aij.resize(THMEVVDW->ComponentsNumber());
60  for (size_t i = 0; i < config.bij.size(); ++i) {
61  config.aij[i].resize(THMEVVDW->ComponentsNumber());
62  for (size_t j = 0; j < config.bij.size(); ++j) {
63  config.aij[i][j] = THMEVVDW->AttractionCoefficient(i, j);
64  }
65  }
66 
67  SetConfiguration(THMEVVDW->TPS(), config);
68 
70  }
71 
72  void CylindricalBlastWaveEventGenerator::SetParameters(double T, double betas, double etamax, double npow) {
73  m_T = T;
74  m_BetaS = betas;
75  m_EtaMax = etamax;
76  m_n = npow;
77 
79  }
80 
82  {
83  m_BetaS = (2. + m_n) / 2. * betaT;
84 
86  }
87 
89  {
91  m_BWGens.resize(0);
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];
96 
97  double T = m_THM->Parameters().T;
98  double Mu = m_THM->FullIdealChemicalPotential(i);
101  else
103  }
104  }
105  }
106 
107 } // namespace thermalfist
Class for generating mass of resonance in accordance with the constant width Breit-Wigner distributio...
Abstract base class for an HRG model implementation.
std::vector< RandomGenerators::ParticleMomentumGenerator * > m_MomentumGens
Vector of momentum generators for each particle species.
ModelType
Enumerates the different interaction models.
virtual double AttractionCoefficient(int, int) const
QvdW mean field attraction coefficient .
const ThermalParticle & Particle(int id) const
ThermalParticle object corresponding to particle species with a provided 0-based index.
Ensemble fEnsemble
The statistical ensemble used.
Class containing the particle list.
Structure containing the thermal event generator configuration.
Energy-dependent Breit-Wigner scheme (eBW)
int B
The total values of conserved charges in the CE.
void SetMeanBetaT(double betaT)
Set the mean transverse flow velocity.
void SetConfiguration(ThermalParticleSystem *TPS, const EventGeneratorConfiguration &config)
Sets the event generator configuration.
Charm-canonical ensemble.
virtual double VirialCoefficient(int, int) const
Excluded volume coefficient .
virtual double FullIdealChemicalPotential(int i) const
Chemical potential entering the ideal gas expressions of particle species i.
Contains some extra mathematical functions used in the code.
ThermalModelEnsemble Ensemble()
The statistical ensemble of the current HRG model.
Class containing all information about a particle specie.
ModelType fModelType
The type of interaction model.
Implements the cylindrically symmetric blast-wave model parametrization.
Header with helper excluded-volume class.
const std::vector< ThermalParticle > & Particles() const
Returns the vector of all particle species.
void SetParameters(double T, double betas, double etamax, double npow=1.)
Sets the momentum distribution parameters.
std::vector< std::vector< double > > bij
The matrix of excluded volume coefficients .
Ensemble
Enumerates the statistical ensembles.
double Mass() const
Particle&#39;s mass [GeV].
Strangeness-canonical ensemble.
ThermalModelParameters CFOParameters
The chemical freeze-out parameters.
std::vector< RandomGenerators::ThermalBreitWignerGenerator * > m_BWGens
Class for generating momentum of a particle in accordance with a longitudinally boost invariant and a...
Energy-dependent Breit-Wigner scheme (eBW) with constant branching ratios when evaluating feeddown...
Class for generating mass of resonance in accordance with the energy-dependent Breit-Wigner distribut...
std::vector< std::vector< double > > aij
The matrix of van der Waals attraction coefficients .
ThermalParticle::ResonanceWidthIntegration ResonanceWidthIntegrationType() const
const ThermalModelParameters & Parameters() const
void ClearMomentumGenerators()
Clears the momentum generators for all particles.
The main namespace where all classes and functions of the Thermal-FIST library reside.
CylindricalBlastWaveEventGenerator(ThermalParticleSystem *TPS=NULL, const EventGeneratorConfiguration &config=EventGeneratorConfiguration(), double T=0.120, double betas=0.5, double etamax=0.5, double npow=1.)
Construct a new CylindricalBlastWaveEventGenerator object.
int ComponentsNumber() const
Number of different particle species in the list.
ThermalParticleSystem * TPS()
int Statistics() const
Particle&#39;s statistics.