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 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 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 .
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 .
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)