8 #ifndef STANDARDMODEL_H
9 #define STANDARDMODEL_H
28 class EWSMTwoFermionsLEP2;
518 virtual bool Init(
const std::map<std::string, double>& DPars);
536 virtual bool Update(
const std::map<std::string, double>& DPars);
561 virtual bool CheckParameters(
const std::map<std::string, double>& DPars);
573 virtual bool setFlag(
const std::string
name,
const bool value);
581 virtual bool setFlagStr(
const std::string
name,
const std::string value);
913 throw std::runtime_error(
"StandardModel::getTrueSM() must be overridden by the NP extension.");
1182 virtual double v()
const;
1192 virtual double Mw_tree()
const;
1251 virtual double Mw()
const;
1262 virtual double cW2(
const double Mw_i)
const;
1263 virtual double cW2()
const;
1274 virtual double sW2(
const double Mw_i)
const;
1298 virtual double DeltaR()
const;
1354 double Mzbar()
const;
1468 virtual double GammaW()
const;
1590 virtual double Gamma_Z()
const;
1860 if (sqrt_s == 7.0) {
1863 }
else if (sqrt_s == 8.0) {
1866 }
else if (sqrt_s == 1.96) {
1869 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaggH()");
1881 if (sqrt_s == 7.0) {
1885 }
else if (sqrt_s == 8.0) {
1890 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaggH_tt()");
1902 if (sqrt_s == 7.0) {
1906 }
else if (sqrt_s == 8.0) {
1911 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaggH_bb()");
1923 if (sqrt_s == 7.0) {
1927 }
else if (sqrt_s == 8.0) {
1932 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaggH_tb()");
1943 if (sqrt_s == 7.0) {
1946 }
else if (sqrt_s == 8.0) {
1949 }
else if (sqrt_s == 1.96) {
1952 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaVBF()");
1964 if (sqrt_s == 7.0) {
1966 }
else if (sqrt_s == 8.0) {
1968 }
else if (sqrt_s == 1.96) {
1971 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaWF()");
1983 if (sqrt_s == 7.0) {
1985 }
else if (sqrt_s == 8.0) {
1987 }
else if (sqrt_s == 1.96) {
1990 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaZF()");
2013 if (sqrt_s == 7.0) {
2016 }
else if (sqrt_s == 8.0) {
2019 }
else if (sqrt_s == 1.96) {
2022 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaWH()");
2033 if (sqrt_s == 7.0) {
2036 }
else if (sqrt_s == 8.0) {
2039 }
else if (sqrt_s == 1.96) {
2042 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmaZH()");
2053 if (sqrt_s == 7.0) {
2056 }
else if (sqrt_s == 8.0) {
2059 }
else if (sqrt_s == 1.96) {
2062 throw std::runtime_error(
"Bad argument in StandardModel::computeSigmattH()");
2339 if (scheme.compare(
"NORESUM") == 0)
2341 else if (scheme.compare(
"OMSI") == 0)
2343 else if (scheme.compare(
"INTERMEDIATE") == 0)
2345 else if (scheme.compare(
"OMSII") == 0)
2347 else if (scheme.compare(
"APPROXIMATEFORMULA") == 0)
2350 throw std::runtime_error(
"EWSM::SchemeToDouble: bad scheme");
2360 if (scheme.compare(
"NORESUM") == 0
2361 || scheme.compare(
"OMSI") == 0
2362 || scheme.compare(
"INTERMEDIATE") == 0
2363 || scheme.compare(
"OMSII") == 0
2364 || scheme.compare(
"APPROXIMATEFORMULA") == 0)
2403 const double DeltaR_rem[orders_EW_size])
const;
2432 const double deltaRho_rem[orders_EW_size],
2433 const double DeltaRbar_rem,
const bool bool_Zbb)
const;
2462 const double deltaKappa_rem[orders_EW_size],
2463 const double DeltaRbar_rem,
const bool bool_Zbb)
const;
2487 double taub()
const;
virtual double Gamma_had() const
The hadronic decay width of the boson, .
double computeAlpha() const
The CKM angle .
EWSMThreeLoopEW2QCD * myThreeLoopEW2QCD
A pointer to an object of type EWSMThreeLoopEW2QCD.
double computeGammaHgg_tt() const
The top loop contribution to in the Standard Model.
double getDelSin2th_l() const
A get method to retrieve the theoretical uncertainty in , denoted as .
double computeGammaHgg_tb() const
The top-bottom interference contribution to in the Standard Model.
double SMparamsForEWPO_cache[NumSMParamsForEWPO]
virtual double epsilon2() const
The SM contribution to the epsilon parameter .
EWSMTwoFermionsLEP2 * getMyTwoFermionsLEP2() const
A get method to retrieve the member pointer of type EWSMTwoFermionsLEP2.
double computeRt() const
.
EWSMApproximateFormulae * getMyApproximateFormulae() const
A get method to retrieve the member pointer of type EWSMApproximateFormulae.
double computeBeta() const
The CKM angle .
virtual double epsilon1() const
The SM contribution to the epsilon parameter .
gslpp::matrix< gslpp::complex > getYn() const
A get method to retrieve the Yukawa matrix of the neutrinos, .
gslpp::matrix< gslpp::complex > Ye
The Yukawa matrix of the charged leptons.
EWSMThreeLoopEW2QCD * getMyThreeLoopEW2QCD() const
void ComputeDeltaR_rem(const double Mw_i, double DeltaR_rem[orders_EW_size]) const
A method to collect computed via subclasses.
virtual bool PostUpdate()
The post-update method for StandardModel.
CKM getCKM() const
A get method to retrieve the member object of type CKM.
double computeGammaHgaga_tt() const
The top loop contribution to in the Standard Model.
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a flag of StandardModel.
gslpp::matrix< gslpp::complex > UPMNS
The PMNS matrix.
gslpp::matrix< gslpp::complex > VCKM
The CKM matrix.
static const int NumSMParamsForEWPO
The number of the SM parameters that are relevant to the EW precision observables.
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for StandardModel.
virtual gslpp::complex deltaRhoZ_f(const Particle f) const
Flavour non-universal vertex corrections to , denoted by .
double computeSigmaZH(const double sqrt_s) const
The ZH production cross section in the Standard Model.
virtual gslpp::complex gA_f(const Particle f) const
The effective leptonic neutral-current axial-vector coupling in the SM.
gslpp::complex computelamc_d() const
The product of the CKM elements .
quark
An enum type for quarks.
double getDelMw() const
A get method to retrieve the theoretical uncertainty in , denoted as .
double getRhob() const
A get method to retrieve the CKM element .
Particle getLeptons(const StandardModel::lepton p) const
A get method to retrieve the member object of a lepton.
virtual double Mw_tree() const
The tree-level mass of the boson, .
double computeGammaHgg_bb() const
The bottom loop contribution to in the Standard Model.
double computeSigmaggH_tt(const double sqrt_s) const
The square of the top-quark contribution to the ggH cross section in the Standard Model...
A class for one-loop corrections to the EW precision observables.
EWSMThreeLoopQCD * getMyThreeLoopQCD() const
A class for three-loop corrections to the EW precision observables.
double computeSigmaZF(const double sqrt_s) const
The Z fusion contribution to higgs-production cross section in the Standard Model.
double getphiEpsK() const
EWSMThreeLoopEW * myThreeLoopEW
A pointer to an object of type EWSMThreeLoopEW.
virtual StandardModelMatching * getMyMatching() const
A get method to access the member pointer of type StandardModelMatching.
double DeltaAlphaLepton_cache
A cache of the value of .
double DeltaAlpha() const
The total corrections to the electromagnetic coupling at the -mass scale, denoted as ...
double AlsMz
The strong coupling constant at the Z-boson mass, .
std::string FlagRhoZ
A string for the model flag RhoZ.
orders
An enum type for orders in QCD.
double computeGammaHZga_WW() const
The loop contribution to in the Standard Model. Currently it returns the value of tab 41 in ref...
virtual double epsilonb() const
The SM contribution to the epsilon parameter .
void setFlagNoApproximateGammaZ(bool FlagNoApproximateGammaZ)
double computeBetas() const
The CKM angle .
bool flag_order[orders_EW_size]
An array of internal flags controlling the inclusions of higher-order corrections.
gslpp::complex computelamc_s() const
The product of the CKM elements .
static const std::string SMvars[NSMvars]
A string array containing the labels of the model parameters in StandardModel.
double computeGammaHZga_tW() const
The mixed loop contribution to in the Standard Model.
EWSMOneLoopEW * getMyOneLoopEW() const
A get method to retrieve the member pointer of type EWSMOneLoopEW,.
double computeGammaHgaga_WW() const
The loop contribution to in the Standard Model.
double DeltaAlphaLepton(const double s) const
Leptonic contribution to the electromagnetic coupling , denoted as .
virtual bool CheckFlags() const
A method to check the sanity of the set of model flags.
gslpp::matrix< gslpp::complex > getUPMNS() const
A get method to retrieve the object of the PMNS matrix.
std::string getFlagMw() const
A method to retrieve the model flag Mw.
bool requireCKM
An internal flag to control whether the CKM matrix has to be recomputed.
gslpp::matrix< gslpp::complex > Yn
The Yukawa matrix of the neutrinos.
bool IsFlagWithoutNonUniversalVC() const
A method to retrieve the model flag WithoutNonUniversalVC.
gslpp::complex computelamc() const
The product of the CKM elements .
The parent class in Flavour for calculating all the Wilson coefficients for various Flavor Violating ...
double getLambda() const
A get method to retrieve the CKM element .
double getDeltaMK() const
double computeBrHtoWW() const
The Br in the Standard Model.
double ale
The fine-structure constant .
double getEtab() const
A get method to retrieve the CKM element .
std::string getFlagKappaZ() const
A method to retrieve the model flag KappaZ.
std::string FlagKappaZ
A string for the model flag KappaZ.
virtual double Gamma_inv() const
The invisible partial decay width of the boson, .
virtual double GammaZ(const Particle f) const
The partial decay width, .
EWSMOneLoopEW * myOneLoopEW
A pointer to an object of type EWSMOneLoopEW.
double Delta_EWQCD(const QCD::quark q) const
The non-factorizable EW-QCD corrections to the partial widths for , denoted as .
EWSMTwoLoopQCD * getMyTwoLoopQCD() const
double RVh() const
The singlet vector corrections to the hadronic -boson width, denoted as .
bool requireYe
An internal flag to control whether the charged-lepton Yukawa matrix has to be recomputed.
virtual bool InitializeModel()
A method to initialize the model.
double computeRts() const
.
void ComputeDeltaRho(const double Mw_i, double DeltaRho[orders_EW_size]) const
A method to collect computed via subclasses.
double GF
The Fermi constant in .
int getIterationNo() const
double computeSigmaWH(const double sqrt_s) const
The WH production cross section in the Standard Model.
double computeBrHtoZZ() const
The Br in the Standard Model.
double computeSigmattH(const double sqrt_s) const
The ttH production cross section in the Standard Model.
double computeBrHtobb() const
The Br in the Standard Model.
gslpp::complex rhoZ_f_cache[12]
A cache of the value of .
double DeltaAlphaTop(const double s) const
Top-quark contribution to the electromagnetic coupling , denoted as .
double RVq(const QCD::quark q) const
The radiator factor associated with the final-state QED and QCD corrections to the the vector-current...
virtual double sin2thetaEff(const Particle f) const
The effective weak mixing angle for at the the -mass scale.
std::string name
The name of the model.
virtual void computeYukawas()
The method to compute the Yukawa matrices.
A model class for the Standard Model.
virtual double sigma0_had() const
The hadronic cross section for at the -pole, .
StandardModelMatching * myStandardModelMatching
A pointer to an object of type StandardModelMatching.
static const double GeVminus2_to_nb
double DeltaAlpha_cache
A cache of the value of .
double MwbarFromMw(const double Mw) const
A method to convert the -boson mass in the experimental/running-width scheme to that in the complex-p...
double mHl
The Higgs mass in GeV.
double delSin2th_l
The theoretical uncertainty in , denoted as .
gslpp::matrix< gslpp::complex > Yu
The Yukawa matrix of the up-type quarks.
gslpp::complex computelamu() const
The product of the CKM elements .
gslpp::matrix< gslpp::complex > getVCKM() const
A get method to retrieve the CKM matrix.
A class for the matching in the Standard Model.
double getMuw() const
A get method to retrieve the matching scale around the weak scale.
EWSMcache * getMyEWSMcache() const
A get method to retrieve the member pointer of type EWSMcache.
double SchemeToDouble(const std::string scheme) const
A method to convert a given scheme name in string form into a floating-point number with double preci...
double computeSigmaggH_bb(const double sqrt_s) const
The square of the bottom-quark contribution to the ggH cross section in the Standard Model...
virtual double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
double rhob
The CKM parameter in the Wolfenstein parameterization.
A class for cache variables used in computing radiative corrections to the EW precision observables...
gslpp::matrix< gslpp::complex > getYe() const
A get method to retrieve the Yukawa matrix of the charged leptons, .
static const double Mw_error
The target accuracy of the iterative calculation of the -boson mass in units of GeV.
double Mw_cache
A cache of the value of .
double computeSigmaWF(const double sqrt_s) const
The W fusion contribution to higgs-production cross section in the Standard Model.
double Mz
The mass of the boson in GeV.
double getA() const
A get method to retrieve the CKM element .
virtual ~StandardModel()
The default destructor.
gslpp::complex kappaZ_f_cache[12]
A cache of the value of .
bool IsFlagNoApproximateGammaZ() const
A method to retrieve the model flag NoApproximateGammaZ.
double getDelGammaZ() const
A get method to retrieve the theoretical uncertainty in , denoted as .
double computeBrHtogg() const
The Br in the Standard Model.
virtual gslpp::complex rhoZ_f(const Particle f) const
The effective leptonic neutral-current coupling in the SM.
virtual double epsilon3() const
The SM contribution to the epsilon parameter .
double dAle5Mz
The five-flavour hadronic contribution to the electromagnetic coupling, .
virtual double v() const
The Higgs vacuum expectation value. where is the Fermi constant, measured through muon decays...
gslpp::complex computelamt_d() const
The product of the CKM elements .
bool requireYn
An internal flag to control whether the neutrino Yukawa matrix has to be recomputed.
double computeBrHtotautau() const
The Br in the Standard Model.
double DeltaAlphaL5q() const
The sum of the leptonic and the five-flavour hadronic corrections to the electromagnetic coupling at...
double getGF() const
A get method to retrieve the Fermi constant .
virtual bool Init(const std::map< std::string, double > &DPars)
A method to initialize the model parameters.
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
LeptonFlavour * getMyLeptonFlavour() const
virtual bool PreUpdate()
The pre-update method for StandardModel.
The parent class in LeptonFlavour for calculating all the Wilson coefficients for various Lepton Flav...
double muw
A matching scale around the weak scale in GeV.
Flavour * myFlavour
A pointer to an object of the type Flavour.
EWSMcache * myEWSMcache
A pointer to an object of type EWSMcache.
CKM myCKM
An object of type CKM.
gslpp::complex computelamu_d() const
The product of the CKM elements .
virtual void computeCKM()
The method to compute the CKM matrix.
double lambda
The CKM parameter in the Wolfenstein parameterization.
virtual gslpp::complex kappaZ_f(const Particle f) const
The effective leptonic neutral-current coupling in the SM.
Flavour * getMyFlavour() const
gslpp::matrix< gslpp::complex > getYd() const
A get method to retrieve the Yukawa matrix of the down-type quarks, .
bool useDeltaAlphaLepton_cache
virtual StandardModel getTrueSM() const
double computeSigmaggH_tb(const double sqrt_s) const
The top-bottom interference contribution to the ggH cross section in the Standard Model...
double MwFromMwbar(const double Mwbar) const
A method to convert the -boson mass in the complex-pole/fixed-width scheme to that in the experimenta...
double resumRhoZ(const double DeltaRho[orders_EW_size], const double deltaRho_rem[orders_EW_size], const double DeltaRbar_rem, const bool bool_Zbb) const
A method to compute the real part of the effective coupling from , and .
gslpp::complex computelamt_s() const
The product of the CKM elements .
void setFlagCacheInStandardModel(bool FlagCacheInStandardModel)
A set method to change the model flag CacheInStandardModel of StandardModel.
double delGammaZ
The theoretical uncertainty in , denoted as , in GeV.
virtual double cW2() const
double getAle() const
A get method to retrieve the fine-structure constant .
gslpp::matrix< gslpp::complex > Yd
The Yukawa matrix of the down-type quarks.
double taub() const
Top-mass corrections to the vertex, denoted by .
virtual double DeltaRbar() const
The SM prediction for derived from that for the -boson mass.
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...
double computeGammaHgaga_tW() const
The mixed loop contribution to in the Standard Model.
Particle leptons[6]
An array of Particle objects for the leptons.
double computeBrHtoZga() const
The Br in the Standard Model.
bool checkSMparamsForEWPO()
A method to check whether the parameters relevant to the EWPO are updated.
A class for the CKM matrix elements.
A class for two-loop corrections to the EW precision observables.
double computeRb() const
.
EWSMTwoLoopEW * getMyTwoLoopEW() const
virtual gslpp::complex deltaKappaZ_f(const Particle f) const
Flavour non-universal vertex corrections to , denoted by .
virtual double AFB(const Particle f) const
An observable class for the -boson mass.
bool FlagCacheInStandardModel
A flag for caching (true by default).
virtual double Gamma_Z() const
The total decay width of the boson, .
double RAq(const QCD::quark q) const
The radiator factor associated with the final-state QED and QCD corrections to the the axial-vector-c...
double Mzbar() const
The -boson mass in the complex-pole/fixed-width scheme.
double c02() const
The square of the cosine of the weak mixing angle defined without weak radiative corrections...
double getSM_M12D() const
virtual gslpp::complex gV_f(const Particle f) const
The effective leptonic neutral-current vector coupling in the SM.
double etab
The CKM parameter in the Wolfenstein parameterization.
virtual double GammaW() const
The total width of the boson, .
virtual double DeltaR() const
The SM prediction for derived from that for the boson mass.
bool FlagWithoutNonUniversalVC
A boolean for the model flag WithoutNonUniversalVC.
virtual double rho_GammaW(const Particle fi, const Particle fj) const
EW radiative corrections to the width of , denoted as .
EWSMTwoFermionsLEP2 * myTwoFermionsLEP2
A pointer to an object of type EWSMTwoFermionsLEP2.
double computeGammaHTotal() const
The Higgs total width in the Standard Model.
EWSMApproximateFormulae * myApproximateFormulae
A pointer to an object of type EWSMApproximateFormulae.
EWSMThreeLoopQCD * myThreeLoopQCD
A pointer to an object of type EWSMThreeLoopQCD.
std::string getFlagRhoZ() const
A method to retrieve the model flag RhoZ.
A class for two-loop corrections to the EW precision observables.
A class for three-loop corrections to the EW precision observables.
double ale_OS(const double mu, orders order=FULLNLO) const
The running electromagnetic coupling in the on-shell schem.
gslpp::matrix< gslpp::complex > getYu() const
A get method to retrieve the Yukawa matrix of the up-type quarks, .
EWSMTwoLoopEW * myTwoLoopEW
A pointer to an object of type EWSMTwoLoopEW.
bool useKappaZ_f_cache[12]
A class for three-loop corrections to the EW precision observables.
double computeSigmaggH(const double sqrt_s) const
The ggH cross section in the Standard Model.
LeptonFlavour * myLeptonFlavour
A pointer to an object of the type LeptonFlavour.
double computeGammaHZga_tt() const
The top loop contribution to in the Standard Model.
virtual double A_f(const Particle f) const
The left-right asymmetry in at the -pole, .
double computeSigmaZWF(const double sqrt_s) const
The Z W interference fusion contribution to higgs-production cross section in the Standard Model...
double s02() const
The square of the sine of the weak mixing angle defined without weak radiative corrections.
StandardModel()
The default constructor.
EWSMTwoLoopQCD * myTwoLoopQCD
A pointer to an object of type EWSMTwoLoopQCD.
double computeBrHtocc() const
The Br in the Standard Model.
double GammaW_cache
A cache of the value of .
double delMw
The theoretical uncertainty in , denoted as , in GeV.
EWSMThreeLoopEW * getMyThreeLoopEW() const
double resumKappaZ(const double DeltaRho[orders_EW_size], const double deltaKappa_rem[orders_EW_size], const double DeltaRbar_rem, const bool bool_Zbb) const
A method to compute the real part of the effetvive coupling from , and .
bool FlagNoApproximateGammaZ
A boolean for the model flag NoApproximateGammaZ.
gslpp::complex computelamu_s() const
The product of the CKM elements .
A class for defining operations on and functions of complex numbers.
virtual double R0_f(const Particle f) const
The ratio .
double alphaMz() const
The electromagnetic coupling at the -mass scale, .
double getMHl() const
A get method to retrieve the Higgs mass .
bool checkEWPOscheme(const std::string scheme) const
A method to check if a given scheme name in string form is valid.
double getKbarEpsK() const
double computeSigmaVBF(const double sqrt_s) const
The VBF cross section in the Standard Model.
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
A class for parameters related to QCD, hadrons and quarks.
static const int NSMvars
The number of the model parameters in StandardModel.
orders_EW
An enumerated type representing perturbative orders of radiative corrections to EW precision observab...
double computeBrHtogaga() const
The Br in the Standard Model.
gslpp::complex computelamt() const
The product of the CKM elements .
double A
The CKM parameter in the Wolfenstein parameterization.
double computeGamma() const
The CKM angle .
double getMz() const
A get method to access the mass of the boson .
lepton
An enum type for leptons.
double getDAle5Mz() const
A get method to retrieve the five-flavour hadronic contribution to the electromagnetic coupling...
double resumMw(const double Mw_i, const double DeltaRho[orders_EW_size], const double DeltaR_rem[orders_EW_size]) const
A method to compute the -boson mass from and .
double getAlsMz() const
A get method to access the value of .
std::string FlagMw
A string for the model flag Mw.