8 #ifndef EVENTGENERATORBASE_H 9 #define EVENTGENERATORBASE_H 26 std::ostringstream os;
73 std::vector< std::vector<double> >
bij;
76 std::vector< std::vector<double> >
aij;
99 void ClearMomentumGenerators();
136 std::pair< std::vector<int>,
double > SampleYields()
const;
148 virtual SimpleEvent SampleMomenta(
const std::vector<int>& yields)
const;
160 virtual SimpleEvent GetEvent(
bool PerformDecays =
true)
const;
182 void SetVolume(
double V);
189 void RescaleCEMeans(
double Vmod);
206 void PrepareMultinomials();
211 std::vector<int> GenerateTotals()
const;
216 std::vector<int> GenerateTotalsGCE()
const;
224 std::vector<int> GenerateTotalsCE()
const;
232 std::vector<int> GenerateTotalsSCE()
const;
240 std::vector<int> GenerateTotalsSCESubVolume(
double VolumeSC)
const;
248 std::vector<int> GenerateTotalsCCE()
const;
256 std::vector<int> GenerateTotalsCCESubVolume(
double VolumeSC)
const;
269 std::vector<RandomGenerators::ThermalBreitWignerGenerator*>
m_BWGens;
276 double m_ekin, m_ycm, m_ssqrt, m_elab;
281 std::vector< std::pair<double, int> > m_Baryons;
283 std::vector< std::pair<double, int> > m_AntiBaryons;
284 std::vector< std::pair<double, int> > m_StrangeMesons;
285 std::vector< std::pair<double, int> > m_AntiStrangeMesons;
286 std::vector< std::pair<double, int> > m_ChargeMesons;
287 std::vector< std::pair<double, int> > m_AntiChargeMesons;
288 std::vector< std::pair<double, int> > m_CharmMesons;
289 std::vector< std::pair<double, int> > m_AntiCharmMesons;
290 std::vector< std::pair<double, int> > m_CharmAll;
291 std::vector< std::pair<double, int> > m_AntiCharmAll;
293 std::vector<double> m_BaryonsProbs;
294 std::vector<double> m_AntiBaryonsProbs;
295 std::vector<double> m_StrangeMesonsProbs;
296 std::vector<double> m_AntiStrangeMesonsProbs;
297 std::vector<double> m_ChargeMesonsProbs;
298 std::vector<double> m_AntiChargeMesonsProbs;
299 std::vector<double> m_CharmMesonsProbs;
300 std::vector<double> m_AntiCharmMesonsProbs;
301 std::vector<double> m_CharmAllProbs;
302 std::vector<double> m_AntiCharmAllProbs;
305 double m_MeanB, m_MeanAB;
306 double m_MeanSM, m_MeanASM;
307 double m_MeanCM, m_MeanACM;
308 double m_MeanCHRMM, m_MeanACHRMM;
309 double m_MeanCHRM, m_MeanACHRM;
311 static double m_LastWeight;
312 static double m_LastLogWeight;
313 static double m_LastNormWeight;
Abstract base class for an HRG model implementation.
std::vector< RandomGenerators::ParticleMomentumGenerator * > m_MomentumGens
Vector of momentum generators for each particle species.
bool fUsePCE
Whether partial chemical equilibrium (PCE) is used.
Crossterms excluded-volume.
void SetCollisionCMSEnergy(double ssqrt)
Sets the center of mass energy of the collision.
ModelType
Enumerates the different interaction models.
Ensemble fEnsemble
The statistical ensemble used.
EventGeneratorConfiguration()
Default configuration.
Class containing the particle list.
void SetCollisionKineticEnergy(double ekin)
Sets the projectile laboratory kinetic energy per nucleon of the collision.
Structure containing the thermal event generator configuration.
std::vector< double > m_DensitiesIdeal
Ideal gas densities used for sampling an interacting HRG.
int B
The total values of conserved charges in the CE.
Structure holding information about a single event in the event generator.
Structure containing all thermal parameters of the model.
Contains some extra mathematical functions used in the code.
ModelType fModelType
The type of interaction model.
std::vector< double > fPCEChems
PCE chemical potentials.
EventGeneratorBase()
Constructor.
std::vector< std::vector< double > > bij
The matrix of excluded volume coefficients .
Ensemble
Enumerates the statistical ensembles.
EventGeneratorConfiguration m_Config
Excluded-volume in the thermodynamic mean field approach (currently not used)
Base class for generating events with the Thermal Event Generator.
double getYcm() const
The y-pT acceptance map (not used by default).
bool CanonicalB
Mixed-canonical configuration (full canonical by default)
void SetCollisionLabEnergy(double elab)
Sets the projectile laboratory energy per nucleon of the collision.
ThermalModelParameters CFOParameters
The chemical freeze-out parameters.
Diagonal excluded-volume.
std::vector< RandomGenerators::ThermalBreitWignerGenerator * > m_BWGens
std::vector< std::vector< double > > aij
The matrix of van der Waals attraction coefficients .
std::string to_string_fix(T value)
double mnucleon()
Nucleon's mass. Value as in UrQMD.
The main namespace where all classes and functions of the Thermal-FIST library reside.