Thermal-FIST 1.5
Package for hadron resonance gas model applications
Loading...
Searching...
No Matches
CracowFreezeoutEventGenerator.cpp
Go to the documentation of this file.
1/*
2 * Thermal-FIST package
3 *
4 * Copyright (c) 2019-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
20 m_T(0.150), m_RoverTauH(1.0), m_EtaMax(0.5)
21 {
22 }
23
26 m_T(T), m_RoverTauH(RoverTauH), m_EtaMax(etamax)
27 {
28 SetConfiguration(TPS, config);
29
30 //SetMomentumGenerators();
31 }
32
33 void CracowFreezeoutEventGenerator::SetParameters(double T, double RoverTauH, double etamax)
34 {
35 m_T = T;
36 m_RoverTauH = RoverTauH;
37 m_EtaMax = etamax;
38
39 m_ParametersSet = false;
40 //SetMomentumGenerators();
41 }
42
44 {
46 m_BWGens.resize(0);
47
48 // Find \tau_H from Veff / (\delta \eta) = \pi \tau_H R^2 where R = m_RoverTauH * \tau_H
49 double tauH = pow(m_THM->Volume() / (2. * m_EtaMax) / xMath::Pi() / m_RoverTauH / m_RoverTauH, 1. / 3.);
50
51 if (m_THM != NULL) {
52 for (size_t i = 0; i < m_THM->TPS()->Particles().size(); ++i) {
53 const ThermalParticle& part = m_THM->TPS()->Particles()[i];
54 //m_MomentumGens.push_back(new RandomGenerators::CracowFreezeoutMomentumGenerator(m_T, m_RoverTauH, m_EtaMax, part.Mass(), part.Statistics(), m_THM->FullIdealChemicalPotential(i)));
55 m_MomentumGens.push_back(new RandomGenerators::BoostInvariantMomentumGenerator(new CracowFreezeoutParametrization(m_RoverTauH, tauH), GetTkin(), GetEtaMax(), part.Mass(), part.Statistics(), m_THM->FullIdealChemicalPotential(i)));
56
57 double T = m_THM->Parameters().T;
58 double Mu = m_THM->FullIdealChemicalPotential(i);
59 if (m_THM->TPS()->ResonanceWidthIntegrationType() == ThermalParticle::eBW || m_THM->TPS()->ResonanceWidthIntegrationType() == ThermalParticle::eBWconstBR)
60 m_BWGens.push_back(new RandomGenerators::ThermalEnergyBreitWignerGenerator(&m_THM->TPS()->Particle(i), T, Mu));
61 else
62 m_BWGens.push_back(new RandomGenerators::ThermalBreitWignerGenerator(&m_THM->TPS()->Particle(i), T, Mu));
63 }
64 }
65 }
66
67} // namespace thermalfist
Implements the Cracow (Hubble-like) freeze-out model parametrization.
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.
virtual void SetParameters()
Sets up the event generator ready for production.
Class for generating momentum of a particle in accordance with a longitudinally boost invariant and a...
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...
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.
Contains some extra mathematical functions used in the code.