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

A class for the form factors \(G_1\), \(G_2\) and \(G_3\) in the processes \(e^+e^-\to f\bar{f}\) at LEP-II. More...

#include <EWSMTwoFermionsLEP2.h>

Detailed Description

A class for the form factors \(G_1\), \(G_2\) and \(G_3\) in the processes \(e^+e^-\to f\bar{f}\) at LEP-II.

Author
HEPfit Collaboration

Definition at line 25 of file EWSMTwoFermionsLEP2.h.

Public Member Functions

double AFB_l (const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
 
double AFB_q (const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
 
gslpp::complex B_WW_c_0 (const double mu, const double s, const double t, const double u, const double Mw) const
 
gslpp::complex B_WW_c_0_hat (const double s, const double t, const double u, const double Mw) const
 
gslpp::complex B_WW_d (const double mu, const double s, const double t, const double u, const double Mw) const
 
gslpp::complex B_WW_d_0 (const double mu, const double s, const double t, const double u, const double Mw) const
 
gslpp::complex B_WW_d_0_hat (const double s, const double t, const double u, const double Mw) const
 
gslpp::complex B_WW_d_0_hat_TEST (const double s, const double t, const double u, const double Mw) const
 
gslpp::complex B_ZZ_0 (const double mu, const double s, const double t, const double u) const
 
gslpp::complex chi_Z (const double s, const double Mw, const double GammaZ) const
 
gslpp::complex D_Z (const double mu, const double s, const double Mw) const
 
gslpp::complex D_Z_hat (const double s, const double Mw) const
 
gslpp::complex Delta_B_WW_d (const double mu, const double s, const double t, const double u, const double Mw) const
 
gslpp::complex Delta_B_WW_d_hat (const double s, const double t, const double u, const double Mw) const
 
gslpp::complex Delta_kappa_e_TOP (const double s, const double t, const double u, const double Mw, const bool bWWbox) const
 
gslpp::complex Delta_kappa_e_WW_hat (const double s, const double t, const double u, const double Mw, const double I3f) const
 
gslpp::complex Delta_kappa_e_WW_TOP_hat (const double s, const double t, const double u, const double Mw) const
 
gslpp::complex Delta_kappa_e_ZZ (const double mu, const double s, const double t, const double u, const double Mw, const double I3f, const double Qf) const
 
gslpp::complex Delta_kappa_ef_TOP (const double s, const double t, const double u, const double Mw, const bool bWWbox) const
 
gslpp::complex Delta_kappa_ef_WW_hat (const double s, const double t, const double u, const double Mw, const double I3f) const
 
gslpp::complex Delta_kappa_ef_WW_TOP_hat (const double s, const double t, const double u, const double Mw) const
 
gslpp::complex Delta_kappa_ef_ZZ (const double mu, const double s, const double t, const double u, const double Mw, const double I3f, const double Qf) const
 
gslpp::complex Delta_kappa_f_TOP (const double s, const double t, const double u, const double Mw, const bool bWWbox) const
 
gslpp::complex Delta_kappa_f_WW_hat (const double s, const double t, const double u, const double Mw, const double I3f) const
 
gslpp::complex Delta_kappa_f_WW_TOP_hat (const double s, const double t, const double u, const double Mw) const
 
gslpp::complex Delta_kappa_f_ZZ (const double mu, const double s, const double t, const double u, const double Mw, const double I3f, const double Qf) const
 
gslpp::complex Delta_rho_ef_TOP (const double s, const double t, const double u, const double Mw, const bool bWWbox) const
 
gslpp::complex Delta_rho_ef_WW_hat (const double s, const double t, const double u, const double Mw, const double I3f) const
 
gslpp::complex Delta_rho_ef_WW_TOP_hat (const double s, const double t, const double u, const double Mw) const
 
gslpp::complex Delta_rho_ef_ZZ (const double mu, const double s, const double t, const double u, const double Mw, const double I3f, const double Qf) const
 
gslpp::complex DeltaRhobar (const double mu, const double Mw) const
 
gslpp::complex DeltaRhobarZ (const double mu, const double Mw) const
 
double dsigma_l (const QCD::lepton l, const double mf, const double s, const double cosTheta, const double Mw, const double GammaZ, const bool bWeak) const
 
double dsigma_l_box (const QCD::lepton l, const double mf, const double s, const double cosTheta, const double Mw, const double GammaZ) const
 
double dsigma_q (const QCD::quark q, const double mf, const double s, const double cosTheta, const double Mw, const double GammaZ, const bool bWeak) const
 
double dsigma_q_box (const QCD::quark q, const double mf, const double s, const double cosTheta, const double Mw, const double GammaZ) const
 
 EWSMTwoFermionsLEP2 (const EWSMcache &cache_i, const bool bKeepNonUnitary_i=false)
 Constructor. More...
 
gslpp::complex F_W_0 (const double s, const double Mw) const
 
gslpp::complex F_W_0_hat (const double s, const double Mw) const
 
gslpp::complex F_W_t (const double s, const double Mw) const
 
gslpp::complex F_W_t_hat (const double s, const double Mw) const
 
gslpp::complex F_Wa_0 (const double s, const double Mw) const
 
gslpp::complex F_Wa_t (const double s, const double Mw) const
 
gslpp::complex F_Wn_0 (const double s, const double Mw) const
 
gslpp::complex F_Wn_0_hat (const double s, const double Mw) const
 
gslpp::complex F_Wn_t (const double s, const double Mw) const
 
gslpp::complex F_Wn_t_hat (const double s, const double Mw) const
 
gslpp::complex F_za_0 (const double s, const double Mw) const
 
double G_1 (const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
double G_1_box (const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWWbox=true, const bool bZZbox=true) const
 
double G_1_noBox (const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak) const
 
double G_2 (const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
double G_2_box (const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWWbox=true, const bool bZZbox=true) const
 
double G_2_noBox (const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak) const
 
double G_3 (const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
double G_3_box (const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWWbox=true, const bool bZZbox=true) const
 
double G_3_noBox (const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak) const
 
double G_3prime_l (const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
 
double G_3prime_q (const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
 
gslpp::complex G_e (const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
gslpp::complex G_ef (const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
gslpp::complex G_f (const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
double H_ISR (const double x, const double s) const
 
double H_ISR_FB (const double x, const double s) const
 
gslpp::complex kappa_e (const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
gslpp::complex kappa_ef (const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
gslpp::complex kappa_f (const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
gslpp::complex Pibar_gg_bos (const double mu, const double s, const double Mw) const
 
gslpp::complex Pibar_gg_bos_hat (const double s, const double Mw) const
 
gslpp::complex Pibar_Zgamma (const double mu, const double s, const double Mw) const
 
gslpp::complex Pibar_Zgamma_hat (const double s, const double Mw) const
 
double QCD_FSR_forAFB (const QCD::quark q, const double mf, const double s) const
 
double QCD_FSR_forSigma (const double s) const
 
double QED_FSR_forSigma (const double s, const double Qf) const
 
gslpp::complex rho_ef (const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
 
void setBDebug (bool bDebug)
 
double sigma_l (const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
 
double sigma_q (const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
 
gslpp::complex V_pol (const double s) const
 

Private Member Functions

double AFB (const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak) const
 
double alpha_at_s (const double s) const
 
double dsigma (const double s, const double cosTheta, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const double Ncf, const bool bWeak) const
 
double dsigma_box (const double s, const double cosTheta, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const double Ncf) const
 
double sigma (const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const double Ncf, const bool bWeak) const
 

Private Attributes

bool bDebug
 
bool bKeepNonUnitary
 
const EWSMcachecache
 A reference to an object of type EWSMcache. More...
 
const EWSMOneLoopEW myOneLoopEW
 An object of type EWSMOneLoopEW. More...
 

Constructor & Destructor Documentation

◆ EWSMTwoFermionsLEP2()

EWSMTwoFermionsLEP2::EWSMTwoFermionsLEP2 ( const EWSMcache cache_i,
const bool  bKeepNonUnitary_i = false 
)

Constructor.

Parameters
[in]cache_ireference to an EWSMcommon object
[in]bKeepNonUnitary_itrue if keeping non-unitary terms

Definition at line 13 of file EWSMTwoFermionsLEP2.cpp.

15: cache(cache_i), myOneLoopEW(cache_i)
16{
17 bDebug = false;
18 bKeepNonUnitary = bKeepNonUnitary_i;
19}
const EWSMOneLoopEW myOneLoopEW
An object of type EWSMOneLoopEW.
const EWSMcache & cache
A reference to an object of type EWSMcache.

Member Function Documentation

◆ AFB()

double EWSMTwoFermionsLEP2::AFB ( const double  s,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak 
) const
private

Definition at line 1421 of file EWSMTwoFermionsLEP2.cpp.

1425{
1426 double betaf = sqrt(1.0 - 4.0*mf*mf/s);
1427 double G1 = G_1_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1428 double G2 = G_2_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1429 double G3 = G_3_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1430
1431 return ( 3.0/4.0*betaf*G3/(G1 + 2.0*mf*mf/s*G2) );
1432}
double G_2_noBox(const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak) const
double G_1_noBox(const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak) const
double G_3_noBox(const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak) const
An observable class for the total decay width of the boson.
Definition: GammaZ.h:32
An observable class for the -boson mass.
Definition: Mw.h:22
Test Observable.

◆ AFB_l()

double EWSMTwoFermionsLEP2::AFB_l ( const QCD::lepton  l,
const double  mf,
const double  s,
const double  Mw,
const double  GammaZ,
const bool  bWeak 
) const
Parameters
[in]llepton in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
[in]bWeakflag to control weak corrections (not including box diagrams)
Returns
the forward-backward asymmetry for e^+ e^- -> l lbar

Definition at line 1238 of file EWSMTwoFermionsLEP2.cpp.

1241{
1242 double I3f = cache.getSM().getLeptons(l).getIsospin();
1243 double Qf = cache.getSM().getLeptons(l).getCharge();
1244
1245 return AFB(s, Mw, GammaZ, I3f, Qf, mf, 0.0, bWeak);
1246}
double AFB(const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak) const
const StandardModel & getSM() const
Definition: EWSMcache.h:56
double getIsospin() const
A get method to access the particle isospin.
Definition: Particle.h:115
double getCharge() const
A get method to access the particle charge.
Definition: Particle.h:97
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.

◆ AFB_q()

double EWSMTwoFermionsLEP2::AFB_q ( const QCD::quark  q,
const double  mf,
const double  s,
const double  Mw,
const double  GammaZ,
const bool  bWeak 
) const
Parameters
[in]qquark in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
[in]bWeakflag to control weak corrections (not including box diagrams)
Returns
the forward-backward asymmetry for e^+ e^- -> q qbar

Definition at line 1249 of file EWSMTwoFermionsLEP2.cpp.

1252{
1253 double I3f = cache.getSM().getQuarks(q).getIsospin();
1254 double Qf = cache.getSM().getQuarks(q).getCharge();
1255 double mfp;
1256 if (q==cache.getSM().TOP)
1257 throw std::runtime_error("Error in LEP2TwoFermions::AFB_q()");
1258 else if (q==cache.getSM().BOTTOM)
1259 mfp = cache.getSM().getMtpole();
1260 else
1261 mfp = 0.0;
1262
1263 return ( AFB(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak) );
1264}
@ BOTTOM
Definition: QCD.h:329
@ TOP
Definition: QCD.h:328
const double getMtpole() const
A get method to access the pole mass of the top quark.
Definition: QCD.h:600
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

◆ alpha_at_s()

double EWSMTwoFermionsLEP2::alpha_at_s ( const double  s) const
private

Definition at line 1356 of file EWSMTwoFermionsLEP2.cpp.

1357{
1358 double alpha;
1359 //alpha = SM.getAle()/complex(1.0715119759, -0.0186242179, false).real(); // for debug, s=(200GeV)^2
1360 alpha = cache.getSM().ale_OS(sqrt(s), FULLNLO);
1361
1362 return alpha;
1363}
@ FULLNLO
Definition: OrderScheme.h:38
const double ale_OS(const double mu, orders order=FULLNLO) const
The running electromagnetic coupling in the on-shell scheme.

◆ B_WW_c_0()

gslpp::complex EWSMTwoFermionsLEP2::B_WW_c_0 ( const double  mu,
const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 946 of file EWSMTwoFermionsLEP2.cpp.

949{
950 double Mw2 = Mw*Mw;
951 return ( 2.0 * u * cache.getPV().D0(s, u, Mw2, 0.0, Mw2, 0.0)
952 + 4.0 * cache.getPV().C0(s, Mw2, 0.0, Mw2)
953 + (20.0 + s / Mw2) / 12.0 / Mw2 * cache.getPV().B0(mu*mu, s, Mw2, Mw2)
954 + cache.getPV().A0(mu*mu, Mw2) / 6.0 / Mw2 / Mw2 - (1.0 - s / 6.0 / Mw2) / 3.0 / Mw2);
955}
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
double A0(const double mu2, const double m2) const
.
Definition: PVfunctions.cpp:23
gslpp::complex C0(const double p2, const double m02, const double m12, const double m22) const
.
gslpp::complex D0(const double s, const double t, const double m02, const double m12, const double m22, const double m32) const
.

◆ B_WW_c_0_hat()

gslpp::complex EWSMTwoFermionsLEP2::B_WW_c_0_hat ( const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 1129 of file EWSMTwoFermionsLEP2.cpp.

1131{
1132 double mu = Mw;
1133
1134 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
1135 if (!bKeepNonUnitary) {
1136 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), Rw = Mw * Mw / s;
1137 add = -(5.0 / 3.0 - 1.0 / 12.0 / cW2 + 1.0 / 12.0 / Rw) / Rw / (s - Mz * Mz) * cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw)
1138 + (1.0 / 2.0 + 1.0 / 18.0 / cW2 - 1.0 / 18.0 / Rw) / Rw / (s - Mz * Mz);
1139 }
1140
1141 return ( B_WW_c_0(mu, s, t, u, Mw) + add);
1142}
gslpp::complex B_WW_c_0(const double mu, const double s, const double t, const double u, const double Mw) const
const double getMz() const
A get method to access the mass of the boson .
Test Observable.

◆ B_WW_d()

gslpp::complex EWSMTwoFermionsLEP2::B_WW_d ( const double  mu,
const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 915 of file EWSMTwoFermionsLEP2.cpp.

918{
919 double Mt = cache.getSM().getMtpole(), Mt2 = Mt*Mt;
920 double s2 = s*s, t2 = t*t, u2 = u*u, Mw2 = Mw*Mw;
921 return ( (-t * (1.0 + t2 / u2) - 4.0 * Mw2 * t2 / u2 + 2.0 * Mw2 * Mw2 / u * (1.0 + 2.0 * s / u)
922 + Mt2 * (2.0 + 3.0 * s / u + 2.0 * s2 / u2 - 2.0 * Mw2 / u * (1.0 + 2.0 * s / u))
923 + Mt2 * Mt2 * s / u2) * cache.getPV().D0(s, t, Mw2, 0.0, Mw2, Mt2)
924 + (-2.0 - 2.0 * s / u - s2 / u2 + 2.0 * Mw2 * s / u2
925 + Mt2 / 2.0 / Mw2 * (4.0 - Mw2 / s * (1.0 + 2.0 * s2 / u2))
926 - Mt2 * Mt2 / 2.0 / Mw2 / Mw2 * (1.0 - 2.0 * Mw2 / s)
927 - Mt2 * Mt2 * Mt2 / 2.0 / Mw2 / Mw2 / s) * cache.getPV().C0(s, Mw2, Mt2, Mw2)
928 - (2.0 + 2.0 * s / u + s2 / u2 - 2.0 * Mw2 * s / u2 + Mt2 * s / u2) * cache.getPV().C0(s, Mw2, 0.0, Mw2)
929 + (2.0 + 3.0 * s / u + s2 / u2 + 2.0 * Mw2 * t / u2 - Mt2 * t / u2)
930 *(cache.getPV().C0(t, 0.0, Mw2, Mt2) + cache.getPV().C0(t, Mt2, Mw2, 0.0))
931 + (-2.0 / u - 5.0 / 3.0 / Mw2 - s / 12.0 / Mw2 / Mw2
932 - Mt2 / 4.0 / Mw2 / s * (2.0 - s / Mw2) + Mt2 * Mt2 / 2.0 / Mw2 / Mw2 / s)
933 * cache.getPV().B0(mu*mu, s, Mw2, Mw2)
934 + 2.0 / u * cache.getPV().B0(mu*mu, t, Mt2, 0.0) + Mt2 / 2.0 / Mw2 / Mw2 / s * cache.getPV().A0(mu*mu, Mt2)
935 - 1.0 / 6.0 / Mw2 / Mw2 * (1.0 + 3.0 * Mt2 / s) * cache.getPV().A0(mu*mu, Mw2)
936 + 1.0 / 3.0 / Mw2 * (1.0 + 3.0 * Mt2 / 4.0 / Mw2 - s / 6.0 / Mw2));
937}

◆ B_WW_d_0()

gslpp::complex EWSMTwoFermionsLEP2::B_WW_d_0 ( const double  mu,
const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 901 of file EWSMTwoFermionsLEP2.cpp.

904{
905 double s2 = s*s, t2 = t*t, u2 = u*u, Mw2 = Mw*Mw;
906 return ( (-t * (1.0 + t2 / u2) - 4.0 * Mw2 * t2 / u2 + 2.0 * Mw2 * Mw2 / u * (1.0 + 2.0 * s / u))
907 * cache.getPV().D0(s, t, Mw2, 0.0, Mw2, 0.0)
908 - 2.0 * (2.0 + 2.0 * s / u + s2 / u2 - 2.0 * Mw2 * s / u2) * cache.getPV().C0(s, Mw2, 0.0, Mw2)
909 + 2.0 * (2.0 + 3.0 * s / u + s2 / u2 + 2.0 * Mw2 * t / u2) * cache.getPV().C0(t, 0.0, Mw2, 0.0)
910 + (-2.0 / u - 5.0 / 3.0 / Mw2 - s / 12.0 / Mw2 / Mw2) * cache.getPV().B0(mu*mu, s, Mw2, Mw2)
911 + 2.0 / u * cache.getPV().B0(mu*mu, t, 0.0, 0.0) - 1.0 / 6.0 / Mw2 / Mw2 * cache.getPV().A0(mu*mu, Mw2)
912 + 1.0 / 3.0 / Mw2 - s / 18.0 / Mw2 / Mw2);
913}

◆ B_WW_d_0_hat()

gslpp::complex EWSMTwoFermionsLEP2::B_WW_d_0_hat ( const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 1083 of file EWSMTwoFermionsLEP2.cpp.

1085{
1086 double mu = Mw;
1087
1088 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
1089 if (!bKeepNonUnitary) {
1090 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), Rw = Mw * Mw / s;
1091 add = (5.0 / 3.0 - 1.0 / 12.0 / cW2 + 1.0 / 12.0 / Rw) / Rw / (s - Mz * Mz) * cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw)
1092 - (1.0 / 2.0 + 1.0 / 18.0 / cW2 - 1.0 / 18.0 / Rw) / Rw / (s - Mz * Mz);
1093 }
1094
1095 return ( B_WW_d_0(mu, s, t, u, Mw) + add);
1096}
gslpp::complex B_WW_d_0(const double mu, const double s, const double t, const double u, const double Mw) const

◆ B_WW_d_0_hat_TEST()

gslpp::complex EWSMTwoFermionsLEP2::B_WW_d_0_hat_TEST ( const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 1098 of file EWSMTwoFermionsLEP2.cpp.

1100{
1101 double mu = Mw;
1102
1103 if (!bKeepNonUnitary) {
1104 double s2 = s*s, t2 = t*t, u2 = u*u, Mw2 = Mw*Mw;
1105 return ( (-t * (1.0 + t2 / u2) - 4.0 * Mw2 * t2 / u2 + 2.0 * Mw2 * Mw2 / u * (1.0 + 2.0 * s / u))
1106 * cache.getPV().D0(s, t, Mw2, 0.0, Mw2, 0.0)
1107 - 2.0 * (2.0 + 2.0 * s / u + s2 / u2 - 2.0 * Mw2 * s / u2) * cache.getPV().C0(s, Mw2, 0.0, Mw2)
1108 + 2.0 * (2.0 + 3.0 * s / u + s2 / u2 + 2.0 * Mw2 * t / u2) * cache.getPV().C0(t, 0.0, Mw2, 0.0)
1109 - 2.0 / u * (cache.getPV().B0(mu*mu, s, Mw2, Mw2) - cache.getPV().B0(mu*mu, t, 0.0, 0.0)));
1110 } else {
1111 return B_WW_d_0(mu, s, t, u, Mw);
1112 }
1113}

◆ B_ZZ_0()

gslpp::complex EWSMTwoFermionsLEP2::B_ZZ_0 ( const double  mu,
const double  s,
const double  t,
const double  u 
) const

Definition at line 957 of file EWSMTwoFermionsLEP2.cpp.

959{
960 double Mz = cache.getSM().getMz(), Mz2 = Mz*Mz;
961 double t2 = t*t, u2 = u*u;
962 return ( 2.0 * u * cache.getPV().D0(s, u, Mz2, 0.0, Mz2, 0.0)
963 + (-2.0 * u - t * (3.0 + t / u)*(3.0 + t / u)
964 + 2.0 * (Mz2 - s)*(1.0 + 3.0 * t / u - Mz2 / u * (1.0 + 2.0 * t / u)))
965 * cache.getPV().D0(s, t, Mz2, 0.0, Mz2, 0.0)
966 + 2.0 * (3.0 + 4.0 * t / u + t2 / u2 - 2.0 * s * (s - Mz2) / u2)
967 * cache.getPV().C0(s, Mz2, 0.0, Mz2)
968 - 2.0 * t / u * (3.0 + t / u + 2.0 * (s - Mz2) / u) * cache.getPV().C0(t, 0.0, Mz2, 0.0)
969 - 2.0 / u * (cache.getPV().B0(mu*mu, s, Mz2, Mz2) - cache.getPV().B0(mu*mu, t, 0.0, 0.0)));
970}

◆ chi_Z()

gslpp::complex EWSMTwoFermionsLEP2::chi_Z ( const double  s,
const double  Mw,
const double  GammaZ 
) const

Definition at line 338 of file EWSMTwoFermionsLEP2.cpp.

340{
341 double Mz = cache.getSM().getMz();
342 gslpp::complex denom = gslpp::complex(s - Mz*Mz, GammaZ / Mz*s, false);
343 double prefactor = cache.getSM().getGF() * Mz * Mz / (sqrt(2.0)*8.0 * M_PI * cache.getSM().getAle());
344
345 return ( prefactor * s / denom);
346}
const double getGF() const
A get method to retrieve the Fermi constant .
const double getAle() const
A get method to retrieve the fine-structure constant .

◆ D_Z()

gslpp::complex EWSMTwoFermionsLEP2::D_Z ( const double  mu,
const double  s,
const double  Mw 
) const

Definition at line 837 of file EWSMTwoFermionsLEP2.cpp.

839{
840 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
841 gslpp::complex D_Z_bos = (myOneLoopEW.SigmabarZZ_bos(mu, s, Mw)
842 - myOneLoopEW.SigmabarZZ_bos(mu, Mz*Mz, Mw)) / cW2 / (Mz * Mz - s);
843 gslpp::complex D_Z_fer = (myOneLoopEW.SigmabarZZ_fer(mu, s, Mw)
844 - myOneLoopEW.SigmabarZZ_fer(mu, Mz*Mz, Mw)) / cW2 / (Mz * Mz - s);
845 return ( D_Z_bos + D_Z_fer);
846}
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 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, .

◆ D_Z_hat()

gslpp::complex EWSMTwoFermionsLEP2::D_Z_hat ( const double  s,
const double  Mw 
) const

Definition at line 1008 of file EWSMTwoFermionsLEP2.cpp.

1009{
1010 double mu = Mw;
1011
1012 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
1013 if (!bKeepNonUnitary) {
1014 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
1015 double Rz = Mz * Mz / s;
1016 add = ((1.0 / 12.0 / cW2 + 4.0 / 3.0) / Rz + 1.0 / 12.0 / cW2 / Rz / Rz) * cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw)
1017 + ((1.0 / cW2 - 13.0) / Rz + 1.0 / cW2 / Rz / Rz) / 18.0;
1018 }
1019
1020 return ( D_Z(mu, s, Mw) + add);
1021}
gslpp::complex D_Z(const double mu, const double s, const double Mw) const

◆ Delta_B_WW_d()

gslpp::complex EWSMTwoFermionsLEP2::Delta_B_WW_d ( const double  mu,
const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 939 of file EWSMTwoFermionsLEP2.cpp.

942{
943 return ( B_WW_d(mu, s, t, u, Mw) - B_WW_d_0(mu, s, t, u, Mw));
944}
gslpp::complex B_WW_d(const double mu, const double s, const double t, const double u, const double Mw) const

◆ Delta_B_WW_d_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_B_WW_d_hat ( const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 1115 of file EWSMTwoFermionsLEP2.cpp.

1117{
1118 double mu = Mw;
1119
1120 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
1121 if (!bKeepNonUnitary) {
1122 double Mz = cache.getSM().getMz(), Rw = Mw * Mw / s, Mt = cache.getSM().getMtpole();
1123 add = -Mt * Mt / 4.0 / Rw / Mw / Mw / (s - Mz * Mz)*(cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw) + 1.0);
1124 }
1125
1126 return ( Delta_B_WW_d(mu, s, t, u, Mw) + add);
1127}
gslpp::complex Delta_B_WW_d(const double mu, const double s, const double t, const double u, const double Mw) const

◆ Delta_kappa_e_TOP()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_e_TOP ( const double  s,
const double  t,
const double  u,
const double  Mw,
const bool  bWWbox 
) const

Definition at line 585 of file EWSMTwoFermionsLEP2.cpp.

588{
589 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
590 double Qfp = cache.getSM().getQuarks(cache.getSM().TOP).getCharge();
591
592 gslpp::complex Bww = gslpp::complex(0.0, 0.0, false);
593 if (bWWbox)
594 Bww = Delta_kappa_e_WW_TOP_hat(s, t, u, Mw);
595
596 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
597 * (Mz * Mz / s - 1.0) * cW2
598 * (F_Wn_t_hat(s, Mw) - fabs(Qfp) * F_Wa_t(s, Mw)) + Bww);
599}
gslpp::complex F_Wn_t_hat(const double s, const double Mw) const
gslpp::complex Delta_kappa_e_WW_TOP_hat(const double s, const double t, const double u, const double Mw) const
gslpp::complex F_Wa_t(const double s, const double Mw) const

◆ Delta_kappa_e_WW_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_e_WW_hat ( const double  s,
const double  t,
const double  u,
const double  Mw,
const double  I3f 
) const

Definition at line 653 of file EWSMTwoFermionsLEP2.cpp.

656{
657 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
658
660 || I3f == cache.getSM().getQuarks(cache.getSM().DOWN).getIsospin())
661 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
662 * (cW2 * (Mz * Mz - s) * B_WW_d_0_hat(s, t, u, Mw)));
663 else if (I3f == cache.getSM().getLeptons(cache.getSM().NEUTRINO_1).getIsospin()
664 || I3f == cache.getSM().getQuarks(cache.getSM().UP).getIsospin())
665 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
666 * (-cW2 * (Mz * Mz - s) * B_WW_c_0_hat(s, t, u, Mw)));
667 else
668 throw std::runtime_error("Error in EWSMTwoFermionsLEP2::Delta_kappa_e_WW_hat()");
669}
gslpp::complex B_WW_d_0_hat(const double s, const double t, const double u, const double Mw) const
gslpp::complex B_WW_c_0_hat(const double s, const double t, const double u, const double Mw) const
@ UP
Definition: QCD.h:324
@ DOWN
Definition: QCD.h:325
@ NEUTRINO_1
Definition: QCD.h:311
@ ELECTRON
Definition: QCD.h:312

◆ Delta_kappa_e_WW_TOP_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_e_WW_TOP_hat ( const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 715 of file EWSMTwoFermionsLEP2.cpp.

717{
718 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
719 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
720 * (cW2 * (Mz * Mz - s) * Delta_B_WW_d_hat(s, t, u, Mw)));
721}
gslpp::complex Delta_B_WW_d_hat(const double s, const double t, const double u, const double Mw) const

◆ Delta_kappa_e_ZZ()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_e_ZZ ( const double  mu,
const double  s,
const double  t,
const double  u,
const double  Mw,
const double  I3f,
const double  Qf 
) const

Definition at line 756 of file EWSMTwoFermionsLEP2.cpp.

760{
761 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
762 double ve = -0.5 + 2.0 * sW2, ae = -0.5, deltae = ve - ae;
763 double vf = I3f - 2.0 * Qf*sW2, af = I3f, sigmaf = vf + af, deltaf = vf - af;
764
765 return ( -cache.getSM().getAle() / 4.0 / M_PI / sW2 * (s - Mz * Mz) / 2.0 / cW2 * deltae * I3f
766 * (deltaf * deltaf * B_ZZ_0(mu, s, t, u)
767 + sigmaf * sigmaf * B_ZZ_0(mu, s, u, t))
768 - Delta_rho_ef_ZZ(mu, s, t, u, Mw, I3f, Qf));
769}
gslpp::complex B_ZZ_0(const double mu, const double s, const double t, const double u) const
gslpp::complex Delta_rho_ef_ZZ(const double mu, const double s, const double t, const double u, const double Mw, const double I3f, const double Qf) const
An observable class for the relative deviation from the SM of the EM coupling .

◆ Delta_kappa_ef_TOP()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_ef_TOP ( const double  s,
const double  t,
const double  u,
const double  Mw,
const bool  bWWbox 
) const

Definition at line 618 of file EWSMTwoFermionsLEP2.cpp.

621{
622 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2, Mw2 = Mw*Mw;
623 double Mt = cache.getSM().getMtpole();
624 double mu = Mw; // renormalization scale
625
626 gslpp::complex Bww = gslpp::complex(0.0, 0.0, false);
627 if (bWWbox)
628 Bww = Delta_kappa_ef_WW_TOP_hat(s, t, u, Mw);
629
630 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
631 * (-F_W_t_hat(s, Mw)
632 + Mt * Mt / 4.0 / Mw / Mw * (cache.getPV().B0(mu*mu, s, Mw2, Mw2) + 1.0)) + Bww);
633}
gslpp::complex F_W_t_hat(const double s, const double Mw) const
gslpp::complex Delta_kappa_ef_WW_TOP_hat(const double s, const double t, const double u, const double Mw) const

◆ Delta_kappa_ef_WW_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_ef_WW_hat ( const double  s,
const double  t,
const double  u,
const double  Mw,
const double  I3f 
) const

Definition at line 689 of file EWSMTwoFermionsLEP2.cpp.

692{
693 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
694
696 || I3f == cache.getSM().getQuarks(cache.getSM().DOWN).getIsospin())
697 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
698 * (cW2 * (Mz * Mz - s) * B_WW_d_0_hat(s, t, u, Mw)));
699 else if (I3f == cache.getSM().getLeptons(cache.getSM().NEUTRINO_1).getIsospin()
700 || I3f == cache.getSM().getQuarks(cache.getSM().UP).getIsospin())
701 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
702 * (-cW2 * (Mz * Mz - s) * B_WW_c_0_hat(s, t, u, Mw)));
703 else
704 throw std::runtime_error("Error in EWSMTwoFermionsLEP2::Delta_kappa_ef_WW_hat()");
705}

◆ Delta_kappa_ef_WW_TOP_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_ef_WW_TOP_hat ( const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 731 of file EWSMTwoFermionsLEP2.cpp.

733{
734 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
735 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
736 * (cW2 * (Mz * Mz - s) * Delta_B_WW_d_hat(s, t, u, Mw)));
737}

◆ Delta_kappa_ef_ZZ()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_ef_ZZ ( const double  mu,
const double  s,
const double  t,
const double  u,
const double  Mw,
const double  I3f,
const double  Qf 
) const

Definition at line 787 of file EWSMTwoFermionsLEP2.cpp.

791{
792 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
793 double ve = -0.5 + 2.0 * sW2, ae = -0.5, deltae = ve - ae;
794 double vf = I3f - 2.0 * Qf*sW2, af = I3f, deltaf = vf - af;
795
796 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2 * (s - Mz * Mz) / 2.0 / cW2 * deltae * deltaf
797 * B_ZZ_0(mu, s, t, u)
798 - Delta_rho_ef_ZZ(mu, s, t, u, Mw, I3f, Qf));
799}

◆ Delta_kappa_f_TOP()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_f_TOP ( const double  s,
const double  t,
const double  u,
const double  Mw,
const bool  bWWbox 
) const

Definition at line 601 of file EWSMTwoFermionsLEP2.cpp.

604{
605 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2, Mw2 = Mw*Mw;
606 double Mt = cache.getSM().getMtpole();
607 double mu = Mw; // renormalization scale
608
609 gslpp::complex Bww = gslpp::complex(0.0, 0.0, false);
610 if (bWWbox)
611 Bww = Delta_kappa_f_WW_TOP_hat(s, t, u, Mw);
612
613 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
614 * (-F_W_t_hat(s, Mw)
615 + Mt * Mt / 4.0 / Mw / Mw * (cache.getPV().B0(mu*mu, s, Mw2, Mw2) + 1.0)) + Bww);
616}
gslpp::complex Delta_kappa_f_WW_TOP_hat(const double s, const double t, const double u, const double Mw) const

◆ Delta_kappa_f_WW_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_f_WW_hat ( const double  s,
const double  t,
const double  u,
const double  Mw,
const double  I3f 
) const

Definition at line 671 of file EWSMTwoFermionsLEP2.cpp.

674{
675 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
676
678 || I3f == cache.getSM().getQuarks(cache.getSM().DOWN).getIsospin())
679 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
680 * (cW2 * (Mz * Mz - s) * B_WW_d_0_hat(s, t, u, Mw)));
681 else if (I3f == cache.getSM().getLeptons(cache.getSM().NEUTRINO_1).getIsospin()
682 || I3f == cache.getSM().getQuarks(cache.getSM().UP).getIsospin())
683 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
684 * (-cW2 * (Mz * Mz - s) * B_WW_c_0_hat(s, t, u, Mw)));
685 else
686 throw std::runtime_error("Error in EWSMTwoFermionsLEP2::Delta_kappa_f_WW_hat()");
687}

◆ Delta_kappa_f_WW_TOP_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_f_WW_TOP_hat ( const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 723 of file EWSMTwoFermionsLEP2.cpp.

725{
726 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
727 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
728 * (cW2 * (Mz * Mz - s) * Delta_B_WW_d_hat(s, t, u, Mw)));
729}

◆ Delta_kappa_f_ZZ()

gslpp::complex EWSMTwoFermionsLEP2::Delta_kappa_f_ZZ ( const double  mu,
const double  s,
const double  t,
const double  u,
const double  Mw,
const double  I3f,
const double  Qf 
) const

Definition at line 771 of file EWSMTwoFermionsLEP2.cpp.

775{
776 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
777 double I3e = -0.5;
778 double ve = -0.5 + 2.0 * sW2, ae = -0.5, sigmae = ve + ae, deltae = ve - ae;
779 double vf = I3f - 2.0 * Qf*sW2, af = I3f, deltaf = vf - af;
780
781 return ( -cache.getSM().getAle() / 4.0 / M_PI / sW2 * (s - Mz * Mz) / 2.0 / cW2 * deltaf * I3e
782 * (deltae * deltae * B_ZZ_0(mu, s, t, u)
783 + sigmae * sigmae * B_ZZ_0(mu, s, u, t))
784 - Delta_rho_ef_ZZ(mu, s, t, u, Mw, I3f, Qf));
785}

◆ Delta_rho_ef_TOP()

gslpp::complex EWSMTwoFermionsLEP2::Delta_rho_ef_TOP ( const double  s,
const double  t,
const double  u,
const double  Mw,
const bool  bWWbox 
) const

Definition at line 568 of file EWSMTwoFermionsLEP2.cpp.

571{
572 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2, Mw2 = Mw*Mw;
573 double Mt = cache.getSM().getMtpole();
574 double mu = Mw; // renormalization scale
575
576 gslpp::complex Bww = gslpp::complex(0.0, 0.0, false);
577 if (bWWbox)
578 Bww = Delta_rho_ef_WW_TOP_hat(s, t, u, Mw);
579
580 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
581 * (F_W_t_hat(s, Mw)
582 - Mt * Mt / 4.0 / Mw / Mw * (cache.getPV().B0(mu*mu, s, Mw2, Mw2) + 1.0)) + Bww);
583}
gslpp::complex Delta_rho_ef_WW_TOP_hat(const double s, const double t, const double u, const double Mw) const

◆ Delta_rho_ef_WW_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_rho_ef_WW_hat ( const double  s,
const double  t,
const double  u,
const double  Mw,
const double  I3f 
) const

Definition at line 635 of file EWSMTwoFermionsLEP2.cpp.

638{
639 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
640
642 || I3f == cache.getSM().getQuarks(cache.getSM().DOWN).getIsospin())
643 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
644 * (-cW2 * (Mz * Mz - s) * B_WW_d_0_hat(s, t, u, Mw)));
645 else if (I3f == cache.getSM().getLeptons(cache.getSM().NEUTRINO_1).getIsospin()
646 || I3f == cache.getSM().getQuarks(cache.getSM().UP).getIsospin())
647 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
648 * (cW2 * (Mz * Mz - s) * B_WW_c_0_hat(s, t, u, Mw)));
649 else
650 throw std::runtime_error("Error in EWSMTwoFermionsLEP2::Delta_rho_ef_WW_hat()");
651}

◆ Delta_rho_ef_WW_TOP_hat()

gslpp::complex EWSMTwoFermionsLEP2::Delta_rho_ef_WW_TOP_hat ( const double  s,
const double  t,
const double  u,
const double  Mw 
) const

Definition at line 707 of file EWSMTwoFermionsLEP2.cpp.

709{
710 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
711 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2
712 * (-cW2 * (Mz * Mz - s) * Delta_B_WW_d_hat(s, t, u, Mw)));
713}

◆ Delta_rho_ef_ZZ()

gslpp::complex EWSMTwoFermionsLEP2::Delta_rho_ef_ZZ ( const double  mu,
const double  s,
const double  t,
const double  u,
const double  Mw,
const double  I3f,
const double  Qf 
) const

Definition at line 739 of file EWSMTwoFermionsLEP2.cpp.

743{
744 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2;
745 double I3e = -0.5;
746 double ve = -0.5 + 2.0 * sW2, ae = -0.5;
747 double vf = I3f - 2.0 * Qf*sW2, af = I3f;
748
749 return ( cache.getSM().getAle() / 4.0 / M_PI / sW2 * (s - Mz * Mz) / 2.0 / cW2
750 * ((4.0 * I3e * I3f * (ve * ve + ae * ae)*(vf * vf + af * af) + ve * vf)
751 * B_ZZ_0(mu, s, t, u)
752 + (4.0 * I3e * I3f * (ve * ve + ae * ae)*(vf * vf + af * af) - ve * vf)
753 * B_ZZ_0(mu, s, u, t)));
754}

◆ DeltaRhobar()

gslpp::complex EWSMTwoFermionsLEP2::DeltaRhobar ( const double  mu,
const double  Mw 
) const

Definition at line 827 of file EWSMTwoFermionsLEP2.cpp.

828{
829 return myOneLoopEW.DeltaRhobar(mu, Mw);
830}
double DeltaRhobar(const double mu, const double Mw_i) const
.

◆ DeltaRhobarZ()

gslpp::complex EWSMTwoFermionsLEP2::DeltaRhobarZ ( const double  mu,
const double  Mw 
) const

Definition at line 832 of file EWSMTwoFermionsLEP2.cpp.

833{
834 return ( myOneLoopEW.DeltaRhobar(mu, Mw) + myOneLoopEW.DeltaRhobarW(mu, Mw));
835}
double DeltaRhobarW(const double mu, const double Mw_i) const
.

◆ dsigma()

double EWSMTwoFermionsLEP2::dsigma ( const double  s,
const double  cosTheta,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const double  Ncf,
const bool  bWeak 
) const
private

Definition at line 1366 of file EWSMTwoFermionsLEP2.cpp.

1371{
1372 double betaf = sqrt(1.0 - 4.0*mf*mf/s);
1373 double G1 = G_1_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1374 double G2 = G_2_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1375 double G3 = G_3_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1376
1377 return ( M_PI*cache.getSM().getAle()*cache.getSM().getAle()/s*Ncf*betaf
1378 *( G1*(1.0 + cosTheta*cosTheta)/2.0
1379 + 2.0*mf*mf/s*G2*(1.0 - cosTheta*cosTheta)
1380 + betaf*G3*cosTheta ) );
1381}

◆ dsigma_box()

double EWSMTwoFermionsLEP2::dsigma_box ( const double  s,
const double  cosTheta,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const double  Ncf 
) const
private

Definition at line 1384 of file EWSMTwoFermionsLEP2.cpp.

1389{
1390 double betaf = sqrt(1.0 - 4.0*mf*mf/s);
1391
1392 //double t = mf*mf - s/2.0*(1.0 - betaf*cosTheta);
1393 double t = - s/2.0*(1.0 - betaf*cosTheta);
1394
1395 double G1 = G_1_box(s, t, Mw, GammaZ, I3f, Qf, mf, mfp);
1396 double G2 = G_2_box(s, t, Mw, GammaZ, I3f, Qf, mf, mfp);
1397 double G3 = G_3_box(s, t, Mw, GammaZ, I3f, Qf, mf, mfp);
1398
1399 return ( M_PI*cache.getSM().getAle()*cache.getSM().getAle()/s*Ncf*betaf
1400 *( G1*(1.0 + cosTheta*cosTheta)/2.0
1401 + 2.0*mf*mf/s*G2*(1.0 - cosTheta*cosTheta)
1402 + betaf*G3*cosTheta ) );
1403}
double G_3_box(const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWWbox=true, const bool bZZbox=true) const
double G_1_box(const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWWbox=true, const bool bZZbox=true) const
double G_2_box(const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWWbox=true, const bool bZZbox=true) const

◆ dsigma_l()

double EWSMTwoFermionsLEP2::dsigma_l ( const QCD::lepton  l,
const double  mf,
const double  s,
const double  cosTheta,
const double  Mw,
const double  GammaZ,
const bool  bWeak 
) const
Parameters
[in]llepton in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]cosThetacosine of the scattering angle theta
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
[in]bWeakflag to control weak corrections (not including box diagrams)
Returns
the differential cross section d sigma(e^+ e^- -> l lbar)/d cosTheta in GeV^{-2}

Definition at line 1149 of file EWSMTwoFermionsLEP2.cpp.

1153{
1154 double I3f = cache.getSM().getLeptons(l).getIsospin();
1155 double Qf = cache.getSM().getLeptons(l).getCharge();
1156
1157 return ( dsigma(s, cosTheta, Mw, GammaZ, I3f, Qf, mf, 0.0, 1.0, bWeak) );
1158}
double dsigma(const double s, const double cosTheta, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const double Ncf, const bool bWeak) const

◆ dsigma_l_box()

double EWSMTwoFermionsLEP2::dsigma_l_box ( const QCD::lepton  l,
const double  mf,
const double  s,
const double  cosTheta,
const double  Mw,
const double  GammaZ 
) const
Parameters
[in]llepton in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]cosThetacosine of the scattering angle theta
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
Returns
the box contribution to the differential cross section d sigma(e^+ e^- -> l lbar)/d cosTheta in GeV^{-2}

Definition at line 1180 of file EWSMTwoFermionsLEP2.cpp.

1183{
1184 double I3f = cache.getSM().getLeptons(l).getIsospin();
1185 double Qf = cache.getSM().getLeptons(l).getCharge();
1186
1187 return ( dsigma_box(s, cosTheta, Mw, GammaZ, I3f, Qf, mf, 0.0, 1.0) );
1188}
double dsigma_box(const double s, const double cosTheta, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const double Ncf) const

◆ dsigma_q()

double EWSMTwoFermionsLEP2::dsigma_q ( const QCD::quark  q,
const double  mf,
const double  s,
const double  cosTheta,
const double  Mw,
const double  GammaZ,
const bool  bWeak 
) const
Parameters
[in]qquark in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]cosThetacosine of the scattering angle theta
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
[in]bWeakflag to control weak corrections (not including box diagrams)
Returns
the differential cross section d sigma(e^+ e^- -> q qbar)/d cosTheta in GeV^{-2}

Definition at line 1161 of file EWSMTwoFermionsLEP2.cpp.

1165{
1166 double I3f = cache.getSM().getQuarks(q).getIsospin();
1167 double Qf = cache.getSM().getQuarks(q).getCharge();
1168 double mfp;
1169 if (q==cache.getSM().TOP)
1170 throw std::runtime_error("Error in LEP2TwoFermions::sigma_q()");
1171 else if (q==cache.getSM().BOTTOM)
1172 mfp = cache.getSM().getMtpole();
1173 else
1174 mfp = 0.0;
1175
1176 return ( dsigma(s, cosTheta, Mw, GammaZ, I3f, Qf, mf, mfp, 3.0, bWeak) );
1177}

◆ dsigma_q_box()

double EWSMTwoFermionsLEP2::dsigma_q_box ( const QCD::quark  q,
const double  mf,
const double  s,
const double  cosTheta,
const double  Mw,
const double  GammaZ 
) const
Parameters
[in]qquark in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]cosThetacosine of the scattering angle theta
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
Returns
the box contribution to the differential cross section d sigma(e^+ e^- -> q qbar)/d cosTheta in GeV^{-2}

Definition at line 1191 of file EWSMTwoFermionsLEP2.cpp.

1194{
1195 double I3f = cache.getSM().getQuarks(q).getIsospin();
1196 double Qf = cache.getSM().getQuarks(q).getCharge();
1197 double mfp;
1198 if (q==cache.getSM().TOP)
1199 throw std::runtime_error("Error in LEP2TwoFermions::sigma_q()");
1200 else if (q==cache.getSM().BOTTOM)
1201 mfp = cache.getSM().getMtpole();
1202 else
1203 mfp = 0.0;
1204
1205 return ( dsigma_box(s, cosTheta, Mw, GammaZ, I3f, Qf, mf, mfp, 3.0) );
1206}

◆ F_W_0()

gslpp::complex EWSMTwoFermionsLEP2::F_W_0 ( const double  s,
const double  Mw 
) const

Definition at line 888 of file EWSMTwoFermionsLEP2.cpp.

889{
890 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
891 return ( cW2 * F_Wn_0(s, Mw) - F_Wa_0(s, Mw) / 2.0);
892}
gslpp::complex F_Wn_0(const double s, const double Mw) const
gslpp::complex F_Wa_0(const double s, const double Mw) const

◆ F_W_0_hat()

gslpp::complex EWSMTwoFermionsLEP2::F_W_0_hat ( const double  s,
const double  Mw 
) const

Definition at line 1050 of file EWSMTwoFermionsLEP2.cpp.

1051{
1052 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
1053 gslpp::complex F_W_0 = cW2 * F_Wn_0(s, Mw) - F_Wa_0(s, Mw) / 2.0;
1054
1055 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
1056 if (!bKeepNonUnitary) {
1057 double Rw = Mw * Mw / s;
1058 double mu = Mw;
1059 add = cW2 * (-3.0 / 2.0 / Rw - 1.0 / 12.0 / Rw / Rw) * cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw)
1060 + cW2 * (11.0 / 18.0 / Rw - 1.0 / 18.0 / Rw / Rw);
1061 }
1062
1063 return ( F_W_0 + add);
1064}
gslpp::complex F_W_0(const double s, const double Mw) const

◆ F_W_t()

gslpp::complex EWSMTwoFermionsLEP2::F_W_t ( const double  s,
const double  Mw 
) const

Definition at line 894 of file EWSMTwoFermionsLEP2.cpp.

895{
896 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
897 return ( cW2 * F_Wn_t(s, Mw) - F_Wa_t(s, Mw) / 2.0
898 - myOneLoopEW.FbarWa_t(s, Mw) / 2.0);
899}
gslpp::complex FbarWa_t(const double s, const double Mw_i) const
The form factor .
gslpp::complex F_Wn_t(const double s, const double Mw) const

◆ F_W_t_hat()

gslpp::complex EWSMTwoFermionsLEP2::F_W_t_hat ( const double  s,
const double  Mw 
) const

Definition at line 1066 of file EWSMTwoFermionsLEP2.cpp.

1067{
1068 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
1069 gslpp::complex F_W_t = cW2 * F_Wn_t(s, Mw) - F_Wa_t(s, Mw) / 2.0
1070 - myOneLoopEW.FbarWa_t(s, Mw) / 2.0;
1071
1072 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
1073 if (!bKeepNonUnitary) {
1074 double Mt = cache.getSM().getMtpole();
1075 double Rw = Mw * Mw / s;
1076 double mu = Mw;
1077 add = Mt * Mt / 4.0 / Rw / Mz / Mz * (cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw) + 1.0);
1078 }
1079
1080 return ( F_W_t + add);
1081}
gslpp::complex F_W_t(const double s, const double Mw) const

◆ F_Wa_0()

gslpp::complex EWSMTwoFermionsLEP2::F_Wa_0 ( const double  s,
const double  Mw 
) const

Definition at line 868 of file EWSMTwoFermionsLEP2.cpp.

869{
870 return myOneLoopEW.FWa_0(s, Mw);
871}
gslpp::complex FWa_0(const double s, const double Mw_i) const
The form factor .

◆ F_Wa_t()

gslpp::complex EWSMTwoFermionsLEP2::F_Wa_t ( const double  s,
const double  Mw 
) const

Definition at line 873 of file EWSMTwoFermionsLEP2.cpp.

874{
875 return myOneLoopEW.FWa_t(s, Mw);
876}
gslpp::complex FWa_t(const double s, const double Mw_i) const
The form factor .

◆ F_Wn_0()

gslpp::complex EWSMTwoFermionsLEP2::F_Wn_0 ( const double  s,
const double  Mw 
) const

Definition at line 878 of file EWSMTwoFermionsLEP2.cpp.

879{
880 return myOneLoopEW.FWn_0(s, Mw);
881}
gslpp::complex FWn_0(const double s, const double Mw_i) const
The form factor .

◆ F_Wn_0_hat()

gslpp::complex EWSMTwoFermionsLEP2::F_Wn_0_hat ( const double  s,
const double  Mw 
) const

Definition at line 1023 of file EWSMTwoFermionsLEP2.cpp.

1024{
1025 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
1026 if (!bKeepNonUnitary) {
1027 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
1028 double Rw = Mw * Mw / s;
1029 double mu = Mw;
1030 add = -s / (s - Mz * Mz)*(-1.0 / 12.0 / Rw / cW2 + 3.0 / 2.0 / Rw + 1.0 / 12.0 / Rw / Rw)
1031 * cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw)
1032 - s / (s - Mz * Mz)*(-1.0 / 18.0 / Rw / cW2 - 11.0 / 18.0 / Rw + 1.0 / 18.0 / Rw / Rw);
1033 }
1034
1035 return ( F_Wn_0(s, Mw) + add);
1036}

◆ F_Wn_t()

gslpp::complex EWSMTwoFermionsLEP2::F_Wn_t ( const double  s,
const double  Mw 
) const

Definition at line 883 of file EWSMTwoFermionsLEP2.cpp.

884{
885 return myOneLoopEW.FWn_t(s, Mw);
886}
gslpp::complex FWn_t(const double s, const double Mw_i) const
The form factor .

◆ F_Wn_t_hat()

gslpp::complex EWSMTwoFermionsLEP2::F_Wn_t_hat ( const double  s,
const double  Mw 
) const

Definition at line 1038 of file EWSMTwoFermionsLEP2.cpp.

1039{
1040 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
1041 if (!bKeepNonUnitary) {
1042 double Mz = cache.getSM().getMz(), Rw = Mw * Mw / s, Mt = cache.getSM().getMtpole();
1043 double mu = Mw;
1044 add = Mt * Mt * s / 4.0 / Rw / Mw / Mw / (s - Mz * Mz)*(cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw) + 1.0);
1045 }
1046
1047 return ( F_Wn_t(s, Mw) + add);
1048}

◆ F_za_0()

gslpp::complex EWSMTwoFermionsLEP2::F_za_0 ( const double  s,
const double  Mw 
) const

Definition at line 863 of file EWSMTwoFermionsLEP2.cpp.

864{
865 return myOneLoopEW.FZa_0(s, Mw);
866}
gslpp::complex FZa_0(const double s, const double Mw_i) const
The form factor .

◆ G_1()

double EWSMTwoFermionsLEP2::G_1 ( const double  s,
const double  t,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 24 of file EWSMTwoFermionsLEP2.cpp.

30{
31 gslpp::complex Vpol = V_pol(s);
32 gslpp::complex rhoef, Ge, Gf, Gef;
33 rhoef = rho_ef(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
34 Ge = G_e(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
35 Gf = G_f(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
36 Gef = G_ef(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
37
38 return ( Qf * Qf * Vpol.abs2()
39 + 2.0 * fabs(Qf)*(Vpol.conjugate() * rhoef * Gef * chi_Z(s, Mw, GammaZ)).real()
40 + rhoef.abs2()*(Gef.abs2() + Gf.abs2() + Ge.abs2() + 1.0)
41 * chi_Z(s, Mw, GammaZ).abs2());
42}
gslpp::complex G_e(const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
gslpp::complex V_pol(const double s) const
gslpp::complex rho_ef(const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
gslpp::complex chi_Z(const double s, const double Mw, const double GammaZ) const
gslpp::complex G_ef(const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const
gslpp::complex G_f(const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const

◆ G_1_box()

double EWSMTwoFermionsLEP2::G_1_box ( const double  s,
const double  t,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWWbox = true,
const bool  bZZbox = true 
) const

Definition at line 112 of file EWSMTwoFermionsLEP2.cpp.

117{
118 //double u = 2.0*mf*mf - s - t;
119 double u = -s - t;
120
121 double Mz = cache.getSM().getMz(), sW2 = 1.0 - Mw * Mw / (Mz * Mz);
122 double mu = Mw; // renormalization scale
123 gslpp::complex Vpol = V_pol(s);
124 gslpp::complex D_rho_ef = gslpp::complex(0.0, 0.0, false);
125 gslpp::complex D_kappa_e = gslpp::complex(0.0, 0.0, false);
126 gslpp::complex D_kappa_f = gslpp::complex(0.0, 0.0, false);
127 gslpp::complex D_kappa_ef = gslpp::complex(0.0, 0.0, false);
128
129 // WW box
130 if (bWWbox) {
131 D_rho_ef += Delta_rho_ef_WW_hat(s, t, u, Mw, I3f);
132 D_kappa_e += Delta_kappa_e_WW_hat(s, t, u, Mw, I3f);
133 D_kappa_f += Delta_kappa_f_WW_hat(s, t, u, Mw, I3f);
134 D_kappa_ef += Delta_kappa_ef_WW_hat(s, t, u, Mw, I3f);
135 }
136
137 // ZZ box
138 if (bZZbox) {
139 D_rho_ef += Delta_rho_ef_ZZ(mu, s, t, u, Mw, I3f, Qf);
140 D_kappa_e += Delta_kappa_e_ZZ(mu, s, t, u, Mw, I3f, Qf);
141 D_kappa_f += Delta_kappa_f_ZZ(mu, s, t, u, Mw, I3f, Qf);
142 D_kappa_ef += Delta_kappa_ef_ZZ(mu, s, t, u, Mw, I3f, Qf);
143 }
144
145 // Top quark contribution in e^+ e^- -> b bbar
148 && mfp != 0.0) {
149 D_rho_ef += Delta_rho_ef_WW_TOP_hat(s, t, u, Mw);
150 D_kappa_e += Delta_kappa_e_WW_TOP_hat(s, t, u, Mw);
151 D_kappa_f += Delta_kappa_f_WW_TOP_hat(s, t, u, Mw);
152 D_kappa_ef += Delta_kappa_ef_WW_TOP_hat(s, t, u, Mw);
153 }
154
155 // G_e, G_f and G_ef at tree-level
156 double G_e0 = 1.0 - 4.0 * sW2;
157 double G_f0 = 1.0 - 4.0 * fabs(Qf) * sW2;
158 double G_ef0 = -1.0 + G_e0 + G_f0 + 16.0 * fabs(Qf) * sW2*sW2;
159
160 // corrections to G_e, G_f and G_ef
161 gslpp::complex D_G_e = -4.0 * D_kappa_e*sW2;
162 gslpp::complex D_G_f = -4.0 * fabs(Qf) * D_kappa_f*sW2;
163 gslpp::complex D_G_ef = D_G_e + D_G_f + 16.0 * fabs(Qf) * D_kappa_ef * sW2*sW2;
164
165 double chiZ2 = chi_Z(s, Mw, GammaZ).abs2();
166
167 double G1_alpha, G1_alpha2; // O(alpha) and O(alpha^2)
168 G1_alpha = 2.0 * fabs(Qf) * ((D_rho_ef * G_ef0 + D_G_ef) * Vpol.conjugate()
169 * chi_Z(s, Mw, GammaZ)).real()
170 + 2.0 * D_rho_ef.real()*(G_ef0 * G_ef0 + G_f0 * G_f0 + G_e0 * G_e0 + 1.0) * chiZ2
171 + 2.0 * (G_ef0 * D_G_ef + G_f0 * D_G_f + G_e0 * D_G_e).real() * chiZ2;
172 G1_alpha2 = 2.0 * fabs(Qf)
173 *(D_rho_ef * D_G_ef * Vpol.conjugate() * chi_Z(s, Mw, GammaZ)).real()
174 + D_rho_ef.abs2()*(G_ef0 * G_ef0 + G_f0 * G_f0 + G_e0 * G_e0 + 1.0) * chiZ2
175 + (D_G_ef.abs2() + D_G_f.abs2() + D_G_e.abs2()) * chiZ2
176 + (2.0 * D_rho_ef.real() + D_rho_ef.abs2())
177 *(2.0 * (G_ef0 * D_G_ef + G_f0 * D_G_f + G_e0 * D_G_e).real()
178 + D_G_ef.abs2() + D_G_f.abs2() + D_G_e.abs2()) * chiZ2;
179
180 return ( G1_alpha + G1_alpha2);
181}
gslpp::complex Delta_kappa_f_WW_hat(const double s, const double t, const double u, const double Mw, const double I3f) const
gslpp::complex Delta_kappa_e_WW_hat(const double s, const double t, const double u, const double Mw, const double I3f) const
gslpp::complex Delta_kappa_e_ZZ(const double mu, const double s, const double t, const double u, const double Mw, const double I3f, const double Qf) const
gslpp::complex Delta_kappa_f_ZZ(const double mu, const double s, const double t, const double u, const double Mw, const double I3f, const double Qf) const
gslpp::complex Delta_rho_ef_WW_hat(const double s, const double t, const double u, const double Mw, const double I3f) const
gslpp::complex Delta_kappa_ef_WW_hat(const double s, const double t, const double u, const double Mw, const double I3f) const
gslpp::complex Delta_kappa_ef_ZZ(const double mu, const double s, const double t, const double u, const double Mw, const double I3f, const double Qf) const

◆ G_1_noBox()

double EWSMTwoFermionsLEP2::G_1_noBox ( const double  s,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak 
) const

Definition at line 82 of file EWSMTwoFermionsLEP2.cpp.

86{
87 bool bWWbox = false, bZZbox = false;
88 double t = 0.0; //dummy
89 return ( G_1(s, t, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox));
90}
double G_1(const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const

◆ G_2()

double EWSMTwoFermionsLEP2::G_2 ( const double  s,
const double  t,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 44 of file EWSMTwoFermionsLEP2.cpp.

50{
51 gslpp::complex Vpol = V_pol(s);
52 gslpp::complex rhoef, Ge, Gf, Gef;
53 rhoef = rho_ef(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
54 Ge = G_e(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
55 Gf = G_f(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
56 Gef = G_ef(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
57
58 return ( Qf * Qf * Vpol.abs2()
59 + 2.0 * fabs(Qf)*(Vpol.conjugate() * rhoef * Gef * chi_Z(s, Mw, GammaZ)).real()
60 + rhoef.abs2()*(Gef.abs2() + Gf.abs2()) * chi_Z(s, Mw, GammaZ).abs2());
61}

◆ G_2_box()

double EWSMTwoFermionsLEP2::G_2_box ( const double  s,
const double  t,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWWbox = true,
const bool  bZZbox = true 
) const

Definition at line 183 of file EWSMTwoFermionsLEP2.cpp.

188{
189 //double u = 2.0*mf*mf - s - t;
190 double u = -s - t;
191
192 double Mz = cache.getSM().getMz(), sW2 = 1.0 - Mw * Mw / (Mz * Mz);
193 double mu = Mw; // renormalization scale
194 gslpp::complex Vpol = V_pol(s);
195 gslpp::complex D_rho_ef = gslpp::complex(0.0, 0.0, false);
196 gslpp::complex D_kappa_e = gslpp::complex(0.0, 0.0, false);
197 gslpp::complex D_kappa_f = gslpp::complex(0.0, 0.0, false);
198 gslpp::complex D_kappa_ef = gslpp::complex(0.0, 0.0, false);
199
200 // WW box
201 if (bWWbox) {
202 D_rho_ef += Delta_rho_ef_WW_hat(s, t, u, Mw, I3f);
203 D_kappa_e += Delta_kappa_e_WW_hat(s, t, u, Mw, I3f);
204 D_kappa_f += Delta_kappa_f_WW_hat(s, t, u, Mw, I3f);
205 D_kappa_ef += Delta_kappa_ef_WW_hat(s, t, u, Mw, I3f);
206 }
207
208 // ZZ box
209 if (bZZbox) {
210 D_rho_ef += Delta_rho_ef_ZZ(mu, s, t, u, Mw, I3f, Qf);
211 D_kappa_e += Delta_kappa_e_ZZ(mu, s, t, u, Mw, I3f, Qf);
212 D_kappa_f += Delta_kappa_f_ZZ(mu, s, t, u, Mw, I3f, Qf);
213 D_kappa_ef += Delta_kappa_ef_ZZ(mu, s, t, u, Mw, I3f, Qf);
214 }
215
216 // Top quark contribution in e^+ e^- -> b bbar
219 && mfp != 0.0) {
220 D_rho_ef += Delta_rho_ef_WW_TOP_hat(s, t, u, Mw);
221 D_kappa_e += Delta_kappa_e_WW_TOP_hat(s, t, u, Mw);
222 D_kappa_f += Delta_kappa_f_WW_TOP_hat(s, t, u, Mw);
223 D_kappa_ef += Delta_kappa_ef_WW_TOP_hat(s, t, u, Mw);
224 }
225
226 // G_e, G_f and G_ef at tree-level
227 double G_e0 = 1.0 - 4.0 * sW2;
228 double G_f0 = 1.0 - 4.0 * fabs(Qf) * sW2;
229 double G_ef0 = -1.0 + G_e0 + G_f0 + 16.0 * fabs(Qf) * sW2*sW2;
230
231 // corrections to G_e, G_f and G_ef
232 gslpp::complex D_G_e = -4.0 * D_kappa_e*sW2;
233 gslpp::complex D_G_f = -4.0 * fabs(Qf) * D_kappa_f*sW2;
234 gslpp::complex D_G_ef = D_G_e + D_G_f + 16.0 * fabs(Qf) * D_kappa_ef * sW2*sW2;
235
236 double chiZ2 = chi_Z(s, Mw, GammaZ).abs2();
237
238 double G2_alpha, G2_alpha2; // O(alpha) and O(alpha^2)
239 G2_alpha = 2.0 * fabs(Qf) * ((D_rho_ef * G_ef0 + D_G_ef) * Vpol.conjugate()
240 * chi_Z(s, Mw, GammaZ)).real()
241 + 2.0 * D_rho_ef.real()*(G_ef0 * G_ef0 + G_f0 * G_f0) * chiZ2
242 + 2.0 * (G_ef0 * D_G_ef + G_f0 * D_G_f).real() * chiZ2;
243 G2_alpha2 = 2.0 * fabs(Qf)
244 *(D_rho_ef * D_G_ef * Vpol.conjugate() * chi_Z(s, Mw, GammaZ)).real()
245 + D_rho_ef.abs2()*(G_ef0 * G_ef0 + G_f0 * G_f0) * chiZ2
246 + (D_G_ef.abs2() + D_G_f.abs2()) * chiZ2
247 + (2.0 * D_rho_ef.real() + D_rho_ef.abs2())
248 *(2.0 * (G_ef0 * D_G_ef + G_f0 * D_G_f).real()
249 + D_G_ef.abs2() + D_G_f.abs2()) * chiZ2;
250
251 return ( G2_alpha + G2_alpha2);
252}

◆ G_2_noBox()

double EWSMTwoFermionsLEP2::G_2_noBox ( const double  s,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak 
) const

Definition at line 92 of file EWSMTwoFermionsLEP2.cpp.

96{
97 bool bWWbox = false, bZZbox = false;
98 double t = 0.0; //dummy
99 return ( G_2(s, t, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox));
100}
double G_2(const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const

◆ G_3()

double EWSMTwoFermionsLEP2::G_3 ( const double  s,
const double  t,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 63 of file EWSMTwoFermionsLEP2.cpp.

69{
70 gslpp::complex Vpol = V_pol(s);
71 gslpp::complex rhoef, Ge, Gf, Gef;
72 rhoef = rho_ef(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
73 Ge = G_e(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
74 Gf = G_f(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
75 Gef = G_ef(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox);
76
77 return ( 2.0 * fabs(Qf)*(rhoef * Vpol.conjugate() * chi_Z(s, Mw, GammaZ)).real()
78 + 2.0 * rhoef.abs2()
79 *(Ge * Gf.conjugate() + Gef).real() * chi_Z(s, Mw, GammaZ).abs2());
80}

◆ G_3_box()

double EWSMTwoFermionsLEP2::G_3_box ( const double  s,
const double  t,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWWbox = true,
const bool  bZZbox = true 
) const

Definition at line 254 of file EWSMTwoFermionsLEP2.cpp.

259{
260 //double u = 2.0*mf*mf - s - t;
261 double u = -s - t;
262
263 double Mz = cache.getSM().getMz(), sW2 = 1.0 - Mw * Mw / (Mz * Mz);
264 double mu = Mw; // renormalization scale
265 gslpp::complex Vpol = V_pol(s);
266 gslpp::complex D_rho_ef = gslpp::complex(0.0, 0.0, false);
267 gslpp::complex D_kappa_e = gslpp::complex(0.0, 0.0, false);
268 gslpp::complex D_kappa_f = gslpp::complex(0.0, 0.0, false);
269 gslpp::complex D_kappa_ef = gslpp::complex(0.0, 0.0, false);
270
271 // WW box
272 if (bWWbox) {
273 D_rho_ef += Delta_rho_ef_WW_hat(s, t, u, Mw, I3f);
274 D_kappa_e += Delta_kappa_e_WW_hat(s, t, u, Mw, I3f);
275 D_kappa_f += Delta_kappa_f_WW_hat(s, t, u, Mw, I3f);
276 D_kappa_ef += Delta_kappa_ef_WW_hat(s, t, u, Mw, I3f);
277 }
278
279 // ZZ box
280 if (bZZbox) {
281 D_rho_ef += Delta_rho_ef_ZZ(mu, s, t, u, Mw, I3f, Qf);
282 D_kappa_e += Delta_kappa_e_ZZ(mu, s, t, u, Mw, I3f, Qf);
283 D_kappa_f += Delta_kappa_f_ZZ(mu, s, t, u, Mw, I3f, Qf);
284 D_kappa_ef += Delta_kappa_ef_ZZ(mu, s, t, u, Mw, I3f, Qf);
285 }
286
287 // Top quark contribution in e^+ e^- -> b bbar
290 && mfp != 0.0) {
291 D_rho_ef += Delta_rho_ef_WW_TOP_hat(s, t, u, Mw);
292 D_kappa_e += Delta_kappa_e_WW_TOP_hat(s, t, u, Mw);
293 D_kappa_f += Delta_kappa_f_WW_TOP_hat(s, t, u, Mw);
294 D_kappa_ef += Delta_kappa_ef_WW_TOP_hat(s, t, u, Mw);
295 }
296
297 // G_e, G_f and G_ef at tree-level
298 double G_e0 = 1.0 - 4.0 * sW2;
299 double G_f0 = 1.0 - 4.0 * fabs(Qf) * sW2;
300 double G_ef0 = -1.0 + G_e0 + G_f0 + 16.0 * fabs(Qf) * sW2*sW2;
301
302 // corrections to G_e, G_f and G_ef
303 gslpp::complex D_G_e = -4.0 * D_kappa_e*sW2;
304 gslpp::complex D_G_f = -4.0 * fabs(Qf) * D_kappa_f*sW2;
305 gslpp::complex D_G_ef = D_G_e + D_G_f + 16.0 * fabs(Qf) * D_kappa_ef * sW2*sW2;
306
307 double chiZ2 = chi_Z(s, Mw, GammaZ).abs2();
308
309 double G3_alpha, G3_alpha2; // O(alpha) and O(alpha^2)
310 G3_alpha = 2.0 * fabs(Qf) * (D_rho_ef * Vpol.conjugate() * chi_Z(s, Mw, GammaZ)).real()
311 + 4.0 * D_rho_ef.real()*(G_e0 * G_f0 + G_ef0) * chiZ2
312 + 2.0 * (G_e0 * D_G_f.conjugate() + G_f0 * D_G_e + D_G_ef).real() * chiZ2;
313 G3_alpha2 = 2.0 * (2.0 * D_rho_ef.real() + D_rho_ef.abs2())
314 *(G_e0 * D_G_f.conjugate() + G_f0 * D_G_e + D_G_ef
315 + D_G_e * D_G_f.conjugate()).real() * chiZ2
316 + 2.0 * (D_G_e * D_G_f.conjugate()).real() * chiZ2
317 + 2.0 * D_rho_ef.abs2()*(G_e0 * G_f0 + G_ef0) * chiZ2;
318
319 return ( G3_alpha + G3_alpha2);
320}

◆ G_3_noBox()

double EWSMTwoFermionsLEP2::G_3_noBox ( const double  s,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak 
) const

Definition at line 102 of file EWSMTwoFermionsLEP2.cpp.

106{
107 bool bWWbox = false, bZZbox = false;
108 double t = 0.0; //dummy
109 return ( G_3(s, t, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox));
110}
double G_3(const double s, const double t, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const

◆ G_3prime_l()

double EWSMTwoFermionsLEP2::G_3prime_l ( const QCD::lepton  l,
const double  mf,
const double  s,
const double  Mw,
const double  GammaZ,
const bool  bWeak 
) const
Parameters
[in]llepton in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
[in]bWeakflag to control weak corrections (not including box diagrams)
Returns
the form factor beta_f^2*G_3(s) for e^+ e^- -> l lbar

Definition at line 1319 of file EWSMTwoFermionsLEP2.cpp.

1323{
1324 double betaf = sqrt(1.0 - 4.0*mf*mf/s);
1325 double I3f = cache.getSM().getLeptons(l).getIsospin();
1326 double Qf = cache.getSM().getLeptons(l).getCharge();
1327 double G3 = cache.getSM().getMyTwoFermionsLEP2()->G_3_noBox(s, Mw, GammaZ, I3f, Qf, mf, 0.0, bWeak);
1328
1329 return ( betaf*betaf*G3 );
1330}
EWSMTwoFermionsLEP2 * getMyTwoFermionsLEP2() const
A get method to retrieve the member pointer of type EWSMTwoFermionsLEP2.

◆ G_3prime_q()

double EWSMTwoFermionsLEP2::G_3prime_q ( const QCD::quark  q,
const double  mf,
const double  s,
const double  Mw,
const double  GammaZ,
const bool  bWeak 
) const
Parameters
[in]qquark in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
[in]bWeakflag to control weak corrections (not including box diagrams)
Returns
the form factor beta_f^2*G_3(s) for e^+ e^- -> q qbar

Definition at line 1333 of file EWSMTwoFermionsLEP2.cpp.

1337{
1338 double betaf = sqrt(1.0 - 4.0*mf*mf/s);
1339 double I3f = cache.getSM().getQuarks(q).getIsospin();
1340 double Qf = cache.getSM().getQuarks(q).getCharge();
1341 double mfp;
1342 if (q==cache.getSM().TOP)
1343 throw std::runtime_error("Error in LEP2TwoFermions::G_3prime_q()");
1344 else if (q==cache.getSM().BOTTOM)
1345 mfp = cache.getSM().getMtpole();
1346 else
1347 mfp = 0.0;
1348 double G3 = G_3_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1349
1350 return ( betaf*betaf*G3 );
1351}

◆ G_e()

gslpp::complex EWSMTwoFermionsLEP2::G_e ( const double  s,
const double  t,
const double  Mw,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 348 of file EWSMTwoFermionsLEP2.cpp.

353{
354 double Mz = cache.getSM().getMz(), sW2 = 1.0 - Mw * Mw / (Mz * Mz);
355 return ( 1.0
356 - 4.0 * (kappa_e(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox) * sW2
357 //+ I2e(s,Mw,bWeak)
358 ));
359}
gslpp::complex kappa_e(const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const

◆ G_ef()

gslpp::complex EWSMTwoFermionsLEP2::G_ef ( const double  s,
const double  t,
const double  Mw,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 374 of file EWSMTwoFermionsLEP2.cpp.

379{
380 double Mz = cache.getSM().getMz(), sW2 = 1.0 - Mw * Mw / (Mz * Mz);
381 return ( -1.0 + G_e(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox)
382 + G_f(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox)
383 + 16.0 * fabs(Qf)
384 *(kappa_ef(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox) * sW2 * sW2
385 //+ (kappa_e(s,t,Mw,I3f,Qf,mf,mfp,bWeak,bWWbox,bZZbox)*I2e(s,Mw,bWeak)
386 // + kappa_f(s,t,Mw,I3f,Qf,mf,mfp,bWeak,bWWbox,bZZbox)*I2f(s,Mw,bWeak))*sW2
387 ));
388}
gslpp::complex kappa_ef(const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const

◆ G_f()

gslpp::complex EWSMTwoFermionsLEP2::G_f ( const double  s,
const double  t,
const double  Mw,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 361 of file EWSMTwoFermionsLEP2.cpp.

366{
367 double Mz = cache.getSM().getMz(), sW2 = 1.0 - Mw * Mw / (Mz * Mz);
368 return ( 1.0
369 - 4.0 * fabs(Qf)*(kappa_f(s, t, Mw, I3f, Qf, mf, mfp, bWeak, bWWbox, bZZbox) * sW2
370 //+ I2f(s,Mw,bWeak)
371 ));
372}
gslpp::complex kappa_f(const double s, const double t, const double Mw, const double I3f, const double Qf, const double mf, const double mfp, const bool bWeak, const bool bWWbox, const bool bZZbox) const

◆ H_ISR()

double EWSMTwoFermionsLEP2::H_ISR ( const double  x,
const double  s 
) const
Parameters
[in]xs'=(1-x)s
[in]sthe invariant mass squared of the initial-state e^+ e^- pair
Returns
the additive radiator of initial-state radiations in cross sections

Definition at line 1289 of file EWSMTwoFermionsLEP2.cpp.

1290{
1291 double me = cache.getSM().getLeptons(cache.getSM().ELECTRON).getMass();
1292 double alphaOverPi = cache.getSM().getAle()/M_PI; // alpha(0)/Pi
1293 double L = log(s/(me*me));
1294 double beta = 2.0*alphaOverPi*(L - 1.0);
1295 double deltaVS_1 = 3.0/2.0*L + M_PI*M_PI/3.0 - 2.0;
1296 double deltaH_1 = - (2.0 - x)*(L - 1.0);
1297
1298 return ( beta*pow(x, beta-1.0)*(1.0 + alphaOverPi*deltaVS_1)
1299 + alphaOverPi*deltaH_1 );
1300}
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61

◆ H_ISR_FB()

double EWSMTwoFermionsLEP2::H_ISR_FB ( const double  x,
const double  s 
) const
Parameters
[in]xs'=(1-x)s
[in]sthe invariant mass squared of the initial-state e^+ e^- pair
Returns
the additive radiator of initial-state radiations in forward-backward asysmmetries

Definition at line 1303 of file EWSMTwoFermionsLEP2.cpp.

1304{
1305 double me = cache.getSM().getLeptons(cache.getSM().ELECTRON).getMass();
1306 double alphaOverPi = cache.getSM().getAle()/M_PI; // alpha(0)/Pi
1307 double L = log(s/(me*me));
1308 double beta = 2.0*alphaOverPi*(L - 1.0);
1309 double deltaVS_1 = 3.0/2.0*L + M_PI*M_PI/3.0 - 2.0;
1310 double tmp = (1.0-x)/(1.0-x/2.0)/(1.0-x/2.0);
1311 double deltaH_FB_1 = (1.0+(1.0-x)*(1.0-x))/x*tmp*(L - 1.0 - log(tmp))
1312 - 2.0/x*(L - 1.0);
1313
1314 return ( beta*pow(x, beta-1.0)*(1.0 + alphaOverPi*deltaVS_1)
1315 + alphaOverPi*deltaH_FB_1 );
1316}

◆ kappa_e()

gslpp::complex EWSMTwoFermionsLEP2::kappa_e ( const double  s,
const double  t,
const double  Mw,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 431 of file EWSMTwoFermionsLEP2.cpp.

436{
437 //double u = 2.0*mf*mf - s - t;
438 double u = -s - t;
439 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2, Mw2 = Mw*Mw;
440 double ve = -0.5 + 2.0 * sW2, ae = -0.5, sigmae = ve + ae;
441 double vfa = 0.5 - 2.0 * fabs(Qf) * sW2;
442 double mu = Mw; // renormalization scale
443
444 double Qfp;
445 if (Qf == -1.0)
446 Qfp = 0.0;
447 else if (Qf == 0.0)
448 Qfp = -1.0;
449 else if (Qf == 2.0 / 3.0)
450 Qfp = -1.0 / 3.0;
451 else if (Qf == -1.0 / 3.0)
452 Qfp = 2.0 / 3.0;
453 else
454 throw std::runtime_error("Error in EWSMTwoFermionsLEP2::kappa_e()");
455
456 gslpp::complex kappae = 1.0;
457
458 // Weak corrections
459 if (bWeak)
460 kappae += cache.getSM().getAle() / 4.0 / M_PI / sW2
461 * (-cW2 / sW2 * DeltaRhobar(mu, Mw) + Pibar_Zgamma_hat(s, Mw)
462 - cache.getPV().B0(mu * mu, s, Mw2, Mw2) / 6.0 - 1.0 / 9.0
463 - ve * sigmae / 2.0 / cW2 * F_za_0(s, Mw) - F_W_0_hat(s, Mw)
464 + (Mz * Mz / s - 1.0)
465 *(fabs(Qf) * vfa * F_za_0(s, Mw)
466 + cW2 * (F_Wn_0_hat(s, Mw) - fabs(Qfp) * F_Wa_0(s, Mw))));
467
468 // WW box
469 if (bWWbox)
470 kappae += Delta_kappa_e_WW_hat(s, t, u, Mw, I3f);
471
472 // ZZ box
473 if (bZZbox)
474 kappae += Delta_kappa_e_ZZ(mu, s, t, u, Mw, I3f, Qf);
475
476 // Top quark contribution in e^+ e^- -> b bbar
479 && mfp != 0.0)
480 kappae += Delta_kappa_e_TOP(s, t, u, Mw, bWWbox);
481
482 return kappae;
483}
gslpp::complex Delta_kappa_e_TOP(const double s, const double t, const double u, const double Mw, const bool bWWbox) const
gslpp::complex F_za_0(const double s, const double Mw) const
gslpp::complex DeltaRhobar(const double mu, const double Mw) const
gslpp::complex F_Wn_0_hat(const double s, const double Mw) const
gslpp::complex Pibar_Zgamma_hat(const double s, const double Mw) const
gslpp::complex F_W_0_hat(const double s, const double Mw) const

◆ kappa_ef()

gslpp::complex EWSMTwoFermionsLEP2::kappa_ef ( const double  s,
const double  t,
const double  Mw,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 526 of file EWSMTwoFermionsLEP2.cpp.

531{
532 //double u = 2.0*mf*mf - s - t;
533 double u = -s - t;
534 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2, Mw2 = Mw*Mw;
535 double ve = -0.5 + 2.0 * sW2, ae = -0.5, deltae = ve - ae;
536 double vf = I3f - 2.0 * Qf*sW2, af = I3f, deltaf = vf - af;
537 double mu = Mw; // renormalization scale
538
539 gslpp::complex kappaef = 1.0;
540
541 // Weak corrections
542 if (bWeak)
543 kappaef += cache.getSM().getAle() / 4.0 / M_PI / sW2
544 * (-2.0 * cW2 / sW2 * DeltaRhobar(mu, Mw) + 2.0 * Pibar_Zgamma_hat(s, Mw)
545 - cache.getPV().B0(mu * mu, s, Mw2, Mw2) / 3.0 - 2.0 / 9.0
546 - ((deltae * deltae + deltaf * deltaf) / sW2 * (Mw * Mw / s - 1.0)
547 + 3.0 * ve * ve + ae * ae + 3.0 * vf * vf + af * af) * F_za_0(s, Mw) / 4.0 / cW2
548 - 2.0 * F_W_0_hat(s, Mw)
549 + (Mz * Mz / s - 1.0) * cW2 * (2.0 / 3.0 + Pibar_gg_bos_hat(s, Mw)));
550
551 // WW box
552 if (bWWbox)
553 kappaef += Delta_kappa_ef_WW_hat(s, t, u, Mw, I3f);
554
555 // ZZ box
556 if (bZZbox)
557 kappaef += Delta_kappa_ef_ZZ(mu, s, t, u, Mw, I3f, Qf);
558
559 // Top quark contribution in e^+ e^- -> b bbar
562 && mfp != 0.0)
563 kappaef += Delta_kappa_ef_TOP(s, t, u, Mw, bWWbox);
564
565 return kappaef;
566}
gslpp::complex Pibar_gg_bos_hat(const double s, const double Mw) const
gslpp::complex Delta_kappa_ef_TOP(const double s, const double t, const double u, const double Mw, const bool bWWbox) const

◆ kappa_f()

gslpp::complex EWSMTwoFermionsLEP2::kappa_f ( const double  s,
const double  t,
const double  Mw,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 485 of file EWSMTwoFermionsLEP2.cpp.

490{
491 //double u = 2.0*mf*mf - s - t;
492 double u = -s - t;
493 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2, Mw2 = Mw*Mw;
494 double vea = 0.5 - 2.0 * sW2;
495 double vf = I3f - 2.0 * Qf*sW2, af = I3f, sigmaf = vf + af;
496 double mu = Mw; // renormalization scale
497
498 gslpp::complex kappaf = 1.0;
499
500 // Weak corrections
501 if (bWeak)
502 kappaf += cache.getSM().getAle() / 4.0 / M_PI / sW2
503 * (-cW2 / sW2 * DeltaRhobar(mu, Mw) + Pibar_Zgamma_hat(s, Mw)
504 - cache.getPV().B0(mu * mu, s, Mw2, Mw2) / 6.0 - 1.0 / 9.0
505 - vf * sigmaf / 2.0 / cW2 * F_za_0(s, Mw) - F_W_0_hat(s, Mw)
506 + (Mz * Mz / s - 1.0)
507 *(vea * F_za_0(s, Mw) + cW2 * F_Wn_0_hat(s, Mw)));
508
509 // WW box
510 if (bWWbox)
511 kappaf += Delta_kappa_f_WW_hat(s, t, u, Mw, I3f);
512
513 // ZZ box
514 if (bZZbox)
515 kappaf += Delta_kappa_f_ZZ(mu, s, t, u, Mw, I3f, Qf);
516
517 // Top quark contribution in e^+ e^- -> b bbar
520 && mfp != 0.0)
521 kappaf += Delta_kappa_f_TOP(s, t, u, Mw, bWWbox);
522
523 return kappaf;
524}
gslpp::complex Delta_kappa_f_TOP(const double s, const double t, const double u, const double Mw, const bool bWWbox) const

◆ Pibar_gg_bos()

gslpp::complex EWSMTwoFermionsLEP2::Pibar_gg_bos ( const double  mu,
const double  s,
const double  Mw 
) const

Definition at line 856 of file EWSMTwoFermionsLEP2.cpp.

858{
859 gslpp::complex Pibar_gg_bos = myOneLoopEW.PibarGammaGamma_bos(mu, s, Mw);
860 return Pibar_gg_bos;
861}
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, .
gslpp::complex Pibar_gg_bos(const double mu, const double s, const double Mw) const

◆ Pibar_gg_bos_hat()

gslpp::complex EWSMTwoFermionsLEP2::Pibar_gg_bos_hat ( const double  s,
const double  Mw 
) const

Definition at line 990 of file EWSMTwoFermionsLEP2.cpp.

991{
992 double mu = Mw;
993
994 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
995 if (!bKeepNonUnitary) {
996 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
997 double Rw = Mw * Mw / s;
998 add = s / (s - Mz * Mz)
999 *(1.0 / 12.0 / Rw / cW2 * cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw) + 1.0 / 18.0 / Rw / cW2)
1000 - s / (s - Mz * Mz)
1001 *((4.0 / 3.0 / Rw + 1.0 / 12.0 / Rw / Rw) * cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw)
1002 + 1.0 / 18.0 / Rw / Rw - 13.0 / 18.0 / Rw);
1003 }
1004
1005 return ( Pibar_gg_bos(mu, s, Mw) + add);
1006}

◆ Pibar_Zgamma()

gslpp::complex EWSMTwoFermionsLEP2::Pibar_Zgamma ( const double  mu,
const double  s,
const double  Mw 
) const

Definition at line 848 of file EWSMTwoFermionsLEP2.cpp.

850{
851 gslpp::complex Pibar_Zgamma_bos = myOneLoopEW.PibarZgamma_bos(mu, s, Mw);
852 gslpp::complex Pibar_Zgamma_fer = myOneLoopEW.PibarZgamma_fer(mu, s, Mw);
853 return ( Pibar_Zgamma_bos + Pibar_Zgamma_fer);
854}
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,...

◆ Pibar_Zgamma_hat()

gslpp::complex EWSMTwoFermionsLEP2::Pibar_Zgamma_hat ( const double  s,
const double  Mw 
) const

Definition at line 975 of file EWSMTwoFermionsLEP2.cpp.

976{
977 double mu = Mw;
978
979 gslpp::complex add = gslpp::complex(0.0, 0.0, false);
980 if (!bKeepNonUnitary) {
981 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz);
982 double Rw = Mw * Mw / s;
983 add = -cW2 * ((4.0 / 3.0 / Rw + 1.0 / 12.0 / Rw / Rw) * cache.getPV().B0(mu*mu, s, Mw*Mw, Mw * Mw)
984 + 1.0 / 18.0 / Rw / Rw - 13.0 / 18.0 / Rw);
985 }
986
987 return ( Pibar_Zgamma(mu, s, Mw) + add);
988}
gslpp::complex Pibar_Zgamma(const double mu, const double s, const double Mw) const

◆ QCD_FSR_forAFB()

double EWSMTwoFermionsLEP2::QCD_FSR_forAFB ( const QCD::quark  q,
const double  mf,
const double  s 
) const
Parameters
[in]qquark in the final state
[in]mfthe mass of the final-state fermion
[in]sthe invariant mass squared of the initial-state e^+ e^- pair
Returns
the final-state QCD corrections to forward-backward asymmetries

Definition at line 1273 of file EWSMTwoFermionsLEP2.cpp.

1275{
1276 return ( 1.0 - cache.getSM().Als(sqrt(s), FULLNLO)/M_PI*(1.0 - 16.0/3.0*mf/sqrt(s)) );
1277}
const double Als(const double mu, const orders order, const bool Nf_thr, const bool qed_flag) const
The running QCD coupling in the scheme including QED corrections.

◆ QCD_FSR_forSigma()

double EWSMTwoFermionsLEP2::QCD_FSR_forSigma ( const double  s) const
Parameters
[in]sthe invariant mass squared of the initial-state e^+ e^- pair
Returns
the final-state QCD corrections to cross sections

Definition at line 1267 of file EWSMTwoFermionsLEP2.cpp.

1268{
1269 return ( 1.0 + cache.getSM().Als(sqrt(s), FULLNLO)/M_PI );
1270}

◆ QED_FSR_forSigma()

double EWSMTwoFermionsLEP2::QED_FSR_forSigma ( const double  s,
const double  Qf 
) const
Parameters
[in]sthe invariant mass squared of the initial-state e^+ e^- pair
[in]Qfthe electromagnetic charge of the final-state fermion
Returns
the final-state QED corrections to cross sections

Definition at line 1280 of file EWSMTwoFermionsLEP2.cpp.

1281{
1282 //double alpha = SM.getAle();
1283 double alpha = alpha_at_s(s);
1284
1285 return ( 1.0 + 3.0*alpha/(4.0*M_PI)*Qf*Qf );
1286}
double alpha_at_s(const double s) const

◆ rho_ef()

gslpp::complex EWSMTwoFermionsLEP2::rho_ef ( const double  s,
const double  t,
const double  Mw,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const bool  bWeak,
const bool  bWWbox,
const bool  bZZbox 
) const

Definition at line 390 of file EWSMTwoFermionsLEP2.cpp.

395{
396 //double u = 2.0*mf*mf - s - t;
397 double u = -s - t;
398 double Mz = cache.getSM().getMz(), cW2 = Mw * Mw / (Mz * Mz), sW2 = 1.0 - cW2, Mw2 = Mw*Mw;
399 double ve = -0.5 + 2.0 * sW2, ae = -0.5;
400 double vf = I3f - 2.0 * Qf*sW2, af = I3f;
401 double mu = Mw; // renormalization scale
402
403 gslpp::complex rhoef = 1.0;
404
405 // Weak corrections
406 if (bWeak)
407 rhoef += cache.getSM().getAle() / 4.0 / M_PI / sW2
408 * (-DeltaRhobarZ(mu, Mw) + D_Z_hat(s, Mw)
409 + 5.0 / 3.0 * cache.getPV().B0(mu * mu, s, Mw2, Mw2) - 9.0 * cW2 / 4.0 / sW2 * log(cW2)
410 - 6.0 + 5.0 * cW2 / 8.0 * (1.0 + cW2)
411 + (3.0 * ve * ve + ae * ae + 3.0 * vf * vf + af * af) / 4.0 / cW2 * F_za_0(s, Mw)
412 + 2.0 * F_W_0_hat(s, Mw));
413
414 // WW box
415 if (bWWbox)
416 rhoef += Delta_rho_ef_WW_hat(s, t, u, Mw, I3f);
417
418 // ZZ box
419 if (bZZbox)
420 rhoef += Delta_rho_ef_ZZ(mu, s, t, u, Mw, I3f, Qf);
421
422 // Top quark contribution in e^+ e^- -> b bbar
425 && mfp != 0.0)
426 rhoef += Delta_rho_ef_TOP(s, t, u, Mw, bWWbox);
427
428 return rhoef;
429}
gslpp::complex D_Z_hat(const double s, const double Mw) const
gslpp::complex Delta_rho_ef_TOP(const double s, const double t, const double u, const double Mw, const bool bWWbox) const
gslpp::complex DeltaRhobarZ(const double mu, const double Mw) const

◆ setBDebug()

void EWSMTwoFermionsLEP2::setBDebug ( bool  bDebug)
inline

Definition at line 38 of file EWSMTwoFermionsLEP2.h.

39 {
40 this->bDebug = bDebug;
41 }

◆ sigma()

double EWSMTwoFermionsLEP2::sigma ( const double  s,
const double  Mw,
const double  GammaZ,
const double  I3f,
const double  Qf,
const double  mf,
const double  mfp,
const double  Ncf,
const bool  bWeak 
) const
private

Definition at line 1406 of file EWSMTwoFermionsLEP2.cpp.

1411{
1412 double betaf = sqrt(1.0 - 4.0*mf*mf/s);
1413 double G1 = G_1_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1414 double G2 = G_2_noBox(s, Mw, GammaZ, I3f, Qf, mf, mfp, bWeak);
1415
1416 return ( 4.0*M_PI*cache.getSM().getAle()*cache.getSM().getAle()/(3.0*s)*Ncf*betaf
1417 *(G1 + 2.0*mf*mf/s*G2) );
1418}

◆ sigma_l()

double EWSMTwoFermionsLEP2::sigma_l ( const QCD::lepton  l,
const double  mf,
const double  s,
const double  Mw,
const double  GammaZ,
const bool  bWeak 
) const
Parameters
[in]llepton in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
[in]bWeakflag to control weak corrections (not including box diagrams)
Returns
the total cross section for e^+ e^- -> l lbar in GeV^{-2}

Definition at line 1209 of file EWSMTwoFermionsLEP2.cpp.

1212{
1213 double I3f = cache.getSM().getLeptons(l).getIsospin();
1214 double Qf = cache.getSM().getLeptons(l).getCharge();
1215
1216 return ( sigma(s, Mw, GammaZ, I3f, Qf, mf, 0.0, 1.0, bWeak) );
1217}
double sigma(const double s, const double Mw, const double GammaZ, const double I3f, const double Qf, const double mf, const double mfp, const double Ncf, const bool bWeak) const

◆ sigma_q()

double EWSMTwoFermionsLEP2::sigma_q ( const QCD::quark  q,
const double  mf,
const double  s,
const double  Mw,
const double  GammaZ,
const bool  bWeak 
) const
Parameters
[in]qquark in the final state
[in]mfthe mass of the final-state fermion
[in]sinvariant mass squared of the initial-state e^+ e^- pair
[in]Mwthe W-boson mass
[in]GammaZthe Z-boson decay width
[in]bWeakflag to control weak corrections (not including box diagrams)
Returns
the total cross section for e^+ e^- -> q qbar in GeV^{-2}

Definition at line 1220 of file EWSMTwoFermionsLEP2.cpp.

1223{
1224 double I3f = cache.getSM().getQuarks(q).getIsospin();
1225 double Qf = cache.getSM().getQuarks(q).getCharge();
1226 double mfp;
1227 if (q==cache.getSM().TOP)
1228 throw std::runtime_error("Error in LEP2TwoFermions::sigma_q()");
1229 else if (q==cache.getSM().BOTTOM)
1230 mfp = cache.getSM().getMtpole();
1231 else
1232 mfp = 0.0;
1233
1234 return ( sigma(s, Mw, GammaZ, I3f, Qf, mf, mfp, 3.0, bWeak) );
1235}

◆ V_pol()

gslpp::complex EWSMTwoFermionsLEP2::V_pol ( const double  s) const

Definition at line 325 of file EWSMTwoFermionsLEP2.cpp.

326{
327 gslpp::complex V;
328 if (bDebug)
329 V = gslpp::complex(1.0715119759, -0.0186242179, false); // for debug
330 else {
332 //V = cache.getSM().ale_OS(sqrt(s), FULLNLO)/cache.getSM().getAle();
333 //V = gslpp::complex(1.0715119759, -0.0186242179, false); //!!TEST
334 }
335 return V;
336}
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .

Member Data Documentation

◆ bDebug

bool EWSMTwoFermionsLEP2::bDebug
private

Definition at line 399 of file EWSMTwoFermionsLEP2.h.

◆ bKeepNonUnitary

bool EWSMTwoFermionsLEP2::bKeepNonUnitary
private

Definition at line 400 of file EWSMTwoFermionsLEP2.h.

◆ cache

const EWSMcache& EWSMTwoFermionsLEP2::cache
private

A reference to an object of type EWSMcache.

Definition at line 402 of file EWSMTwoFermionsLEP2.h.

◆ myOneLoopEW

const EWSMOneLoopEW EWSMTwoFermionsLEP2::myOneLoopEW
private

An object of type EWSMOneLoopEW.

Definition at line 403 of file EWSMTwoFermionsLEP2.h.


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