12 = {
"epsilon_1",
"epsilon_2",
"epsilon_3",
"epsilon_b"};
45 if (
name.compare(
"epsilon_1") == 0)
47 else if (
name.compare(
"epsilon_2") == 0)
49 else if (
name.compare(
"epsilon_3") == 0)
51 else if (
name.compare(
"epsilon_b") == 0)
61 std::cout <<
"ERROR: Missing mandatory NPEpsilons parameter "
73 if (
name.compare(
"epsilon1SM") == 0) {
76 }
else if (
name.compare(
"epsilon2SM") == 0) {
79 }
else if (
name.compare(
"epsilon3SM") == 0) {
82 }
else if (
name.compare(
"epsilonbSM") == 0) {
120 double tmp = 4.0 * M_PI *
ale / sqrt(2.0) /
GF /
Mz /
Mz;
121 if (tmp / (1.0 - Delta_r) > 1.0)
122 throw std::runtime_error(
"Error in EWNPEpsilons::Mw()");
124 return (
Mz / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - tmp / (1.0 - Delta_r))));
134 throw std::runtime_error(
"NPEpsilons::GammaW() is not available.");
173 double rhoZ_e = 4. * gAe*gAe;
174 double bfact = (1. + epsb)*(1. + epsb);
177 throw std::runtime_error(
"Error in NPEpsilons::rhoZ_f_eps()");
179 return ( rhoZ_e * bfact);
182 return ( (rhoZ_e +
deltaRhoZ_f(p).real()) * bfact);
188 return gslpp::complex(0.0, 0.0,
false);
189 else if (p.
is(
"BOTTOM"))
196 const double eps3,
double epsb)
const
201 throw std::runtime_error(
"Error in NPEpsilons::gV_f_eps()");
202 else if (p.
is(
"BOTTOM"))
203 return ( sqrt(
rhoZ_f_eps(p, eps1, epsb).real()) * I3f
205 else if (p.
is(
"ELECTRON"))
208 return ( sqrt(
rhoZ_f_eps(p, eps1).real()) * I3f
217 throw std::runtime_error(
"Error in NPEpsilons::gA_f_eps()");
218 else if (p.
is(
"BOTTOM"))
219 return ( sqrt(
rhoZ_f_eps(p, eps1, epsb).real()) * I3f);
220 else if (p.
is(
"ELECTRON"))
221 return gslpp::complex(-(1.0 + eps1 / 2.0) / 2.0, 0.0,
false);
223 return ( gslpp::complex(sqrt(
rhoZ_f_eps(p, eps1).real()) * I3f, 0.0,
false));
227 const double eps1,
const double eps3,
const double epsb)
const
231 double bfact = (1. + epsb);
234 throw std::runtime_error(
"Error in NPEpsilons::kappaZ_f_eps()");
236 return ( kappaZ_e / bfact);
245 return gslpp::complex(0.0, 0.0,
false);
246 else if (p.
is(
"BOTTOM"))
255 return gslpp::complex(0.0, 0.0,
false);
256 else if (p.
is(
"BOTTOM"))
265 return gslpp::complex(0.0, 0.0,
false);
266 else if (p.
is(
"BOTTOM"))
282 return ( (eps3 -
c02() * eps1) / (
c02() -
s02()));
std::map< std::string, double > DPars
void addMissingModelParameter(const std::string &missingParameterName)
std::map< std::string, std::reference_wrapper< const double > > ModelParamMap
std::string name
The name of the model.
void raiseMissingModelParameterCount()
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of the model.
static const int NEPSILONvars
The number of the model parameters in NPEpsilons.
virtual const double epsilon3() const
The parameter .
virtual const double GammaW() const
The total width of the boson, .
double myEpsilon_2
The parameter .
const double Delta_kappaPrime(const double eps1, const double eps3) const
The auxiliary function .
static const std::string EPSILONvars[NEPSILONvars]
A string array containing the labels of the model parameters in NPEpsilons.
const gslpp::complex gA_f_eps(const Particle f, const double eps1, const double epsb=0.) const
The effective neutral-current axial-vector coupling .
const double Delta_rW(const double eps1, const double eps2, const double eps3) const
The auxiliary function .
double myEpsilon_1
The parameter .
double myEpsilon_3
The parameter .
virtual const double epsilonb() const
The parameter .
const gslpp::complex rhoZ_f_eps(const Particle f, const double eps1, const double epsb=0.) const
The effective neutral-current coupling .
virtual const double Mw() const
The mass of the boson, .
virtual const double AFB(const Particle p) const
The forward-backward asymmetry in at the -pole, .
const gslpp::complex kappaZ_f_eps(const Particle f, const double eps1, const double eps3, const double epsb=0.) const
The effective neutral-current coupling .
virtual bool PostUpdate()
The post-update method for NPEpsilons.
virtual const double epsilon1() const
The parameter .
const double Mw_eps(const double eps1, const double eps2, const double eps3) const
The -boson mass .
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of the model.
virtual const double A_f(const Particle p) const
The left-right asymmetry in at the -pole, .
virtual const double epsilon2() const
The parameter .
bool FlagEpsilon3SM
A boolean flag that is true if only the SM contribution is considered for .
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for the model have been provided in model initializ...
virtual const gslpp::complex rhoZ_f(const Particle f) const
The effective neutral-current coupling including SM plus NP contributions.
bool FlagEpsilon2SM
A boolean flag that is true if only the SM contribution is considered for .
virtual const double R0_f(const Particle p) const
The ratio or , for leptons or quarks, respectively.
virtual const double Gamma_Z() const
The total decay width of the boson, .
virtual const gslpp::complex kappaZ_f(const Particle f) const
The effective neutral-current coupling including SM plus NP contributions.
NPEpsilons()
The default constructor.
virtual const gslpp::complex gA_f(const Particle f) const
The total (SM+NP) contribution to the neutral-current axial-vector coupling .
double myEpsilon_b
The parameter .
const gslpp::complex gV_f_eps(const Particle f, const double eps1, const double eps3, const double epsb=0.) const
The effective neutral-current vector coupling .
virtual const double sigma0_had() const
The hadronic cross section for at the -pole, .
virtual const gslpp::complex gV_f(const Particle f) const
The total (SM+NP) contribution to the neutral-current vector coupling .
virtual const double sin2thetaEff(const Particle p) const
The effective weak mixing angle for at the the -mass scale.
bool FlagEpsilon1SM
A boolean flag that is true if only the SM contribution is considered for .
bool FlagEpsilonbSM
A boolean flag that is true if only the SM contribution is considered for .
The auxiliary base model class for other model classes.
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of NPbase.
bool is(std::string name_i) const
double getIsospin() const
A get method to access the particle isospin.
double getCharge() const
A get method to access the particle charge.
virtual const double sin2thetaEff(const Particle f) const
The effective weak mixing angle for at the the -mass scale.
double Mz
The mass of the boson in GeV.
virtual const double AFB(const Particle f) const
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for StandardModel have been provided in model initi...
Particle leptons[6]
An array of Particle objects for the leptons.
virtual const double sigma0_had() const
The hadronic cross section for at the -pole, .
const double s02() const
The square of the sine of the weak mixing angle defined without weak radiative corrections.
virtual const double epsilon2() const
The SM contribution to the epsilon parameter .
virtual const double Gamma_Z() const
The total decay width of the boson, .
const bool IsFlagWithoutNonUniversalVC() const
A method to retrieve the model flag WithoutNonUniversalVC.
double GF
The Fermi constant in .
virtual const double epsilonb() const
The SM contribution to the epsilon parameter .
virtual const gslpp::complex deltaRhoZ_f(const Particle f) const
Flavour non-universal vertex corrections to , denoted by .
virtual const double A_f(const Particle f) const
The left-right asymmetry in at the -pole, .
virtual const gslpp::complex deltaKappaZ_f(const Particle f) const
Flavour non-universal vertex corrections to , denoted by .
virtual const double epsilon1() const
The SM contribution to the epsilon parameter .
const double c02() const
The square of the cosine of the weak mixing angle defined without weak radiative corrections.
virtual const double R0_f(const Particle f) const
The ratio .
virtual const double epsilon3() const
The SM contribution to the epsilon parameter .
double ale
The fine-structure constant .
virtual bool PostUpdate()
The post-update method for StandardModel.
const double DeltaAlpha() const
The total corrections to the electromagnetic coupling at the -mass scale, denoted as .
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
void setFlagNoApproximateGammaZ(bool FlagNoApproximateGammaZ)