25 const double EWSUSY::Mw_unphysical = 2.0;
26 const double EWSUSY::RenormalizationScaleFactor = 1.0;
30 : PV(true), mySUSY(SUSY_in),
31 Yu(3,3,0.0), Yd(3,3,0.0), Yl(3,3,0.0),
32 Au(3,3,0.0), Ad(3,3,0.0), Al(3,3,0.0),
33 Zm(2,2,0.), Zp(2,2,0.), ZN(4,4,0.),
34 ZU(6,6,0.), ZD(6,6,0.), ZL(6,6,0.), Zne(6,6,0.),
35 ZR(2,2,0.), ZH(2,2,0.)
42 Yd = - mySUSY.getYd();
43 Yl = - mySUSY.getYe();
45 Au = - mySUSY.getTUhat().transpose();
46 Ad = mySUSY.getTDhat().transpose();
47 Al = mySUSY.getTEhat().transpose();
49 Zm = mySUSY.getU().hconjugate();
50 Zp = mySUSY.getV().hconjugate();
51 ZN = mySUSY.getN().hconjugate();
53 ZU = mySUSY.getRu().hconjugate();
54 ZD = mySUSY.getRd().transpose();
55 ZL = mySUSY.getRl().transpose();
56 Zne = mySUSY.getRn().hconjugate();
58 double sinAlpha = mySUSY.getSaeff().real();
59 double cosAlpha =
sqrt(1.0 - sinAlpha*sinAlpha);
60 ZR.assign(0,0, cosAlpha);
61 ZR.assign(0,1, - sinAlpha);
62 ZR.assign(1,0, sinAlpha);
63 ZR.assign(1,1, cosAlpha);
65 ZH.assign(0,0, mySUSY.getSinb());
66 ZH.assign(0,1, - mySUSY.getCosb());
67 ZH.assign(1,0, mySUSY.getCosb());
68 ZH.assign(1,1, mySUSY.getSinb());
71 for (
int I=0; I<3; ++I) {
73 m_u[I] = mySUSY.getMyEWSMcache()->mf(mySUSY.getQuarks((
QCD::quark)(2*I)), mySUSY.getMz(),
FULLNNLO);
75 m_d[I] = mySUSY.getMyEWSMcache()->mf(mySUSY.getQuarks((
QCD::quark)(2*I + 1)), mySUSY.getMz(),
FULLNNLO);
77 m_l[I] = mySUSY.getLeptons((
QCD::lepton)(2*I + 1)).getMass();
80 mH02[0] = mySUSY.getMHh()*mySUSY.getMHh();
81 mH02[1] = mySUSY.getMHl()*mySUSY.getMHl();
82 mH02[2] = mySUSY.getMHa()*mySUSY.getMHa();
83 mH02[3] = mySUSY.getMz()*mySUSY.getMz();
84 for (
int k=0; k<6; ++k) {
85 Msu2[k] = mySUSY.getMsu2()(k);
86 Msd2[k] = mySUSY.getMsd2()(k);
87 Mse2[k] = mySUSY.getMse2()(k);
89 for (
int k=0; k<3; ++k)
90 Msn2[k] = mySUSY.getMsn2()(k);
91 for (
int i=0; i<2; ++i)
92 mC[i] = mySUSY.getMch()(i);
93 for (
int j=0; j<4; ++j)
94 mN[j] = mySUSY.getMneu()(j);
98 const double mi,
const double mj,
102 double mu2 = mu*mu, mi2 = mi*mi, mj2 = mj*mj;
105 double A0i = PV.A0(mu2, mi2);
106 double A0j = PV.A0(mu2, mj2);
110 return ( -2.0*(cV_aij*cV_bji + cA_aij*cA_bji)
111 *(4.0*B00 + A0i + A0j + (p2 - mi*mi - mj*mj)*B0)
112 -4.0*(cV_aij*cV_bji - cA_aij*cA_bji)*mi*mj*B0 );
116 const double mi,
const double mj,
120 double mu2 = mu*mu, mi2 = mi*mi, mj2 = mj*mj;
127 if (mi == mj && cA_aij == 0.0 && cA_bji == 0.0)
128 return ( -2.0*cV_aij*cV_bji*(4.0*B00p + p2*B0p + B0) );
130 return ( -2.0*(cV_aij*cV_bji + cA_aij*cA_bji)
131 *(4.0*B00p + (p2 - mi*mi - mj*mj)*B0p + B0)
132 -4.0*(cV_aij*cV_bji - cA_aij*cA_bji)*mi*mj*B0p );
138 double e2 = 4.0*M_PI*mySUSY.getAle();
140 double Mz = mySUSY.getMz();
141 double Nc = mySUSY.getNc();
144 double Mw2 = Mw_i*Mw_i;
145 double mHp2[2] = {mySUSY.getMHp()*mySUSY.getMHp(), Mw2};
148 double sW2 = 1.0 - cW2;
149 double sW =
sqrt(sW2);
150 double g2sq = e2/sW2;
151 double e_4sc = e/4.0/sW/cW;
152 double e_2sc = 2.0*e_4sc;
165 b0 = PV.B0(mu2, p2, 0.0, 0.0);
166 b00 = PV.B00(mu2, p2, 0.0, 0.0);
167 PiT_f += - 3.0/4.0*g2sq/cW2*(4.0*b00 + p2*b0);
176 for (
int I=0; I<3; ++I) {
178 PiT_f +=
FA(mu, p2, m_l[I], m_l[I], cV_Zee, cV_Zee, cA_Zee, cA_Zee);
181 PiT_f += Nc*
FA(mu, p2, m_d[I], m_d[I], cV_Zdd, cV_Zdd, cA_Zdd, cA_Zdd);
184 PiT_f += Nc*
FA(mu, p2, m_u[I], m_u[I], cV_Zuu, cV_Zuu, cA_Zuu, cA_Zuu);
190 for (
int I=0; I<3; ++I) {
191 b00 = PV.B00(mu2, p2, Msn2[I], Msn2[I]);
192 PiT_sf += 4.0*VZsnsn_II.
abs2()*b00;
193 a0 = PV.A0(mu2, Msn2[I]);
194 PiT_sf += VZZsnsn_II*a0;
199 for (
int n=0; n<6; ++n) {
200 for (
int m=0; m<6; ++m) {
202 for (
int I=0; I<3; ++I)
203 VZLL_mn += - e_2sc*ZL(I,n)*ZL(I,m).
conjugate();
204 VZLL_mn += - e_2sc*(- 2.0*sW2*Id6(m,n));
205 b00 = PV.B00(mu2, p2, Mse2[m], Mse2[n]);
206 PiT_sf += 4.0*VZLL_mn.
abs2()*b00;
209 VZZLL_nn += 2.0*e2/cW2*sW2;
210 for (
int I=0; I<3; ++I)
211 VZZLL_nn += 2.0*e2/cW2*(1.0 - 4.0*sW2)/4.0/sW2*ZL(I,n)*ZL(I,n).
conjugate();
212 a0 = PV.A0(mu2, Mse2[n]);
213 PiT_sf += VZZLL_nn*a0;
218 for (
int n=0; n<6; ++n) {
219 for (
int m=0; m<6; ++m) {
221 for (
int I=0; I<3; ++I)
222 VZDD_mn += - e_2sc*ZD(I,n)*ZD(I,m).
conjugate();
223 VZDD_mn += - e_2sc*(- 2.0/3.0*sW2*Id6(m,n));
224 b00 = PV.B00(mu2, p2, Msd2[m], Msd2[n]);
225 PiT_sf += 4.0*Nc*VZDD_mn.
abs2()*b00;
228 VZZDD_nn += 2.0*e2/3.0/cW2*sW2/3.0;
229 for (
int I=0; I<3; ++I)
230 VZZDD_nn += 2.0*e2/3.0/cW2*(3.0 - 4.0*sW2)/4.0/sW2*ZD(I,n)*ZD(I,n).
conjugate();
231 a0 = PV.A0(mu2, Msd2[n]);
232 PiT_sf += Nc*VZZDD_nn*a0;
237 for (
int n=0; n<6; ++n) {
238 for (
int m=0; m<6; ++m) {
240 for (
int I=0; I<3; ++I)
241 VZUU_mn += e_2sc*ZU(I,m).
conjugate()*ZU(I,n);
242 VZUU_mn += e_2sc*(- 4.0/3.0*sW2*Id6(m,n));
243 b00 = PV.B00(mu2, p2, Msu2[m], Msu2[n]);
244 PiT_sf += 4.0*Nc*VZUU_mn.
abs2()*b00;
247 VZZUU_nn += 2.0*e2/3.0/cW2*4.0*sW2/3.0;
248 for (
int I=0; I<3; ++I)
249 VZZUU_nn += 2.0*e2/3.0/cW2*(3.0 - 8.0*sW2)/4.0/sW2*ZU(I,n).
conjugate()*ZU(I,n);
250 a0 = PV.A0(mu2, Msu2[n]);
251 PiT_sf += Nc*VZZUU_nn*a0;
255 for (
int i=0; i<2; ++i)
256 for (
int j=0; j<2; ++j) {
257 cV_Zij = e_4sc*( Zp(0,j).conjugate()*Zp(0,i)
258 + Zm(0,j)*Zm(0,i).conjugate()
259 + 2.0*(cW2 - sW2)*Id2(j,i) );
261 cA_Zij = e_4sc*( Zp(0,j).conjugate()*Zp(0,i)
262 - Zm(0,j)*Zm(0,i).conjugate() );
264 PiT_ch +=
FA(mu, p2, mC[i], mC[j], cV_Zij, cV_Zji, cA_Zij, cA_Zji);
268 for (
int i=0; i<4; ++i)
269 for (
int j=0; j<4; ++j) {
270 cV_Zij = - e_4sc*( ZN(3,j).conjugate()*ZN(3,i)
271 - ZN(2,j).conjugate()*ZN(2,i)
272 - ZN(3,j)*ZN(3,i).conjugate()
273 + ZN(2,j)*ZN(2,i).conjugate() );
275 cA_Zij = - e_4sc*( ZN(3,j).conjugate()*ZN(3,i)
276 - ZN(2,j).conjugate()*ZN(2,i)
277 + ZN(3,j)*ZN(3,i).conjugate()
278 - ZN(2,j)*ZN(2,i).conjugate() );
280 PiT_ch += 0.5*
FA(mu, p2, mN[i], mN[j], cV_Zij, cV_Zji, cA_Zij, cA_Zji);
284 double cot_2thW = (cW2 - sW2)/(2.0*sW*cW);
285 for (
int i=0; i<2; ++i) {
286 b00 = PV.B00(mu2, p2, mHp2[i], mHp2[i]);
287 a0 = PV.A0(mu2, mHp2[i]);
288 PiT_WZH += 2.0*e2*cot_2thW*cot_2thW*(2.0*b00 + a0);
293 for (
int i=0; i<2; ++i)
294 for (
int j=0; j<2; ++j) {
295 AM_ij = ZR(0,i)*ZH(0,j) - ZR(1,i)*ZH(1,j);
296 b00 = PV.B00(mu2, p2, mH02[i], mH02[j+2]);
297 PiT_WZH += g2sq/cW2*AM_ij*AM_ij*b00;
299 for (
int j=0; j<4; ++j) {
300 a0 = PV.A0(mu2, mH02[j]);
301 PiT_WZH += g2sq/4.0/cW2*a0;
305 b0 = PV.B0(mu2, p2, Mw2, Mw2);
306 PiT_WZH += - 2.0*g2sq*sW2*sW2*Mz*Mz*b0;
310 for (
int i=0; i<2; ++i) {
311 CR_i = mySUSY.v1()*ZR(0,i) + mySUSY.v2()*ZR(1,i);
312 b0 = PV.B0(mu2, p2, Mz*Mz, mH02[i]);
316 PiT_WZH += - g2sq*Mw2/mySUSY.v()/mySUSY.v()/cW2/cW2*CR_i*CR_i*b0;
320 a0 = PV.A0(mu2, Mw2);
321 b0 = PV.B0(mu2, p2, Mw2, Mw2);
322 b00 = PV.B00(mu2, p2, Mw2, Mw2);
324 PiT_WZH += 2.0*g2sq*cW2*(2.0*a0 + (2.0*p2 + Mw2)*b0 + 4.0*b00);
329 return ( PiT/16.0/M_PI/M_PI );
336 double e2 = 4.0*M_PI*mySUSY.getAle();
338 double Mz = mySUSY.getMz();
339 double Nc = mySUSY.getNc();
342 double Mw2 = Mw_i*Mw_i;
343 double mHp2[2] = {mySUSY.getMHp()*mySUSY.getMHp(), Mw2};
346 double sW2 = 1.0 - cW2;
347 double sW =
sqrt(sW2);
348 double g2sq = e2/sW2;
349 double e_2s = e/2.0/sW;
350 double e_sq2s = e/
sqrt(2.0)/sW;
351 double e_2sq2s = e_sq2s/2.0;
352 double e2_2s2 = e2/2.0/sW2;
370 for (
int I=0; I<3; ++I) {
372 PiT_f +=
FA(mu, p2, m_l[I], 0.0, cV_Wen, cV_Wne, cA_Wen, cA_Wne);
375 PiT_f += Nc*
FA(mu, p2, m_d[I], m_u[I], cV_Wdu, cV_Wud, cA_Wdu, cA_Wud);
380 for (
int I=0; I<3; ++I) {
381 for (
int n=0; n<6; ++n) {
383 for (
int J=0; J<3; ++J)
384 VWsnL_In += e_sq2s*Zne(J,I)*ZL(J,n);
385 b00 = PV.B00(mu2, p2, Msn2[I], Mse2[n]);
386 PiT_sf += 4.0*VWsnL_In.
abs2()*b00;
389 a0 = PV.A0(mu2, Msn2[I]);
390 PiT_sf += VWWsnsn_II*a0;
392 for (
int n=0; n<6; ++n) {
394 for (
int I=0; I<3; ++I)
395 VWWLL_nn += e2_2s2*ZL(I,n)*ZL(I,n).
conjugate();
396 a0 = PV.A0(mu2, Mse2[n]);
397 PiT_sf += VWWLL_nn*a0;
402 for (
int n=0; n<6; ++n) {
403 for (
int m=0; m<6; ++m) {
405 for (
int I=0; I<3; ++I)
407 b00 = PV.B00(mu2, p2, Msd2[n], Msu2[m]);
408 PiT_sf += 4.0*Nc*VWDU_nm.
abs2()*b00;
411 for (
int I=0; I<3; ++I)
412 VWWDD_nn += e2_2s2*ZD(I,n)*ZD(I,n).
conjugate();
413 a0 = PV.A0(mu2, Msd2[n]);
414 PiT_sf += Nc*VWWDD_nn*a0;
416 for (
int I=0; I<3; ++I)
417 VWWUU_nn += e2_2s2*ZU(I,n).
conjugate()*ZU(I,n);
418 a0 = PV.A0(mu2, Msu2[n]);
419 PiT_sf += Nc*VWWUU_nn*a0;
424 for (
int i=0; i<2; ++i)
425 for (
int j=0; j<4; ++j) {
428 cV_Wji = - e_2s*( ZN(1,j)*Zp(0,i).conjugate()
429 - ZN(3,j)*Zp(1,i).conjugate()/
sqrt(2.0)
433 cA_Wji = - e_2s*( ZN(1,j)*Zp(0,i).conjugate()
434 - ZN(3,j)*Zp(1,i).conjugate()/
sqrt(2.0)
438 PiT_ch +=
FA(mu, p2, mC[i], mN[j], cV_Wij, cV_Wji, cA_Wij, cA_Wji);
443 for (
int i=0; i<2; ++i) {
444 for (
int j=0; j<2; ++j) {
445 AM_ij = ZR(0,i)*ZH(0,j) - ZR(1,i)*ZH(1,j);
446 b00 = PV.B00(mu2, p2, mH02[i], mHp2[j]);
447 PiT_WZH += g2sq*AM_ij*AM_ij*b00;
449 b00 = PV.B00(mu2, p2, mH02[i+2], mHp2[i]);
452 for (
int i=0; i<4; ++i) {
453 a0 = PV.A0(mu2, mH02[i]);
454 PiT_WZH += g2sq/4.0*a0;
456 for (
int i=0; i<2; ++i) {
457 a0 = PV.A0(mu2, mHp2[i]);
458 PiT_WZH += g2sq/2.0*a0;
462 b0 = PV.B0(mu2, p2, Mw2, 0.0);
463 PiT_WZH += - e2*Mw2*b0;
467 for (
int i=0; i<2; ++i) {
468 CR_i = mySUSY.v1()*ZR(0,i) + mySUSY.v2()*ZR(1,i);
469 b0 = PV.B0(mu2, p2, Mw2, mH02[i]);
473 PiT_WZH += - g2sq*Mw2/mySUSY.v()/mySUSY.v()*CR_i*CR_i*b0;
477 b0 = PV.B0(mu2, p2, Mw2, Mz*Mz);
478 PiT_WZH += - e2*sW2*Mz*Mz*b0;
481 a0 = PV.A0(mu2, Mw2);
482 b0 = PV.B0(mu2, p2, Mw2, Mz*Mz);
483 b00 = PV.B00(mu2, p2, Mz*Mz, Mw2);
484 PiT_WZH += g2sq*cW2*(2.0*PV.A0(mu2, Mz*Mz) - a0
485 + (4.0*p2 + Mz*Mz + Mw2)*b0 + 8.0*b00);
487 PiT_WZH += 3.0*g2sq*a0;
489 b0 = PV.B0(mu2, p2, Mw2, 0.0);
490 b00 = PV.B00(mu2, p2, Mw2, 0.0);
491 PiT_WZH += e2*((4.0*p2 + Mw2)*b0 - a0 + 8.0*b00);
496 return ( PiT/16.0/M_PI/M_PI );
502 double e2 = 4.0*M_PI*mySUSY.getAle();
504 double Mz = mySUSY.getMz();
505 double Nc = mySUSY.getNc();
508 double Mw2 = Mw_i*Mw_i;
509 double mHp2[2] = {mySUSY.getMHp()*mySUSY.getMHp(), Mw2};
512 double sW2 = 1.0 - cW2;
513 double sW =
sqrt(sW2);
515 double e_4sc = e/4.0/sW/cW;
516 double e_2sc = 2.0*e_4sc;
517 double e2_sc = e2/sW/cW;
539 for (
int I=0; I<3; ++I) {
541 PiT_f +=
FA(mu, p2, m_l[I], m_l[I], cV_Aee, cV_Zee, cA_Aee, cA_Zee);
544 PiT_f += Nc*
FA(mu, p2, m_d[I], m_d[I], cV_Add, cV_Zdd, cA_Add, cA_Zdd);
547 PiT_f += Nc*
FA(mu, p2, m_u[I], m_u[I], cV_Auu, cV_Zuu, cA_Auu, cA_Zuu);
552 for (
int n=0; n<6; ++n) {
554 for (
int I=0; I<3; ++I)
555 VZLL_nn += - e_2sc*ZL(I,n)*ZL(I,n).
conjugate();
556 VZLL_nn += - e_2sc*(- 2.0*sW2);
557 b00 = PV.B00(mu2, p2, Mse2[n], Mse2[n]);
559 PiT_sf += - 4.0*e*VZLL_nn*b00;
562 for (
int I=0; I<3; ++I)
563 VAZLL_nn += e2_sc*ZL(I,n)*ZL(I,n).
conjugate();
564 VAZLL_nn += e2_sc*(- 2.0*sW2);
565 a0 = PV.A0(mu2, Mse2[n]);
566 PiT_sf += VAZLL_nn*a0;
571 for (
int n=0; n<6; ++n) {
573 for (
int I=0; I<3; ++I)
574 VZDD_nn += - e_2sc*ZD(I,n)*ZD(I,n).
conjugate();
575 VZDD_nn += - e_2sc*(- 2.0/3.0*sW2);
576 b00 = PV.B00(mu2, p2, Msd2[n], Msd2[n]);
578 PiT_sf += - 4.0*e*Nc/3.0*VZDD_nn*b00;
581 for (
int I=0; I<3; ++I)
582 VAZDD_nn += e2_sc/3.0*ZD(I,n)*ZD(I,n).
conjugate();
583 VAZDD_nn += e2_sc/3.0*(- 2.0/3.0*sW2);
584 a0 = PV.A0(mu2, Msd2[n]);
585 PiT_sf += Nc*VAZDD_nn*a0;
590 for (
int n=0; n<6; ++n) {
592 for (
int I=0; I<3; ++I)
593 VZUU_nn += e_2sc*ZU(I,n).
conjugate()*ZU(I,n);
594 VZUU_nn += e_2sc*(- 4.0/3.0*sW2);
595 b00 = PV.B00(mu2, p2, Msu2[n], Msu2[n]);
597 PiT_sf += 4.0*e*Nc*2.0/3.0*VZUU_nn*b00;
600 for (
int I=0; I<3; ++I)
601 VAZUU_nn += 2.0*e2_sc/3.0*ZU(I,n).
conjugate()*ZU(I,n);
602 VAZUU_nn += 2.0*e2_sc/3.0*(- 4.0/3.0*sW2);
603 a0 = PV.A0(mu2, Msu2[n]);
604 PiT_sf += Nc*VAZUU_nn*a0;
611 for (
int i=0; i<2; ++i) {
612 cV_Zii = e_4sc*( Zp(0,i).conjugate()*Zp(0,i)
613 + Zm(0,i)*Zm(0,i).conjugate() + 2.0*(cW2 - sW2) );
614 cA_Zii = e_4sc*( Zp(0,i).conjugate()*Zp(0,i)
615 - Zm(0,i)*Zm(0,i).conjugate() );
616 PiT_ch +=
FA(mu, p2, mC[i], mC[i], cV_Aii, cV_Zii, cA_Aii, cA_Zii);
620 b0 = PV.B0(mu2, p2, Mw2, Mw2);
621 PiT_WZH += 2.0*e2*cW*sW*Mz*Mz*b0;
624 a0 = PV.A0(mu2, Mw2);
626 b00 = PV.B00(mu2, p2, Mw2, Mw2);
627 PiT_WZH += 2.0*e*g2*cW*(2.0*a0 + (2.0*p2 + Mw2)*b0 + 4.0*b00);
630 double cot_2thW = (cW2 - sW2)/(2.0*sW*cW);
631 for (
int i=0; i<2; ++i) {
632 a0 = PV.A0(mu2, mHp2[i]);
633 b00 = PV.B00(mu2, p2, mHp2[i], mHp2[i]);
634 PiT_WZH += 2.0*e2*cot_2thW*(2.0*b00 + a0);
640 return ( PiT/16.0/M_PI/M_PI );
646 double e2 = 4.0*M_PI*mySUSY.getAle();
648 double Nc = mySUSY.getNc();
651 double Mw2 = Mw_i*Mw_i;
652 double mHp2[2] = {mySUSY.getMHp()*mySUSY.getMHp(), Mw2};
667 for (
int I=0; I<3; ++I) {
669 PiTp_f +=
dFA(mu, p2, m_l[I], m_l[I], cV_Aee, cV_Aee, cA_Aee, cA_Aee);
672 PiTp_f += Nc*
dFA(mu, p2, m_d[I], m_d[I], cV_Add, cV_Add, cA_Add, cA_Add);
675 PiTp_f += Nc*
dFA(mu, p2, m_u[I], m_u[I], cV_Auu, cV_Auu, cA_Auu, cA_Auu);
679 for (
int n=0; n<6; ++n) {
680 b00p = PV.B00p(mu2, p2, Mse2[n], Mse2[n]);
681 PiTp_sf += 4.0*e2*b00p;
685 for (
int n=0; n<6; ++n) {
686 b00p = PV.B00p(mu2, p2, Msd2[n], Msd2[n]);
687 PiTp_sf += 4.0*e2*Nc/3.0/3.0*b00p;
691 for (
int n=0; n<6; ++n) {
692 b00p = PV.B00p(mu2, p2, Msu2[n], Msu2[n]);
693 PiTp_sf += 4.0*e2*Nc*2.0/3.0*2.0/3.0*b00p;
699 for (
int i=0; i<2; ++i)
700 PiTp_ch +=
dFA(mu, p2, mC[i], mC[i], cV_Aii, cV_Aii, cA_Aii, cA_Aii);
703 for (
int i=0; i<2; ++i) {
704 b00p = PV.B00p(mu2, p2, mHp2[i], mHp2[i]);
705 PiTp_WZH += 4.0*e2*b00p;
711 b0 = PV.B0(mu2, p2, Mw2, Mw2);
712 b0p = PV.B0p(mu2, p2, Mw2, Mw2);
713 b00p = PV.B00p(mu2, p2, Mw2, Mw2);
714 PiTp_WZH += 2.0*e2*( (2.0*p2 + Mw2)*b0p + 2.0*b0 + 4.0*b00p);
718 PiTp_WZH += - 2.0*e2*Mw2*b0p;
723 return ( PiTp/16.0/M_PI/M_PI );
729 double mu = Mw_i * RenormalizationScaleFactor;
731 double Mz = mySUSY.getMz();
734 double sW2 = 1.0 - cW2;
735 double sW =
sqrt(sW2);
743 double delMw2 =
PiT_W(mu, Mw_i*Mw_i, Mw_i).
real();
747 double dele_over_e =
PiTp_A(mu, 0.0, Mw_i).
real()/2.0
749 PiThat += 2.0*Mw_i*Mw_i*dele_over_e;
752 double delSw_overSw = - cW2/2.0/sW2
753 *(
PiT_W(mu, Mw_i*Mw_i, Mw_i).
real()/Mw_i/Mw_i
755 PiThat -= 2.0*Mw_i*Mw_i*delSw_overSw;
759 PiThat += - 2.0*Mw_i*Mw_i/(sW*cW)*
PiT_AZ(mu, 0.0, Mw_i).
real()/Mz/Mz;
766 double cW2 = Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
767 double sW2 = 1.0 - cW2;
770 return ( mySUSY.getAle()/4.0/M_PI/sW2
771 *(6.0 + (7.0 - 4.0*sW2)/2.0/sW2*
log(cW2)) );
785 for (
int k=0; k<6; ++k)
786 for (
int K=0; K<3; ++K)
787 for (
int i=0; i<2; ++i)
788 for (
int j=0; j<4; ++j) {
791 *L_esnC(M, K, i, Mw_i)
792 *L_nLC(I, k, i, Mw_i)
797 *L_eLN(M, k, j, Mw_i)
798 *L_nsnN(I, K, j, Mw_i)
805 for (
int k=0; k<6; ++k)
806 for (
int l=0; l<6; ++l)
807 for (
int i=0; i<2; ++i)
808 for (
int j=0; j<4; ++j) {
809 a11 += L_eLN(M, k, j, Mw_i)
811 *L_nLC(I, l, i, Mw_i)
813 *H(
sqrt(Mse2[k]),
sqrt(Mse2[l]), mC[i], mN[j]);
817 for (
int K=0; K<3; ++K)
818 for (
int L=0; L<3; ++L)
819 for (
int i=0; i<2; ++i)
820 for (
int j=0; j<4; ++j) {
821 a11 += L_esnC(M, K, i, Mw_i)
823 *L_nsnN(I, L, j, Mw_i)
825 *H(
sqrt(Msn2[K]),
sqrt(Msn2[L]), mC[i], mN[j]);
829 for (
int k=0; k<6; ++k)
830 for (
int K=0; K<3; ++K)
831 for (
int i=0; i<2; ++i)
832 for (
int j=0; j<2; ++j) {
834 *L_esnC(M, K, i, Mw_i)
835 *L_nLC(I, k, i, Mw_i)
838 *mC[i]*mC[j]*F(
sqrt(Mse2[k]),
sqrt(Msn2[K]), mC[i], mC[j]);
842 for (
int k=0; k<6; ++k)
843 for (
int K=0; K<3; ++K)
844 for (
int i=0; i<4; ++i)
845 for (
int j=0; j<4; ++j) {
847 *L_eLN(M, k, i, Mw_i)
848 *L_nsnN(I, K, i, Mw_i)
851 *mN[i]*mN[j]*F(
sqrt(Mse2[k]),
sqrt(Msn2[K]), mN[i], mN[j]);
852 a12 += L_eLN(M, k, i, Mw_i)
854 *L_nsnN(I, K, j, Mw_i)
856 *H(
sqrt(Mse2[k]),
sqrt(Msn2[K]), mN[i], mN[j]);
861 double sW2 = 1.0 - Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
862 return ( - sW2*Mw_i*Mw_i/2.0/M_PI/mySUSY.getAle()*a1.
real() );
876 for (
int k=0; k<6; ++k)
877 for (
int K=0; K<3; ++K)
878 for (
int i=0; i<2; ++i)
879 for (
int j=0; j<4; ++j) {
883 *L_nLC(I, k, i, Mw_i)
888 *R_eLN(M, k, j, Mw_i)
889 *L_nsnN(I, K, j, Mw_i)
896 for (
int k=0; k<6; ++k)
897 for (
int l=0; l<6; ++l)
898 for (
int i=0; i<2; ++i)
899 for (
int j=0; j<4; ++j) {
901 *R_eLN(M, k, j, Mw_i)
903 *L_nLC(I, l, i, Mw_i)
905 *H(
sqrt(Mse2[k]),
sqrt(Mse2[l]), mC[i], mN[j]);
909 for (
int K=0; K<3; ++K)
910 for (
int L=0; L<3; ++L)
911 for (
int i=0; i<2; ++i)
912 for (
int j=0; j<4; ++j) {
916 *L_nsnN(I, L, j, Mw_i)
918 *H(
sqrt(Msn2[K]),
sqrt(Msn2[L]), mC[i], mN[j]);
922 for (
int k=0; k<6; ++k)
923 for (
int K=0; K<3; ++K)
924 for (
int i=0; i<4; ++i)
925 for (
int j=0; j<4; ++j) {
926 a22 += R_eLN(M, k, i, Mw_i)
928 *L_nsnN(I, K, j, Mw_i)
930 *mN[i]*mN[j]*F(
sqrt(Mse2[k]),
sqrt(Msn2[K]), mN[i], mN[j]);
932 *R_eLN(M, k, i, Mw_i)
933 *L_nsnN(I, K, i, Mw_i)
936 *H(
sqrt(Mse2[k]),
sqrt(Msn2[K]), mN[i], mN[j]);
940 for (
int k=0; k<6; ++k)
941 for (
int K=0; K<3; ++K)
942 for (
int i=0; i<2; ++i)
943 for (
int j=0; j<2; ++j) {
946 *L_nLC(I, k, i, Mw_i)
949 *H(
sqrt(Mse2[k]),
sqrt(Msn2[K]), mC[i], mC[j]);
954 double sW2 = 1.0 - Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
955 return ( sW2*Mw_i*Mw_i/4.0/M_PI/mySUSY.getAle()*a2.
real() );
969 throw std::runtime_error(
"EWSUSY::v(): Wrong argument!");
978 throw std::runtime_error(
"EWSUSY::v(): Wrong argument!");
986 for (
int k=0; k<6; ++k)
987 for (
int j=0; j<4; ++j)
988 for (
int i=0; i<2; ++i) {
993 b0 = PV.B0(mu*mu, 0.0, mC[i]*mC[i], mN[j]*mN[j]);
994 ff = f(
sqrt(Mse2[k]), mC[i], mN[j]);
995 v += L_nLC(intJ, k, i, Mw_i).
conjugate()*L_eLN(intM, k, j, Mw_i)
996 *(
sqrt(2.0)*CL_ji*mC[i]*mN[j]*ff
997 - CR_ji/
sqrt(2.0)*(b0 - 0.5 + Mse2[k]*ff) );
1001 for (
int K=0; K<3; ++K)
1002 for (
int j=0; j<4; ++j)
1003 for (
int i=0; i<2; ++i) {
1008 b0 = PV.B0(mu*mu, 0.0, mC[i]*mC[i], mN[j]*mN[j]);
1009 ff = f(
sqrt(Msn2[K]), mC[i], mN[j]);
1010 v += L_nsnN(intJ, K, j, Mw_i).
conjugate()*L_esnC(intM, K, i, Mw_i)
1011 *( -
sqrt(2.0)*CR_ji*mC[i]*mN[j]*ff
1012 + CL_ji/
sqrt(2.0)*(b0 - 0.5 + Msn2[K]*ff) );
1017 for (
int i=0; i<6; ++i)
1018 for (
int j=0; j<4; ++j)
1019 for (
int K=0; K<3; ++K) {
1020 b0 = PV.B0(mu*mu, 0.0, Mse2[i], Msn2[K]);
1021 ff = f(mN[j],
sqrt(Mse2[i]),
sqrt(Msn2[K]));
1022 v += 0.5*L_nsnN(intJ, K, j, Mw_i).
conjugate()*L_eLN(intM, i, j, Mw_i)
1023 *ZneT_ZL(K, i).conjugate()*(b0 + 0.5 + mN[j]*mN[j]*ff);
1026 return (
v/16.0/M_PI/M_PI );
1040 throw std::runtime_error(
"EWSUSY::delta_v(): Wrong argument!");
1049 throw std::runtime_error(
"EWSUSY::delta_v(): Wrong argument!");
1057 for (
int k=0; k<6; ++k)
1058 for (
int j=0; j<4; ++j) {
1059 b0p = PV.B0p(muIR*muIR, 0.0, Mse2[k], mN[j]*mN[j]);
1060 b0 = PV.B0(mu*mu, 0.0, Mse2[k], mN[j]*mN[j]);
1061 delv += 0.5*L_eLN(intM, k, j, Mw_i)*L_eLN(intJ, k, j, Mw_i).
conjugate()
1062 *( (Mse2[k] - mN[j]*mN[j])*b0p - b0 );
1066 for (
int K=0; K<3; ++K)
1067 for (
int i=0; i<2; ++i) {
1068 b0p = PV.B0p(muIR*muIR, 0.0, Msn2[K], mC[i]*mC[i]);
1069 b0 = PV.B0(mu*mu, 0.0, Msn2[K], mC[i]*mC[i]);
1070 delv += 0.5*L_esnC(intM, K, i, Mw_i)*L_esnC(intJ, K, i, Mw_i).
conjugate()
1071 *( (Msn2[K] - mC[i]*mC[i])*b0p - b0 );
1074 return ( delv/16.0/M_PI/M_PI );
1080 double mu = Mw_i * RenormalizationScaleFactor;
1082 return (
v(mu, mySUSY.ELECTRON, mySUSY.NEUTRINO_1, Mw_i).
real()
1083 +
delta_v(mu, mySUSY.ELECTRON, mySUSY.NEUTRINO_1, Mw_i).
real()
1084 +
v(mu, mySUSY.MU, mySUSY.NEUTRINO_2, Mw_i).
real()
1085 +
delta_v(mu, mySUSY.MU, mySUSY.NEUTRINO_2, Mw_i).
real() );
1099 throw std::runtime_error(
"EWSUSY::Sigma_nu(): Wrong argument!");
1108 throw std::runtime_error(
"EWSUSY::Sigma_nu(): Wrong argument!");
1116 for (
int k=0; k<6; ++k)
1117 for (
int i=0; i<2; ++i) {
1118 b0p = PV.B0p(muIR*muIR, 0.0, Mse2[k], mC[i]*mC[i]);
1119 b0 = PV.B0(mu*mu, 0.0, Mse2[k], mC[i]*mC[i]);
1120 Sigma += 0.5*L_nLC(intI, k, i, Mw_i)*L_nLC(intJ, k, i, Mw_i).
conjugate()
1121 *( (Mse2[k] - mC[i]*mC[i])*b0p - b0 );
1125 for (
int K=0; K<3; ++K)
1126 for (
int j=0; j<4; ++j) {
1127 b0p = PV.B0p(muIR*muIR, 0.0, Msn2[K], mN[j]*mN[j]);
1128 b0 = PV.B0(mu*mu, 0.0, Msn2[K], mN[j]*mN[j]);
1129 Sigma += 0.5*L_nsnN(intI, K, j, Mw_i)*L_nsnN(intJ, K, j, Mw_i).
conjugate()
1130 *( (Msn2[K] - mN[j]*mN[j])*b0p - b0 );
1133 return ( Sigma/16.0/M_PI/M_PI );
1139 double mu = Mw_i * RenormalizationScaleFactor;
1141 return ( (
Sigma_nu_0(mu, mySUSY.NEUTRINO_1, mySUSY.NEUTRINO_1, Mw_i).
real()
1142 -
delta_v(mu, mySUSY.ELECTRON, mySUSY.NEUTRINO_1, Mw_i).
real()
1143 +
Sigma_nu_0(mu, mySUSY.NEUTRINO_2, mySUSY.NEUTRINO_2, Mw_i).
real()
1144 -
delta_v(mu, mySUSY.MU, mySUSY.NEUTRINO_2, Mw_i).
real() )/2.0 );
1149 double DeltaR = 0.0;
1181 double mu = mySUSY.getMz() * RenormalizationScaleFactor;
1183 double Mz2 = mySUSY.getMz()*mySUSY.getMz();
1184 double e =
sqrt(4.0*M_PI*mySUSY.getAle());
1185 double Nc = mySUSY.getNc();
1187 double DelA_l = 0.0, DelA_d = 0.0, DelA_u = 0.0;
1196 for (
int I=0; I<3; ++I) {
1198 DelA_l +=
FA(mu, Mz2, m_l[I], m_l[I], cV_Aee, cV_Aee, cA_Aee, cA_Aee).
real()/Mz2;
1199 DelA_l -=
dFA(mu, 0.0, m_l[I], m_l[I], cV_Aee, cV_Aee, cA_Aee, cA_Aee).
real();
1202 DelA_d += Nc*
FA(mu, Mz2, m_d[I], m_d[I], cV_Add, cV_Add, cA_Add, cA_Add).
real()/Mz2;
1203 DelA_d -= Nc*
dFA(mu, 0.0, m_d[I], m_d[I], cV_Add, cV_Add, cA_Add, cA_Add).
real();
1207 DelA_u += Nc*
FA(mu, Mz2, m_u[I], m_u[I], cV_Auu, cV_Auu, cA_Auu, cA_Auu).
real()/Mz2;
1208 DelA_u -= Nc*
dFA(mu, 0.0, m_u[I], m_u[I], cV_Auu, cV_Auu, cA_Auu, cA_Auu).
real();
1218 return ( (DelA_l + DelA_d + DelA_u)/16.0/M_PI/M_PI );
1223 double cW2 = Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
1224 double sW2 = 1.0 - cW2;
1228 double DeltaRho_EW1 = mySUSY.getMyOneLoopEW()->DeltaRho(Mw_i);
1229 double DeltaR_rem_EW1 = mySUSY.getMyOneLoopEW()->DeltaR_rem(Mw_i);
1230 double DeltaR_SM_EW1 = DeltaAlphaL5q_EW1 - cW2/sW2*DeltaRho_EW1 + DeltaR_rem_EW1;
1242 double EWSUSY::Mw_MSSM_TMP(
const double Mw_i)
const
1244 if (mySUSY.getFlagMw().compare(
"NORESUM") != 0)
1245 throw std::runtime_error(
"EWSUSY::Mw_SUSY(): Scheme for Mw is not applicable");
1247 double cW2 = Mw_i*Mw_i/mySUSY.getMz()/mySUSY.getMz();
1248 double sW2 = 1.0 - cW2;
1250 throw std::runtime_error(
"EWSUSY::Mw_SUSY(): negative sW2");
1253 double dAleL5q = mySUSY.DeltaAlphaL5q();
1256 mySUSY.ComputeDeltaRho(Mw_i, DeltaRho);
1257 mySUSY.ComputeDeltaR_rem(Mw_i, DeltaR_rem);
1270 double DeltaR_EW2 = dAleL5q*dAleL5q + 2.0*dAleL5q*DeltaR_EW1
1271 + mySUSY.getMyApproximateFormulae()->DeltaR_TwoLoopEW_rem(Mw_i);
1274 double R = 1.0 + dAleL5q - cW2/sW2*DeltaRho_sum + DeltaR_rem_sum + DeltaR_EW2;
1280 double tmp = 4.0*M_PI*mySUSY.getAle()/
sqrt(2.0)/mySUSY.getGF()/mySUSY.Mzbar()/mySUSY.Mzbar();
1281 if (tmp*R > 1.0)
throw std::runtime_error(
"EWSUSY::Mw(): Negative (1-tmp*R)");
1282 double Mwbar = mySUSY.Mzbar()/
sqrt(2.0) *
sqrt(1.0 +
sqrt(1.0 - tmp*R));
1285 double Mw_exp = mySUSY.MwFromMwbar(Mwbar);
1287 if (Mw_exp >= mySUSY.getMz()) {
1288 std::cout <<
"WARNING: Mw > Mz in EWSUSY::Mw_MSSM_TMP" << std::endl;
1306 return Mw_unphysical;
1311 double EWSUSY::Mw_MSSM()
const
1315 Mw_org = mySUSY.Mw_tree();
1317 double Mw = Mw_MSSM_TMP(Mw_org);
1322 if (
Mw == Mw_unphysical)
return Mw_unphysical;
1327 Mw = Mw_MSSM_TMP(
Mw);
1332 if (
Mw == Mw_unphysical)
return Mw_unphysical;
1338 gslpp::complex EWSUSY::L_esnC(
const int N,
const int K,
const int i,
const double Mw_i)
const
1340 double e =
sqrt(4.0*M_PI*mySUSY.getAle());
1341 double cW = Mw_i/mySUSY.getMz();
1342 double sW =
sqrt(1.0 - cW*cW);
1344 return ( e/sW*Zp(0,i)*Zne(N,K).conjugate() );
1347 gslpp::complex EWSUSY::R_esnC(
const int N,
const int K,
const int i)
const
1349 return ( Yl(N,N)*Zne(N,K).conjugate()*Zm(1,i).conjugate() );
1352 gslpp::complex EWSUSY::L_nLC(
const int I,
const int k,
const int i,
const double Mw_i)
const
1354 double e =
sqrt(4.0*M_PI*mySUSY.getAle());
1355 double cW = Mw_i/mySUSY.getMz();
1356 double sW =
sqrt(1.0 - cW*cW);
1358 return ( e/sW*ZL(I,k)*Zm(0,i) + Yl(I,I)*ZL(I+3,k)*Zm(1,i) );
1361 gslpp::complex EWSUSY::L_nsnN(
const int J,
const int K,
const int j,
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/
sqrt(2.0)/sW/cW*Zne(J,K).conjugate()*(ZN(0,j)*sW - ZN(1,j)*cW) );
1370 gslpp::complex EWSUSY::L_eLN(
const int N,
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*ZL(N,k)*(ZN(0,j)*sW + ZN(1,j)*cW)
1377 - Yl(N,N)*ZL(N+3,k)*ZN(2,j) );
1380 gslpp::complex EWSUSY::R_eLN(
const int N,
const int k,
const int j,
const double Mw_i)
const
1382 double e =
sqrt(4.0*M_PI*mySUSY.getAle());
1383 double cW = Mw_i/mySUSY.getMz();
1385 return ( e*
sqrt(2.0)/cW*ZL(N+3,k)*ZN(0,j).conjugate()
1386 - Yl(N,N)*ZL(N,k)*ZN(2,j).conjugate() );
1389 gslpp::complex EWSUSY::F(
const double m1,
const double m2,
const double m3,
1390 const double m4)
const
1392 return PV.D0(0.0, 0.0, m1*m1, m2*m2, m3*m3, m4*m4);
1395 gslpp::complex EWSUSY::H(
const double m1,
const double m2,
const double m3,
1396 const double m4)
const
1398 return PV.D00(0.0, 0.0, m1*m1, m2*m2, m3*m3, m4*m4);
1401 gslpp::complex EWSUSY::f(
const double m1,
const double m2,
const double m3)
const
1403 return ( - PV.C0(0.0, m1*m1, m2*m2, m3*m3) );