a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
EWSMOneLoopEW Class Reference

A class for \(O(\alpha)\) one-loop corrections to the EW precision observables. More...

#include <EWSMOneLoopEW.h>

Detailed Description

A class for \(O(\alpha)\) one-loop corrections to the EW precision observables.

Author
HEPfit Collaboration

This class handles one-loop EW contributions of \(O(\alpha)\) to the following quantities, which are relevant to the EW precision observables:

See also the description of EWSM class for their definitions.

The above quantities are computed with the help of the auxiliary member functions defined in the current class. It is noted that gauge-dependent quantities in the current class are given in the Unitary gauge. For example, the functions SigmabarWW_bos(), SigmabarWW_bos(), etc. represent the self-energies of the gauge bosons. The following table shows the comparisons of the definitions of the self-energies in the current class to those in [Bardin:1999ak] and [Hollik:1988ii] :

Current class Bardin & Passarino [Bardin:1999ak] Hollik [Hollik:1988ii]
\(\displaystyle\Sigma_{WW}(s)=\frac{\alpha}{4\pi s_W^2 } \overline{\Sigma}_{WW}(s)\) \(\displaystyle\frac{\alpha}{4\pi s_W^2 } \Sigma_{WW}(s)\) \(\displaystyle\Sigma^W(s)\)
\(\displaystyle\Sigma_{ZZ}(s)=\frac{\alpha}{4\pi s_W^2 c_W^2 } \overline{\Sigma}_{ZZ}(s)\) \(\displaystyle\frac{\alpha}{4\pi s_W^2 c_W^2 } \Sigma_{ZZ}(s)\) \(\displaystyle\Sigma^Z(s)\)
\(\displaystyle\Pi_{\gamma\gamma}(s)=\frac{\alpha}{4\pi}\,\overline{\Pi}_{\gamma\gamma}(s)\) \(\displaystyle\frac{\alpha}{4\pi}\,\left[ -\Pi_{\gamma\gamma}(s) \right]\) \(\displaystyle\Pi^\gamma(s)=\frac{\partial\Sigma^\gamma(s)}{\partial s}\)
\(\displaystyle\Pi_{Z\gamma}(s) = \frac{\alpha}{4\pi s_W c_W}\overline{\Pi}_{Z\gamma}(s)\) \(\displaystyle\frac{\alpha}{4\pi s_W c_W}\left[ - \Pi_{ZA}(s)\right]\)
\(\displaystyle\overline{\Sigma}^{\prime}_{WW}(s) = \frac{\partial\,\overline{\Sigma}_{WW}(s)}{\partial s}\) \(\displaystyle- \frac{\alpha}{4\pi s_W^2 } {\cal W}(s)\)
\(\displaystyle\overline{\Sigma}^{\prime}_{ZZ}(s) =\frac{\partial\,\overline{\Sigma}_{ZZ}(s)}{\partial s}\) \(\displaystyle- \frac{\alpha}{4\pi s_W^2 c_W^2 } c_W^2 {\cal Z}(s)\)

These self-energies are decomposed into the sum of bosonic and fermionic contributions:

\begin{align*} \overline{\Sigma}_{WW}(s) = \overline{\Sigma}^{\rm bos}_{WW}(s) + \overline{\Sigma}^{\rm fer}_{WW}(s)\,, \\ \overline{\Sigma}_{ZZ}(s) = \overline{\Sigma}^{\rm bos}_{ZZ}(s) + \overline{\Sigma}^{\rm fer}_{ZZ}(s)\,, \\ \overline{\Pi}_{\gamma\gamma}(s) = \overline{\Pi}_{\gamma\gamma}^{\rm bos}(s) + \overline{\Pi}_{\gamma\gamma}^{\rm fer}(s)\,, \\ \overline{\Pi}_{Z\gamma}(s) = \overline{\Pi}_{Z\gamma}^{\rm bos}(s) + \overline{\Pi}_{Z\gamma}^{\rm fer}(s)\,. \end{align*}

Most of the formulae used in the current class have been copied or derived from from those in Bardin and Passarino's book [Bardin:1999ak] as well as from [Sirlin:1980nh], [Marciano:1980pb], [Bardin:1981sv], [Akhundov:1985fc], [Bardin:1986fi] and [Bardin:1989di].

Definition at line 105 of file EWSMOneLoopEW.h.

Public Member Functions

double DeltaAlpha_l (const double s) const
 Leptonic contribution of \(O(\alpha)\) to the electromagnetic coupling \(\alpha(s)\), denoted as \(\Delta\alpha_{\mathrm{lept}}^{\alpha}\). More...
 
double DeltaAlpha_t (const double s) const
 Top-quark contribution of \(O(\alpha)\) to the electromagnetic coupling \(\alpha(s)\), denoted as \(\Delta\alpha_{\mathrm{top}}^{\alpha}\). More...
 
gslpp::complex deltaKappa_rem_f (const Particle f, const double Mw_i) const
 Remainder contribution of \(O(\alpha)\) to the effective couplings \(\kappa_Z^f\), denoted as \(\delta\kappa_{\mathrm{rem}}^{f,\, \alpha}\). More...
 
gslpp::complex deltaKappa_rem_tmp (const double deltaf, const gslpp::complex uf, const double Mw_i) const
 Remainder contribution of \(O(\alpha)\) to the effective couplings \(\kappa_Z^f\), denoted as \(\delta\kappa_{\rm rem}^{f,\,\alpha}\). More...
 
double DeltaR_rem (const double Mw_i) const
 Remainder contribution of \(O(\alpha)\) to \(\Delta r\), denoted as \(\Delta r_{\rm rem}^{\alpha}\). More...
 
double DeltaRbar_rem (const double Mw_i) const
 \(\Delta \bar{r}_{\rm rem}^{\alpha}\). More...
 
double DeltaRho (const double Mw_i) const
 Leading one-loop contribution of \(O(\alpha)\) to \(\Delta\rho\), denoted as \(\Delta\rho^{\alpha}\). More...
 
gslpp::complex deltaRho_rem_f (const Particle f, const double Mw_i) const
 Remainder contribution of \(O(\alpha)\) to the effective couplings \(\rho_Z^f\), denoted as \(\delta\rho_{\mathrm{rem}}^{f,\, \alpha}\). More...
 
gslpp::complex deltaRho_rem_tmp (const gslpp::complex u_f, const double Mw_i) const
 Remainder contribution of \(O(\alpha)\) to the effective couplings \(\rho_Z^f\), denoted as \(\delta\rho_{\rm rem}^{f,\alpha}\). More...
 
double DeltaRhobar (const double mu, const double Mw_i) const
 \(\Delta\overline{\rho}\). More...
 
double DeltaRhobarW (const double mu, const double Mw_i) const
 \(\Delta\overline{\rho}_W\). More...
 
 EWSMOneLoopEW (const EWSMcache &cache_i)
 Constructor. More...
 
gslpp::complex FbarWa_0 (const double s) const
 The form factor \(\overline{\mathcal{F}}_{Wa}^0\). More...
 
gslpp::complex FbarWa_t (const double s, const double Mw_i) const
 The form factor \(\overline{\mathcal{F}}_{Wa}^t\). More...
 
gslpp::complex FW (const double s, const Particle f, const double Mw_i) const
 The unified form factor \(\mathcal{F}_W\) for \(Z\to f\bar{f}\). More...
 
gslpp::complex FWa_0 (const double s, const double Mw_i) const
 The form factor \(\mathcal{F}_{Wa}^0\). More...
 
gslpp::complex FWa_t (const double s, const double Mw_i) const
 The form factor \(\mathcal{F}_{Wa}^t\). More...
 
gslpp::complex FWn_0 (const double s, const double Mw_i) const
 The form factor \(\mathcal{F}_{Wn}^0\). More...
 
gslpp::complex FWn_t (const double s, const double Mw_i) const
 The form factor \(\mathcal{F}_{Wn}^t\). More...
 
gslpp::complex FZ (const double s, const double Mw_i) const
 The unified form factor \(\mathcal{F}_Z\). More...
 
gslpp::complex FZa_0 (const double s, const double Mw_i) const
 The form factor \(\mathcal{F}_{Za}^0\). More...
 
gslpp::complex PibarGammaGamma_bos (const double mu, const double s, const double Mw_i) const
 The bosonic contribution to the self-energy of the photon in the Unitary gauge, \(\overline{\Pi}^{\mathrm{bos}}_{\gamma\gamma}(s)\). More...
 
gslpp::complex PibarGammaGamma_fer (const double mu, const double s) const
 The fermionic contribution to the self-energy of the photon in the Unitary gauge, \(\overline{\Pi}^{\mathrm{fer}}_{\gamma\gamma}(s)\). More...
 
gslpp::complex PibarGammaGamma_fer (const double mu, const double s, const Particle f) const
 The fermionic contribution to the self-energy of the photon in the Unitary gauge, associated with loops of a lepton or quark. \(\overline{\Pi}^{\mathrm{fer},f}_{\gamma\gamma}(s)\). More...
 
gslpp::complex PibarZgamma_bos (const double mu, const double s, const double Mw_i) const
 The bosonic contribution to the self-energy of the \(Z\)- \(\gamma\) mixing in the Unitary gauge, \(\overline{\Pi}^{\mathrm{bos}}_{Z\gamma}(s)\). More...
 
gslpp::complex PibarZgamma_fer (const double mu, const double s, const double Mw_i) const
 The fermionic contribution to the self-energy of the \(Z\)- \(\gamma\) mixing in the Unitary gauge, \(\overline{\Pi}^{\mathrm{fer}}_{Z\gamma}(s)\). More...
 
double rho_GammaW (const Particle fi, const Particle fj, const double Mw_i) const
 EW radiative corrections to the width of \(W \to f_i \bar{f}_j\), denoted as \(\rho^W_{ij}\). More...
 
double rho_GammaW_tmp (const double Qi, const double Qj, const double Mw_i) const
 EW radiative corrections to the widths of \(W \to f_i \bar{f}_j\), denoted as \(\rho^W_{ij}\). More...
 
gslpp::complex SigmabarPrime_WW_bos_Mw2 (const double mu, const double Mw_i) const
 The derivative of the bosonic contribution to the self-energy of the \(W\) boson for \(s=M_W^2\) in the Unitary gauge, \(\overline{\Sigma}^{\prime,\mathrm{bos}}_{WW}(M_W^2)\). More...
 
gslpp::complex SigmabarPrime_WW_fer_Mw2 (const double mu, const double Mw_i) const
 The derivative of the fermionic contribution to the self-energy of the \(W\) boson for \(s=M_W^2\) in the Unitary gauge, \(\overline{\Sigma}^{\prime,\mathrm{fer}}_{WW}(M_W^2)\). More...
 
gslpp::complex SigmabarPrime_ZZ_bos_Mz2 (const double mu, const double Mw_i) const
 The derivative of the bosonic contribution to the self-energy of the \(Z\) boson for \(s=M_Z^2\) in the Unitary gauge, \(\overline{\Sigma}^{\prime,\mathrm{bos}}_{ZZ}(M_Z^2)\). More...
 
gslpp::complex SigmabarPrime_ZZ_fer_Mz2 (const double mu, const double Mw_i) const
 The derivative of the fermionic contribution to the self-energy of the \(Z\) boson for \(s=M_Z^2\) in the Unitary gauge, \(\overline{\Sigma}^{\prime,\mathrm{fer}}_{ZZ}(M_Z^2)\). More...
 
gslpp::complex SigmabarWW_bos (const double mu, const double s, const double Mw_i) const
 The bosonic contribution to the self-energy of the \(W\) boson in the Unitary gauge, \(\overline{\Sigma}^{\mathrm{bos}}_{WW}(s)\). More...
 
gslpp::complex SigmabarWW_fer (const double mu, const double s, const double Mw_i) const
 The fermionic contribution to the self-energy of the \(W\) boson in the Unitary gauge, \(\overline{\Sigma}^{\mathrm{fer}}_{WW}(s)\). More...
 
gslpp::complex SigmabarZZ_bos (const double mu, const double s, const double Mw_i) const
 The bosonic contribution to the self-energy of the \(Z\) boson in the Unitary gauge, \(\overline{\Sigma}^{\mathrm{bos}}_{ZZ}(s)\). More...
 
gslpp::complex SigmabarZZ_fer (const double mu, const double s, const double Mw_i) const
 The fermionic contribution to the self-energy of the \(Z\) boson in the Unitary gauge, \(\overline{\Sigma}^{\mathrm{fer}}_{ZZ}(s)\). More...
 
double TEST_DeltaRhobar_bos (const double Mw_i) const
 A test function. More...
 
double TEST_DeltaRhobarW_bos (const double Mw_i) const
 A test function. More...
 
gslpp::complex TEST_FWn (const double s, const double mf, const double Mw_i) const
 A test function for \(\mathcal{F}_{Wn}\) with a finite fermion mass. More...
 

Private Attributes

const EWSMcachecache
 A reference to an object of type EWSMcache. More...
 

Constructor & Destructor Documentation

◆ EWSMOneLoopEW()

EWSMOneLoopEW::EWSMOneLoopEW ( const EWSMcache cache_i)

Constructor.

Parameters
[in]cache_ia reference to an object of type EWSMcache

Definition at line 11 of file EWSMOneLoopEW.cpp.

12: cache(cache_i)
13{
14}
const EWSMcache & cache
A reference to an object of type EWSMcache.

Member Function Documentation

◆ DeltaAlpha_l()

double EWSMOneLoopEW::DeltaAlpha_l ( const double  s) const

Leptonic contribution of \(O(\alpha)\) to the electromagnetic coupling \(\alpha(s)\), denoted as \(\Delta\alpha_{\mathrm{lept}}^{\alpha}\).

This function uses the function PiGammaGamma_fer_l() for the fermionic contribution to the photon self-energy.

Parameters
[in]sinvariant mass squared
Returns
\(\Delta\alpha_{\mathrm{lept}}^{\alpha}(s)\)

Definition at line 19 of file EWSMOneLoopEW.cpp.

20{
21 double Mz = cache.getSM().getMz();
22
23 double oneLoop[3];
26 oneLoop[1] = -PibarGammaGamma_fer(Mz, s, cache.getSM().getLeptons(StandardModel::MU)).real()
28 oneLoop[2] = -PibarGammaGamma_fer(Mz, s, cache.getSM().getLeptons(StandardModel::TAU)).real()
30
31 return ( cache.getSM().getAle() / 4.0 / M_PI
32 * (oneLoop[0] + oneLoop[1] + oneLoop[2]));
33}
gslpp::complex PibarGammaGamma_fer(const double mu, const double s, const Particle f) const
The fermionic contribution to the self-energy of the photon in the Unitary gauge, associated with loo...
const StandardModel & getSM() const
Definition: EWSMcache.h:56
@ MU
Definition: QCD.h:314
@ ELECTRON
Definition: QCD.h:312
@ TAU
Definition: QCD.h:316
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const double getMz() const
A get method to access the mass of the boson .
const double getAle() const
A get method to retrieve the fine-structure constant .
Test Observable.

◆ DeltaAlpha_t()

double EWSMOneLoopEW::DeltaAlpha_t ( const double  s) const

Top-quark contribution of \(O(\alpha)\) to the electromagnetic coupling \(\alpha(s)\), denoted as \(\Delta\alpha_{\mathrm{top}}^{\alpha}\).

A simple numerical formula presented in [Kuhn:1998ze] has been employed.

Parameters
[in]sinvariant mass squared
Returns
\(\Delta\alpha_{\mathrm{top}}^{\alpha}(s)\)

Definition at line 35 of file EWSMOneLoopEW.cpp.

36{
37 double xt = s / cache.getSM().getMtpole() / cache.getSM().getMtpole();
38 double tmp = 1.0 + xt * 0.1071;
39 tmp *= -4.0 / 45.0 * cache.getSM().getAle() / M_PI*xt;
40 return tmp;
41}
const double getMtpole() const
A get method to access the pole mass of the top quark.
Definition: QCD.h:600

◆ deltaKappa_rem_f()

gslpp::complex EWSMOneLoopEW::deltaKappa_rem_f ( const Particle  f,
const double  Mw_i 
) const

Remainder contribution of \(O(\alpha)\) to the effective couplings \(\kappa_Z^f\), denoted as \(\delta\kappa_{\mathrm{rem}}^{f,\, \alpha}\).

This function handles the remainder contribution \(\delta\kappa_{\mathrm{rem}}^{f,\, \alpha}\) for \(Z\to f\bar{f}\).

Parameters
[in]fa lepton or quark
[in]Mw_ithe \(W\)-boson mass
Returns
\(\delta\kappa_{\mathrm{rem}}^{f,\, \alpha}\)
See also
deltaKappa_rem_tmp()

Definition at line 143 of file EWSMOneLoopEW.cpp.

144{
145 if (f.is("TOP")) return ( gslpp::complex(0.0, 0.0, false));
146
147 double Mz = cache.getSM().getMz();
148 double Mw = Mw_i;
149 gslpp::complex uf = (3.0 * cache.v_f(f, Mw) * cache.v_f(f, Mw) + cache.a_f(f) * cache.a_f(f))
150 / 4.0 / cache.getSM().cW2(Mw) * FZ(Mz*Mz, Mw) + FW(Mz*Mz, f, Mw);
151
152 return ( deltaKappa_rem_tmp(cache.delta_f(f, Mw), uf, Mw));
153}
gslpp::complex FZ(const double s, const double Mw_i) const
The unified form factor .
gslpp::complex deltaKappa_rem_tmp(const double deltaf, const gslpp::complex uf, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
gslpp::complex FW(const double s, const Particle f, const double Mw_i) const
The unified form factor for .
double a_f(const Particle f) const
The tree-level axial-vector coupling for , denoted as .
Definition: EWSMcache.h:301
double v_f(const Particle f, const double Mw_i) const
The tree-level vector coupling for , denoted as .
Definition: EWSMcache.h:290
double delta_f(const Particle f, const double Mw_i) const
.
Definition: EWSMcache.h:323
An observable class for the -boson mass.
Definition: Mw.h:22
bool is(std::string name_i) const
Definition: Particle.cpp:23
virtual const double cW2(const double Mw_i) const
The square of the cosine of the weak mixing angle in the on-shell scheme, denoted as .

◆ deltaKappa_rem_tmp()

gslpp::complex EWSMOneLoopEW::deltaKappa_rem_tmp ( const double  deltaf,
const gslpp::complex  uf,
const double  Mw_i 
) const

Remainder contribution of \(O(\alpha)\) to the effective couplings \(\kappa_Z^f\), denoted as \(\delta\kappa_{\rm rem}^{f,\,\alpha}\).

This function represents \(\delta\kappa_{\rm rem}^{f,\,\alpha}\), given in terms of the flavour-dependent quantities \(\delta_f\) and \(u_f\):

\[ \delta\kappa_{\rm rem}^{f,\alpha} = \frac{\alpha}{4\pi s_W^2} \left[ \overline{\Pi}_{Z\gamma}(M_Z^2)\big|_{\mu=M_Z} + \frac{\delta_f^2}{4 c_W^2}{\cal F}_Z(M_Z^2) - u_f + \left( \frac{1}{12 c_W^2} + \frac{4}{3} \right)\ln c_W^2 \right] \]

where \(\delta_f\) and \(u_f\) are defined as

\begin{align} \delta_f &= v_f - a_f = -2Q_f s_W^2\,, \\ u_f &= \frac{3v_f^2+a_f^2}{4 c_W^2}{\cal F}_Z(M_Z^2) + {\cal F}_W(M_Z^2) \end{align}

with the so-called unified form factors \({\cal F}_Z(M_Z^2)\) and \({\cal F}_W(M_Z^2)\).

Parameters
[in]deltafthe quantity \(\delta_f\)
[in]ufthe quantity \(u_f\)
[in]Mw_ithe \(W\)-boson mass
Returns
\(\delta\kappa_{\rm rem}^{f,\,\alpha}\)
See also
deltaKappa_rem_l() and deltaKappa_rem_q() as well as FZ(), FW_l() and FW_q()

Definition at line 124 of file EWSMOneLoopEW.cpp.

126{
127 double Mz = cache.getSM().getMz();
128 double Mw = Mw_i;
129 double sW2 = cache.getSM().sW2(Mw);
130 double cW2 = cache.getSM().cW2(Mw);
131
132 /* Logarithm */
133 double log_cW2 = cache.log_cW2(Mw);
134
135 gslpp::complex dKappa_rem(0.0, 0.0, false);
136 dKappa_rem = (PibarZgamma_bos(Mz, Mz*Mz, Mw) + PibarZgamma_fer(Mz, Mz*Mz, Mw))
137 + deltaf * deltaf / 4.0 / cW2 * FZ(Mz*Mz, Mw) - uf
138 + (1.0 / 12.0 / cW2 + 4.0 / 3.0) * log_cW2;
139 dKappa_rem *= cache.getSM().getAle() / 4.0 / M_PI / sW2;
140 return dKappa_rem;
141}
gslpp::complex PibarZgamma_bos(const double mu, const double s, const double Mw_i) const
The bosonic contribution to the self-energy of the - mixing in the Unitary gauge,...
gslpp::complex PibarZgamma_fer(const double mu, const double s, const double Mw_i) const
The fermionic contribution to the self-energy of the - mixing in the Unitary gauge,...
double log_cW2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:148
virtual const double sW2(const double Mw_i) const
The square of the sine of the weak mixing angle in the on-shell scheme, denoted as .

◆ DeltaR_rem()

double EWSMOneLoopEW::DeltaR_rem ( const double  Mw_i) const

Remainder contribution of \(O(\alpha)\) to \(\Delta r\), denoted as \(\Delta r_{\rm rem}^{\alpha}\).

The \(O(\alpha)\) remainder contribution \(\Delta r_{\mathrm{rem}}^{\alpha}\) is given by

\[ \Delta r_{\rm rem}^\alpha = \frac{\alpha}{4\pi s_W^2} \bigg[ - \frac{2}{3} s_W^2 + s_W^2\overline{\Pi}_{\gamma\gamma}^{t}(0)\big|_{\mu=M_Z} + s_W^2{\rm Re}\Big[\overline{\Pi}_{\gamma\gamma}^{\ell+5q}(M_Z^2)\big|_{\mu=M_Z}\Big] + \Delta\overline{\rho}_W\big|_{\mu=M_Z} + \left( 4 - \frac{25}{4}c_W^2 + \frac{3}{4} c_W^4 + \frac{9 c_W^2}{4 s_W^2} \right)\ln c_W^2 + \frac{11}{2} - \frac{5}{8} c_W^2 (1 + c_W^2) \bigg]. \]

Parameters
[in]Mw_ithe \(W\)-boson mass
Returns
\(\Delta r_{\mathrm{rem}}^{\alpha}\)

Definition at line 49 of file EWSMOneLoopEW.cpp.

50{
51 double Mz = cache.getSM().getMz();
52 double Mz2 = Mz*Mz;
53 double Mw = Mw_i;
54 double sW2 = cache.getSM().sW2(Mw);
55 double cW2 = cache.getSM().cW2(Mw);
56
57 /* Logarithm */
58 double log_cW2 = cache.log_cW2(Mw);
59
60 double PiGammaGamma_t_0 = PibarGammaGamma_fer(Mz, 0.0, cache.getSM().getQuarks(QCD::TOP)).real();
61 double PiGammaGamma_l5q_Mz2 = PibarGammaGamma_fer(Mz, Mz2).real()
62 - PibarGammaGamma_fer(Mz, Mz2, cache.getSM().getQuarks(QCD::TOP)).real();
63
64 double DR_rem = -2.0 / 3.0 * sW2 + sW2 * PiGammaGamma_t_0
65 + sW2 * PiGammaGamma_l5q_Mz2 + DeltaRhobarW(Mz, Mw)
66 + (4.0 - 25.0 / 4.0 * cW2 + 3.0 / 4.0 * cW2 * cW2 + 9.0 * cW2 / 4.0 / sW2)
67 * log_cW2
68 + 11.0 / 2.0 - 5.0 / 8.0 * cW2 * (1.0 + cW2);
69 DR_rem *= cache.getSM().getAle() / 4.0 / M_PI / sW2;
70 return DR_rem;
71}
double DeltaRhobarW(const double mu, const double Mw_i) const
.
@ TOP
Definition: QCD.h:328
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:536

◆ DeltaRbar_rem()

double EWSMOneLoopEW::DeltaRbar_rem ( const double  Mw_i) const

\(\Delta \bar{r}_{\rm rem}^{\alpha}\).

The quantity \(\Delta \bar{r}_{\rm rem}^{\alpha}\), which contributes to \(\rho_Z^f\) and \(\kappa_Z^f\), is given by

\[ \Delta \bar{r}_{\rm rem}^{\alpha} = \bigg[ \Delta r_{\rm rem}^\alpha - \frac{\alpha}{4\pi} \overline{\Pi}_{\gamma\gamma}^{t}(0)\big|_{\mu=M_Z} - \frac{\alpha}{4\pi} {\rm Re}\left[ \overline{\Pi}_{\gamma\gamma}^{\ell+5q}(M_Z^2)\big|_{\mu=M_Z} \right] \bigg], \]

where the definition of \(\Delta r_{\rm rem}^\alpha\) is given in DeltaR_rem().

Parameters
[in]Mw_ithe \(W\)-boson mass
Returns
\(\Delta \bar{r}_{\rm rem}^{\alpha}\)

Definition at line 73 of file EWSMOneLoopEW.cpp.

74{
75 double Mz = cache.getSM().getMz();
76 double Mw = Mw_i;
77 double sW2 = cache.getSM().sW2(Mw);
78 double cW2 = cache.getSM().cW2(Mw);
79
80 /* Logarithm */
81 double log_cW2 = cache.log_cW2(Mw);
82
83 double DRbar_rem = -2.0 / 3.0 * sW2 + DeltaRhobarW(Mz, Mw)
84 + (4.0 - 25.0 / 4.0 * cW2 + 3.0 / 4.0 * cW2 * cW2 + 9.0 * cW2 / 4.0 / sW2)
85 * log_cW2
86 + 11.0 / 2.0 - 5.0 / 8.0 * cW2 * (1.0 + cW2);
87 DRbar_rem *= cache.getSM().getAle() / 4.0 / M_PI / sW2;
88 return DRbar_rem;
89}

◆ DeltaRho()

double EWSMOneLoopEW::DeltaRho ( const double  Mw_i) const

Leading one-loop contribution of \(O(\alpha)\) to \(\Delta\rho\), denoted as \(\Delta\rho^{\alpha}\).

The leading one-loop contribution is written in terms of the quantity \(\Delta\overline{\rho}\):

\[ \Delta\rho^{\alpha} = - \frac{\alpha}{4\pi s_W^2}\Delta\overline{\rho}\big|_{\mu=M_Z}, \]

where \(\Delta\overline{\rho}\) is renormalized at the scale \(M_Z\), and computed with the function DeltaRhobar().

Parameters
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\Delta\rho^{\alpha}\)

Definition at line 43 of file EWSMOneLoopEW.cpp.

44{
45
46 return ( -cache.getSM().getAle() / 4.0 / M_PI / cache.getSM().sW2(Mw_i) * DeltaRhobar(cache.getSM().getMz(), Mw_i));
47}
double DeltaRhobar(const double mu, const double Mw_i) const
.

◆ deltaRho_rem_f()

gslpp::complex EWSMOneLoopEW::deltaRho_rem_f ( const Particle  f,
const double  Mw_i 
) const

Remainder contribution of \(O(\alpha)\) to the effective couplings \(\rho_Z^f\), denoted as \(\delta\rho_{\mathrm{rem}}^{f,\, \alpha}\).

This function handles the remainder contribution \(\delta\rho_{\mathrm{rem}}^{f,\, \alpha}\) for \(Z\to f\bar{f}\).

Parameters
[in]fa lepton or quark
[in]Mw_ithe \(W\)-boson mass
Returns
\(\delta\rho_{\mathrm{rem}}^{f,\, \alpha}\)
See also
deltaRho_rem_tmp()

Definition at line 113 of file EWSMOneLoopEW.cpp.

114{
115 if (f.is("TOP")) return ( gslpp::complex(0.0, 0.0, false));
116
117 double Mz = cache.getSM().getMz();
118 double Mw = Mw_i;
119 gslpp::complex uf = (3.0 * cache.v_f(f, Mw) * cache.v_f(f, Mw) + cache.a_f(f) * cache.a_f(f))
120 / 4.0 / cache.getSM().cW2(Mw) * FZ(Mz*Mz, Mw) + FW(Mz*Mz, f, Mw);
121 return ( deltaRho_rem_tmp(uf, Mw));
122}
gslpp::complex deltaRho_rem_tmp(const gslpp::complex u_f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .

◆ deltaRho_rem_tmp()

gslpp::complex EWSMOneLoopEW::deltaRho_rem_tmp ( const gslpp::complex  u_f,
const double  Mw_i 
) const

Remainder contribution of \(O(\alpha)\) to the effective couplings \(\rho_Z^f\), denoted as \(\delta\rho_{\rm rem}^{f,\alpha}\).

This function represents \(\delta\rho_{\rm rem}^{f,\alpha}\), given in terms of the flavour-dependent quantity \(u_f\):

\[ \delta\rho_{\rm rem}^{f,\alpha} = \frac{\alpha}{4\pi s_W^2} \left\{ - \frac{1}{ c_W^2} {\rm Re}\big[\overline{\Sigma}^{\prime}_{ZZ}(M_Z^2)\big|_{\mu=M_Z} \big] - \Delta\overline{\rho}_W\big|_{\mu=M_Z} + 2u_f - \left[ \frac{1}{6 c_W^2} - \frac{1}{3} + \frac{3}{4} c_W^2 (1+ c_W^2) + \frac{9 c_W^2}{4 s_W^2} \right]\ln c_W^2 - \frac{11}{2} + \frac{5}{8} c_W^2(1+ c_W^2) \right\}, \]

where \(u_f\) is defined as

\[ u_f = \frac{3v_f^2+a_f^2}{4 c_W^2}{\cal F}_Z(M_Z^2) + {\cal F}_W(M_Z^2) \]

with the so-called unified form factors \({\cal F}_Z(M_Z^2)\) and \({\cal F}_W(M_Z^2)\).

Parameters
[in]u_fthe quantity \(u_f\)
[in]Mw_ithe \(W\)-boson mass
Returns
\(\delta\rho_{\rm rem}^{f,\alpha}\)
See also
deltaRho_rem_l() and deltaRho_rem_q() as well as FZ(), FW_l() and FW_q()

Definition at line 91 of file EWSMOneLoopEW.cpp.

93{
94 double Mz = cache.getSM().getMz();
95 double Mw = Mw_i;
96 double sW2 = cache.getSM().sW2(Mw);
97 double cW2 = cache.getSM().cW2(Mw);
98
99 /* Logarithm */
100 double log_cW2 = cache.log_cW2(Mw);
101
102 gslpp::complex dRho_rem(0.0, 0.0, false);
103 dRho_rem = -(SigmabarPrime_ZZ_bos_Mz2(Mz, Mw).real()
104 + SigmabarPrime_ZZ_fer_Mz2(Mz, Mw).real()) / cW2
105 - DeltaRhobarW(Mz, Mw) + 2.0 * uf
106 - (1.0 / 6.0 / cW2 - 1.0 / 3.0 + 3.0 / 4.0 * cW2 * (1.0 + cW2) + 9.0 * cW2 / 4.0 / sW2)
107 * log_cW2
108 - 11.0 / 2.0 + 5.0 / 8.0 * cW2 * (1.0 + cW2);
109 dRho_rem *= cache.getSM().getAle() / 4.0 / M_PI / sW2;
110 return dRho_rem;
111}
gslpp::complex SigmabarPrime_ZZ_bos_Mz2(const double mu, const double Mw_i) const
The derivative of the bosonic contribution to the self-energy of the boson for in the Unitary gauge...
gslpp::complex SigmabarPrime_ZZ_fer_Mz2(const double mu, const double Mw_i) const
The derivative of the fermionic contribution to the self-energy of the boson for in the Unitary gau...

◆ DeltaRhobar()

double EWSMOneLoopEW::DeltaRhobar ( const double  mu,
const double  Mw_i 
) const

\(\Delta\overline{\rho}\).

The quantity \(\Delta\overline{\rho}\), which is associated with \(\Delta\rho\) as explained in the description of DeltaRho(), is defined as

\[ \Delta\overline{\rho}\big|_{\mu} = \frac{1}{M_W^2}\left[ {\rm Re}\,\overline{\Sigma}_{WW}(M_W^2)\big|_{\mu} - {\rm Re}\,\overline{\Sigma}_{ZZ}(M_Z^2)\big|_{\mu} \right], \]

where \(\mu\) denotes the renormalization scale.

Parameters
[in]murenormalization scale \(\mu\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\Delta\overline{\rho}\big|_{\mu}\)

Definition at line 803 of file EWSMOneLoopEW.cpp.

804{
805 double Mw = Mw_i;
806 double Mz = cache.getSM().getMz();
807 return ( (SigmabarWW_bos(mu, Mw*Mw, Mw).real() + SigmabarWW_fer(mu, Mw*Mw, Mw).real()
808 - SigmabarZZ_bos(mu, Mz*Mz, Mw).real() - SigmabarZZ_fer(mu, Mz*Mz, Mw).real())
809 / Mw / Mw);
810}
gslpp::complex SigmabarWW_bos(const double mu, const double s, const double Mw_i) const
The bosonic contribution to the self-energy of the boson in the Unitary gauge, .
gslpp::complex SigmabarZZ_bos(const double mu, const double s, const double Mw_i) const
The bosonic contribution to the self-energy of the boson in the Unitary gauge, .
gslpp::complex SigmabarWW_fer(const double mu, const double s, const double Mw_i) const
The fermionic contribution to the self-energy of the boson in the Unitary gauge, .
gslpp::complex SigmabarZZ_fer(const double mu, const double s, const double Mw_i) const
The fermionic contribution to the self-energy of the boson in the Unitary gauge, .

◆ DeltaRhobarW()

double EWSMOneLoopEW::DeltaRhobarW ( const double  mu,
const double  Mw_i 
) const

\(\Delta\overline{\rho}_W\).

The quantity \(\Delta\overline{\rho}_W\) is defined as

\[ \Delta\overline{\rho}_W\big|_{\mu} = \frac{1}{M_W^2}\left[ \overline{\Sigma}_{WW}(0)\big|_{\mu} - {\rm Re}\,\overline{\Sigma}_{WW}(M_W^2)\big|_{\mu} \right], \]

where \(\mu\) denotes the renormalization scale.

Parameters
[in]murenormalization scale \(\mu\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\Delta\overline{\rho}_W\big|_{\mu}\)

Definition at line 812 of file EWSMOneLoopEW.cpp.

813{
814 double Mw = Mw_i;
815 return ( (SigmabarWW_bos(mu, 0.0, Mw).real() + SigmabarWW_fer(mu, 0.0, Mw).real()
816 - SigmabarWW_bos(mu, Mw*Mw, Mw).real() - SigmabarWW_fer(mu, Mw*Mw, Mw).real())
817 / Mw / Mw);
818}

◆ FbarWa_0()

gslpp::complex EWSMOneLoopEW::FbarWa_0 ( const double  s) const

The form factor \(\overline{\mathcal{F}}_{Wa}^0\).

The form factor \(\overline{\mathcal{F}}_{Wa}^0\), associated with abelian-type diagrams of \(Z\to f\bar{f}\) with a virtual \(W\) boson, is given in the chiral limit by

\[ \overline{{\cal F}}_{Wa}^0(s) = 0\,. \]

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
Returns
\(\overline{\mathcal{F}}_{Wa}^0\)

Definition at line 932 of file EWSMOneLoopEW.cpp.

933{
934 return ( gslpp::complex(0.0, 0.0, false));
935}

◆ FbarWa_t()

gslpp::complex EWSMOneLoopEW::FbarWa_t ( const double  s,
const double  Mw_i 
) const

The form factor \(\overline{\mathcal{F}}_{Wa}^t\).

The form factor \(\overline{\mathcal{F}}_{Wa}^t\), associated with abelian-type diagrams of \(Z\to f\bar{f}\) with a virtual \(W\) boson and the heavy top quark, is given by

\[ \overline{{\cal F}}_{Wa}^t(s) = - w_t \Bigg\{ \left[ R_W + 2 - w_t(2 - w_t)R_W \right] M_W^2C_0(s;M_t,M_W,M_t) - \left( \frac{1}{2} - R_W + w_t R_W \right) \left[ - B_0(s;M_t,M_t)\big|_{\mu=M_W} + 1 \right] + w_t R_W \ln w_t \Bigg\}\,, \]

where the definitions of the symbols can be read from the codes below.

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\mathcal{F}}_{Wa}^t\)

Definition at line 1000 of file EWSMOneLoopEW.cpp.

1001{
1002 double Mw = Mw_i;
1003 double Mw2 = Mw*Mw;
1004 double Mz = cache.getSM().getMz();
1005 double Rw = Mw * Mw / s;
1006 double Mt = cache.getSM().getMtpole();
1007 double Mt2 = Mt*Mt;
1008 double wt = Mt2 / Mw2;
1009
1010 /* Logarithm and two- and three-point one-loop functions */
1011 double log_wt = -2.0 * cache.logMZtoMTOP() - cache.log_cW2(Mw);
1012 gslpp::complex B0_Mw2_s_Mt2_Mt2;
1013 gslpp::complex C0_s_Mt2_Mw2_Mt2;
1014 if (s == Mz * Mz) {
1015 B0_Mw2_s_Mt2_Mt2 = cache.B0_Mw2_Mz2_Mt2_Mt2(Mw);
1016 C0_s_Mt2_Mw2_Mt2 = cache.C0_Mz2_Mt2_Mw2_Mt2(Mw);
1017 } else {
1018 B0_Mw2_s_Mt2_Mt2 = cache.getPV().B0(Mw2, s, Mt2, Mt2);
1019 C0_s_Mt2_Mw2_Mt2 = cache.getPV().C0(s, Mt2, Mw2, Mt2);
1020 }
1021
1022 gslpp::complex FbarWa(0.0, 0.0, false);
1023 FbarWa = -wt * ((Rw + 2.0 - wt * (2.0 - wt) * Rw) * Mw * Mw * C0_s_Mt2_Mw2_Mt2
1024 - (1.0 / 2.0 - Rw + wt * Rw)*(-B0_Mw2_s_Mt2_Mt2 + 1.0)
1025 + wt * Rw * log_wt);
1026 return FbarWa;
1027}
gslpp::complex B0_Mw2_Mz2_Mt2_Mt2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:319
double logMZtoMTOP() const
A cache method.
Definition: EWSMcache.cpp:120
gslpp::complex C0_Mz2_Mt2_Mw2_Mt2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:950
const PVfunctions getPV() const
A get method to access the member reference to the object of type StandardModel passed to the constru...
Definition: EWSMcache.h:106
gslpp::complex B0(const double mu2, const double p2, const double m02, const double m12) const
.
Definition: PVfunctions.cpp:41
gslpp::complex C0(const double p2, const double m02, const double m12, const double m22) const
.

◆ FW()

gslpp::complex EWSMOneLoopEW::FW ( const double  s,
const Particle  f,
const double  Mw_i 
) const

The unified form factor \(\mathcal{F}_W\) for \(Z\to f\bar{f}\).

The so-called unified form factor \(\mathcal{F}_W\), associated with radiative corrections to the \(Z\to f\bar{f}\) vertex with a virtual \(W\) boson as well as with virtual \(W\) bosons, is given by

\[ {\cal F}_W(s) = c_W^2 {\cal F}_{Wn}^0(s) - \frac{1}{2}\sigma_{l'}^a {\cal F}_{Wa}^0(s) - \frac{1}{2}\overline{{\cal F}}_{Wa}^0(s)\,, \]

where the suprescripts "0" denote the chiral limit, \(\sigma_{f'}^a = |v_{f'} + a_{f'}| = 1 - 2|Q_{f'}|s_W^2 = 2c_W^2 - 1 + 2|Q_{f}| s_W^2\) with \(f'\) being the partner of \(f\) in the \(SU(2)_L\) doublet, and \({\cal F}_{Wn}^0(s)\), \({\cal F}_{Wa}^0(s)\) and \(\overline{{\cal F}}_{Wa}^0(s)\) correspond to the functions FWn_0(), FWa_0() and FbarWa_0(), respectively.

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
[in]fa lepton or quark
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\mathcal{F}_W\)

Definition at line 1070 of file EWSMOneLoopEW.cpp.

1071{
1072 double Mw = Mw_i;
1073 double cW2 = cache.getSM().cW2(Mw);
1074
1075 if (f.is("LEPTON")) {
1076 QCD::lepton lprime;
1077 if (f.is("NEUTRINO_1"))
1078 lprime = StandardModel::ELECTRON;
1079 else if (f.is("NEUTRINO_2"))
1080 lprime = StandardModel::MU;
1081 else if (f.is("NEUTRINO_3"))
1082 lprime = StandardModel::TAU;
1083 else if (f.is("ELECTRON"))
1085 else if (f.is("MU"))
1087 else if (f.is("TAU"))
1089 else
1090 throw std::runtime_error("EWSMOneLoopEW::FW(): " + f.getName() + " is not allowed");
1091 return ( cW2 * FWn_0(s, Mw) - cache.sigma_f(cache.getSM().getLeptons(lprime), Mw) / 2.0 * FWa_0(s, Mw)
1092 - FbarWa_0(s) / 2.0);
1093 } else if (f.is("QUARK")) {
1094 QCD::quark qprime;
1095 if (f.is("UP"))
1096 qprime = QCD::DOWN;
1097 else if (f.is("DOWN"))
1098 qprime = QCD::UP;
1099 else if (f.is("CHARM"))
1100 qprime = QCD::STRANGE;
1101 else if (f.is("STRANGE"))
1102 qprime = QCD::CHARM;
1103 else if (f.is("BOTTOM"))
1104 qprime = QCD::TOP;
1105 else
1106 throw std::runtime_error("EWSMOneLoopEW::FW(): TOP is not allowed");
1107 gslpp::complex FW(0.0, 0.0, false);
1108 FW = cW2 * FWn_0(s, Mw) - cache.sigma_f(cache.getSM().getQuarks(qprime), Mw) / 2.0 * FWa_0(s, Mw)
1109 - FbarWa_0(s) / 2.0;
1110 if (f.is("BOTTOM"))
1111 FW += cW2 * FWn_t(s, Mw) - cache.sigma_f(cache.getSM().getQuarks(qprime), Mw) / 2.0 * FWa_t(s, Mw)
1112 - FbarWa_t(s, Mw) / 2.0;
1113 return FW;
1114 } else
1115 throw std::runtime_error("EWSMOneLoopEW::FW_q(): Wrong argument");
1116}
gslpp::complex FWn_t(const double s, const double Mw_i) const
The form factor .
gslpp::complex FbarWa_0(const double s) const
The form factor .
gslpp::complex FWn_0(const double s, const double Mw_i) const
The form factor .
gslpp::complex FWa_t(const double s, const double Mw_i) const
The form factor .
gslpp::complex FbarWa_t(const double s, const double Mw_i) const
The form factor .
gslpp::complex FWa_0(const double s, const double Mw_i) const
The form factor .
double sigma_f(const Particle f, const double Mw_i) const
.
Definition: EWSMcache.h:312
std::string getName() const
Definition: Particle.h:147
quark
An enum type for quarks.
Definition: QCD.h:323
@ UP
Definition: QCD.h:324
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
@ CHARM
Definition: QCD.h:326
lepton
An enum type for leptons.
Definition: QCD.h:310
@ NEUTRINO_2
Definition: QCD.h:313
@ NEUTRINO_1
Definition: QCD.h:311
@ NEUTRINO_3
Definition: QCD.h:315

◆ FWa_0()

gslpp::complex EWSMOneLoopEW::FWa_0 ( const double  s,
const double  Mw_i 
) const

The form factor \(\mathcal{F}_{Wa}^0\).

The form factor \(\mathcal{F}_{Wa}^0\), associated with abelian-type diagrams of \(Z\to f\bar{f}\) with a virtual \(W\) boson, is given in the chiral limit by

\[ {\cal F}_{Wa}^0(s) = 2(R_W + 1)^2 s\, C_0(s;0,(\widetilde{M}_W^2)^{1/2},0) - (2R_W+3) \ln\left(-\frac{\widetilde{M}_W^2}{s}\right) - 2R_W - \frac{7}{2}\,, \]

where \(\widetilde{M}_W^2 \equiv M_W^2 - i\, M_W\Gamma_W\approx M_W^2-i\epsilon\), and the definitions of the other symbols can be read from the codes below.

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\mathcal{F}_{Wa}^0\)

Definition at line 909 of file EWSMOneLoopEW.cpp.

910{
911 double Mw = Mw_i;
912 double Mz = cache.getSM().getMz();
913 double Rw = Mw * Mw / s;
914
915 /* Logarithm and three-point one-loop functions */
916 double log_Rw;
917 gslpp::complex C0_s_0_Mw2_0;
918 if (s == Mz * Mz) {
919 log_Rw = cache.log_cW2(Mw);
920 C0_s_0_Mw2_0 = cache.C0_Mz2_0_Mw2_0(Mw);
921 } else {
922 log_Rw = log(Rw);
923 C0_s_0_Mw2_0 = cache.getPV().C0(s, 0.0, Mw*Mw, 0.0);
924 }
925
926 gslpp::complex FWa(0.0, 0.0, false);
927 FWa = 2.0 * pow((Rw + 1.0), 2.0) * s * C0_s_0_Mw2_0
928 - (2.0 * Rw + 3.0)*(log_Rw + M_PI * gslpp::complex::i()) - 2.0 * Rw - 7.0 / 2.0;
929 return FWa;
930}
gslpp::complex C0_Mz2_0_Mw2_0(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:965

◆ FWa_t()

gslpp::complex EWSMOneLoopEW::FWa_t ( const double  s,
const double  Mw_i 
) const

The form factor \(\mathcal{F}_{Wa}^t\).

The form factor \(\mathcal{F}_{Wa}^t\), associated with abelian-type diagrams of \(Z\to f\bar{f}\) with a virtual \(W\) boson and the heavy top quark, is given by

\begin{align} {\cal F}_{Wa}^t(s) &= 2(R_W +1)^2 s \left[ C_0(s;M_t,M_W,M_t) - C_0(s;0,(\widetilde{M}_W^2)^{1/2},0) \right] + (2R_W + 3) \left[ - B_0(s;M_t,M_t)\big|_{\mu=M_W} + \ln\left(-\frac{\widetilde{M}_W^2}{s}\right) + 2 \right] \\ &\quad - w_t \Bigg\{ \left( 3R_W +2-w_t - w_t^2 R_W \right) M_W^2 C_0(s;M_t,M_W,M_t) + \left( R_W + \frac{1}{2} + w_t R_W \right) \left[ 1 - B_0(s;M_t,M_t)\big|_{\mu=M_W} \right] \\ &\qquad\qquad - \left( 2 R_W + \frac{1}{2} - \frac{2}{w_t - 1} + \frac{3}{2}\frac{1}{(w_t - 1)^2} + w_t R_W \right) \ln w_t + \frac{3}{2}\frac{1}{w_t - 1} + \frac{3}{4} \Bigg\}\,, \end{align}

where \(\widetilde{M}_W^2 \equiv M_W^2 - i\, M_W\Gamma_W\approx M_W^2-i\epsilon\), and the definitions of the other symbols can be read from the codes below.

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\mathcal{F}_{Wa}^t\)

Definition at line 962 of file EWSMOneLoopEW.cpp.

963{
964 double Mw = Mw_i;
965 double Mw2 = Mw*Mw;
966 double Mz = cache.getSM().getMz();
967 double Rw = Mw * Mw / s;
968 double Mt = cache.getSM().getMtpole();
969 double Mt2 = Mt*Mt;
970 double wt = Mt2 / Mw2;
971
972 /* Logarithm and two- and three-point one-loop functions */
973 double log_wt = -2.0 * cache.logMZtoMTOP() - cache.log_cW2(Mw);
974 double log_Rw;
975 gslpp::complex B0_Mw2_s_Mt2_Mt2;
976 gslpp::complex C0_s_Mt2_Mw2_Mt2, C0_s_0_Mw2_0;
977 if (s == Mz * Mz) {
978 log_Rw = cache.log_cW2(Mw);
979 B0_Mw2_s_Mt2_Mt2 = cache.B0_Mw2_Mz2_Mt2_Mt2(Mw);
980 C0_s_Mt2_Mw2_Mt2 = cache.C0_Mz2_Mt2_Mw2_Mt2(Mw);
981 C0_s_0_Mw2_0 = cache.C0_Mz2_0_Mw2_0(Mw);
982 } else {
983 log_Rw = log(Rw);
984 B0_Mw2_s_Mt2_Mt2 = cache.getPV().B0(Mw2, s, Mt2, Mt2);
985 C0_s_Mt2_Mw2_Mt2 = cache.getPV().C0(s, Mt2, Mw2, Mt2);
986 C0_s_0_Mw2_0 = cache.getPV().C0(s, 0.0, Mw2, 0.0);
987 }
988
989 gslpp::complex FWa(0.0, 0.0, false);
990 FWa = 2.0 * (Rw + 1.0)*(Rw + 1.0) * s * (C0_s_Mt2_Mw2_Mt2 - C0_s_0_Mw2_0)
991 + (2.0 * Rw + 3.0)*(-B0_Mw2_s_Mt2_Mt2 + log_Rw + M_PI * gslpp::complex::i() + 2.0)
992 - wt * ((3.0 * Rw + 2.0 - wt - wt * wt * Rw) * Mw * Mw * C0_s_Mt2_Mw2_Mt2
993 + (Rw + 1.0 / 2.0 + wt * Rw)*(1.0 - B0_Mw2_s_Mt2_Mt2)
994 - (2.0 * Rw + 1.0 / 2.0 - 2.0 / (wt - 1.0)
995 + 3.0 / 2.0 / (wt - 1.0) / (wt - 1.0) + wt * Rw) * log_wt
996 + 3.0 / 2.0 / (wt - 1.0) + 3.0 / 4.0);
997 return FWa;
998}

◆ FWn_0()

gslpp::complex EWSMOneLoopEW::FWn_0 ( const double  s,
const double  Mw_i 
) const

The form factor \(\mathcal{F}_{Wn}^0\).

The form factor \(\mathcal{F}_{Wn}^0\), associated with nonabelian-type diagrams of \(Z\to f\bar{f}\) with virtual \(W\) bosons, is given in the chiral limit by

\[ {\cal F}_{Wn}^0(s) = - 2 (R_W + 2) M_W^2 C_0(s;M_W,0,M_W) - \left( 2R_W + \frac{7}{3} - \frac{3}{2R_W} - \frac{1}{12R_W^2} \right) B_0(s; M_W, M_W)\big|_{\mu=M_W} + 2R_W + \frac{9}{2} - \frac{11}{18R_W} + \frac{1}{18R_W^2}\,, \]

where the definitions of the symbols can be read from the codes below.

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\mathcal{F}_{Wn}^0\)

Definition at line 937 of file EWSMOneLoopEW.cpp.

938{
939 double Mw = Mw_i;
940 double Mw2 = Mw*Mw;
941 double Mz = cache.getSM().getMz();
942 double Rw = Mw * Mw / s;
943
944 /* Two- and three-point one-loop functions */
945 gslpp::complex B0_Mw_s_Mw2_Mw2;
946 gslpp::complex C0_s_Mw2_0_Mw2;
947 if (s == Mz * Mz) {
948 B0_Mw_s_Mw2_Mw2 = cache.B0_Mw2_Mz2_Mw2_Mw2(Mw);
949 C0_s_Mw2_0_Mw2 = cache.C0_Mz2_Mw2_0_Mw2(Mw);
950 } else {
951 B0_Mw_s_Mw2_Mw2 = cache.getPV().B0(Mw2, s, Mw2, Mw2);
952 C0_s_Mw2_0_Mw2 = cache.getPV().C0(s, Mw2, 0.0, Mw2);
953 }
954
955 gslpp::complex FWn(0.0, 0.0, false);
956 FWn = -2.0 * (Rw + 2.0) * Mw * Mw * C0_s_Mw2_0_Mw2
957 - (2.0 * Rw + 7.0 / 3.0 - 3.0 / 2.0 / Rw - 1.0 / 12.0 / Rw / Rw) * B0_Mw_s_Mw2_Mw2
958 + 2.0 * Rw + 9.0 / 2.0 - 11.0 / 18.0 / Rw + 1.0 / 18.0 / Rw / Rw;
959 return FWn;
960}
gslpp::complex C0_Mz2_Mw2_0_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:980
gslpp::complex B0_Mw2_Mz2_Mw2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:424

◆ FWn_t()

gslpp::complex EWSMOneLoopEW::FWn_t ( const double  s,
const double  Mw_i 
) const

The form factor \(\mathcal{F}_{Wn}^t\).

The form factor \(\mathcal{F}_{Wn}^t\), associated with nonabelian-type diagrams of \(Z\to f\bar{f}\) with virtual \(W\) bosons and the heavy top quark, is given by

\begin{align} {\cal F}_{Wn}^t(s) &= -2 (R_W +2) M_W^2 \left[ C_0(s;M_W,M_t,M_W) - C_0(s;M_W,0,M_W) \right] \\ &\quad + w_t \Bigg\{ \Bigg[ 3 R_W + \frac{5}{2} - \frac{2}{R_W } - w_t \left( 2 - \frac{1}{2R_W} \right) + w_t ^2 \left( \frac{1}{2} - R_W \right) \Bigg] M_W^2 C_0(s;M_W,M_t,M_W) \\ &\qquad\qquad +\left[ R_W + 1 - \frac{1}{4 R_W} - w_t \left( \frac{1}{2} - R_W \right) \right] \left[ B_0(s;M_W,M_W)\big|_{\mu=M_W} - 1 \right] \\ &\qquad\qquad + \left[ 2 R_W + \frac{1}{2} - \frac{2}{w_t - 1} + \frac{3}{2}\frac{1}{(w_t - 1)^2} - w_t \left( \frac{1}{2} - R_W \right) \right] \ln w_t - \frac{3}{2}\frac{1}{w_t -1} + \frac{1}{4} - \frac{1}{2 R_W} \Bigg\}\,, \end{align}

where the definitions of the symbols can be read from the codes below.

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\mathcal{F}_{Wn}^0\)

Definition at line 1029 of file EWSMOneLoopEW.cpp.

1030{
1031 double Mw = Mw_i;
1032 double Mw2 = Mw*Mw;
1033 double Mz = cache.getSM().getMz();
1034 double Rw = Mw * Mw / s;
1035 double Mt = cache.getSM().getMtpole();
1036 double Mt2 = Mt*Mt;
1037 double wt = Mt2 / Mw2;
1038
1039 /* Logarithm and two- and three-point one-loop functions */
1040 double log_wt = -2.0 * cache.logMZtoMTOP() - cache.log_cW2(Mw);
1041 gslpp::complex B0_Mw2_s_Mw2_Mw2;
1042 gslpp::complex C0_s_Mw2_Mt2_Mw2, C0_s_Mw2_0_Mw2;
1043 if (s == Mz * Mz) {
1044 B0_Mw2_s_Mw2_Mw2 = cache.B0_Mw2_Mz2_Mw2_Mw2(Mw);
1045 C0_s_Mw2_Mt2_Mw2 = cache.C0_Mz2_Mw2_Mt2_Mw2(Mw);
1046 C0_s_Mw2_0_Mw2 = cache.C0_Mz2_Mw2_0_Mw2(Mw);
1047 } else {
1048 B0_Mw2_s_Mw2_Mw2 = cache.getPV().B0(Mw2, s, Mw2, Mw2);
1049 C0_s_Mw2_Mt2_Mw2 = cache.getPV().C0(s, Mw2, Mt2, Mw2);
1050 C0_s_Mw2_0_Mw2 = cache.getPV().C0(s, Mw2, 0.0, Mw2);
1051 }
1052
1053 gslpp::complex FWn(0.0, 0.0, false);
1054 FWn = -2.0 * (Rw + 2.0) * Mw * Mw * (C0_s_Mw2_Mt2_Mw2 - C0_s_Mw2_0_Mw2)
1055 + wt * ((3.0 * Rw + 5.0 / 2.0 - 2.0 / Rw - wt * (2.0 - 1.0 / 2.0 / Rw)
1056 + wt * wt * (1.0 / 2.0 - Rw)) * Mw * Mw * C0_s_Mw2_Mt2_Mw2
1057 + (Rw + 1.0 - 1.0 / 4.0 / Rw - wt * (1.0 / 2.0 - Rw))*(B0_Mw2_s_Mw2_Mw2 - 1.0)
1058 + (2.0 * Rw + 1.0 / 2.0 - 2.0 / (wt - 1.0)
1059 + 3.0 / 2.0 / (wt - 1.0) / (wt - 1.0) - wt * (1.0 / 2.0 - Rw)) * log_wt
1060 - 3.0 / 2.0 / (wt - 1.0) + 1.0 / 4.0
1061 - 1.0 / 2.0 / Rw);
1062 return FWn;
1063}
gslpp::complex C0_Mz2_Mw2_Mt2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:935

◆ FZ()

gslpp::complex EWSMOneLoopEW::FZ ( const double  s,
const double  Mw_i 
) const

The unified form factor \(\mathcal{F}_Z\).

The so-called unified form factor \(\mathcal{F}_Z\), associated with radiative corrections to the \(Z\to f\bar{f}\) vertex with a virtual \(Z\) boson, is given by

\[ {\cal F}_Z(s) = {\cal F}_{Za}^0(s)\,, \]

where \({\cal F}_{Za}^0(s)\) corresponds to the function FZa_0().

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\mathcal{F}_Z\)

Definition at line 1065 of file EWSMOneLoopEW.cpp.

1066{
1067 return ( FZa_0(s, Mw_i));
1068}
gslpp::complex FZa_0(const double s, const double Mw_i) const
The form factor .

◆ FZa_0()

gslpp::complex EWSMOneLoopEW::FZa_0 ( const double  s,
const double  Mw_i 
) const

The form factor \(\mathcal{F}_{Za}^0\).

The form factor \(\mathcal{F}_{Za}^0\), associated with abelian-type diagrams of \(Z\to f\bar{f}\) with a virtual \(Z\) boson, is given in the chiral limit by

\[ {\cal F}_{Za}^0(s) = 2(R_Z + 1)^2 s\, C_0(s;0,(\widetilde{M}_Z^2)^{1/2},0) - (2R_Z+3) \ln\left(-\frac{\widetilde{M}_Z^2}{s}\right) - 2R_Z - \frac{7}{2}\,, \]

where \(\widetilde{M}_Z^2 \equiv M_Z^2 - i\, M_Z\Gamma_Z\approx M_Z^2-i\epsilon\), and the definitions of the other symbols can be read from the codes below.

See [Bardin:1999ak].

Parameters
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\mathcal{F}_{Za}^0\)

Definition at line 883 of file EWSMOneLoopEW.cpp.

884{
885 double Mw = Mw_i;
886 double Mz = cache.getSM().getMz();
887 double Rz = Mz * Mz / s;
888
889 /* Logarithm and three-point one-loop functions */
890 double log_Rz;
891 gslpp::complex C0_s_0_Mz2_0;
892 if (s == Mz * Mz) {
893 log_Rz = 0.0;
894 C0_s_0_Mz2_0 = cache.C0_Mz2_0_Mz2_0();
895 } else if (s == Mw * Mw) {
896 log_Rz = -cache.log_cW2(Mw);
897 C0_s_0_Mz2_0 = cache.C0_Mw2_0_Mz2_0(Mw);
898 } else {
899 log_Rz = log(Rz);
900 C0_s_0_Mz2_0 = cache.getPV().C0(s, 0.0, Mz*Mz, 0.0);
901 }
902
903 gslpp::complex FZa(0.0, 0.0, false);
904 FZa = 2.0 * pow((Rz + 1.0), 2.0) * s * C0_s_0_Mz2_0
905 - (2.0 * Rz + 3.0)*(log_Rz + M_PI * gslpp::complex::i()) - 2.0 * Rz - 7.0 / 2.0;
906 return FZa;
907}
gslpp::complex C0_Mw2_0_Mz2_0(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:1010
gslpp::complex C0_Mz2_0_Mz2_0() const
A cache method.
Definition: EWSMcache.cpp:1025

◆ PibarGammaGamma_bos()

gslpp::complex EWSMOneLoopEW::PibarGammaGamma_bos ( const double  mu,
const double  s,
const double  Mw_i 
) const

The bosonic contribution to the self-energy of the photon in the Unitary gauge, \(\overline{\Pi}^{\mathrm{bos}}_{\gamma\gamma}(s)\).

This function represents the \(O(\alpha)\) bosonic contribution to \(\overline{\Pi}_{\gamma\gamma}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Pi}^{\mathrm{bos}}_{\gamma\gamma}(s)\)

Definition at line 452 of file EWSMOneLoopEW.cpp.

453{
454 double mu2 = mu*mu;
455 double Mw = Mw_i;
456 double Mw2 = Mw*Mw;
457 double Mz = cache.getSM().getMz();
458 double Mz2 = Mz*Mz;
459 double RW = pow(Mw, 2.0) / s;
460 double RW2 = RW*RW;
461 double RW3 = RW2*RW;
462
463 /* Loop functions */
464 double A0_Mw2;
465 gslpp::complex B0_s_Mw2_Mw2;
466 if (mu == Mz && s == Mz2) {
467 A0_Mw2 = cache.A0_Mz2_Mw2(Mw);
468 B0_s_Mw2_Mw2 = cache.B0_Mz2_Mz2_Mw2_Mw2(Mw);
469 } else {
470 A0_Mw2 = cache.getPV().A0(mu2, Mw2);
471 B0_s_Mw2_Mw2 = cache.getPV().B0(mu2, s, Mw2, Mw2);
472 }
473
474 gslpp::complex Pi(0.0, 0.0, false);
475 if (s == 0.0) {
476 Pi = 7.0 * log(Mw2 / mu / mu) - 2.0 / 3.0;
477 } else {
478 Pi = -RW * ((4.0 + 17.0 / 3.0 / RW - 4.0 / 3.0 / RW2 - 1.0 / 12.0 / RW3) * B0_s_Mw2_Mw2
479 + (4.0 - 4.0 / 3.0 / RW - 1.0 / 6.0 / RW2)*(A0_Mw2 / Mw2 + 1.0)
480 - 1.0 / 18.0 / RW2 * (1.0 / RW - 13.0));
481 }
482 return Pi;
483}
double A0_Mz2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:205
gslpp::complex B0_Mz2_Mz2_Mw2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:334
double A0(const double mu2, const double m2) const
.
Definition: PVfunctions.cpp:23

◆ PibarGammaGamma_fer() [1/2]

gslpp::complex EWSMOneLoopEW::PibarGammaGamma_fer ( const double  mu,
const double  s 
) const

The fermionic contribution to the self-energy of the photon in the Unitary gauge, \(\overline{\Pi}^{\mathrm{fer}}_{\gamma\gamma}(s)\).

This function represents the \(O(\alpha)\) fermionic contribution to \(\overline{\Pi}_{\gamma\gamma}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
Returns
\(\overline{\Pi}^{\mathrm{fer}}_{\gamma\gamma}(s)\)

Definition at line 524 of file EWSMOneLoopEW.cpp.

525{
526 gslpp::complex Pi(0.0, 0.0, false);
527 for (int i = 0; i < 6; i++) {
530 }
531 return Pi;
532}

◆ PibarGammaGamma_fer() [2/2]

gslpp::complex EWSMOneLoopEW::PibarGammaGamma_fer ( const double  mu,
const double  s,
const Particle  f 
) const

The fermionic contribution to the self-energy of the photon in the Unitary gauge, associated with loops of a lepton or quark. \(\overline{\Pi}^{\mathrm{fer},f}_{\gamma\gamma}(s)\).

This function represents the \(O(\alpha)\) fermionic contribution to \(\overline{\Pi}_{\gamma\gamma}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
[in]fa lepton or quark
Returns
\(\overline{\Pi}^{\mathrm{fer},f}_{\gamma\gamma}(s)\)

Definition at line 485 of file EWSMOneLoopEW.cpp.

486{
487 // Neutrinos do not contribute, since Qf=0.
488 if (f.is("NEUTRINO_1") || f.is("NEUTRINO_2")
489 || f.is("NEUTRINO_3"))
490 return 0.0;
491
492 double mu2 = mu*mu;
493 double mf2 = cache.mf2(f, mu);
494 double Mz = cache.getSM().getMz();
495 double Mz2 = Mz*Mz;
496
497 /* Loop functions */
498 gslpp::complex Bf_s_mf2_mf2;
499 if (mu == Mz && s == Mz2) {
500 if (mf2 == 0.0) {
501 Bf_s_mf2_mf2 = 0.0;
502 } else {
503 Bf_s_mf2_mf2 = cache.Bf_Mz2_Mz2_mf2_mf2(f);
504 }
505 } else if (mu == Mz && s == 0.0) {
506 if (mf2 == 0.0) {
507 Bf_s_mf2_mf2 = 0.0;
508 } else {
509 Bf_s_mf2_mf2 = cache.Bf_Mz2_0_mf2_mf2(f);
510 }
511 } else {
512 if (mf2 == 0.0) {
513 Bf_s_mf2_mf2 = 0.0;
514 } else {
515 Bf_s_mf2_mf2 = cache.getPV().Bf(mu2, s, mf2, mf2);
516 }
517 }
518
519 double Qf = cache.Q_f(f);
520 double colorfactor = (f.is("QUARK") ? 3. : 1.);
521 return ( -4.0 * colorfactor * Qf * Qf * Bf_s_mf2_mf2);
522}
gslpp::complex Bf_Mz2_0_mf2_mf2(const Particle f) const
A cache method.
Definition: EWSMcache.cpp:796
double Q_f(const Particle f) const
The charge of an SM fermion .
Definition: EWSMcache.h:268
double mf2(const Particle f, const double mu=0.0, const orders order=FULLNNLO) const
The mass squared of an SM fermion.
Definition: EWSMcache.h:257
gslpp::complex Bf_Mz2_Mz2_mf2_mf2(const Particle f) const
A cache method.
Definition: EWSMcache.cpp:781
gslpp::complex Bf(const double mu2, const double p2, const double m02, const double m12) const
.

◆ PibarZgamma_bos()

gslpp::complex EWSMOneLoopEW::PibarZgamma_bos ( const double  mu,
const double  s,
const double  Mw_i 
) const

The bosonic contribution to the self-energy of the \(Z\)- \(\gamma\) mixing in the Unitary gauge, \(\overline{\Pi}^{\mathrm{bos}}_{Z\gamma}(s)\).

This function represents the \(O(\alpha)\) bosonic contribution to \(\overline{\Pi}_{Z\gamma}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Pi}^{\mathrm{bos}}_{Z\gamma}(s)\)

Definition at line 534 of file EWSMOneLoopEW.cpp.

535{
536 double Mw = Mw_i;
537 double cW2 = cache.getSM().cW2(Mw);
538 return ( PibarGammaGamma_bos(mu, s, Mw) * cW2);
539}
gslpp::complex PibarGammaGamma_bos(const double mu, const double s, const double Mw_i) const
The bosonic contribution to the self-energy of the photon in the Unitary gauge, .

◆ PibarZgamma_fer()

gslpp::complex EWSMOneLoopEW::PibarZgamma_fer ( const double  mu,
const double  s,
const double  Mw_i 
) const

The fermionic contribution to the self-energy of the \(Z\)- \(\gamma\) mixing in the Unitary gauge, \(\overline{\Pi}^{\mathrm{fer}}_{Z\gamma}(s)\).

This function represents the \(O(\alpha)\) fermionic contribution to \(\overline{\Pi}_{Z\gamma}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Pi}^{\mathrm{fer}}_{Z\gamma}(s)\)

Definition at line 541 of file EWSMOneLoopEW.cpp.

542{
543 double ml2[6], mq2[6];
544 for (int i = 0; i < 6; i++) {
545 ml2[i] = cache.mf2(cache.getSM().getLeptons((QCD::lepton) i));
546 mq2[i] = cache.mf2(cache.getSM().getQuarks((QCD::quark) i), mu);
547 }
548 double mu2 = mu*mu;
549 double Mz = cache.getSM().getMz();
550 double Mz2 = Mz*Mz;
551 double Mw = Mw_i;
552 double sW2 = cache.getSM().sW2(Mw);
553
554 /* Loop functions */
555 gslpp::complex Bf_s_ml2_ml2[6], Bf_s_mq2_mq2[6];
556 if (mu == Mz && s == Mz2) {
557 for (int i = 0; i < 6; i++) {
558 if (i == 0 || i == 2 || i == 4)
559 Bf_s_ml2_ml2[i] = 0.0; // Neutrinos do not contribute, since Ql=0.
560 else
561 Bf_s_ml2_ml2[i] = cache.Bf_Mz2_Mz2_mf2_mf2(cache.getSM().getLeptons((QCD::lepton) i));
562 Bf_s_mq2_mq2[i] = cache.Bf_Mz2_Mz2_mf2_mf2(cache.getSM().getQuarks((QCD::quark) i));
563 }
564 } else {
565 for (int i = 0; i < 6; i++) {
566 if (i == 0 || i == 2 || i == 4)
567 Bf_s_ml2_ml2[i] = 0.0; // Neutrinos do not contribute, since Ql=0.
568 else
569 Bf_s_ml2_ml2[i] = cache.getPV().Bf(mu2, s, ml2[i], ml2[i]);
570 Bf_s_mq2_mq2[i] = cache.getPV().Bf(mu2, s, mq2[i], mq2[i]);
571 }
572 }
573
574 gslpp::complex Pi(0.0, 0.0, false);
575 double Ql, Qq;
576 for (int i = 0; i < 6; i++) {
578 Pi += -(fabs(Ql) - 4.0 * sW2 * Ql * Ql) * Bf_s_ml2_ml2[i];
579 //
581 Pi += -3.0 * (fabs(Qq) - 4.0 * sW2 * Qq * Qq) * Bf_s_mq2_mq2[i];
582 }
583 return Pi;
584}

◆ rho_GammaW()

double EWSMOneLoopEW::rho_GammaW ( const Particle  fi,
const Particle  fj,
const double  Mw_i 
) const

EW radiative corrections to the width of \(W \to f_i \bar{f}_j\), denoted as \(\rho^W_{ij}\).

Parameters
[in]fia lepton or quark
[in]fja lepton or quark
[in]Mw_ithe \(W\)-boson mass
Returns
\(\rho^W_{ij}\)
See also
rho_GammaW_tmp()

Definition at line 190 of file EWSMOneLoopEW.cpp.

191{
192 if (!((fi.is("NEUTRINO_1") && fj.is("ELECTRON")) || (fi.is("NEUTRINO_2") && fj.is("MU"))
193 || (fi.is("NEUTRINO_3") && fj.is("TAU")) || (fi.is("UP") && fj.is("DOWN"))
194 || (fi.is("CHARM") && fj.is("STRANGE")) || (fi.is("TOP") && fj.is("BOTTOM"))))
195 throw std::runtime_error("EWSMOneLoopEW::rho_GammaW(): Wrong arguments");
196 double Mw = Mw_i;
197 return ( rho_GammaW_tmp(cache.Q_f(fi), cache.Q_f(fj), Mw));
198}
double rho_GammaW_tmp(const double Qi, const double Qj, const double Mw_i) const
EW radiative corrections to the widths of , denoted as .

◆ rho_GammaW_tmp()

double EWSMOneLoopEW::rho_GammaW_tmp ( const double  Qi,
const double  Qj,
const double  Mw_i 
) const

EW radiative corrections to the widths of \(W \to f_i \bar{f}_j\), denoted as \(\rho^W_{ij}\).

The factor \(\rho^W_{ij}\) is decomposed as [Bardin:1986fi], [Bardin:1999ak]

\[ \rho^W_{ij} = 1 + \delta f^W_{ij} + \delta f^{\rm QED}_{ij}, \]

where \(\delta f^W_{ij}\) and \(\delta f^{\rm QED}_{ij}\) are given by

\begin{align} \delta f^W_{ij} &= \frac{\alpha}{4\pi s_W^2} \Bigg[ - \Delta\overline{\rho}_W \big|_{\mu=M_W} - {\rm Re}\big[\overline{\Sigma}^{\prime}_{WW}(M_W^2)\big]\big|_{\mu=M_W} + \frac{5}{8} c_W^2 (1 + c_W^2) - \frac{11}{2} - \frac{9}{4}\frac{c_W^2}{s_W^2}\ln c_W^2 \\ &\qquad\qquad\qquad + \left( -1 + \frac{1}{2\,c_W^2} + \frac{2 s_W^4}{c_W^2} Q_i Q_j \right) \left( V_1(M_W^2,M_Z^2) + \frac{3}{2} \right) + 2\,c_W^2 \left( V_2(M_W^2,M_W^2,M_Z^2) + \frac{3}{2} \right) \Bigg]\,, \\ \delta f^{\rm QED}_{ij} &= \frac{\alpha}{\pi} \left[ \frac{85}{18} - \frac{\pi^2}{3} + \frac{3}{4}\,Q_iQ_j \right]. \end{align}

The functions \(V_1\) and \(V_2\) are given in [Bardin:1981sv] :

\begin{align} V_1(M_W^2,M_Z^2) &= {\rm Re}\left[{\cal F}_{Za}^0(M_W^2)\right] - \frac{3}{2}\,, \\ V_2(M_W^2,M_W^2,M_Z^2) &= - 2(2 + c_W^2)M_Z^2\,{\rm Re}\left[C_0(M_W^2;\,M_W,0,M_Z)\right] - \left(\frac{1}{12 c_W^4} + \frac{5}{3 c_W^2} + 1 \right) {\rm Re}\left[B_0^F(M_W^2;\,M_Z,M_W)\Big|_{\mu=M_W}\right] \\ &\quad + \left( \frac{1}{12 c_W^4} + \frac{1}{c_W^2} + 1 \right)\log c_W^2 + \frac{1}{12 c_W^4} + \frac{13}{12 c_W^2} + \frac{59}{18}\,, \end{align}

where the imaginary parts have been neglected.

Parameters
[in]Qithe electric charge of f_i
[in]Qjthe electric charge of f_j
[in]Mw_ithe \(W\)-boson mass
Returns
\(\rho^W_{ij}\)
Attention
The masses of virtual fermions are neglected.

Definition at line 155 of file EWSMOneLoopEW.cpp.

157{
158 double QiQj = Qi*Qj;
159 double Mz = cache.getSM().getMz();
160 double Mw = Mw_i;
161 double sW2 = cache.getSM().sW2(Mw);
162 double cW2 = cache.getSM().cW2(Mw);
163
164 /* Logarithm and one-loop functions */
165 double log_cW2 = cache.log_cW2(Mw);
166 gslpp::complex B0_Mw2_Mw2_Mz2_Mw2 = cache.B0_Mw2_Mw2_Mz2_Mw2(Mw);
167 gslpp::complex C0_Mw2_Mw2_0_Mz2 = cache.C0_Mw2_Mw2_0_Mz2(Mw);
168
169 double V1 = FZa_0(Mw*Mw, Mw).real() - 3.0 / 2.0;
170 double V2 = -2.0 * (2.0 + cW2) * Mz * Mz * C0_Mw2_Mw2_0_Mz2.real()
171 - (1.0 / 12.0 / cW2 / cW2 + 5.0 / 3.0 / cW2 + 1.0) * B0_Mw2_Mw2_Mz2_Mw2.real()
172 + (1.0 / 12.0 / cW2 / cW2 + 1.0 / cW2 + 1.0) * log_cW2
173 + 1.0 / 12.0 / cW2 / cW2 + 13.0 / 12.0 / cW2 + 59.0 / 18.0;
174
175 double deltafij_W, deltafij_QED;
176 deltafij_W = -DeltaRhobarW(Mw, Mw)
179 + 5.0 / 8.0 * cW2 * (1.0 + cW2) - 11.0 / 2.0 - 9.0 * cW2 / 4.0 / sW2 * log_cW2
180 + (-1.0 + 1.0 / 2.0 / cW2 + 2.0 * sW2 * sW2 / cW2 * QiQj)*(V1 + 3.0 / 2.0)
181 + 2.0 * cW2 * (V2 + 3.0 / 2.0);
182 deltafij_W *= cache.getSM().getAle() / 4.0 / M_PI / sW2;
183
184 deltafij_QED = 85.0 / 18.0 - M_PI * M_PI / 3.0 + 3.0 / 4.0 * QiQj;
185 deltafij_QED *= cache.getSM().getAle() / M_PI;
186
187 return ( 1.0 + deltafij_W + deltafij_QED);
188}
gslpp::complex SigmabarPrime_WW_bos_Mw2(const double mu, const double Mw_i) const
The derivative of the bosonic contribution to the self-energy of the boson for in the Unitary gauge...
gslpp::complex SigmabarPrime_WW_fer_Mw2(const double mu, const double Mw_i) const
The derivative of the fermionic contribution to the self-energy of the boson for in the Unitary gau...
gslpp::complex B0_Mw2_Mw2_Mz2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:439
gslpp::complex C0_Mw2_Mw2_0_Mz2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:995

◆ SigmabarPrime_WW_bos_Mw2()

gslpp::complex EWSMOneLoopEW::SigmabarPrime_WW_bos_Mw2 ( const double  mu,
const double  Mw_i 
) const

The derivative of the bosonic contribution to the self-energy of the \(W\) boson for \(s=M_W^2\) in the Unitary gauge, \(\overline{\Sigma}^{\prime,\mathrm{bos}}_{WW}(M_W^2)\).

See also the definition of the self-energy given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Sigma}^{\prime,\mathrm{bos}}_{WW}(M_W^2)\)

Definition at line 589 of file EWSMOneLoopEW.cpp.

590{
591 double mu2 = mu*mu;
592 double Mw = Mw_i;
593 double Mw2 = Mw*Mw;
594 double Mz = cache.getSM().getMz();
595 double Mz2 = Mz*Mz;
596 double mh = cache.getSM().getMHl();
597 double mh2 = mh*mh;
598 double sW2 = cache.getSM().sW2(Mw_i);
599 double cW2 = cache.getSM().cW2(Mw_i);
600 double cW4 = cW2*cW2;
601 double rw = mh2 / Mw2;
602 //double rz = mh2/Mz2;
603
604 /* Loop functions */
605 double A0_Mw2, A0_Mz2, A0_mh2;
606 gslpp::complex B0_Mw2_Mz2_Mw2, B0_Mw2_0_Mw2, B0_Mw2_mh2_Mw2;
607 gslpp::complex B0p_Mw2_Mz2_Mw2, B0p_Mw2_0_Mw2, B0p_Mw2_mh2_Mw2;
608 if (mu == Mw) {
609 A0_Mw2 = cache.A0_Mw2_Mw2(Mw);
610 A0_Mz2 = cache.A0_Mw2_Mz2(Mw);
611 A0_mh2 = cache.A0_Mw2_mh2(Mw);
612 B0_Mw2_Mz2_Mw2 = cache.B0_Mw2_Mw2_Mz2_Mw2(Mw);
613 B0_Mw2_0_Mw2 = cache.B0_Mw2_Mw2_0_Mw2(Mw);
614 B0_Mw2_mh2_Mw2 = cache.B0_Mw2_Mw2_mh2_Mw2(Mw);
615 B0p_Mw2_Mz2_Mw2 = cache.B0p_Mw2_Mw2_Mz2_Mw2(Mw);
616 B0p_Mw2_0_Mw2 = cache.B0p_Mw2_Mw2_0_Mw2(Mw);
617 B0p_Mw2_mh2_Mw2 = cache.B0p_Mw2_Mw2_mh2_Mw2(Mw);
618 } else {
619 A0_Mw2 = cache.getPV().A0(mu2, Mw2);
620 A0_Mz2 = cache.getPV().A0(mu2, Mz2);
621 A0_mh2 = cache.getPV().A0(mu2, mh2);
622 B0_Mw2_Mz2_Mw2 = cache.getPV().B0(mu2, Mw2, Mz2, Mw2);
623 B0_Mw2_0_Mw2 = cache.getPV().B0(mu2, Mw2, 0.0, Mw2);
624 B0_Mw2_mh2_Mw2 = cache.getPV().B0(mu2, Mw2, mh, Mw2);
625 B0p_Mw2_Mz2_Mw2 = cache.getPV().B0p(mu2, Mw2, Mz2, Mw2);
626 B0p_Mw2_0_Mw2 = cache.getPV().B0p(mu2, Mw2, 0.0, Mw2);
627 B0p_Mw2_mh2_Mw2 = cache.getPV().B0p(mu2, Mw2, mh2, Mw2);
628 }
629
630 gslpp::complex Sigma(0.0, 0.0, false);
631 Sigma = -(1.0 / 12.0 / cW4 + 2.0 / 3.0 / cW2 + 2.0 * cW2) * B0_Mw2_Mz2_Mw2
632 + (1.0 / 12.0 / cW4 + 4.0 / 3.0 / cW2 - 17.0 / 3.0 - 4.0 * cW2) * Mw2 * B0p_Mw2_Mz2_Mw2
633 - 2.0 * sW2 * B0_Mw2_0_Mw2 - 4.0 * sW2 * Mw2 * B0p_Mw2_0_Mw2
634 + rw / 6.0 * (1.0 - rw / 2.0) * B0_Mw2_mh2_Mw2
635 + (1.0 - rw / 3.0 + rw * rw / 12.0) * Mw2 * B0p_Mw2_mh2_Mw2
636 + (1.0 / cW2 + 8.0 + rw) / 12.0 * A0_Mw2 / Mw2
637 - (1.0 / cW2 + 9.0 - 8.0 * cW2 - 12.0 * cW4) / 12.0 * A0_Mz2 / Mw2
638 - (rw - 1.0) / 12.0 * A0_mh2 / Mw2 + 4.0 / 9.0;
639 return Sigma;
640}
gslpp::complex B0_Mw2_Mw2_mh2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:454
gslpp::complex B0p_Mw2_Mw2_Mz2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:559
gslpp::complex B0p_Mw2_Mw2_mh2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:574
double A0_Mw2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:275
double A0_Mw2_mh2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:247
gslpp::complex B0_Mw2_Mw2_0_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:469
gslpp::complex B0p_Mw2_Mw2_0_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:589
double A0_Mw2_Mz2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:233
gslpp::complex B0p(const double muIR2, const double p2, const double m02, const double m12) const
.
virtual const double getMHl() const
A get method to retrieve the Higgs mass .

◆ SigmabarPrime_WW_fer_Mw2()

gslpp::complex EWSMOneLoopEW::SigmabarPrime_WW_fer_Mw2 ( const double  mu,
const double  Mw_i 
) const

The derivative of the fermionic contribution to the self-energy of the \(W\) boson for \(s=M_W^2\) in the Unitary gauge, \(\overline{\Sigma}^{\prime,\mathrm{fer}}_{WW}(M_W^2)\).

See also the definition of the self-energy given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Sigma}^{\prime,\mathrm{fer}}_{WW}(M_W^2)\)

Definition at line 642 of file EWSMOneLoopEW.cpp.

643{
644 double ml2[6], mq2[6];
645 for (int i = 0; i < 6; i++) {
646 ml2[i] = cache.mf2(cache.getSM().getLeptons((QCD::lepton) i));
647 mq2[i] = cache.mf2(cache.getSM().getQuarks((QCD::quark) i), mu);
648 }
649 double mu2 = mu*mu;
650 double Mw = Mw_i;
651 double Mw2 = Mw*Mw;
652
653 /* Loop functions */
654 gslpp::complex Bf_Mw2_mlprime2_ml2[3], Bf_Mw2_mqprime2_mq2[3];
655 gslpp::complex Bfp_Mw2_mlprime2_ml2[3], Bfp_Mw2_mqprime2_mq2[3];
656 gslpp::complex B1p_Mw2_mlprime2_ml2[3], B1p_Mw2_mqprime2_mq2[3];
657 gslpp::complex B1p_Mw2_ml2_mlprime2[3], B1p_Mw2_mq2_mqprime2[3];
658 if (mu == Mw) {
659 for (int gen = 0; gen < 3; gen++) {
660 Bf_Mw2_mlprime2_ml2[gen] = cache.Bf_Mw2_Mw2_mfprime2_mf2(gen, Mw);
661 Bf_Mw2_mqprime2_mq2[gen] = cache.Bf_Mw2_Mw2_mfprime2_mf2(gen + 3, Mw);
662 Bfp_Mw2_mlprime2_ml2[gen] = cache.Bfp_Mw2_Mw2_mfprime2_mf2(gen, Mw);
663 Bfp_Mw2_mqprime2_mq2[gen] = cache.Bfp_Mw2_Mw2_mfprime2_mf2(gen + 3, Mw);
664 B1p_Mw2_ml2_mlprime2[gen] = cache.B1p_Mw2_Mw2_mf2_mfprime2(gen, Mw);
665 B1p_Mw2_mq2_mqprime2[gen] = cache.B1p_Mw2_Mw2_mf2_mfprime2(gen + 3, Mw);
666 B1p_Mw2_mlprime2_ml2[gen] = cache.B1p_Mw2_Mw2_mfprime2_mf2(gen, Mw);
667 B1p_Mw2_mqprime2_mq2[gen] = cache.B1p_Mw2_Mw2_mfprime2_mf2(gen + 3, Mw);
668 }
669 } else {
670 for (int gen = 0; gen < 3; gen++) {
671 Bf_Mw2_mlprime2_ml2[gen] = cache.getPV().Bf(mu2, Mw2, ml2[2 * gen + 1], ml2[2 * gen]);
672 Bf_Mw2_mqprime2_mq2[gen] = cache.getPV().Bf(mu2, Mw2, mq2[2 * gen + 1], mq2[2 * gen]);
673 Bfp_Mw2_mlprime2_ml2[gen] = cache.getPV().Bfp(mu2, Mw2, ml2[2 * gen + 1], ml2[2 * gen]);
674 Bfp_Mw2_mqprime2_mq2[gen] = cache.getPV().Bfp(mu2, Mw2, mq2[2 * gen + 1], mq2[2 * gen]);
675 B1p_Mw2_ml2_mlprime2[gen] = cache.getPV().B1p(mu2, Mw2, ml2[2 * gen], ml2[2 * gen + 1]);
676 B1p_Mw2_mq2_mqprime2[gen] = cache.getPV().B1p(mu2, Mw2, mq2[2 * gen], mq2[2 * gen + 1]);
677 B1p_Mw2_mlprime2_ml2[gen] = cache.getPV().B1p(mu2, Mw2, ml2[2 * gen + 1], ml2[2 * gen]);
678 B1p_Mw2_mqprime2_mq2[gen] = cache.getPV().B1p(mu2, Mw2, mq2[2 * gen + 1], mq2[2 * gen]);
679 }
680 }
681
682 gslpp::complex Sigma(0.0, 0.0, false);
683 double mf2, mfprime2;
684 for (int gen = 0; gen < 3; gen++) {
685 mf2 = ml2[2 * gen];
686 mfprime2 = ml2[2 * gen + 1];
687 Sigma += -(Bf_Mw2_mlprime2_ml2[gen] + Mw2 * Bfp_Mw2_mlprime2_ml2[gen]);
688 Sigma += mfprime2 * B1p_Mw2_ml2_mlprime2[gen] + mf2 * B1p_Mw2_mlprime2_ml2[gen];
689 //
690 mf2 = mq2[2 * gen];
691 mfprime2 = mq2[2 * gen + 1];
692 Sigma += -3.0 * (Bf_Mw2_mqprime2_mq2[gen] + Mw2 * Bfp_Mw2_mqprime2_mq2[gen]);
693 Sigma += 3.0 * (mfprime2 * B1p_Mw2_mq2_mqprime2[gen] + mf2 * B1p_Mw2_mqprime2_mq2[gen]);
694 }
695 return Sigma;
696}
gslpp::complex B1p_Mw2_Mw2_mf2_mfprime2(const int gen, const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:727
gslpp::complex Bf_Mw2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:866
gslpp::complex B1p_Mw2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:754
gslpp::complex Bfp_Mw2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:908
gslpp::complex Bfp(const double mu2, const double p2, const double m02, const double m12) const
.
gslpp::complex B1p(const double mu2, const double p2, const double m02, const double m12) const
.

◆ SigmabarPrime_ZZ_bos_Mz2()

gslpp::complex EWSMOneLoopEW::SigmabarPrime_ZZ_bos_Mz2 ( const double  mu,
const double  Mw_i 
) const

The derivative of the bosonic contribution to the self-energy of the \(Z\) boson for \(s=M_Z^2\) in the Unitary gauge, \(\overline{\Sigma}^{\prime,\mathrm{bos}}_{ZZ}(M_Z^2)\).

See also the definition of the self-energy given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Sigma}^{\prime,\mathrm{bos}}_{ZZ}(M_Z^2)\)

Definition at line 698 of file EWSMOneLoopEW.cpp.

699{
700 double mu2 = mu*mu;
701 double Mw = Mw_i;
702 double Mw2 = Mw*Mw;
703 double Mz = cache.getSM().getMz();
704 double Mz2 = Mz*Mz;
705 double mh = cache.getSM().getMHl();
706 double mh2 = mh*mh;
707 double cW2 = cache.getSM().cW2(Mw);
708 double cW4 = cW2*cW2;
709 double rw = mh2 / Mw2;
710 double rz = mh2 / Mz2;
711
712 /* Loop functions */
713 double A0_Mw2, A0_Mz2, A0_mh2;
714 gslpp::complex B0_Mz2_Mw2_Mw2, B0_Mz2_mh2_Mz2;
715 gslpp::complex B0p_Mz2_Mw2_Mw2, B0p_Mz2_mh2_Mz2;
716 if (mu == Mz) {
717 A0_Mw2 = cache.A0_Mz2_Mw2(Mw);
718 A0_Mz2 = cache.A0_Mz2_Mz2();
719 A0_mh2 = cache.A0_Mz2_mh2();
720 B0_Mz2_Mw2_Mw2 = cache.B0_Mz2_Mz2_Mw2_Mw2(Mw);
721 B0_Mz2_mh2_Mz2 = cache.B0_Mz2_Mz2_mh2_Mz2();
722 B0p_Mz2_Mw2_Mw2 = cache.B0p_Mz2_Mz2_Mw2_Mw2(Mw);
723 B0p_Mz2_mh2_Mz2 = cache.B0p_Mz2_Mz2_mh2_Mz2();
724 } else {
725 A0_Mw2 = cache.getPV().A0(mu2, Mw2);
726 A0_Mz2 = cache.getPV().A0(mu2, Mz2);
727 A0_mh2 = cache.getPV().A0(mu2, mh2);
728 B0_Mz2_Mw2_Mw2 = cache.getPV().B0(mu2, Mz2, Mw2, Mw2);
729 B0_Mz2_mh2_Mz2 = cache.getPV().B0(mu2, Mz2, mh2, Mz2);
730 B0p_Mz2_Mw2_Mw2 = cache.getPV().B0p(mu2, Mz2, Mw2, Mw2);
731 B0p_Mz2_mh2_Mz2 = cache.getPV().B0p(mu2, Mz2, mh2, Mz2);
732 }
733
734 gslpp::complex Sigma(0.0, 0.0, false);
735 Sigma = (1.0 / 4.0 / cW2 + 8.0 / 3.0 - 17.0 / 3.0 * cW2) * B0_Mz2_Mw2_Mw2
736 + (1.0 / 12.0 / cW2 + 4.0 / 3.0 - 17.0 / 3.0 * cW2 - 4.0 * cW4) * Mz2 * B0p_Mz2_Mw2_Mw2
737 + rw / 6.0 * (1.0 - rz / 2.0) * B0_Mz2_mh2_Mz2
738 + (1.0 - rz / 3.0 + rz * rz / 12.0) * Mz2 / cW2 * B0p_Mz2_mh2_Mz2
739 + (1.0 + 4.0 * cW2) / 3.0 / cW2 * A0_Mw2 / Mz2
740 - (1.0 - rz) / 12.0 / cW2 * (A0_Mz2 - A0_mh2) / Mz2
741 + 2.0 / 9.0 / cW2 - 10.0 / 9.0 + 4.0 / 3.0 * cW2;
742 Sigma *= cW2;
743 return Sigma;
744}
gslpp::complex B0p_Mz2_Mz2_Mw2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:544
double A0_Mz2_mh2() const
A cache method.
Definition: EWSMcache.cpp:219
gslpp::complex B0p_Mz2_Mz2_mh2_Mz2() const
A cache method.
Definition: EWSMcache.cpp:514
double A0_Mz2_Mz2() const
A cache method.
Definition: EWSMcache.cpp:261
gslpp::complex B0_Mz2_Mz2_mh2_Mz2() const
A cache method.
Definition: EWSMcache.cpp:349

◆ SigmabarPrime_ZZ_fer_Mz2()

gslpp::complex EWSMOneLoopEW::SigmabarPrime_ZZ_fer_Mz2 ( const double  mu,
const double  Mw_i 
) const

The derivative of the fermionic contribution to the self-energy of the \(Z\) boson for \(s=M_Z^2\) in the Unitary gauge, \(\overline{\Sigma}^{\prime,\mathrm{fer}}_{ZZ}(M_Z^2)\).

See also the definition of the self-energy given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Sigma}^{\prime,\mathrm{fer}}_{ZZ}(M_Z^2)\)

Definition at line 746 of file EWSMOneLoopEW.cpp.

747{
748 double ml2[6], mq2[6];
749 for (int i = 0; i < 6; i++) {
750 ml2[i] = cache.mf2(cache.getSM().getLeptons((QCD::lepton) i));
751 mq2[i] = cache.mf2(cache.getSM().getQuarks((QCD::quark) i), mu);
752 }
753 double mu2 = mu*mu;
754 double Mw = Mw_i;
755 double Mz = cache.getSM().getMz();
756 double Mz2 = Mz*Mz;
757
758 /* Loop functions */
759 gslpp::complex Bf_Mz2_ml2_ml2[6], Bf_Mz2_mq2_mq2[6];
760 gslpp::complex Bfp_Mz2_ml2_ml2[6], Bfp_Mz2_mq2_mq2[6];
761 gslpp::complex B0p_Mz2_ml2_ml2[6], B0p_Mz2_mq2_mq2[6];
762 if (mu == Mz) {
763 for (int i = 0; i < 6; i++) {
764 Bf_Mz2_ml2_ml2[i] = cache.Bf_Mz2_Mz2_mf2_mf2(cache.getSM().getLeptons((QCD::lepton) i));
765 Bf_Mz2_mq2_mq2[i] = cache.Bf_Mz2_Mz2_mf2_mf2(cache.getSM().getQuarks((QCD::quark) i));
766 Bfp_Mz2_ml2_ml2[i] = cache.Bfp_Mz2_Mz2_mf2_mf2(cache.getSM().getLeptons((QCD::lepton) i));
767 Bfp_Mz2_mq2_mq2[i] = cache.Bfp_Mz2_Mz2_mf2_mf2(cache.getSM().getQuarks((QCD::quark) i));
768 B0p_Mz2_ml2_ml2[i] = cache.B0p_Mz2_Mz2_mf2_mf2(cache.getSM().getLeptons((QCD::lepton) i));
769 B0p_Mz2_mq2_mq2[i] = cache.B0p_Mz2_Mz2_mf2_mf2(cache.getSM().getQuarks((QCD::quark) i));
770 }
771 } else {
772 for (int i = 0; i < 6; i++) {
773 Bf_Mz2_ml2_ml2[i] = cache.getPV().Bf(mu2, Mz2, ml2[i], ml2[i]);
774 Bf_Mz2_mq2_mq2[i] = cache.getPV().Bf(mu2, Mz2, mq2[i], mq2[i]);
775 Bfp_Mz2_ml2_ml2[i] = cache.getPV().Bfp(mu2, Mz2, ml2[i], ml2[i]);
776 Bfp_Mz2_mq2_mq2[i] = cache.getPV().Bfp(mu2, Mz2, mq2[i], mq2[i]);
777 B0p_Mz2_ml2_ml2[i] = cache.getPV().B0p(mu2, Mz2, ml2[i], ml2[i]);
778 B0p_Mz2_mq2_mq2[i] = cache.getPV().B0p(mu2, Mz2, mq2[i], mq2[i]);
779 }
780 }
781
782 gslpp::complex Sigma(0.0, 0.0, false);
783 double mf2, vf2, af2;
784 for (int i = 0; i < 6; i++) {
785 mf2 = ml2[i];
786 vf2 = pow(cache.v_f(cache.getSM().getLeptons((QCD::lepton) i), Mw), 2.0);
787 af2 = pow(cache.a_f(cache.getSM().getLeptons((QCD::lepton) i)), 2.0);
788 Sigma += -(vf2 + af2)*(Bf_Mz2_ml2_ml2[i] + Mz2 * Bfp_Mz2_ml2_ml2[i])
789 - 2.0 * af2 * mf2 * B0p_Mz2_ml2_ml2[i];
790 //
791 mf2 = mq2[i];
792 vf2 = pow(cache.v_f(cache.getSM().getQuarks((QCD::quark) i), Mw), 2.0);
793 af2 = pow(cache.a_f(cache.getSM().getQuarks((QCD::quark) i)), 2.0);
794 Sigma += -3.0 * (vf2 + af2)*(Bf_Mz2_mq2_mq2[i] + Mz2 * Bfp_Mz2_mq2_mq2[i])
795 - 6.0 * af2 * mf2 * B0p_Mz2_mq2_mq2[i];
796 }
797 return Sigma;
798}
gslpp::complex Bfp_Mz2_Mz2_mf2_mf2(const Particle f) const
A cache method.
Definition: EWSMcache.cpp:893
gslpp::complex B0p_Mz2_Mz2_mf2_mf2(const Particle f) const
A cache method.
Definition: EWSMcache.cpp:604

◆ SigmabarWW_bos()

gslpp::complex EWSMOneLoopEW::SigmabarWW_bos ( const double  mu,
const double  s,
const double  Mw_i 
) const

The bosonic contribution to the self-energy of the \(W\) boson in the Unitary gauge, \(\overline{\Sigma}^{\mathrm{bos}}_{WW}(s)\).

This function represents the \(O(\alpha)\) bosonic contribution to \(\overline{\Sigma}_{WW}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Sigma}^{\mathrm{bos}}_{WW}(s)\)

Definition at line 203 of file EWSMOneLoopEW.cpp.

204{
205 double mu2 = mu*mu;
206 double Mw = Mw_i;
207 double Mw2 = Mw*Mw;
208 double Mz = cache.getSM().getMz();
209 double Mz2 = Mz*Mz;
210 double mh = cache.getSM().getMHl();
211 double mh2 = mh*mh;
212 double sW2 = cache.getSM().sW2(Mw);
213 double cW2 = cache.getSM().cW2(Mw);
214 double cW4 = cW2*cW2;
215 double RW = pow(Mw, 2.0) / s;
216 double RW2 = RW*RW;
217 double RW3 = RW2*RW;
218 double rw = pow(mh / Mw, 2.0);
219
220 /* Loop functions */
221 double A0_Mw2, A0_Mz2, A0_mh2;
222 gslpp::complex B0_s_Mz2_Mw2, B0_s_0_Mw2, B0_s_mh2_Mw2;
223 gslpp::complex B0p_s_Mz2_Mw2, B0p_s_mh2_Mw2; /* for s==0.0 */
224 if (mu == Mz && s == 0.0) {
225 A0_Mw2 = cache.A0_Mz2_Mw2(Mw);
226 A0_Mz2 = cache.A0_Mz2_Mz2();
227 A0_mh2 = cache.A0_Mz2_mh2();
228 B0_s_Mz2_Mw2 = cache.B0_Mz2_0_Mz2_Mw2(Mw);
229 B0_s_0_Mw2 = cache.B0_Mz2_0_0_Mw2(Mw);
230 B0_s_mh2_Mw2 = cache.B0_Mz2_0_mh2_Mw2(Mw);
231 B0p_s_Mz2_Mw2 = cache.B0p_Mz2_0_Mz2_Mw2(Mw);
232 B0p_s_mh2_Mw2 = cache.B0p_Mz2_0_mh2_Mw2(Mw);
233 } else if (mu == Mz && s == Mw2) {
234 A0_Mw2 = cache.A0_Mz2_Mw2(Mw);
235 A0_Mz2 = cache.A0_Mz2_Mz2();
236 A0_mh2 = cache.A0_Mz2_mh2();
237 B0_s_Mz2_Mw2 = cache.B0_Mz2_Mw2_Mz2_Mw2(Mw);
238 B0_s_0_Mw2 = cache.B0_Mz2_Mw2_0_Mw2(Mw);
239 B0_s_mh2_Mw2 = cache.B0_Mz2_Mw2_mh2_Mw2(Mw);
240 } else {
241 A0_Mw2 = cache.getPV().A0(mu2, Mw2);
242 A0_Mz2 = cache.getPV().A0(mu2, Mz2);
243 A0_mh2 = cache.getPV().A0(mu2, mh2);
244 B0_s_Mz2_Mw2 = cache.getPV().B0(mu2, s, Mz2, Mw2);
245 B0_s_0_Mw2 = cache.getPV().B0(mu2, s, 0.0, Mw2);
246 B0_s_mh2_Mw2 = cache.getPV().B0(mu2, s, mh2, Mw2);
247 B0p_s_Mz2_Mw2 = cache.getPV().B0p(mu2, s, Mz2, Mw2);
248 B0p_s_mh2_Mw2 = cache.getPV().B0p(mu2, s, mh2, Mw2);
249 }
250
251 gslpp::complex Sigma(0.0, 0.0, false);
252 if (s == 0.0) {
253 Sigma = Mw2 * (2.0 / 3.0 * (1.0 / cW2 - 4.0 - 4.0 * cW2 + cW4) * B0_s_Mz2_Mw2
254 + (1.0 / 12.0 / cW4 + 2.0 / 3.0 / cW2 - 3.0 / 2.0
255 + 2.0 / 3.0 * cW2 + 1.0 / 12.0 * cW4) * Mw2 * B0p_s_Mz2_Mw2
256 - 17.0 * sW2 / 6.0 * B0_s_0_Mw2 + 5.0 / 12.0 * sW2
257 - 1.0 / 12.0 * (-10.0 + 2.0 * rw) * B0_s_mh2_Mw2
258 + 1.0 / 12.0 * pow(1.0 - rw, 2.0) * Mw2 * B0p_s_mh2_Mw2
259 - 1.0 / 12.0 * (24.0 - 2.0 * cW2 + cW4) * A0_Mw2 / Mw2
260 - 1.0 / 6.0 * A0_mh2 / Mw2
261 - 1.0 / 12.0 * (1.0 + 14.0 * cW2 + 9.0 * cW4) * A0_Mz2 / Mw2
262 - 1.0 / 6.0 * (1.0 / cW2 + 22.0 + cW2 + cW4 + rw));
263 } else {
264 Sigma = Mw2 * (((1.0 / 12.0 / cW4 + 2.0 / 3.0 / cW2 - 3.0 / 2.0 + 2.0 / 3.0 * cW2
265 + 1.0 / 12.0 * cW4) * RW
266 + 2.0 / 3.0 * (1.0 / cW2 - 4.0 - 4.0 * cW2 + cW4)
267 - (3.0 / 2.0 + 8.0 / 3.0 * cW2 + 3.0 / 2.0 * cW4) / RW
268 + 2.0 / 3.0 * cW2 * (1.0 + cW2) / RW2 + 1.0 / 12.0 * cW4 / RW3) * B0_s_Mz2_Mw2
269 - sW2 / 6.0 * (-5.0 * RW + 17.0 + 17.0 / RW - 5.0 / RW2) * B0_s_0_Mw2
270 - 1.0 / 12.0 * (-pow(1.0 - rw, 2.0) * RW - 10.0 + 2.0 * rw - 1.0 / RW)
271 * B0_s_mh2_Mw2
272 - 1.0 / 12.0 * ((1.0 / cW2 - 2.0 + cW2 - cW4 + rw) * RW
273 + 24.0 - 2.0 * cW2 + cW4
274 + (-10.0 + cW2 + cW4) / RW - cW4 / RW2) * A0_Mw2 / Mw2
275 - 1.0 / 12.0 * (-(1.0 / cW2 + 9.0 - 9.0 * cW2 - cW4) * RW
276 + 1.0 + 14.0 * cW2 + 9.0 * cW4
277 + cW2 / RW * (1.0 - 9.0 * cW2) - cW4 / RW2) * A0_Mz2 / Mw2
278 + 1.0 / 12.0 * ((mh2 - Mw2) / s - 2.0) * A0_mh2 / Mw2
279 - 1.0 / 6.0 * (1.0 / cW2 + 22.0 + cW2 + cW4 + rw)
280 + 1.0 / 9.0 * ((6.0 + 3.0 * cW2 + 7.0 / 2.0 * cW4) / RW
281 - (1.0 + 3.0 / 2.0 * cW2 + 5.0 / 2.0 * cW4) / RW2
282 + cW4 / 2.0 / RW3));
283 }
284 return Sigma;
285}
gslpp::complex B0p_Mz2_0_mh2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:499
gslpp::complex B0_Mz2_Mw2_0_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:379
gslpp::complex B0_Mz2_0_0_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:409
gslpp::complex B0p_Mz2_0_Mz2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:529
gslpp::complex B0_Mz2_Mw2_Mz2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:364
gslpp::complex B0_Mz2_0_mh2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:304
gslpp::complex B0_Mz2_Mw2_mh2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:289
gslpp::complex B0_Mz2_0_Mz2_Mw2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:394

◆ SigmabarWW_fer()

gslpp::complex EWSMOneLoopEW::SigmabarWW_fer ( const double  mu,
const double  s,
const double  Mw_i 
) const

The fermionic contribution to the self-energy of the \(W\) boson in the Unitary gauge, \(\overline{\Sigma}^{\mathrm{fer}}_{WW}(s)\).

This function represents the \(O(\alpha)\) fermionic contribution to \(\overline{\Sigma}_{WW}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Sigma}^{\mathrm{fer}}_{WW}(s)\)

Definition at line 287 of file EWSMOneLoopEW.cpp.

288{
289 double ml2[6], mq2[6];
290 for (int i = 0; i < 6; i++) {
291 ml2[i] = cache.mf2(cache.getSM().getLeptons((QCD::lepton) i));
292 mq2[i] = cache.mf2(cache.getSM().getQuarks((QCD::quark) i), mu);
293 }
294 double mu2 = mu*mu;
295 double Mw = Mw_i;
296 double Mw2 = Mw*Mw;
297 double Mz = cache.getSM().getMz();
298
299 /* Loop functions */
300 gslpp::complex B1_s_ml2_mlprime2[3], B1_s_mq2_mqprime2[3];
301 gslpp::complex B1_s_mlprime2_ml2[3], B1_s_mqprime2_mq2[3];
302 gslpp::complex Bf_s_mlprime2_ml2[3], Bf_s_mqprime2_mq2[3];
303 if (mu == Mz && s == 0.0) {
304 for (int gen = 0; gen < 3; gen++) {
305 B1_s_ml2_mlprime2[gen] = cache.B1_Mz2_0_mf2_mfprime2(gen);
306 B1_s_mq2_mqprime2[gen] = cache.B1_Mz2_0_mf2_mfprime2(gen + 3);
307 B1_s_mlprime2_ml2[gen] = cache.B1_Mz2_0_mfprime2_mf2(gen);
308 B1_s_mqprime2_mq2[gen] = cache.B1_Mz2_0_mfprime2_mf2(gen + 3);
309 Bf_s_mlprime2_ml2[gen] = cache.Bf_Mz2_0_mfprime2_mf2(gen);
310 Bf_s_mqprime2_mq2[gen] = cache.Bf_Mz2_0_mfprime2_mf2(gen + 3);
311 }
312 } else if (mu == Mz && s == Mw2) {
313 for (int gen = 0; gen < 3; gen++) {
314 B1_s_ml2_mlprime2[gen] = cache.B1_Mz2_Mw2_mf2_mfprime2(gen, Mw);
315 B1_s_mq2_mqprime2[gen] = cache.B1_Mz2_Mw2_mf2_mfprime2(gen + 3, Mw);
316 B1_s_mlprime2_ml2[gen] = cache.B1_Mz2_Mw2_mfprime2_mf2(gen, Mw);
317 B1_s_mqprime2_mq2[gen] = cache.B1_Mz2_Mw2_mfprime2_mf2(gen + 3, Mw);
318 Bf_s_mlprime2_ml2[gen] = cache.Bf_Mz2_Mw2_mfprime2_mf2(gen, Mw);
319 Bf_s_mqprime2_mq2[gen] = cache.Bf_Mz2_Mw2_mfprime2_mf2(gen + 3, Mw);
320 }
321 } else {
322 for (int gen = 0; gen < 3; gen++) {
323 B1_s_ml2_mlprime2[gen] = cache.getPV().B1(mu2, s, ml2[2 * gen], ml2[2 * gen + 1]);
324 B1_s_mq2_mqprime2[gen] = cache.getPV().B1(mu2, s, mq2[2 * gen], mq2[2 * gen + 1]);
325 B1_s_mlprime2_ml2[gen] = cache.getPV().B1(mu2, s, ml2[2 * gen + 1], ml2[2 * gen]);
326 B1_s_mqprime2_mq2[gen] = cache.getPV().B1(mu2, s, mq2[2 * gen + 1], mq2[2 * gen]);
327 Bf_s_mlprime2_ml2[gen] = cache.getPV().Bf(mu2, s, ml2[2 * gen + 1], ml2[2 * gen]);
328 Bf_s_mqprime2_mq2[gen] = cache.getPV().Bf(mu2, s, mq2[2 * gen + 1], mq2[2 * gen]);
329 }
330 }
331
332 gslpp::complex Sigma(0.0, 0.0, false);
333 double mf2, mfprime2;
334 for (int gen = 0; gen < 3; gen++) {
335 mf2 = ml2[2 * gen];
336 mfprime2 = ml2[2 * gen + 1];
337 if (s != 0.0) Sigma += -s * Bf_s_mlprime2_ml2[gen];
338 Sigma += mfprime2 * B1_s_ml2_mlprime2[gen] + mf2 * B1_s_mlprime2_ml2[gen];
339 //
340 mf2 = mq2[2 * gen];
341 mfprime2 = mq2[2 * gen + 1];
342 if (s != 0.0) Sigma += 3.0 * (-s * Bf_s_mqprime2_mq2[gen]);
343 Sigma += 3.0 * (mfprime2 * B1_s_mq2_mqprime2[gen] + mf2 * B1_s_mqprime2_mq2[gen]);
344 }
345 return Sigma;
346}
gslpp::complex B1_Mz2_Mw2_mf2_mfprime2(const int gen, const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:673
gslpp::complex B1_Mz2_0_mf2_mfprime2(const int gen) const
A cache method.
Definition: EWSMcache.cpp:619
gslpp::complex B1_Mz2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:700
gslpp::complex Bf_Mz2_Mw2_mfprime2_mf2(const int gen, const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:813
gslpp::complex Bf_Mz2_0_mfprime2_mf2(const int gen) const
A cache method.
Definition: EWSMcache.cpp:839
gslpp::complex B1_Mz2_0_mfprime2_mf2(const int gen) const
A cache method.
Definition: EWSMcache.cpp:646
gslpp::complex B1(const double mu2, const double p2, const double m02, const double m12) const
.

◆ SigmabarZZ_bos()

gslpp::complex EWSMOneLoopEW::SigmabarZZ_bos ( const double  mu,
const double  s,
const double  Mw_i 
) const

The bosonic contribution to the self-energy of the \(Z\) boson in the Unitary gauge, \(\overline{\Sigma}^{\mathrm{bos}}_{ZZ}(s)\).

This function represents the \(O(\alpha)\) bosonic contribution to \(\overline{\Sigma}_{ZZ}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Sigma}^{\mathrm{bos}}_{ZZ}(s)\)

Definition at line 348 of file EWSMOneLoopEW.cpp.

349{
350 double mu2 = mu*mu;
351 double Mw = Mw_i;
352 double Mw2 = Mw*Mw;
353 double Mz = cache.getSM().getMz();
354 double Mz2 = Mz*Mz;
355 double mh = cache.getSM().getMHl();
356 double mh2 = mh*mh;
357 double cW2 = cache.getSM().cW2(Mw);
358 double cW4 = cW2*cW2;
359 double RW = pow(Mw, 2.0) / s;
360 double RW2 = RW*RW;
361 double RW3 = RW2*RW;
362 double rw = pow(mh / Mw, 2.0);
363
364 /* Loop functions */
365 double A0_Mw2, A0_Mz2, A0_mh2;
366 gslpp::complex B0_s_Mw2_Mw2, B0_s_mh2_Mz2;
367 if (mu == Mz && s == Mz2) {
368 A0_Mw2 = cache.A0_Mz2_Mw2(Mw);
369 A0_Mz2 = cache.A0_Mz2_Mz2();
370 A0_mh2 = cache.A0_Mz2_mh2();
371 B0_s_Mw2_Mw2 = cache.B0_Mz2_Mz2_Mw2_Mw2(Mw);
372 B0_s_mh2_Mz2 = cache.B0_Mz2_Mz2_mh2_Mz2();
373 } else {
374 A0_Mw2 = cache.getPV().A0(mu2, Mw2);
375 A0_Mz2 = cache.getPV().A0(mu2, Mz2);
376 A0_mh2 = cache.getPV().A0(mu2, mh2);
377 B0_s_Mw2_Mw2 = cache.getPV().B0(mu2, s, Mw2, Mw2);
378 B0_s_mh2_Mz2 = cache.getPV().B0(mu2, s, mh2, Mz2);
379 }
380
381 gslpp::complex Sigma(0.0, 0.0, false);
382 if (s == 0.0) {
383 throw std::runtime_error("EWSMOneLoopEW::SigmabarZZ_bos(): Undefined for s=0.0");
384 } else {
385 Sigma = Mw2 * (-cW4 * (4.0 + 17.0 / 3.0 / RW - 4.0 / 3.0 / RW2 - 1.0 / 12.0 / RW3)
386 * B0_s_Mw2_Mw2
387 + 1.0 / 12.0 * ((1.0 / cW4 - 2.0 / cW2 * rw + rw * rw) * RW
388 + 10.0 / cW2 - 2.0 * rw + 1.0 / RW) * B0_s_mh2_Mz2
389 - cW2 * (4.0 - 4.0 / 3.0 / RW - 1.0 / 6.0 / RW2) * A0_Mw2 / Mz2
390 + 1.0 / 12.0 * ((Mz2 - mh2) / s + 1.0)*(A0_Mz2 - A0_mh2) / cW2 / Mz2
391 - 1.0 / 12.0 * A0_mh2 / cW2 / Mz2
392 - (1.0 / 6.0 / cW2 + 4.0 * cW4 + 1.0 / 6.0 * rw
393 - (1.0 / 18.0 + 4.0 / 3.0 * cW4) / RW
394 + 1.0 / 9.0 * cW4 * (5.0 - 1.0 / 2.0 / RW) / RW2));
395 }
396 return Sigma;
397}

◆ SigmabarZZ_fer()

gslpp::complex EWSMOneLoopEW::SigmabarZZ_fer ( const double  mu,
const double  s,
const double  Mw_i 
) const

The fermionic contribution to the self-energy of the \(Z\) boson in the Unitary gauge, \(\overline{\Sigma}^{\mathrm{fer}}_{ZZ}(s)\).

This function represents the \(O(\alpha)\) fermionic contribution to \(\overline{\Sigma}_{ZZ}(s)\), whose definition is given in the detailed description of the current class.

Parameters
[in]murenormalization scale \(\mu\)
[in]smomentum squared \(s\)
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\overline{\Sigma}^{\mathrm{fer}}_{ZZ}(s)\)

Definition at line 399 of file EWSMOneLoopEW.cpp.

400{
401 double ml2[6], mq2[6];
402 for (int i = 0; i < 6; i++) {
403 ml2[i] = cache.mf2(cache.getSM().getLeptons((QCD::lepton) i));
404 mq2[i] = cache.mf2(cache.getSM().getQuarks((QCD::quark) i), mu);
405 }
406 double mu2 = mu*mu;
407 double Mw = Mw_i;
408 double Mz = cache.getSM().getMz();
409 double Mz2 = Mz*Mz;
410
411 /* Loop functions */
412 gslpp::complex Bf_s_ml2_ml2[6], Bf_s_mq2_mq2[6];
413 gslpp::complex B0_s_ml2_ml2[6], B0_s_mq2_mq2[6];
414 if (mu == Mz && s == Mz2) {
415 for (int i = 0; i < 6; i++) {
416 Bf_s_ml2_ml2[i] = cache.Bf_Mz2_Mz2_mf2_mf2(cache.getSM().getLeptons((QCD::lepton) i));
417 Bf_s_mq2_mq2[i] = cache.Bf_Mz2_Mz2_mf2_mf2(cache.getSM().getQuarks((QCD::quark) i));
418 B0_s_ml2_ml2[i] = cache.B0_Mz2_Mz2_mf2_mf2(cache.getSM().getLeptons((QCD::lepton) i));
419 B0_s_mq2_mq2[i] = cache.B0_Mz2_Mz2_mf2_mf2(cache.getSM().getQuarks((QCD::quark) i));
420 }
421 } else {
422 for (int i = 0; i < 6; i++) {
423 Bf_s_ml2_ml2[i] = cache.getPV().Bf(mu2, s, ml2[i], ml2[i]);
424 Bf_s_mq2_mq2[i] = cache.getPV().Bf(mu2, s, mq2[i], mq2[i]);
425 B0_s_ml2_ml2[i] = cache.getPV().B0(mu2, s, ml2[i], ml2[i]);
426 B0_s_mq2_mq2[i] = cache.getPV().B0(mu2, s, mq2[i], mq2[i]);
427 }
428 }
429
430 gslpp::complex Sigma(0.0, 0.0, false);
431 if (s == 0.0) {
432 throw std::runtime_error("EWSMOneLoopEW::SigmaZZ_fer(): Undefined for s=0.0");
433 } else {
434 double mf2, vf2, af2;
435 for (int i = 0; i < 6; i++) {
436 mf2 = ml2[i];
437 vf2 = pow(cache.v_f(cache.getSM().getLeptons((QCD::lepton) i), Mw), 2.0);
438 af2 = pow(cache.a_f(cache.getSM().getLeptons((QCD::lepton) i)), 2.0);
439 if (s != 0.0) Sigma += -(vf2 + af2) * s * Bf_s_ml2_ml2[i];
440 Sigma += -2.0 * af2 * mf2 * B0_s_ml2_ml2[i];
441 //
442 mf2 = mq2[i];
443 vf2 = pow(cache.v_f(cache.getSM().getQuarks((QCD::quark) i), Mw), 2.0);
444 af2 = pow(cache.a_f(cache.getSM().getQuarks((QCD::quark) i)), 2.0);
445 if (s != 0.0) Sigma += -3.0 * (vf2 + af2) * s * Bf_s_mq2_mq2[i];
446 Sigma += -3.0 * 2.0 * af2 * mf2 * B0_s_mq2_mq2[i];
447 }
448 }
449 return Sigma;
450}
gslpp::complex B0_Mz2_Mz2_mf2_mf2(const Particle f) const
A cache method.
Definition: EWSMcache.cpp:484

◆ TEST_DeltaRhobar_bos()

double EWSMOneLoopEW::TEST_DeltaRhobar_bos ( const double  Mw_i) const

A test function.

\(\Delta\overline{\rho}^{\mathrm{bos}}\) is given without the use of the self-energies of the gauge bosons.

Parameters
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\Delta\overline{\rho}^{\mathrm{bos}}\)
Attention
The renormalization scale is fixed to be \(\mu=M_W\).

Definition at line 823 of file EWSMOneLoopEW.cpp.

824{
825 double Mz = cache.getSM().getMz();
826 double mh = cache.getSM().getMHl();
827 double Mw = Mw_i;
828 double sW2 = cache.getSM().sW2(Mw);
829 double cW2 = cache.getSM().cW2(Mw);
830 double cW4 = cW2*cW2;
831 double rw = pow(mh / Mw, 2.0);
832 double rz = pow(mh / Mz, 2.0);
833
834 /* Logarithm and one-loop functions */
835 double log_cW2 = cache.log_cW2(Mw);
836
837 /* B0 functions for mu=Mw */
838 gslpp::complex B0_Mw2_Mz2_Mw2_Mw2 = cache.B0_Mz2_Mz2_Mw2_Mw2(Mw) + log_cW2;
839 gslpp::complex B0_Mw2_Mz2_mh2_Mz2 = cache.B0_Mz2_Mz2_mh2_Mz2() + log_cW2;
840 gslpp::complex B0_Mw2_Mw2_Mz2_Mw2 = cache.B0_Mz2_Mw2_Mz2_Mw2(Mw) + log_cW2;
841 gslpp::complex B0_Mw2_Mw2_mh2_Mw2 = cache.B0_Mz2_Mw2_mh2_Mw2(Mw) + log_cW2;
842
843 double DRhobar;
844 DRhobar = -(1.0 / 12.0 / cW2 + 4.0 / 3.0 - 17.0 / 3.0 * cW2 - 4.0 * cW4)
845 *(B0_Mw2_Mz2_Mw2_Mw2.real() - 1.0 / cW2 * B0_Mw2_Mw2_Mz2_Mw2.real())
846 + (1.0 - 1.0 / 3.0 * rw + 1.0 / 12.0 * rw * rw) * B0_Mw2_Mw2_mh2_Mw2.real()
847 - (1.0 - 1.0 / 3.0 * rz + 1.0 / 12.0 * rz * rz) / cW2 * B0_Mw2_Mz2_mh2_Mz2.real()
848 + 1.0 / 12.0 * sW2 * rw * rw * (log(rw) - 1.0)
849 - (1.0 / 12.0 / cW4 + 1.0 / 2.0 / cW2 - 2.0 + 1.0 / 12.0 * rw) * log_cW2
850 - 1.0 / 12.0 / cW4 - 19.0 / 36.0 / cW2 - 133.0 / 18.0 + 8.0 * cW2;
851 return DRhobar;
852}

◆ TEST_DeltaRhobarW_bos()

double EWSMOneLoopEW::TEST_DeltaRhobarW_bos ( const double  Mw_i) const

A test function.

\(\Delta\overline{\rho}_W^{\mathrm{bos}}\) is given without the use of the self-energies of the gauge bosons.

Parameters
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\Delta\overline{\rho}_W^{\mathrm{bos}}\)
Attention
The renormalization scale is fixed to be \(\mu=M_W\).

Definition at line 854 of file EWSMOneLoopEW.cpp.

855{
856 double Mw = Mw_i;
857 double sW2 = cache.getSM().sW2(Mw);
858 double cW2 = cache.getSM().cW2(Mw);
859 double cW4 = cW2*cW2;
860 double mh = cache.getSM().getMHl();
861 double rw = pow(mh / Mw, 2.0);
862
863 /* Logarithm and one-loop functions */
864 double log_cW2 = cache.log_cW2(Mw);
865
866 /* B0 functions for mu=Mw */
867 gslpp::complex B0_Mw2_Mz2_Mw2 = cache.B0_Mz2_Mw2_Mz2_Mw2(Mw) + log_cW2;
868 gslpp::complex B0_Mw2_mh2_Mw2 = cache.B0_Mz2_Mw2_mh2_Mw2(Mw) + log_cW2;
869
870 double DRhobarW;
871 DRhobarW = -(1.0 / 12.0 / cW4 + 4.0 / 3.0 / cW2 - 17.0 / 3.0 - 4.0 * cW2) * B0_Mw2_Mz2_Mw2.real()
872 - (1.0 - 1.0 / 3.0 * rw + 1.0 / 12.0 * rw * rw) * B0_Mw2_mh2_Mw2.real()
873 + (3.0 / 4.0 / (1.0 - rw) + 1.0 / 4.0 - 1.0 / 12.0 * rw) * rw * log(rw)
874 + (1.0 / 12.0 / cW4 + 17.0 / 12.0 / cW2 - 3.0 / sW2 + 1.0 / 4.0) * log_cW2
875 + 1.0 / 12.0 / cW4 + 11.0 / 8.0 / cW2 + 139.0 / 36.0 - 177.0 / 24.0 * cW2
876 + 5.0 / 8.0 * cW4 - 1.0 / 12.0 * rw * (7.0 / 2.0 - rw);
877 return DRhobarW;
878}

◆ TEST_FWn()

gslpp::complex EWSMOneLoopEW::TEST_FWn ( const double  s,
const double  mf,
const double  Mw_i 
) const

A test function for \(\mathcal{F}_{Wn}\) with a finite fermion mass.

Parameters
[in]smomentum squared \(s\)
[in]mfthe mass of the fermion in the loop
[in]Mw_ithe \(W\)-boson mass \(M_W\)
Returns
\(\mathcal{F}_{Wn}\)

Definition at line 1121 of file EWSMOneLoopEW.cpp.

1122{
1123 double Mw = Mw_i;
1124 double Mw2 = Mw*Mw;
1125 double Rw = Mw2 / s;
1126 double mf2 = mf*mf;
1127 double wf = mf2 / Mw2;
1128
1129 /* Logarithm and two- and three-point one-loop functions */
1130 double log_wf = log(wf);
1131 double A0_Mw2 = cache.getPV().A0(Mw2, Mw2);
1132 double A0_mf2 = cache.getPV().A0(Mw2, mf2);
1133 gslpp::complex B0_Mw2_s_Mw2_Mw2 = cache.getPV().B0(Mw2, s, Mw2, Mw2);
1134 gslpp::complex B0_Mw2_0_mf2_Mw2 = cache.getPV().B0(Mw2, 0.0, mf2, Mw2);
1135 gslpp::complex C0_s_Mw2_mf2_Mw2 = cache.getPV().C0(s, Mw2, mf2, Mw2);
1136 //gslpp::complex C0_s_Mw2_0_Mw2 = cache.getPV().C0(s, Mw2, 0.0, Mw2);
1137
1138 gslpp::complex FWn(0.0, 0.0, false);
1139 /* Eq.(5.586) in Bardin and Passarino's book */
1140 FWn = ((2.0 + wf)*(1.0 - wf)*(1.0 - wf) * Rw + 4.0 - 5.0 / 2.0 * wf + 2.0 * wf * wf
1141 - wf * wf * wf / 2.0 + wf * (2.0 - wf / 2.0) / Rw) * Mw * Mw * C0_s_Mw2_mf2_Mw2
1142 - (-(2.0 + wf)*(1.0 - wf) * Rw - 3.0 + 3.0 / 2.0 * wf - wf * wf / 2.0)
1143 *(B0_Mw2_s_Mw2_Mw2 - B0_Mw2_0_mf2_Mw2)
1144 - (2.0 / 3.0 - wf / 2.0 + (3.0 / 2.0 - wf / 4.0) / Rw + 1.0 / 12.0 / Rw / Rw) * B0_Mw2_s_Mw2_Mw2
1145 - A0_mf2 / Mw / Mw - (2.0 / 3.0 + 1.0 / 6.0 / Rw) * A0_Mw2 / Mw / Mw
1146 - 2.0 / 3.0 - wf / 2.0 + (4.0 / 9.0 + wf / 4.0) / Rw - 1.0 / 18.0 / Rw / Rw;
1147
1148 /* Eq.(5.500) in Bardin and Passarino's book */
1149 double wW;
1150 if (mf == 0.0) {
1151 wW = 3.0 / 2.0;
1152 } else {
1153 wW = 5.0 / 4.0 * wf + 3.0 * (1.0 - wf / 2.0) * wf * wf / (wf - 1.0) / (wf - 1.0) * log_wf
1154 - 3.0 / 2.0 / (wf - 1.0);
1155 }
1156
1157 return ( -FWn + wW);
1158}

Member Data Documentation

◆ cache

const EWSMcache& EWSMOneLoopEW::cache
private

A reference to an object of type EWSMcache.

Definition at line 846 of file EWSMOneLoopEW.h.


The documentation for this class was generated from the following files: