15 const double BoostInvariantFreezeoutParametrization::dzeta = 0.001;
24 if (!m_ProbabilityMaximumComputed) {
26 m_ProbabilityMaximumComputed =
true;
28 return m_ProbabilityMaximum;
34 m_ProbabilityMaximum = TernarySearchForIntegrandMaximum(0., 1.);
37 double tmax = 0., tzetamax = 0.;
39 for (
double tzeta = 0.; tzeta <= 1. + 1.e9; tzeta += dzeta) {
47 if (tmax > m_ProbabilityMaximum) {
48 m_ProbabilityMaximum = TernarySearchForIntegrandMaximum(tzetamax - dzeta, tzetamax + dzeta);
51 return m_ProbabilityMaximum;
54 double BoostInvariantFreezeoutParametrization::TernarySearchForIntegrandMaximum(
double zetaMin,
double zetaMax)
const
57 double l = zetaMin, r = zetaMax;
64 double m1 = l + (r - l) / 3.;
65 double m2 = r - (r - l) / 3.;
68 while (fabs(m2 - m1) > eps && iter < MAXITERS) {
75 m1 = l + (r - l) / 3.;
76 m2 = r - (r - l) / 3.;
89 if (tau <= 0. || Rmax <= 0. || m_n < 0. || (m_BetaS < 0. || m_BetaS > 1.)) {
90 throw std::invalid_argument(
"CylindricalBlastWaveParametrization: invalid parameter values!");
96 return m_R * zeta * m_tau *
coshetaperp(zeta) * m_R;
101 m_RoverTauH(RoverTauH),
104 if (tauH <= 0. || RoverTauH <= 0.) {
105 throw std::invalid_argument(
"CracowFreezeoutParametrization: invalid parameter values!");
111 return Rmax() * zeta * m_tauH * Rmax();
virtual double sinhetaperp(double zeta) const
virtual double coshetaperp(double zeta) const
virtual double taufunc(double zeta) const
Proper time \tau vs \zeta.
virtual double dRdZeta(double zeta) const
dR/d\zeta
virtual double ProbabilityMaximum()
BoostInvariantFreezeoutParametrization()
virtual double ComputeProbabilitydMaximum()
Computes and sets the maximum of the \zeta probability density.
virtual double ZetaProbability(double zeta) const
Proportional to probability of having given \zeta value.
virtual double dtaudZeta(double zeta) const
d\tau/d\zeta
virtual double Rfunc(double zeta) const
Transverse radius vs \zeta.
virtual double ZetaProbability(double zeta) const
Proportional to probability of having given \zeta value.
CracowFreezeoutParametrization(double RoverTauH=1., double tauH=10.)
CylindricalBlastWaveParametrization(double betaSurface=0.5, double nPower=1., double tau=10., double Rmax=6.)
virtual double ZetaProbability(double zeta) const
Proportional to probability of having given \zeta value.
virtual double coshetaperp(double zeta) const
The main namespace where all classes and functions of the Thermal-FIST library reside.