24#include "FeynHiggsWrapper.h"
29const double EWSUSY::Mw_unphysical = 2.0;
30const double EWSUSY::RenormalizationScaleFactor = 1.0;
34: PV(true), mySUSY(SUSY_in),
35 Yu(3,3,0.0), Yd(3,3,0.0), Yl(3,3,0.0),
36 Au(3,3,0.0), Ad(3,3,0.0), Al(3,3,0.0),
37 Zm(2,2,0.), Zp(2,2,0.), ZN(4,4,0.),
38 ZU(6,6,0.), ZD(6,6,0.), ZL(6,6,0.), Zne(6,6,0.),
39 ZR(2,2,0.), ZH(2,2,0.)
46 Yd = - mySUSY.getYd();
47 Yl = - mySUSY.getYe();
49 Au = - mySUSY.getTUhat().transpose();
50 Ad = mySUSY.getTDhat().transpose();
51 Al = mySUSY.getTEhat().transpose();
53 Zm = mySUSY.getU().hconjugate();
54 Zp = mySUSY.getV().hconjugate();
55 ZN = mySUSY.getN().hconjugate();
57 ZU = mySUSY.getRu().hconjugate();
58 ZD = mySUSY.getRd().transpose();
59 ZL = mySUSY.getRl().transpose();
60 Zne = mySUSY.getRn().hconjugate();
62 double sinAlpha = mySUSY.getSaeff().real();
63 double cosAlpha = sqrt(1.0 - sinAlpha*sinAlpha);
64 ZR.assign(0,0, cosAlpha);
65 ZR.assign(0,1, - sinAlpha);
66 ZR.assign(1,0, sinAlpha);
67 ZR.assign(1,1, cosAlpha);
69 ZH.assign(0,0, mySUSY.getSinb());
70 ZH.assign(0,1, - mySUSY.getCosb());
71 ZH.assign(1,0, mySUSY.getCosb());
72 ZH.assign(1,1, mySUSY.getSinb());
75 for (
int I=0; I<3; ++I) {
77 m_u[I] = mySUSY.getMyEWSMcache()->mf(mySUSY.getQuarks((
QCD::quark)(2*I)), mySUSY.getMz(),
FULLNNLO);
79 m_d[I] = mySUSY.getMyEWSMcache()->mf(mySUSY.getQuarks((
QCD::quark)(2*I + 1)), mySUSY.getMz(),
FULLNNLO);
81 m_l[I] = mySUSY.getLeptons((
QCD::lepton)(2*I + 1)).getMass();
84 mH02[0] = mySUSY.getMHh()*mySUSY.getMHh();
85 mH02[1] = mySUSY.getMHl()*mySUSY.getMHl();
86 mH02[2] = mySUSY.getMHa()*mySUSY.getMHa();
87 mH02[3] = mySUSY.getMz()*mySUSY.getMz();
88 for (
int k=0; k<6; ++k) {
89 Msu2[k] = mySUSY.getMsu2()(k);
90 Msd2[k] = mySUSY.getMsd2()(k);
91 Mse2[k] = mySUSY.getMse2()(k);
93 for (
int k=0; k<3; ++k)
94 Msn2[k] = mySUSY.getMsn2()(k);
95 for (
int i=0; i<2; ++i)
96 mC[i] = mySUSY.getMch()(i);
97 for (
int j=0; j<4; ++j)
98 mN[j] = mySUSY.getMneu()(j);
102 const double mi,
const double mj,
103 const gslpp::complex cV_aij,
const gslpp::complex cV_bji,
104 const gslpp::complex cA_aij,
const gslpp::complex cA_bji)
const
106 double mu2 = mu*mu, mi2 = mi*mi, mj2 = mj*mj;
109 double A0i = PV.A0(mu2, mi2);
110 double A0j = PV.A0(mu2, mj2);
111 gslpp::complex B0 = PV.B0(mu2, p2, mi2, mj2);
112 gslpp::complex B00 = PV.B00(mu2, p2, mi2, mj2);
114 return ( -2.0*(cV_aij*cV_bji + cA_aij*cA_bji)
115 *(4.0*B00 + A0i + A0j + (p2 - mi*mi - mj*mj)*B0)
116 -4.0*(cV_aij*cV_bji - cA_aij*cA_bji)*mi*mj*B0 );
120 const double mi,
const double mj,
121 const gslpp::complex cV_aij,
const gslpp::complex cV_bji,
122 const gslpp::complex cA_aij,
const gslpp::complex cA_bji)
const
124 double mu2 = mu*mu, mi2 = mi*mi, mj2 = mj*mj;
127 gslpp::complex B0 = PV.B0(mu2, p2, mi2, mj2);
128 gslpp::complex B0p = PV.B0p(mu2, p2, mi2, mj2);
129 gslpp::complex B00p = PV.B00p(mu2, p2, mi2, mj2);
131 if (mi == mj && cA_aij == 0.0 && cA_bji == 0.0)
132 return ( -2.0*cV_aij*cV_bji*(4.0*B00p + p2*B0p + B0) );
134 return ( -2.0*(cV_aij*cV_bji + cA_aij*cA_bji)
135 *(4.0*B00p + (p2 - mi*mi - mj*mj)*B0p + B0)
136 -4.0*(cV_aij*cV_bji - cA_aij*cA_bji)*mi*mj*B0p );
139gslpp::complex
EWSUSY::PiT_Z(
const double mu,
const double p2,
const double Mw_i)
const
142 double e2 = 4.0*M_PI*mySUSY.getAle();
144 double Mz = mySUSY.getMz();
145 double Nc = mySUSY.getNc();
148 double Mw2 = Mw_i*Mw_i;
149 double mHp2[2] = {mySUSY.getMHp()*mySUSY.getMHp(), Mw2};
152 double sW2 = 1.0 - cW2;
153 double sW = sqrt(sW2);
154 double g2sq = e2/sW2;
155 double e_4sc = e/4.0/sW/cW;
156 double e_2sc = 2.0*e_4sc;
158 gslpp::complex PiT_f = gslpp::complex(0.0, 0.0,
false);
159 gslpp::complex PiT_sf = gslpp::complex(0.0, 0.0,
false);
160 gslpp::complex PiT_ch = gslpp::complex(0.0, 0.0,
false);
161 gslpp::complex PiT_WZH = gslpp::complex(0.0, 0.0,
false);
163 gslpp::complex b0, b00;
164 gslpp::complex cV_Zij, cV_Zji, cA_Zij, cA_Zji;
165 gslpp::matrix<double> Id6 = gslpp::matrix<double>::Id(6);
166 gslpp::matrix<double> Id2 = gslpp::matrix<double>::Id(2);
169 b0 = PV.B0(mu2, p2, 0.0, 0.0);
170 b00 = PV.B00(mu2, p2, 0.0, 0.0);
171 PiT_f += - 3.0/4.0*g2sq/cW2*(4.0*b00 + p2*b0);
174 gslpp::complex cV_Zee = - e_4sc*(1.0 - 4.0*sW2);
175 gslpp::complex cA_Zee = - e_4sc;
176 gslpp::complex cV_Zdd = - e_4sc*(1.0 - 4.0/3.0*sW2);
177 gslpp::complex cA_Zdd = - e_4sc;
178 gslpp::complex cV_Zuu = e_4sc*(1.0 - 8.0/3.0*sW2);
179 gslpp::complex cA_Zuu = e_4sc;
180 for (
int I=0; I<3; ++I) {
182 PiT_f +=
FA(mu, p2, m_l[I], m_l[I], cV_Zee, cV_Zee, cA_Zee, cA_Zee);
185 PiT_f += Nc*
FA(mu, p2, m_d[I], m_d[I], cV_Zdd, cV_Zdd, cA_Zdd, cA_Zdd);
188 PiT_f += Nc*
FA(mu, p2, m_u[I], m_u[I], cV_Zuu, cV_Zuu, cA_Zuu, cA_Zuu);
192 gslpp::complex VZsnsn_II = e_2sc;
193 gslpp::complex VZZsnsn_II = e2/2.0/sW2/cW2;
194 for (
int I=0; I<3; ++I) {
195 b00 = PV.B00(mu2, p2, Msn2[I], Msn2[I]);
196 PiT_sf += 4.0*VZsnsn_II.abs2()*b00;
197 a0 = PV.A0(mu2, Msn2[I]);
198 PiT_sf += VZZsnsn_II*a0;
202 gslpp::complex VZLL_mn, VZZLL_nn;
203 for (
int n=0; n<6; ++n) {
204 for (
int m=0; m<6; ++m) {
205 VZLL_mn = gslpp::complex(0.0, 0.0,
false);
206 for (
int I=0; I<3; ++I)
207 VZLL_mn += - e_2sc*ZL(I,n)*ZL(I,m).conjugate();
208 VZLL_mn += - e_2sc*(- 2.0*sW2*Id6(m,n));
209 b00 = PV.B00(mu2, p2, Mse2[m], Mse2[n]);
210 PiT_sf += 4.0*VZLL_mn.abs2()*b00;
212 VZZLL_nn = gslpp::complex(0.0, 0.0,
false);
213 VZZLL_nn += 2.0*e2/cW2*sW2;
214 for (
int I=0; I<3; ++I)
215 VZZLL_nn += 2.0*e2/cW2*(1.0 - 4.0*sW2)/4.0/sW2*ZL(I,n)*ZL(I,n).conjugate();
216 a0 = PV.A0(mu2, Mse2[n]);
217 PiT_sf += VZZLL_nn*a0;
221 gslpp::complex VZDD_mn, VZZDD_nn;
222 for (
int n=0; n<6; ++n) {
223 for (
int m=0; m<6; ++m) {
224 VZDD_mn = gslpp::complex(0.0, 0.0,
false);
225 for (
int I=0; I<3; ++I)
226 VZDD_mn += - e_2sc*ZD(I,n)*ZD(I,m).conjugate();
227 VZDD_mn += - e_2sc*(- 2.0/3.0*sW2*Id6(m,n));
228 b00 = PV.B00(mu2, p2, Msd2[m], Msd2[n]);
229 PiT_sf += 4.0*Nc*VZDD_mn.abs2()*b00;
231 VZZDD_nn = gslpp::complex(0.0, 0.0,
false);
232 VZZDD_nn += 2.0*e2/3.0/cW2*sW2/3.0;
233 for (
int I=0; I<3; ++I)
234 VZZDD_nn += 2.0*e2/3.0/cW2*(3.0 - 4.0*sW2)/4.0/sW2*ZD(I,n)*ZD(I,n).conjugate();
235 a0 = PV.A0(mu2, Msd2[n]);
236 PiT_sf += Nc*VZZDD_nn*a0;
240 gslpp::complex VZUU_mn, VZZUU_nn;
241 for (
int n=0; n<6; ++n) {
242 for (
int m=0; m<6; ++m) {
243 VZUU_mn = gslpp::complex(0.0, 0.0,
false);
244 for (
int I=0; I<3; ++I)
245 VZUU_mn += e_2sc*ZU(I,m).conjugate()*ZU(I,n);
246 VZUU_mn += e_2sc*(- 4.0/3.0*sW2*Id6(m,n));
247 b00 = PV.B00(mu2, p2, Msu2[m], Msu2[n]);
248 PiT_sf += 4.0*Nc*VZUU_mn.abs2()*b00;
250 VZZUU_nn = gslpp::complex(0.0, 0.0,
false);
251 VZZUU_nn += 2.0*e2/3.0/cW2*4.0*sW2/3.0;
252 for (
int I=0; I<3; ++I)
253 VZZUU_nn += 2.0*e2/3.0/cW2*(3.0 - 8.0*sW2)/4.0/sW2*ZU(I,n).conjugate()*ZU(I,n);
254 a0 = PV.A0(mu2, Msu2[n]);
255 PiT_sf += Nc*VZZUU_nn*a0;
259 for (
int i=0; i<2; ++i)
260 for (
int j=0; j<2; ++j) {
261 cV_Zij = e_4sc*( Zp(0,j).conjugate()*Zp(0,i)
262 + Zm(0,j)*Zm(0,i).conjugate()
263 + 2.0*(cW2 - sW2)*Id2(j,i) );
264 cV_Zji = cV_Zij.conjugate();
265 cA_Zij = e_4sc*( Zp(0,j).conjugate()*Zp(0,i)
266 - Zm(0,j)*Zm(0,i).conjugate() );
267 cA_Zji = cA_Zij.conjugate();
268 PiT_ch +=
FA(mu, p2, mC[i], mC[j], cV_Zij, cV_Zji, cA_Zij, cA_Zji);
272 for (
int i=0; i<4; ++i)
273 for (
int j=0; j<4; ++j) {
274 cV_Zij = - e_4sc*( ZN(3,j).conjugate()*ZN(3,i)
275 - ZN(2,j).conjugate()*ZN(2,i)
276 - ZN(3,j)*ZN(3,i).conjugate()
277 + ZN(2,j)*ZN(2,i).conjugate() );
278 cV_Zji = cV_Zij.conjugate();
279 cA_Zij = - e_4sc*( ZN(3,j).conjugate()*ZN(3,i)
280 - ZN(2,j).conjugate()*ZN(2,i)
281 + ZN(3,j)*ZN(3,i).conjugate()
282 - ZN(2,j)*ZN(2,i).conjugate() );
283 cA_Zji = cA_Zij.conjugate();
284 PiT_ch += 0.5*
FA(mu, p2, mN[i], mN[j], cV_Zij, cV_Zji, cA_Zij, cA_Zji);
288 double cot_2thW = (cW2 - sW2)/(2.0*sW*cW);
289 for (
int i=0; i<2; ++i) {
290 b00 = PV.B00(mu2, p2, mHp2[i], mHp2[i]);
291 a0 = PV.A0(mu2, mHp2[i]);
292 PiT_WZH += 2.0*e2*cot_2thW*cot_2thW*(2.0*b00 + a0);
297 for (
int i=0; i<2; ++i)
298 for (
int j=0; j<2; ++j) {
299 AM_ij = ZR(0,i)*ZH(0,j) - ZR(1,i)*ZH(1,j);
300 b00 = PV.B00(mu2, p2, mH02[i], mH02[j+2]);
301 PiT_WZH += g2sq/cW2*AM_ij*AM_ij*b00;
303 for (
int j=0; j<4; ++j) {
304 a0 = PV.A0(mu2, mH02[j]);
305 PiT_WZH += g2sq/4.0/cW2*a0;
309 b0 = PV.B0(mu2, p2, Mw2, Mw2);
310 PiT_WZH += - 2.0*g2sq*sW2*sW2*Mz*Mz*b0;
314 for (
int i=0; i<2; ++i) {
315 CR_i = mySUSY.v1()*ZR(0,i) + mySUSY.v2()*ZR(1,i);
316 b0 = PV.B0(mu2, p2, Mz*Mz, mH02[i]);
320 PiT_WZH += - g2sq*Mw2/mySUSY.v()/mySUSY.v()/cW2/cW2*CR_i*CR_i*b0;
324 a0 = PV.A0(mu2, Mw2);
325 b0 = PV.B0(mu2, p2, Mw2, Mw2);
326 b00 = PV.B00(mu2, p2, Mw2, Mw2);
328 PiT_WZH += 2.0*g2sq*cW2*(2.0*a0 + (2.0*p2 + Mw2)*b0 + 4.0*b00);
331 gslpp::complex PiT = PiT_f + PiT_sf + PiT_ch + PiT_WZH;
333 return ( PiT/16.0/M_PI/M_PI );
337gslpp::complex
EWSUSY::PiT_W(
const double mu,
const double p2,
const double Mw_i)
const
340 double e2 = 4.0*M_PI*mySUSY.getAle();
342 double Mz = mySUSY.getMz();
343 double Nc = mySUSY.getNc();
346 double Mw2 = Mw_i*Mw_i;
347 double mHp2[2] = {mySUSY.getMHp()*mySUSY.getMHp(), Mw2};
350 double sW2 = 1.0 - cW2;
351 double sW = sqrt(sW2);
352 double g2sq = e2/sW2;
353 double e_2s = e/2.0/sW;
354 double e_sq2s = e/sqrt(2.0)/sW;
355 double e_2sq2s = e_sq2s/2.0;
356 double e2_2s2 = e2/2.0/sW2;
358 gslpp::complex PiT_f = gslpp::complex(0.0, 0.0,
false);
359 gslpp::complex PiT_sf = gslpp::complex(0.0, 0.0,
false);
360 gslpp::complex PiT_ch = gslpp::complex(0.0, 0.0,
false);
361 gslpp::complex PiT_WZH = gslpp::complex(0.0, 0.0,
false);
363 gslpp::complex b0, b00;
366 gslpp::complex cV_Wen = e_2sq2s;
367 gslpp::complex cA_Wen = e_2sq2s;
368 gslpp::complex cV_Wne = cV_Wen.conjugate();
369 gslpp::complex cA_Wne = cA_Wen.conjugate();
370 gslpp::complex cV_Wdu = e_2sq2s;
371 gslpp::complex cA_Wdu = e_2sq2s;
372 gslpp::complex cV_Wud = cV_Wdu.conjugate();
373 gslpp::complex cA_Wud = cA_Wdu.conjugate();
374 for (
int I=0; I<3; ++I) {
376 PiT_f +=
FA(mu, p2, m_l[I], 0.0, cV_Wen, cV_Wne, cA_Wen, cA_Wne);
379 PiT_f += Nc*
FA(mu, p2, m_d[I], m_u[I], cV_Wdu, cV_Wud, cA_Wdu, cA_Wud);
383 gslpp::complex VWsnL_In, VWWsnsn_II, VWWLL_nn;
384 for (
int I=0; I<3; ++I) {
385 for (
int n=0; n<6; ++n) {
386 VWsnL_In = gslpp::complex(0.0, 0.0,
false);
387 for (
int J=0; J<3; ++J)
388 VWsnL_In += e_sq2s*Zne(J,I)*ZL(J,n);
389 b00 = PV.B00(mu2, p2, Msn2[I], Mse2[n]);
390 PiT_sf += 4.0*VWsnL_In.abs2()*b00;
393 a0 = PV.A0(mu2, Msn2[I]);
394 PiT_sf += VWWsnsn_II*a0;
396 for (
int n=0; n<6; ++n) {
397 VWWLL_nn = gslpp::complex(0.0, 0.0,
false);
398 for (
int I=0; I<3; ++I)
399 VWWLL_nn += e2_2s2*ZL(I,n)*ZL(I,n).conjugate();
400 a0 = PV.A0(mu2, Mse2[n]);
401 PiT_sf += VWWLL_nn*a0;
405 gslpp::complex VWDU_nm, VWWDD_nn, VWWUU_nn;
406 for (
int n=0; n<6; ++n) {
407 for (
int m=0; m<6; ++m) {
408 VWDU_nm = gslpp::complex(0.0, 0.0,
false);
409 for (
int I=0; I<3; ++I)
410 VWDU_nm += e_sq2s*ZD(I,n).conjugate()*ZU(I,m).conjugate();
411 b00 = PV.B00(mu2, p2, Msd2[n], Msu2[m]);
412 PiT_sf += 4.0*Nc*VWDU_nm.abs2()*b00;
414 VWWDD_nn = gslpp::complex(0.0, 0.0,
false);
415 for (
int I=0; I<3; ++I)
416 VWWDD_nn += e2_2s2*ZD(I,n)*ZD(I,n).conjugate();
417 a0 = PV.A0(mu2, Msd2[n]);
418 PiT_sf += Nc*VWWDD_nn*a0;
419 VWWUU_nn = gslpp::complex(0.0, 0.0,
false);
420 for (
int I=0; I<3; ++I)
421 VWWUU_nn += e2_2s2*ZU(I,n).conjugate()*ZU(I,n);
422 a0 = PV.A0(mu2, Msu2[n]);
423 PiT_sf += Nc*VWWUU_nn*a0;
427 gslpp::complex cV_Wij, cV_Wji, cA_Wij, cA_Wji;
428 for (
int i=0; i<2; ++i)
429 for (
int j=0; j<4; ++j) {
432 cV_Wji = - e_2s*( ZN(1,j)*Zp(0,i).conjugate()
433 - ZN(3,j)*Zp(1,i).conjugate()/sqrt(2.0)
434 + ZN(1,j).conjugate()*Zm(0,i)
435 + ZN(2,j).conjugate()*Zm(1,i)/sqrt(2.0) );
436 cV_Wij = cV_Wji.conjugate();
437 cA_Wji = - e_2s*( ZN(1,j)*Zp(0,i).conjugate()
438 - ZN(3,j)*Zp(1,i).conjugate()/sqrt(2.0)
439 - ZN(1,j).conjugate()*Zm(0,i)
440 - ZN(2,j).conjugate()*Zm(1,i)/sqrt(2.0) );
441 cA_Wij = cA_Wji.conjugate();
442 PiT_ch +=
FA(mu, p2, mC[i], mN[j], cV_Wij, cV_Wji, cA_Wij, cA_Wji);
447 for (
int i=0; i<2; ++i) {
448 for (
int j=0; j<2; ++j) {
449 AM_ij = ZR(0,i)*ZH(0,j) - ZR(1,i)*ZH(1,j);
450 b00 = PV.B00(mu2, p2, mH02[i], mHp2[j]);
451 PiT_WZH += g2sq*AM_ij*AM_ij*b00;
453 b00 = PV.B00(mu2, p2, mH02[i+2], mHp2[i]);
456 for (
int i=0; i<4; ++i) {
457 a0 = PV.A0(mu2, mH02[i]);
458 PiT_WZH += g2sq/4.0*a0;
460 for (
int i=0; i<2; ++i) {
461 a0 = PV.A0(mu2, mHp2[i]);
462 PiT_WZH += g2sq/2.0*a0;
466 b0 = PV.B0(mu2, p2, Mw2, 0.0);
467 PiT_WZH += - e2*Mw2*b0;
471 for (
int i=0; i<2; ++i) {
472 CR_i = mySUSY.v1()*ZR(0,i) + mySUSY.v2()*ZR(1,i);
473 b0 = PV.B0(mu2, p2, Mw2, mH02[i]);
477 PiT_WZH += - g2sq*Mw2/mySUSY.v()/mySUSY.v()*CR_i*CR_i*b0;
481 b0 = PV.B0(mu2, p2, Mw2, Mz*Mz);
482 PiT_WZH += - e2*sW2*Mz*Mz*b0;
485 a0 = PV.A0(mu2, Mw2);
486 b0 = PV.B0(mu2, p2, Mw2, Mz*Mz);
487 b00 = PV.B00(mu2, p2, Mz*Mz, Mw2);
488 PiT_WZH += g2sq*cW2*(2.0*PV.A0(mu2, Mz*Mz) - a0
489 + (4.0*p2 + Mz*Mz + Mw2)*b0 + 8.0*b00);
491 PiT_WZH += 3.0*g2sq*a0;
493 b0 = PV.B0(mu2, p2, Mw2, 0.0);
494 b00 = PV.B00(mu2, p2, Mw2, 0.0);
495 PiT_WZH += e2*((4.0*p2 + Mw2)*b0 - a0 + 8.0*b00);
498 gslpp::complex PiT = PiT_f + PiT_sf + PiT_ch + PiT_WZH;
500 return ( PiT/16.0/M_PI/M_PI );
503gslpp::complex
EWSUSY::PiT_AZ(
const double mu,
const double p2,
const double Mw_i)
const
506 double e2 = 4.0*M_PI*mySUSY.getAle();
508 double Mz = mySUSY.getMz();
509 double Nc = mySUSY.getNc();
512 double Mw2 = Mw_i*Mw_i;
513 double mHp2[2] = {mySUSY.getMHp()*mySUSY.getMHp(), Mw2};
516 double sW2 = 1.0 - cW2;
517 double sW = sqrt(sW2);
519 double e_4sc = e/4.0/sW/cW;
520 double e_2sc = 2.0*e_4sc;
521 double e2_sc = e2/sW/cW;
523 gslpp::complex PiT_f = gslpp::complex(0.0, 0.0,
false);
524 gslpp::complex PiT_sf = gslpp::complex(0.0, 0.0,
false);
525 gslpp::complex PiT_ch = gslpp::complex(0.0, 0.0,
false);
526 gslpp::complex PiT_WZH = gslpp::complex(0.0, 0.0,
false);
528 gslpp::complex b0, b00;
531 gslpp::complex cV_Aee = - e;
532 gslpp::complex cA_Aee = 0.0;
533 gslpp::complex cV_Add = - e/3.0;
534 gslpp::complex cA_Add = 0.0;
535 gslpp::complex cV_Auu = 2.0/3.0*e;
536 gslpp::complex cA_Auu = 0.0;
537 gslpp::complex cV_Zee = - e_4sc*(1.0 - 4.0*sW2);
538 gslpp::complex cA_Zee = - e_4sc;
539 gslpp::complex cV_Zdd = - e_4sc*(1.0 - 4.0/3.0*sW2);
540 gslpp::complex cA_Zdd = - e_4sc;
541 gslpp::complex cV_Zuu = e_4sc*(1.0 - 8.0/3.0*sW2);
542 gslpp::complex cA_Zuu = e_4sc;
543 for (
int I=0; I<3; ++I) {
545 PiT_f +=
FA(mu, p2, m_l[I], m_l[I], cV_Aee, cV_Zee, cA_Aee, cA_Zee);
548 PiT_f += Nc*
FA(mu, p2, m_d[I], m_d[I], cV_Add, cV_Zdd, cA_Add, cA_Zdd);
551 PiT_f += Nc*
FA(mu, p2, m_u[I], m_u[I], cV_Auu, cV_Zuu, cA_Auu, cA_Zuu);
555 gslpp::complex VZLL_nn, VAZLL_nn;
556 for (
int n=0; n<6; ++n) {
557 VZLL_nn = gslpp::complex(0.0, 0.0,
false);
558 for (
int I=0; I<3; ++I)
559 VZLL_nn += - e_2sc*ZL(I,n)*ZL(I,n).conjugate();
560 VZLL_nn += - e_2sc*(- 2.0*sW2);
561 b00 = PV.B00(mu2, p2, Mse2[n], Mse2[n]);
563 PiT_sf += - 4.0*e*VZLL_nn*b00;
565 VAZLL_nn = gslpp::complex(0.0, 0.0,
false);
566 for (
int I=0; I<3; ++I)
567 VAZLL_nn += e2_sc*ZL(I,n)*ZL(I,n).conjugate();
568 VAZLL_nn += e2_sc*(- 2.0*sW2);
569 a0 = PV.A0(mu2, Mse2[n]);
570 PiT_sf += VAZLL_nn*a0;
574 gslpp::complex VZDD_nn, VAZDD_nn;
575 for (
int n=0; n<6; ++n) {
576 VZDD_nn = gslpp::complex(0.0, 0.0,
false);
577 for (
int I=0; I<3; ++I)
578 VZDD_nn += - e_2sc*ZD(I,n)*ZD(I,n).conjugate();
579 VZDD_nn += - e_2sc*(- 2.0/3.0*sW2);
580 b00 = PV.B00(mu2, p2, Msd2[n], Msd2[n]);
582 PiT_sf += - 4.0*e*Nc/3.0*VZDD_nn*b00;
584 VAZDD_nn = gslpp::complex(0.0, 0.0,
false);
585 for (
int I=0; I<3; ++I)
586 VAZDD_nn += e2_sc/3.0*ZD(I,n)*ZD(I,n).conjugate();
587 VAZDD_nn += e2_sc/3.0*(- 2.0/3.0*sW2);
588 a0 = PV.A0(mu2, Msd2[n]);
589 PiT_sf += Nc*VAZDD_nn*a0;
593 gslpp::complex VZUU_nn, VAZUU_nn;
594 for (
int n=0; n<6; ++n) {
595 VZUU_nn = gslpp::complex(0.0, 0.0,
false);
596 for (
int I=0; I<3; ++I)
597 VZUU_nn += e_2sc*ZU(I,n).conjugate()*ZU(I,n);
598 VZUU_nn += e_2sc*(- 4.0/3.0*sW2);
599 b00 = PV.B00(mu2, p2, Msu2[n], Msu2[n]);
601 PiT_sf += 4.0*e*Nc*2.0/3.0*VZUU_nn*b00;
603 VAZUU_nn = gslpp::complex(0.0, 0.0,
false);
604 for (
int I=0; I<3; ++I)
605 VAZUU_nn += 2.0*e2_sc/3.0*ZU(I,n).conjugate()*ZU(I,n);
606 VAZUU_nn += 2.0*e2_sc/3.0*(- 4.0/3.0*sW2);
607 a0 = PV.A0(mu2, Msu2[n]);
608 PiT_sf += Nc*VAZUU_nn*a0;
612 gslpp::complex cV_Aii = e;
613 gslpp::complex cA_Aii = 0.0;
614 gslpp::complex cV_Zii, cA_Zii;
615 for (
int i=0; i<2; ++i) {
616 cV_Zii = e_4sc*( Zp(0,i).conjugate()*Zp(0,i)
617 + Zm(0,i)*Zm(0,i).conjugate() + 2.0*(cW2 - sW2) );
618 cA_Zii = e_4sc*( Zp(0,i).conjugate()*Zp(0,i)
619 - Zm(0,i)*Zm(0,i).conjugate() );
620 PiT_ch +=
FA(mu, p2, mC[i], mC[i], cV_Aii, cV_Zii, cA_Aii, cA_Zii);
624 b0 = PV.B0(mu2, p2, Mw2, Mw2);
625 PiT_WZH += 2.0*e2*cW*sW*Mz*Mz*b0;
628 a0 = PV.A0(mu2, Mw2);
630 b00 = PV.B00(mu2, p2, Mw2, Mw2);
631 PiT_WZH += 2.0*e*g2*cW*(2.0*a0 + (2.0*p2 + Mw2)*b0 + 4.0*b00);
634 double cot_2thW = (cW2 - sW2)/(2.0*sW*cW);
635 for (
int i=0; i<2; ++i) {
636 a0 = PV.A0(mu2, mHp2[i]);
637 b00 = PV.B00(mu2, p2, mHp2[i], mHp2[i]);
638 PiT_WZH += 2.0*e2*cot_2thW*(2.0*b00 + a0);
642 gslpp::complex PiT = PiT_f + PiT_sf + PiT_ch + PiT_WZH;
644 return ( PiT/16.0/M_PI/M_PI );
647gslpp::complex
EWSUSY::PiTp_A(
const double mu,
const double p2,
const double Mw_i)
const
650 double e2 = 4.0*M_PI*mySUSY.getAle();
652 double Nc = mySUSY.getNc();
655 double Mw2 = Mw_i*Mw_i;
656 double mHp2[2] = {mySUSY.getMHp()*mySUSY.getMHp(), Mw2};
658 gslpp::complex PiTp_f = gslpp::complex(0.0, 0.0,
false);
659 gslpp::complex PiTp_sf = gslpp::complex(0.0, 0.0,
false);
660 gslpp::complex PiTp_ch = gslpp::complex(0.0, 0.0,
false);
661 gslpp::complex PiTp_WZH = gslpp::complex(0.0, 0.0,
false);
662 gslpp::complex b0, b0p, b00p;
665 gslpp::complex cV_Aee = - e;
666 gslpp::complex cA_Aee = 0.0;
667 gslpp::complex cV_Add = - e/3.0;
668 gslpp::complex cA_Add = 0.0;
669 gslpp::complex cV_Auu = 2.0/3.0*e;
670 gslpp::complex cA_Auu = 0.0;
671 for (
int I=0; I<3; ++I) {
673 PiTp_f +=
dFA(mu, p2, m_l[I], m_l[I], cV_Aee, cV_Aee, cA_Aee, cA_Aee);
676 PiTp_f += Nc*
dFA(mu, p2, m_d[I], m_d[I], cV_Add, cV_Add, cA_Add, cA_Add);
679 PiTp_f += Nc*
dFA(mu, p2, m_u[I], m_u[I], cV_Auu, cV_Auu, cA_Auu, cA_Auu);
683 for (
int n=0; n<6; ++n) {
684 b00p = PV.B00p(mu2, p2, Mse2[n], Mse2[n]);
685 PiTp_sf += 4.0*e2*b00p;
689 for (
int n=0; n<6; ++n) {
690 b00p = PV.B00p(mu2, p2, Msd2[n], Msd2[n]);
691 PiTp_sf += 4.0*e2*Nc/3.0/3.0*b00p;
695 for (
int n=0; n<6; ++n) {
696 b00p = PV.B00p(mu2, p2, Msu2[n], Msu2[n]);
697 PiTp_sf += 4.0*e2*Nc*2.0/3.0*2.0/3.0*b00p;
701 gslpp::complex cV_Aii = e;
702 gslpp::complex cA_Aii = 0.0;
703 for (
int i=0; i<2; ++i)
704 PiTp_ch +=
dFA(mu, p2, mC[i], mC[i], cV_Aii, cV_Aii, cA_Aii, cA_Aii);
707 for (
int i=0; i<2; ++i) {
708 b00p = PV.B00p(mu2, p2, mHp2[i], mHp2[i]);
709 PiTp_WZH += 4.0*e2*b00p;
715 b0 = PV.B0(mu2, p2, Mw2, Mw2);
716 b0p = PV.B0p(mu2, p2, Mw2, Mw2);
717 b00p = PV.B00p(mu2, p2, Mw2, Mw2);
718 PiTp_WZH += 2.0*e2*( (2.0*p2 + Mw2)*b0p + 2.0*b0 + 4.0*b00p);
722 PiTp_WZH += - 2.0*e2*Mw2*b0p;
725 gslpp::complex PiTp = PiTp_f + PiTp_sf + PiTp_ch + PiTp_WZH;
727 return ( PiTp/16.0/M_PI/M_PI );
733 double mu = Mw_i * RenormalizationScaleFactor;
735 double Mz = mySUSY.getMz();
738 double sW2 = 1.0 - cW2;
739 double sW = sqrt(sW2);
744 PiThat +=
PiT_W(mu, 0.0, Mw_i).real();
747 double delMw2 =
PiT_W(mu, Mw_i*Mw_i, Mw_i).real();
751 double dele_over_e =
PiTp_A(mu, 0.0, Mw_i).real()/2.0
752 + sW/cW*
PiT_AZ(mu, 0.0, Mw_i).real()/Mz/Mz;
753 PiThat += 2.0*Mw_i*Mw_i*dele_over_e;
756 double delSw_overSw = - cW2/2.0/sW2
757 *(
PiT_W(mu, Mw_i*Mw_i, Mw_i).real()/Mw_i/Mw_i
758 -
PiT_Z(mu, Mz*Mz, Mw_i).real()/Mz/Mz );
759 PiThat -= 2.0*Mw_i*Mw_i*delSw_overSw;
763 PiThat += - 2.0*Mw_i*Mw_i/(sW*cW)*
PiT_AZ(mu, 0.0, Mw_i).real()/Mz/Mz;
770 double cW2 = Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
771 double sW2 = 1.0 - cW2;
774 return ( mySUSY.getAle()/4.0/M_PI/sW2
775 *(6.0 + (7.0 - 4.0*sW2)/2.0/sW2*log(cW2)) );
785 gslpp::complex a11 = gslpp::complex(0.0, 0.0,
false);
786 gslpp::complex a12 = gslpp::complex(0.0, 0.0,
false);
789 for (
int k=0; k<6; ++k)
790 for (
int K=0; K<3; ++K)
791 for (
int i=0; i<2; ++i)
792 for (
int j=0; j<4; ++j) {
793 gslpp::complex FF = F(sqrt(Mse2[k]), sqrt(Msn2[K]), mC[i], mN[j]);
795 *L_esnC(M, K, i, Mw_i)
796 *L_nLC(I, k, i, Mw_i)
797 *L_nsnN(J, K, j, Mw_i).conjugate()
798 *L_eLN(N, k, j, Mw_i).conjugate()
801 *L_eLN(M, k, j, Mw_i)
802 *L_nsnN(I, K, j, Mw_i)
803 *L_nLC(J, k, i, Mw_i).conjugate()
804 *L_esnC(N, K, i, Mw_i).conjugate()
809 for (
int k=0; k<6; ++k)
810 for (
int l=0; l<6; ++l)
811 for (
int i=0; i<2; ++i)
812 for (
int j=0; j<4; ++j) {
813 a11 += L_eLN(M, k, j, Mw_i)
814 *L_nLC(J, k, i, Mw_i).conjugate()
815 *L_nLC(I, l, i, Mw_i)
816 *L_eLN(N, l, j, Mw_i).conjugate()
817 *H(sqrt(Mse2[k]), sqrt(Mse2[l]), mC[i], mN[j]);
821 for (
int K=0; K<3; ++K)
822 for (
int L=0; L<3; ++L)
823 for (
int i=0; i<2; ++i)
824 for (
int j=0; j<4; ++j) {
825 a11 += L_esnC(M, K, i, Mw_i)
826 *L_nsnN(J, K, j, Mw_i).conjugate()
827 *L_nsnN(I, L, j, Mw_i)
828 *L_esnC(N, L, i, Mw_i).conjugate()
829 *H(sqrt(Msn2[K]), sqrt(Msn2[L]), mC[i], mN[j]);
833 for (
int k=0; k<6; ++k)
834 for (
int K=0; K<3; ++K)
835 for (
int i=0; i<2; ++i)
836 for (
int j=0; j<2; ++j) {
838 *L_esnC(M, K, i, Mw_i)
839 *L_nLC(I, k, i, Mw_i)
840 *L_nLC(J, k, j, Mw_i).conjugate()
841 *L_esnC(N, K, j, Mw_i).conjugate()
842 *mC[i]*mC[j]*F(sqrt(Mse2[k]), sqrt(Msn2[K]), mC[i], mC[j]);
846 for (
int k=0; k<6; ++k)
847 for (
int K=0; K<3; ++K)
848 for (
int i=0; i<4; ++i)
849 for (
int j=0; j<4; ++j) {
851 *L_eLN(M, k, i, Mw_i)
852 *L_nsnN(I, K, i, Mw_i)
853 *L_nsnN(J, K, j, Mw_i).conjugate()
854 *L_eLN(N, k, j, Mw_i).conjugate()
855 *mN[i]*mN[j]*F(sqrt(Mse2[k]), sqrt(Msn2[K]), mN[i], mN[j]);
856 a12 += L_eLN(M, k, i, Mw_i)
857 *L_nsnN(J, K, i, Mw_i).conjugate()
858 *L_nsnN(I, K, j, Mw_i)
859 *L_eLN(N, k, j, Mw_i).conjugate()
860 *H(sqrt(Mse2[k]), sqrt(Msn2[K]), mN[i], mN[j]);
863 gslpp::complex a1 = (a11 + a12)/16.0/M_PI/M_PI;
865 double sW2 = 1.0 - Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
866 return ( - sW2*Mw_i*Mw_i/2.0/M_PI/mySUSY.getAle()*a1.real() );
876 gslpp::complex a21 = gslpp::complex(0.0, 0.0,
false);
877 gslpp::complex a22 = gslpp::complex(0.0, 0.0,
false);
880 for (
int k=0; k<6; ++k)
881 for (
int K=0; K<3; ++K)
882 for (
int i=0; i<2; ++i)
883 for (
int j=0; j<4; ++j) {
884 gslpp::complex HH = H(sqrt(Mse2[k]), sqrt(Msn2[K]), mC[i], mN[j]);
887 *L_nLC(I, k, i, Mw_i)
888 *L_nsnN(J, K, j, Mw_i).conjugate()
889 *R_eLN(N, k, j, Mw_i).conjugate()
892 *R_eLN(M, k, j, Mw_i)
893 *L_nsnN(I, K, j, Mw_i)
894 *L_nLC(J, k, i, Mw_i).conjugate()
895 *R_esnC(N, K, i).conjugate()
900 for (
int k=0; k<6; ++k)
901 for (
int l=0; l<6; ++l)
902 for (
int i=0; i<2; ++i)
903 for (
int j=0; j<4; ++j) {
905 *R_eLN(M, k, j, Mw_i)
906 *L_nLC(J, k, i, Mw_i).conjugate()
907 *L_nLC(I, l, i, Mw_i)
908 *R_eLN(N, l, j, Mw_i).conjugate()
909 *H(sqrt(Mse2[k]), sqrt(Mse2[l]), mC[i], mN[j]);
913 for (
int K=0; K<3; ++K)
914 for (
int L=0; L<3; ++L)
915 for (
int i=0; i<2; ++i)
916 for (
int j=0; j<4; ++j) {
919 *L_nsnN(J, K, j, Mw_i).conjugate()
920 *L_nsnN(I, L, j, Mw_i)
921 *R_esnC(N, L, i).conjugate()
922 *H(sqrt(Msn2[K]), sqrt(Msn2[L]), mC[i], mN[j]);
926 for (
int k=0; k<6; ++k)
927 for (
int K=0; K<3; ++K)
928 for (
int i=0; i<4; ++i)
929 for (
int j=0; j<4; ++j) {
930 a22 += R_eLN(M, k, i, Mw_i)
931 *L_nsnN(J, K, i, Mw_i).conjugate()
932 *L_nsnN(I, K, j, Mw_i)
933 *R_eLN(N, k, j, Mw_i).conjugate()
934 *mN[i]*mN[j]*F(sqrt(Mse2[k]), sqrt(Msn2[K]), mN[i], mN[j]);
936 *R_eLN(M, k, i, Mw_i)
937 *L_nsnN(I, K, i, Mw_i)
938 *L_nsnN(J, K, j, Mw_i).conjugate()
939 *R_eLN(N, k, j, Mw_i).conjugate()
940 *H(sqrt(Mse2[k]), sqrt(Msn2[K]), mN[i], mN[j]);
944 for (
int k=0; k<6; ++k)
945 for (
int K=0; K<3; ++K)
946 for (
int i=0; i<2; ++i)
947 for (
int j=0; j<2; ++j) {
950 *L_nLC(I, k, i, Mw_i)
951 *L_nLC(J, k, j, Mw_i).conjugate()
952 *R_esnC(N, K, j).conjugate()
953 *H(sqrt(Mse2[k]), sqrt(Msn2[K]), mC[i], mC[j]);
956 gslpp::complex a2 = (a21 + a22)/16.0/M_PI/M_PI;
958 double sW2 = 1.0 - Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
959 return ( sW2*Mw_i*Mw_i/4.0/M_PI/mySUSY.getAle()*a2.real() );
973 throw std::runtime_error(
"EWSUSY::v(): Wrong argument!");
982 throw std::runtime_error(
"EWSUSY::v(): Wrong argument!");
985 gslpp::complex
v = gslpp::complex(0.0, 0.0,
false);
986 gslpp::complex b0, ff;
987 gslpp::complex CL_ji, CR_ji;
990 for (
int k=0; k<6; ++k)
991 for (
int j=0; j<4; ++j)
992 for (
int i=0; i<2; ++i) {
993 CL_ji = ZN(1,j)*Zp(0,i).conjugate()
994 - ZN(3,j)*Zp(1,i).conjugate()/sqrt(2.0);
995 CR_ji = ZN(1,j).conjugate()*Zm(0,i)
996 + ZN(2,j).conjugate()*Zm(1,i)/sqrt(2.0);
997 b0 = PV.B0(mu*mu, 0.0, mC[i]*mC[i], mN[j]*mN[j]);
998 ff = f(sqrt(Mse2[k]), mC[i], mN[j]);
999 v += L_nLC(intJ, k, i, Mw_i).conjugate()*L_eLN(intM, k, j, Mw_i)
1000 *( sqrt(2.0)*CL_ji*mC[i]*mN[j]*ff
1001 - CR_ji/sqrt(2.0)*(b0 - 0.5 + Mse2[k]*ff) );
1005 for (
int K=0; K<3; ++K)
1006 for (
int j=0; j<4; ++j)
1007 for (
int i=0; i<2; ++i) {
1008 CL_ji = ZN(1,j)*Zp(0,i).conjugate()
1009 - ZN(3,j)*Zp(1,i).conjugate()/sqrt(2.0);
1010 CR_ji = ZN(1,j).conjugate()*Zm(0,i)
1011 + ZN(2,j).conjugate()*Zm(1,i)/sqrt(2.0);
1012 b0 = PV.B0(mu*mu, 0.0, mC[i]*mC[i], mN[j]*mN[j]);
1013 ff = f(sqrt(Msn2[K]), mC[i], mN[j]);
1014 v += L_nsnN(intJ, K, j, Mw_i).conjugate()*L_esnC(intM, K, i, Mw_i)
1015 *( - sqrt(2.0)*CR_ji*mC[i]*mN[j]*ff
1016 + CL_ji/sqrt(2.0)*(b0 - 0.5 + Msn2[K]*ff) );
1020 gslpp::matrix<gslpp::complex> ZneT_ZL = Zne.transpose()*ZL;
1021 for (
int i=0; i<6; ++i)
1022 for (
int j=0; j<4; ++j)
1023 for (
int K=0; K<3; ++K) {
1024 b0 = PV.B0(mu*mu, 0.0, Mse2[i], Msn2[K]);
1025 ff = f(mN[j], sqrt(Mse2[i]), sqrt(Msn2[K]));
1026 v += 0.5*L_nsnN(intJ, K, j, Mw_i).conjugate()*L_eLN(intM, i, j, Mw_i)
1027 *ZneT_ZL(K, i).conjugate()*(b0 + 0.5 + mN[j]*mN[j]*ff);
1030 return (
v/16.0/M_PI/M_PI );
1044 throw std::runtime_error(
"EWSUSY::delta_v(): Wrong argument!");
1053 throw std::runtime_error(
"EWSUSY::delta_v(): Wrong argument!");
1056 gslpp::complex delv = gslpp::complex(0.0, 0.0,
false);
1058 gslpp::complex b0p, b0;
1061 for (
int k=0; k<6; ++k)
1062 for (
int j=0; j<4; ++j) {
1063 b0p = PV.B0p(muIR*muIR, 0.0, Mse2[k], mN[j]*mN[j]);
1064 b0 = PV.B0(mu*mu, 0.0, Mse2[k], mN[j]*mN[j]);
1065 delv += 0.5*L_eLN(intM, k, j, Mw_i)*L_eLN(intJ, k, j, Mw_i).conjugate()
1066 *( (Mse2[k] - mN[j]*mN[j])*b0p - b0 );
1070 for (
int K=0; K<3; ++K)
1071 for (
int i=0; i<2; ++i) {
1072 b0p = PV.B0p(muIR*muIR, 0.0, Msn2[K], mC[i]*mC[i]);
1073 b0 = PV.B0(mu*mu, 0.0, Msn2[K], mC[i]*mC[i]);
1074 delv += 0.5*L_esnC(intM, K, i, Mw_i)*L_esnC(intJ, K, i, Mw_i).conjugate()
1075 *( (Msn2[K] - mC[i]*mC[i])*b0p - b0 );
1078 return ( delv/16.0/M_PI/M_PI );
1084 double mu = Mw_i * RenormalizationScaleFactor;
1086 return (
v(mu, mySUSY.ELECTRON, mySUSY.NEUTRINO_1, Mw_i).real()
1087 +
delta_v(mu, mySUSY.ELECTRON, mySUSY.NEUTRINO_1, Mw_i).real()
1088 +
v(mu, mySUSY.MU, mySUSY.NEUTRINO_2, Mw_i).real()
1089 +
delta_v(mu, mySUSY.MU, mySUSY.NEUTRINO_2, Mw_i).real() );
1103 throw std::runtime_error(
"EWSUSY::Sigma_nu(): Wrong argument!");
1112 throw std::runtime_error(
"EWSUSY::Sigma_nu(): Wrong argument!");
1115 gslpp::complex Sigma = gslpp::complex(0.0, 0.0,
false);
1117 gslpp::complex b0p, b0;
1120 for (
int k=0; k<6; ++k)
1121 for (
int i=0; i<2; ++i) {
1122 b0p = PV.B0p(muIR*muIR, 0.0, Mse2[k], mC[i]*mC[i]);
1123 b0 = PV.B0(mu*mu, 0.0, Mse2[k], mC[i]*mC[i]);
1124 Sigma += 0.5*L_nLC(intI, k, i, Mw_i)*L_nLC(intJ, k, i, Mw_i).conjugate()
1125 *( (Mse2[k] - mC[i]*mC[i])*b0p - b0 );
1129 for (
int K=0; K<3; ++K)
1130 for (
int j=0; j<4; ++j) {
1131 b0p = PV.B0p(muIR*muIR, 0.0, Msn2[K], mN[j]*mN[j]);
1132 b0 = PV.B0(mu*mu, 0.0, Msn2[K], mN[j]*mN[j]);
1133 Sigma += 0.5*L_nsnN(intI, K, j, Mw_i)*L_nsnN(intJ, K, j, Mw_i).conjugate()
1134 *( (Msn2[K] - mN[j]*mN[j])*b0p - b0 );
1137 return ( Sigma/16.0/M_PI/M_PI );
1143 double mu = Mw_i * RenormalizationScaleFactor;
1145 return ( (
Sigma_nu_0(mu, mySUSY.NEUTRINO_1, mySUSY.NEUTRINO_1, Mw_i).real()
1146 -
delta_v(mu, mySUSY.ELECTRON, mySUSY.NEUTRINO_1, Mw_i).real()
1147 +
Sigma_nu_0(mu, mySUSY.NEUTRINO_2, mySUSY.NEUTRINO_2, Mw_i).real()
1148 -
delta_v(mu, mySUSY.MU, mySUSY.NEUTRINO_2, Mw_i).real() )/2.0 );
1153 double DeltaR = 0.0;
1185 double mu = mySUSY.getMz() * RenormalizationScaleFactor;
1187 double Mz2 = mySUSY.getMz()*mySUSY.getMz();
1188 double e = sqrt(4.0*M_PI*mySUSY.getAle());
1189 double Nc = mySUSY.getNc();
1191 double DelA_l = 0.0, DelA_d = 0.0, DelA_u = 0.0;
1194 gslpp::complex cV_Aee = - e;
1195 gslpp::complex cA_Aee = 0.0;
1196 gslpp::complex cV_Add = - e/3.0;
1197 gslpp::complex cA_Add = 0.0;
1198 gslpp::complex cV_Auu = 2.0/3.0*e;
1199 gslpp::complex cA_Auu = 0.0;
1200 for (
int I=0; I<3; ++I) {
1202 DelA_l +=
FA(mu, Mz2, m_l[I], m_l[I], cV_Aee, cV_Aee, cA_Aee, cA_Aee).real()/Mz2;
1203 DelA_l -=
dFA(mu, 0.0, m_l[I], m_l[I], cV_Aee, cV_Aee, cA_Aee, cA_Aee).real();
1206 DelA_d += Nc*
FA(mu, Mz2, m_d[I], m_d[I], cV_Add, cV_Add, cA_Add, cA_Add).real()/Mz2;
1207 DelA_d -= Nc*
dFA(mu, 0.0, m_d[I], m_d[I], cV_Add, cV_Add, cA_Add, cA_Add).real();
1211 DelA_u += Nc*
FA(mu, Mz2, m_u[I], m_u[I], cV_Auu, cV_Auu, cA_Auu, cA_Auu).real()/Mz2;
1212 DelA_u -= Nc*
dFA(mu, 0.0, m_u[I], m_u[I], cV_Auu, cV_Auu, cA_Auu, cA_Auu).real();
1222 return ( (DelA_l + DelA_d + DelA_u)/16.0/M_PI/M_PI );
1227 double cW2 = Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
1228 double sW2 = 1.0 - cW2;
1232 double DeltaRho_EW1 = mySUSY.getMyOneLoopEW()->DeltaRho(Mw_i);
1233 double DeltaR_rem_EW1 = mySUSY.getMyOneLoopEW()->DeltaR_rem(Mw_i);
1234 double DeltaR_SM_EW1 = DeltaAlphaL5q_EW1 - cW2/sW2*DeltaRho_EW1 + DeltaR_rem_EW1;
1246double EWSUSY::Mw_MSSM_TMP(
const double Mw_i)
const
1248 if (mySUSY.getFlagMw().compare(
"NORESUM") != 0)
1249 throw std::runtime_error(
"EWSUSY::Mw_SUSY(): Scheme for Mw is not applicable");
1251 double cW2 = Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
1252 double sW2 = 1.0 - cW2;
1254 throw std::runtime_error(
"EWSUSY::Mw_SUSY(): negative sW2");
1257 double dAleL5q = mySUSY.DeltaAlphaL5q();
1260 mySUSY.ComputeDeltaRho(Mw_i, DeltaRho);
1261 mySUSY.ComputeDeltaR_rem(Mw_i, DeltaR_rem);
1274 double DeltaR_EW2 = dAleL5q*dAleL5q + 2.0*dAleL5q*DeltaR_EW1
1275 + mySUSY.getMyApproximateFormulae()->DeltaR_TwoLoopEW_rem(Mw_i);
1278 double R = 1.0 + dAleL5q - cW2/sW2*DeltaRho_sum + DeltaR_rem_sum + DeltaR_EW2;
1284 double tmp = 4.0*M_PI*mySUSY.getAle()/sqrt(2.0)/mySUSY.getGF()/mySUSY.Mzbar()/mySUSY.Mzbar();
1285 if (tmp*R > 1.0)
throw std::runtime_error(
"EWSUSY::Mw(): Negative (1-tmp*R)");
1286 double Mwbar = mySUSY.Mzbar()/sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - tmp*R));
1289 double Mw_exp = mySUSY.MwFromMwbar(Mwbar);
1291 if (Mw_exp >= mySUSY.getMz()) {
1292 std::cout <<
"WARNING: Mw > Mz in EWSUSY::Mw_MSSM_TMP" << std::endl;
1310 return Mw_unphysical;
1315double EWSUSY::Mw_MSSM()
const
1319 Mw_org = mySUSY.Mw_tree();
1322 if(mySUSY.IsFlag_FH()) Mw_org = mySUSY.getMyFH()->getMw_FHinput();
1326 double Mw = Mw_MSSM_TMP(Mw_org);
1331 if (
Mw == Mw_unphysical)
return Mw_unphysical;
1336 Mw = Mw_MSSM_TMP(
Mw);
1341 if (
Mw == Mw_unphysical)
return Mw_unphysical;
1347gslpp::complex EWSUSY::L_esnC(
const int N,
const int K,
const int i,
const double Mw_i)
const
1349 double e = sqrt(4.0*M_PI*mySUSY.getAle());
1350 double cW = Mw_i/mySUSY.getMz();
1351 double sW = sqrt(1.0 - cW*cW);
1353 return ( e/sW*Zp(0,i)*Zne(N,K).conjugate() );
1356gslpp::complex EWSUSY::R_esnC(
const int N,
const int K,
const int i)
const
1358 return ( Yl(N,N)*Zne(N,K).conjugate()*Zm(1,i).conjugate() );
1361gslpp::complex EWSUSY::L_nLC(
const int I,
const int k,
const int i,
const double Mw_i)
const
1363 double e = sqrt(4.0*M_PI*mySUSY.getAle());
1364 double cW = Mw_i/mySUSY.getMz();
1365 double sW = sqrt(1.0 - cW*cW);
1367 return ( e/sW*ZL(I,k)*Zm(0,i) + Yl(I,I)*ZL(I+3,k)*Zm(1,i) );
1370gslpp::complex EWSUSY::L_nsnN(
const int J,
const int K,
const int j,
const double Mw_i)
const
1372 double e = sqrt(4.0*M_PI*mySUSY.getAle());
1373 double cW = Mw_i/mySUSY.getMz();
1374 double sW = sqrt(1.0 - cW*cW);
1376 return ( - e/sqrt(2.0)/sW/cW*Zne(J,K).conjugate()*(ZN(0,j)*sW - ZN(1,j)*cW) );
1379gslpp::complex EWSUSY::L_eLN(
const int N,
const int k,
const int j,
const double Mw_i)
const
1381 double e = sqrt(4.0*M_PI*mySUSY.getAle());
1382 double cW = Mw_i/mySUSY.getMz();
1383 double sW = sqrt(1.0 - cW*cW);
1385 return ( - e/sqrt(2.0)/sW/cW*ZL(N,k)*(ZN(0,j)*sW + ZN(1,j)*cW)
1386 - Yl(N,N)*ZL(N+3,k)*ZN(2,j) );
1389gslpp::complex EWSUSY::R_eLN(
const int N,
const int k,
const int j,
const double Mw_i)
const
1391 double e = sqrt(4.0*M_PI*mySUSY.getAle());
1392 double cW = Mw_i/mySUSY.getMz();
1394 return ( e*sqrt(2.0)/cW*ZL(N+3,k)*ZN(0,j).conjugate()
1395 - Yl(N,N)*ZL(N,k)*ZN(2,j).conjugate() );
1398gslpp::complex EWSUSY::F(
const double m1,
const double m2,
const double m3,
1399 const double m4)
const
1401 return PV.D0(0.0, 0.0, m1*m1, m2*m2, m3*m3, m4*m4);
1404gslpp::complex EWSUSY::H(
const double m1,
const double m2,
const double m3,
1405 const double m4)
const
1407 return PV.D00(0.0, 0.0, m1*m1, m2*m2, m3*m3, m4*m4);
1410gslpp::complex EWSUSY::f(
const double m1,
const double m2,
const double m3)
const
1412 return ( - PV.C0(0.0, m1*m1, m2*m2, m3*m3) );
gslpp::complex PiTp_A(const double mu, const double p2, const double Mw_i) const
The derivative of the transverse part of the photon self-energy with respect to , ,...
gslpp::complex v(const double mu, const QCD::lepton M, const QCD::lepton J, const double Mw_i) const
double DeltaR_TOTAL_EW1(const double Mw_i) const
The total one-loop contribution to in the MSSM.
EWSUSY(const SUSY &SUSY_in)
Constructor.
gslpp::complex PiT_Z(const double mu, const double p2, const double Mw_i) const
The transverse part of the Z-boson self-energy, , in the 't Hooft-Feynman gauge.
double DeltaR_rem_SM(const double Mw_i) const
The SM one-loop renormalized vertex and box corrections to in the 't Hooft-Feynman gauge.
double DeltaR_neutrino_SUSY(const double Mw_i) const
The renormalized SUSY neutrino wave-function contribution to in the 't Hooft-Feynman gauge.
double DeltaAlphaL5q_SM_EW1() const
The SM one-loop leptonic and five-flavour-hadronic corrections to at Z-mass scale.
gslpp::complex Sigma_nu_0(const double mu, const QCD::lepton I, const QCD::lepton J, const double Mw_i) const
The SUSY neutrino self-energy at zero momentum transfer in the 't Hooft-Feynman gauge.
double PiThat_W_0(const double Mw_i) const
The renormalized transverse W-boson self-energy at zero momentum transefer in the 't Hooft-Feynman ga...
gslpp::complex dFA(const double mu, const double p2, const double mi, const double mj, const gslpp::complex cV_aij, const gslpp::complex cV_bji, const gslpp::complex cA_aij, const gslpp::complex cA_bji) const
The derivative of with respect to .
double DeltaR_vertex_SUSY(const double Mw_i) const
The renormalized SUSY vertex corrections to in the 't Hooft-Feynman gauge.
double DeltaR_boxLL_SUSY(const double Mw_i) const
The LL SUSY box corrections to in the 't Hooft-Feynman gauge.
gslpp::complex FA(const double mu, const double p2, const double mi, const double mj, const gslpp::complex cV_aij, const gslpp::complex cV_bji, const gslpp::complex cA_aij, const gslpp::complex cA_bji) const
Fermionic contribuiton to the transverse part of a gauge-boson self-energy, .
gslpp::complex PiT_W(const double mu, const double p2, const double Mw_i) const
The transverse part of the W-boson self-energy, , in the 't Hooft-Feynman gauge.
gslpp::complex delta_v(const double mu, const QCD::lepton M, const QCD::lepton J, const double Mw_i) const
void SetRosiekParameters()
Sets parameters in Rosiek's notation.
gslpp::complex PiT_AZ(const double mu, const double p2, const double Mw_i) const
The transverse part of the self-energy, , for the mixing between photon and Z boson in the 't Hooft-F...
double DeltaR_SUSY_EW1(const double Mw_i) const
The one-loop SUSY contribution to .
double DeltaR_boxLR_SUSY(const double Mw_i) const
The LR SUSY box corrections to in the 't Hooft-Feynman gauge.
An observable class for the -boson mass.
quark
An enum type for quarks.
lepton
An enum type for leptons.
A base class for SUSY models.
static const double Mw_error
The target accuracy of the iterative calculation of the -boson mass in units of GeV.
orders_EW
An enumerated type representing perturbative orders of radiative corrections to EW precision observab...
@ orders_EW_size
The size of this enum.