a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
SUSYMatching.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "SUSYMatching.h"
9 #include "SUSY.h"
10 #include <math.h>
11 #include <gsl/gsl_integration.h>
12 #include <stdexcept>
13 
15 
16  StandardModelMatching(SUSY_i),
17  mySUSY(SUSY_i),
18  Polylogs(),
19  PV(true),
20 
21  mcdbd2(5, NDR, NLO),
22  mcdbd2Hp(5, NDR, NLO),
23  mcdbd2gg(5, NDR, NLO),
24  mcdbd2ChiChi(5, NDR, NLO),
25  mcdbd2Chi0Chi0(5, NDR, NLO),
26  mcdbd2Chi0g(5, NDR, NLO),
27  mcdbd2HpT(5, NDR, NLO),
28  mcdbd2ggT(5, NDR, NLO),
29  mcdbd2ChiChiT(5, NDR, NLO),
30  mcdbd2Chi0Chi0T(5, NDR, NLO),
31  mcdbd2Chi0gT(5, NDR, NLO),
32  mcdbs2(5, NDR, NLO),
33  mcdbs2Hp(5, NDR, NLO),
34  mcdbs2gg(5, NDR, NLO),
35  mcdbs2ChiChi(5, NDR, NLO),
36  mcdbs2Chi0Chi0(5, NDR, NLO),
37  mcdbs2Chi0g(5, NDR, NLO),
38  mcdbs2HpT(5, NDR, NLO),
39  mcdbs2ggT(5, NDR, NLO),
40  mcdbs2ChiChiT(5, NDR, NLO),
41  mcdbs2Chi0Chi0T(5, NDR, NLO),
42  mcdbs2Chi0gT(5, NDR, NLO),
43  mcdk2(5, NDR, NLO),
44  mcdk2Hp(5, NDR, NLO),
45  mcdk2gg(5, NDR, NLO),
46  mcdk2ChiChi(5, NDR, NLO),
47  mcdk2Chi0Chi0(5, NDR, NLO),
48  mcdk2Chi0g(5, NDR, NLO),
49  mcdk2HpT(5, NDR, NLO),
50  mcdk2ggT(5, NDR, NLO),
51  mcdk2ChiChiT(5, NDR, NLO),
52  mcdk2Chi0Chi0T(5, NDR, NLO),
53  mcdk2Chi0gT(5, NDR, NLO),
54  mcdd2(5, NDR, NLO),
55  mcdd2Hp(5, NDR, NLO),
56  mcdd2gg(5, NDR, NLO),
57  mcdd2ChiChi(5, NDR, NLO),
58  mcdd2Chi0Chi0(5, NDR, NLO),
59  mcdd2Chi0g(5, NDR, NLO),
60  mcdd2HpT(5, NDR, NLO),
61  mcdd2ggT(5, NDR, NLO),
62  mcdd2ChiChiT(5, NDR, NLO),
63  mcdd2Chi0Chi0T(5, NDR, NLO),
64  mcdd2Chi0gT(5, NDR, NLO),
65  mcDLij(2, NDR, LO),
66  mcDLi3j(20, NDR, LO),
67  mcmueconv(8, NDR, LO),
68  mcgminus2mu(2, NDR, LO),
69  mcbsg(8, NDR, NNLO),
70  mcBMll(13, NDR, NLO),
71  mcbnlep(10, NDR, NLO, NLO_QED11),
72  mcbnlepCC(10, NDR, NLO),
73  mcd1(10, NDR, NLO),
74  mcd1Buras(10, NDR, NLO),
75 
76  myCKM(3, 3, 0.),
77  mym_su_sq(6, 0.),
78  mym_sd_sq(6, 0.),
79  mym_se_sq(6, 0.),
80  mym_sn_sq(6, 0.),
81  myRu(6, 6, 0.),
82  myRd(6, 6, 0.),
83  myRl(6, 6, 0.),
84  myRn(6, 6, 0.),
85  MChi(2, 0.),
86  myV(2, 2, 0.),
87  myU(2, 2, 0.),
88  MChi0(4, 0.),
89  MNeig(4, 0.),
90  myN(4, 4, 0.),
91  ON(4, 4, 0.),
92 
93  Lepty(4, 6, 0.),
94  Leptz(2, 3, 0.),
95  Leptfa1(4, 6, 0.),
96  Leptfa2(2, 3, 0.),
97  Leptf1(4, 6, 0.),
98  Leptf2(4, 6, 0.),
99  Leptf3(2, 3, 0.),
100  Leptf4(2, 3, 0.),
101  CRlE(2, 3, 0.),
102  CRlMU(2, 3, 0.),
103  CRlTAU(2, 3, 0.),
104  CRqUP(2, 6, 0.),
105  CRqDOWN(2, 6, 0.),
106  CLlE(2, 3, 0.),
107  CLlMU(2, 3, 0.),
108  CLlTAU(2, 3, 0.),
109  CLqUP(2, 6, 0.),
110  CLqDOWN(2, 6, 0.),
111  NRlE(4, 6, 0.),
112  NRlMU(4, 6, 0.),
113  NRlTAU(4, 6, 0.),
114  NRqUP(4, 6, 0.),
115  NRqDOWN(4, 6, 0.),
116  NLlE(4, 6, 0.),
117  NLlMU(4, 6, 0.),
118  NLlTAU(4, 6, 0.),
119  NLqUP(4, 6, 0.),
120  NLqDOWN(4, 6, 0.),
121  AmpA1LN(4, 6, 0.),
122  AmpA1RN(4, 6, 0.),
123  AmpA1LC(2, 3, 0.),
124  AmpA1RC(2, 3, 0.),
125  AmpTauA1LN(4, 6, 0.),
126  AmpTauA1RN(4, 6, 0.),
127  AmpTauA1LC(2, 3, 0.),
128  AmpTauA1RC(2, 3, 0.),
129  AmpTEA1LN(4, 6, 0.),
130  AmpTEA1RN(4, 6, 0.),
131  AmpTEA1LC(2, 3, 0.),
132  AmpTEA1RC(2, 3, 0.),
133  AmpALN(4, 6, 0.),
134  AmpARN(4, 6, 0.),
135  AmpALC(2, 3, 0.),
136  AmpARC(2, 3, 0.),
137  AmpTauALN(4, 6, 0.),
138  AmpTauARN(4, 6, 0.),
139  AmpTauALC(2, 3, 0.),
140  AmpTauARC(2, 3, 0.),
141  AmpTEALN(4, 6, 0.),
142  AmpTEARN(4, 6, 0.),
143  AmpTEALC(2, 3, 0.),
144  AmpTEARC(2, 3, 0.),
145  TUhat(3, 3, 0.),
146  TDhat(3, 3, 0.),
147  TEhat(3, 3, 0.),
148 
149  gamULCKM(6, 3, 0.),
150  gamURCKM(6, 3, 0.),
151  gamULCKMMD(6, 3, 0.),
152  gamURCKMMU(6, 3, 0.),
153  gamDLMD(6, 3, 0.),
154  gamDRMD(6, 3, 0.),
155  gamULgamULdag(6, 6, 0.),
156  gamDRgamDRdag(6, 6, 0.),
157  upQmassM(3,3,0.),
158  downQmassM(3,3,0.),
159 
160  Eps_JCache(3,0.),
161  Lambda0EpsYCache(3,3,0.),
162  DeltaDL_Cache(3,3,0.),
163  PHLRCache(3,3,0.),
164  PHRLCache(3,3,0.),
165  myCKM_cache(3, 3, 0.),
166  VUDHH_cache(6, 6, 0.),
167  DeltaMd_cache(3, 3, 0.),
168  mySUSYMQ(6, 0.)
169 
170 {
171 }
172 
173 
175 {
176  myCKM = mySUSY.getVCKM();
177  myRu = mySUSY.getRu();
178  myRd = mySUSY.getRd();
179  myRl = mySUSY.getRl();
180  myRn = mySUSY.getRn();
185  Q_S = mySUSY.getQ_SUSY();
186  mu2R = Q_S * Q_S;
187  tanb = mySUSY.getTanb();
188  sinb = mySUSY.getSinb();
189  cosb = mySUSY.getCosb();
190  Als = mySUSY.Als(Q_S);
191  Mg = mySUSY.getMGl();
192  MChi0 = mySUSY.getMneu();
193  MChi = mySUSY.getMch();
194  MHpm = mySUSY.getMHp();
195  v = mySUSY.v();
196  v1 = mySUSY.v1();
197  v2 = mySUSY.v2();
198  gW = sqrt(8. * mySUSY.getGF() / sqrt(2.)) * mySUSY.Mw_tree();
199  myN = mySUSY.getN();
200  myV = mySUSY.getV();
201  myU = mySUSY.getU();
202 
203 // std::cout << Mg << " Mg " << std::endl;
204 // std::cout << MChi0 << " MChi0 " << std::endl;
205 // std::cout << MChi << " MChi " << std::endl;
206 // std::cout << MHpm << " MHpm " << std::endl;
207 //
208 // std::cout << mym_su_sq << " mym_su_sq " << std::endl;
209 // std::cout << mym_sd_sq << " mym_sd_sq " << std::endl;
210 // std::cout << mym_sn_sq << " mym_sn_sq " << std::endl;
211 // std::cout << mym_se_sq << " mym_se_sq " << std::endl;
212 
213  mW = mySUSY.Mw_tree();
214  sinthetaW = sqrt(mySUSY.StandardModel::sW2(mW));
215 
216  upQmassM.assign(0,0,mySUSY.Mq_Q(mySUSY.UP));
217  upQmassM.assign(1,1,mySUSY.Mq_Q(mySUSY.CHARM));
218  upQmassM.assign(2,2,mySUSY.Mq_Q(mySUSY.TOP));
219 
220  downQmassM.assign(0,0,mySUSY.Mq_Q(mySUSY.DOWN));
221  downQmassM.assign(1,1,mySUSY.Mq_Q(mySUSY.STRANGE));
222  downQmassM.assign(2,2,mySUSY.Mq_Q(mySUSY.BOTTOM));
223 
224  for (int i = 0; i < 6; i++) {
225  for (int j = 0; j < 3; j++) {
226  gslpp::complex sum_k_gamULCKM = 0.,sum_k_gamURCKMMU = 0., sum_k_gamULCKMMD = 0., sum_k_gamDRMD = 0., sum_k_gamDLMD = 0.;
227  for (int k = 0; k < 3; k++) {
228  gslpp::complex temp_QmassUCKM = 0., temp_CKMQmassD = 0.;
229  for (int l = 0; l < 3; l++) {
230  temp_QmassUCKM += upQmassM(k, l) * myCKM(l, j);
231  temp_CKMQmassD += myCKM(k, l) * downQmassM(l, j) ;
232  }
233  sum_k_gamULCKM += myRu(i, k) * myCKM(k, j);
234  sum_k_gamURCKMMU += myRu(i, k + 3) * temp_QmassUCKM;
235  sum_k_gamULCKMMD += myRu(i, k) * temp_CKMQmassD;
236  sum_k_gamDRMD += myRd(i, k + 3) * downQmassM(k, j);
237  sum_k_gamDLMD += myRd(i, k) * downQmassM(k, j);
238  }
239  gamULCKM.assign(i, j, sum_k_gamULCKM);
240  gamURCKMMU.assign(i, j, sum_k_gamURCKMMU);
241  gamULCKMMD.assign(i, j, sum_k_gamULCKMMD);
242  gamDRMD.assign(i, j, sum_k_gamDRMD);
243  gamDLMD.assign(i, j, sum_k_gamDLMD);
244  }
245  }
246 
247  for (int i = 0; i < 6; i++) {
248  for (int j = 0; j < 6; j++) {
249  gslpp::complex sum_k_gamULgamULdag = 0.,sum_k_gamDRgamDRdag = 0.;
250  for (int k = 0; k < 3; k++) {
251  sum_k_gamULgamULdag += myRu(i, k) * myRu(j, k).conjugate();
252  sum_k_gamDRgamDRdag += myRd(i, k + 3) * myRd(j, k + 3).conjugate();
253  }
254  gamULgamULdag.assign(i, j, sum_k_gamULgamULdag);
255  gamDRgamDRdag.assign(i, j, sum_k_gamDRgamDRdag);
256  }
257  }
258 
259  for (int i = 0; i < 6; i++) {
260  for (int j = 0; j < 3; j++) {
261  for (int k = 0; k < 2; k++) {
262  XUL[i][j][k] = gW * (-myV(k, 0).conjugate() * gamULCKM(i, j) + myV(k, 1).conjugate() * gamURCKMMU(i, j) / (sqrt(2.) * mW * sinb));
263  XUR[i][j][k] = gW * (myU(k, 1) * gamULCKMMD(i, j) / (sqrt(2.) * mW * cosb));
264  }
265  }
266  }
267 
268  for (int i = 0; i < 6; i++) {
269  for (int j = 0; j < 3; j++) {
270  for (int k = 0; k < 4; k++) {
271  ZDL[i][j][k] = -gW/sqrt(2.) * ((-myN(k, 1).conjugate() + 1./3. * (sinthetaW / sqrt(1. - sinthetaW * sinthetaW)) * myN(k, 0).conjugate()) * myRd(i, j) + myN(k, 2).conjugate() * gamDRMD(i, j) / (mW * cosb));
272  ZDR[i][j][k] = -gW/sqrt(2.) * (2./3. * (sinthetaW / sqrt(1. - sinthetaW * sinthetaW)) * myN(k, 0) * myRd(i, j + 3) + myN(k, 2) * gamDLMD(i, j) / (mW * cosb));
273  }
274  }
275  }
276 
277 }
278 /******************************************************************************/
279 
282 
283 double SUSYMatching::D0N(double x, double y, double z, double t) {
284 
285  if ((fabs(z) < SUSYLEPS3) || (fabs(t) < SUSYLEPS3)) {
286  return (0.);
287  }
288  else
289  return (sqrt(z * t) * Dk(x, y, z, t, 0));
290 
291 }
292 
293 double SUSYMatching::D2LL0(double a, double b) {
294 
295  return ( (log(a) - log(b)) / (4. * (-a + b)) );
296 
297 }
298 
299 
300 double SUSYMatching::DL0(double a, double b, double c, int k) {
301 
302  if (k == 2) {
303  return ( (a * (-b + c) * log(a) + b * (a - c) * log(b)
304  + (-a + b) * c * log(c)) / (4. * (a - b)*(-a + c)*(-b + c)));
305  }
306  else if (k == 0) {
307 
308  return (((-b + c) * log(a) + (a - c) * log(b) + (-a + b) * log(c)) /
309  ((a - b)*(-a + c)*(-b + c)));
310  }
311  else {
312 
313  throw std::runtime_error("Error in DL0(a,b,c,k) in SUSYMatching.cpp ");
314  }
315 
316  return (EXIT_FAILURE);
317 }
318 
319 double SUSYMatching::DL(double a, double b, double c, int k) {
320  if (k == 0) {
321  if (fabs(a) < SUSYLEPS) {
322 
323  throw std::runtime_error("Error in DL(a,b,c,0) in SUSYMatching.cpp because the limit DL(0,b,c, k = 0) is singular");
324  }
325  else if (fabs(b) < SUSYLEPS) {
326 
327  return ( (-a + c + a * log(a) - a * log(c)) / (a * (a - c) * (a - c)));
328  }
329  else if (fabs(c) < SUSYLEPS) {
330 
331  return ( (-a + b + a * log(a) - a * log(b)) / (a * (a - b) * (a - b)));
332  }
333  else
334  return( (a*a-b*c)/(a-b)/(a-b)/(a-c)/(a-c)*log(a) +
335  b/(a-b)/(a-b)/(c-b)*log(b) - c/(a-c)/(a-c)/(c-b)*log(c)
336  - 1./(a-b)/(a-c) ) ;
337  }
338  else if (k == 2) {
339 
340  if (fabs(a) < SUSYLEPS) {
341 
342  return ( (-log(b) + log(c)) / (4. * (b - c)));
343  }
344  else if (fabs(b) < SUSYLEPS) {
345 
346  return ( (-a + c + c * log(a) - c * log(c)) / (4. * (a - c) * (a - c)));
347  }
348  else if (fabs(c) < SUSYLEPS) {
349 
350  return ( (-a + b + b * log(a) - b * log(b)) / (4. * (a - b) * (a - b)));
351  }
352 
353  return ( a*(-2.*b*c + a*(b + c))/4./(a - b)/(a - b)/(a - c)/(a - c)*log(a)
354  + b*b/4./(a - b)/(a - b)/(c - b)*log(b) - c*c/4./(a - c)/(a - c)/
355  (c - b)*log(c) + a/4./(a - b)/(c - a) );
356  }
357  else {
358 
359  throw std::runtime_error("Error in DL(a,b,c,k) in SUSYMatching.cpp ");
360  }
361 
362  return (EXIT_FAILURE);
363 }
364 
365 double SUSYMatching::DLL(double a, double b, int k) {
366  if (k == 0) {
367 
368  if (fabs(a) < SUSYLEPS) {
369 
370  throw std::runtime_error("Error in DLL(a,b,k = 0) in SUSYMatching.cpp because the limit DLL(0,b, k = 0) is singular");
371  }
372 
373  if (fabs(b) < SUSYLEPS) {
374  return (1. / (2. * a * a));
375  }
376  else
377  return ( -(-a * a + b * b + 2 * a * b * log(a) - 2 * a * b * log(b)) / // sign mistake found
378  (2. * a * (a - b) * (a - b) * (a - b)));
379  }
380  else if (k == 2) {
381 
382  if (fabs(a) < SUSYLEPS) {
383 
384  throw std::runtime_error("Error in DLL(a,b,k = 2) in SUSYMatching.cpp because the limit DLL(0,b, k = 2) is singular");
385  }
386 
387  if (fabs(b) < SUSYLEPS) {
388 
389  return ( -1. / (8. * a));
390  }
391  else
392  return (a * a - 4 * a * b + 3 * b * b + 2 * b * b * log(a)
393  - 2 * b * b * log(b)) / (8. * (-a + b) * (-a + b) * (-a + b));
394  }
395  else {
396 
397  throw std::runtime_error("Error in DLL(a,b,k) in SUSYMatching.cpp ");
398  }
399 
400  return (EXIT_FAILURE);
401 }
402 
403 double SUSYMatching::DLLp(double a, double b, int k) {
404  if (k == 0) {
405 
406  if ( (fabs(a) < SUSYLEPS) || (fabs(b) < SUSYLEPS) ) {
407 
408  std::cout << "MChargini = " << mySUSY.getMch() << std::endl;
409  std::cout << "MNeutralini = " << mySUSY.getMneu() << std::endl;
410  std::cout << "MD2squarks = " << mySUSY.getMsd2() << std::endl;
411  std::cout << "MU2squarks = " << mySUSY.getMsu2() << std::endl;
412  std::cout << "Mgluino = " << mySUSY.getM3() << std::endl;
413  std::cout << "MHp = " << mySUSY.getMHp() << std::endl;
414  std::cout << "Mw_tree = " << mySUSY.Mw_tree() << std::endl;
415  std::cout << "Mup(Q_S) = " << mySUSYMQ(0) << std::endl;
416  std::cout << "Mdown(Q_S) = " << mySUSYMQ(1) << std::endl;
417  std::cout << "Mc(Q_S) = " << mySUSYMQ(2) << std::endl;
418  std::cout << "Ms(Q_S) = " << mySUSYMQ(3) << std::endl;
419  std::cout << "Mtop(Q_S) = " << mySUSYMQ(4) << std::endl;
420  std::cout << "Mb(Q_S) = " << mySUSYMQ(5) << std::endl;
421 
422 
423  throw std::runtime_error("Error in DLLp function, because the limits D0(0,0,b,b) and D0(a,a,0,0) are singular ");
424  }
425  return (-2 * a + 2 * b + (a + b) * log(a) - (a + b) * log(b))
426  / ((a - b)*(a - b)*(a - b));
427  }
428  else if (k == 2) {
429 
430  if ( fabs(a) < SUSYLEPS ){
431 
432  return (-1. / (4. * b ));
433  }
434  else if ( fabs(b) < SUSYLEPS ){
435 
436  return ( -1. / (4. * a) );
437  }
438 
439  return (-a * a + b * b + 2 * a * b * log(a) - 2 * a * b * log(b))
440  / (4. * (a - b)*(a - b)*(a - b));
441  }
442  else {
443 
444  throw std::runtime_error("Error in DLLp(a,b,k) in SUSYMatching.cpp ");
445  }
446 
447  return (EXIT_FAILURE);
448 
449 }
450 
451 double SUSYMatching::DLLL(double a, int k) {
452  if (k == 0) {
453  return (1. / (6. * a * a));
454  }
455  else if (k == 2) {
456  return (-1. / (12. * a));
457  }
458  else {
459 
460  throw std::runtime_error("Error in DLLL(a,k) in SUSYMatching.cpp ");
461  }
462 
463  return (EXIT_FAILURE);
464 }
465 
468 
469 double SUSYMatching::Dk(double x, double y, double z, double t, int k) {
470 
472  if ((fabs(1. - y / x) < SUSYLEPS) && (fabs(1. - z / x) < SUSYLEPS) &&
473  (fabs(1. - t / x) < SUSYLEPS)) {
474  return DLLL(x, k);
475  }
476 
478  if ((fabs(1. - y / x) < SUSYLEPS) && (fabs(1. - z / x) < SUSYLEPS)) {
479  return DLL(x, t, k);
480  }
481  if ((fabs(1. - y / x) < SUSYLEPS) && (fabs(1. - t / x) < SUSYLEPS)) {
482  return DLL(x, z, k);
483  }
484  if ((fabs(1. - z / x) < SUSYLEPS) && (fabs(1. - t / x) < SUSYLEPS)) {
485  return DLL(x, y, k);
486  }
487  if ((fabs(1. - z / y) < SUSYLEPS) && (fabs(1. - t / y) < SUSYLEPS)) {
488  return DLL(y, x, k);
489  }
490 
492  if (fabs(1. - y / x) < SUSYLEPS) {
493  if ((fabs(1. - t / z) < SUSYLEPS)) {
494  return DLLp(x, z, k);
495  }
496  else
497  return DL(x, z, t, k);
498  }
499  if (fabs(1. - z / x) < SUSYLEPS) {
500  if (fabs(1. - t / y) < SUSYLEPS) {
501  return DLLp(x, y, k);
502  }
503  else
504  return DL(x, y, t, k);
505  }
506  if (fabs(1. - t / x) < SUSYLEPS) {
507  if (fabs(1. - z / y) < SUSYLEPS) {
508  return DLLp(x, y, k);
509  }
510  else
511  return DL(x, z, y, k);
512  }
513  if ((fabs(1. - z / y) < SUSYLEPS)) {
514  return DL(y, x, t, k);
515  }
516  if ((fabs(1. - t / y) < SUSYLEPS)) {
517  return DL(y, z, x, k);
518  }
519  if ((fabs(1. - z / t) < SUSYLEPS)) {
520 
521  return (DL(x, y, z, k));
522  }
523 
525 
526  if (fabs(x) < SUSYLEPS) {
527 
528  return (DL0(y, z, t, k));
529  }
530  if (fabs(y) < SUSYLEPS) {
531 
532  return (DL0(x, z, t, k));
533  }
534  if (fabs(z) < SUSYLEPS) {
535 
536  return (DL0(x, y, t, k));
537  }
538  if (fabs(t) < SUSYLEPS) {
539 
540  return (DL0(x, y, z, k));
541  }
542 
543 
545  if (k == 0) {
546  return x * log(x) / ((t - x)*(z - x)*(y - x)) + y * log(y)
547  / ((t - y)*(z - y)*(x - y)) + z * log(z)
548  / ((t - z)*(x - z)*(y - z)) +
549  t * log(t) / ((x - t)*(z - t)*(y - t));
550  }
551  else if (k == 2) {
552  return (((t * t * log(t)) / ((-t + x)*(-t + y)*(-t + z))
553  + (x * x * log(x)) / ((t - x)*(-x + y)*(-x + z))
554  + (y * y * log(y)) / ((t - y)*(x - y)*(-y + z))
555  + (z * z * log(z)) / ((t - z)*(x - z)*(y - z)))/4.);
556  }
557  else {
558 
559  throw std::runtime_error("Error in Dk(x,y,z,t,k) in SUSYMatching.cpp ");
560  }
561 
562  return (EXIT_FAILURE);
563 
564 }
565 
568 
569 double SUSYMatching::CL(double a, double b, int k) {
570 
571  if (k == 0) {
572  return ((a - b - b * log(a) + b * log(b)) / ((a - b)*(a - b)));
573 
574  }
575  else if (k == 2) {
576 
577  return (-log(mu2R) + (a * (a - b) + a * (a - 2 * b) * log(a) + b * b * log(b)) /
578  ((a - b)*(a - b)));
579  }
580  else {
581 
582  throw std::runtime_error("Error in CL(a,b,k) in SUSYMatching.cpp ");
583  }
584 
585  return (EXIT_FAILURE);
586 }
587 
588 double SUSYMatching::CLL(double a, int k) {
589 
590  if (k == 0) {
591  return (1. / (2. * a));
592 
593  }
594  else if (k == 2) {
595 
596  return (-log(mu2R) + 1.5 + log(a));
597  }
598  else {
599 
600  throw std::runtime_error("Error in CLL(a,k) in SUSYMatching.cpp ");
601  }
602 
603  return (EXIT_FAILURE);
604 }
605 
606 
609 
610 double SUSYMatching::Ck(double x, double y, double z,int k) {
611 
612  if ((fabs(1. - y / x) < SUSYLEPS)&(fabs(1. - z / x) < SUSYLEPS)) {
613 
614  return (CLL(x,k));
615 
616  }
617  else if ((fabs(1. - y / x) < SUSYLEPS)) {
618 
619  return (CL(x,z,k));
620 
621  }
622  else if ((fabs(1. - z / x) < SUSYLEPS)) {
623 
624  return (CL(x,y,k));
625 
626  }
627  else if ((fabs(1. - z / y) < SUSYLEPS)) {
628 
629  return (CL(y,x,k));
630 
631  }
632 
633  if (k == 0) {
634  return ((y * log(y / x)) / ((x - y)*(-y + z)) + (z * log(z / x)) /
635  ((x - z)*(y - z)));
636  }
637  else if (k == 2) {
638  return (-log(mu2R) + log(x) + y * y * log(y / x) / ((x - y)*(-y + z))
639  + z * z * log(z / x) / ((x - z)*(y - z)));
640  }
641  else {
642 
643  throw std::runtime_error("Error in Ck(x,y,z,k) in SUSYMatching.cpp ");
644  }
645 
646  return (EXIT_FAILURE);
647 
648 }
649 
652 
653 double SUSYMatching::BL(double a, int k) {
654 
655  if (k == 0) {
656  return (1. + log(a));
657  }
658  else if (k == 2) {
659  return ((-log(mu2R) + 2. + log(a)) / 2.);
660  }
661  else {
662 
663  throw std::runtime_error("Error in BL(a,k) in SUSYMatching.cpp ");
664  }
665 
666  return (EXIT_FAILURE);
667 }
668 
669 double SUSYMatching::Bk(double x, double y, int k) {
670 
672  if((fabs(x) < SUSYLEPS2)&&(k==0)) return (log(y));
673  if((fabs(y) < SUSYLEPS2)&&(k==0)) return (log(x));
674 
675 
676  if (fabs((1. - y / x)) < SUSYLEPS2) {
677  return (BL(x, k));
678 
679  }
680  if (k == 0) {
681  return (log(x) + (y * log(x / y)) / (x - y));
682  }
683  else if (k == 2) {
684 
685  return (1. / 4. + 0.5 * Ck(x, y, y, 2));
686  }
687  else {
688 
689  throw std::runtime_error("Error in Bk(x,y,k) in SUSYMatching.cpp ");
690  }
691 
692  return (EXIT_FAILURE);
693 
694 }
697 
699 
706 }
707 
710 
712 
713  gslpp::vector<double> myMU2Squarks(6, 0.);
714  gslpp::vector<double> myMD2Squarks(6, 0.);
715  myMU2Squarks = mySUSY.getMsu2();
716  myMD2Squarks = mySUSY.getMsd2();
717 
718  int k, l, I, J;//, i, j;
719 
720  for (J = 0; J < 3; J++) {
721  for (I = 0; I < 3; I++) {
722 
723  gslpp::complex temp(0., 0., false);
724 
725  for (k = 0; k < 6; k++) {
726 
727  temp += -2. / 3. * Als / M_PI * Mg * myRd(k, J + 3).conjugate()
728  * myRd(k, I) * Bk(Mg * Mg, myMD2Squarks(k), 0);
729 
730  }
731 
732  for (k = 0; k < 6; k++) {
733  for (l = 0; l < 4; l++) {
734 
735  temp += 1. / (16. * M_PI * M_PI) * VdDNR(J, k, l, 0).conjugate()
736  * VdDNL(I, k, l, 0)
737  * MChi0(l) * Bk(MChi0(l) * MChi0(l), myMD2Squarks(k), 0);
738  }
739 
740  }
741 
742  for (k = 0; k < 6; k++) {
743  for (l = 0; l < 2; l++) {
744 
745  temp += 1. / (16. * M_PI * M_PI) * VdUCR(J, k, l, 0).conjugate() * VdUCL(I, k, l) *
746  MChi(l) * Bk(MChi(l) * MChi(l), myMU2Squarks(k), 0);
747  }
748  }
749 
750  DeltaMd_cache.assign(J, I, temp);
751  }
752  }
753 }
754 
756 
757  return (DeltaMd_cache(J,I));
758 }
759 
762 
764 
765  for (int J = 0; J < 3; J++) {
766 
767  Eps_JCache.assign(J, DeltaMd(J, J) / (tanb * mySUSYMQ(2 * J + 1)));
768  }
769 }
770 
772 
773  return (Eps_JCache(J));
774 
775 }
776 
778 
779  int I,J;
780  double mtop = mySUSYMQ(4);
781 
782  for( I = 0;I < 3;I++){
783  for( J = 0;J < 3;J++){
784 
785  Lambda0EpsYCache.assign(J,I,DeltaMd(J,I)/(tanb
786  * mySUSYMQ(2 * J + 1)) /( 2 /(v2 * v2)
787  * mtop * mtop ));
788  }
789  }
790 }
791 
792 
793 
795 
796 
797 
798  return (Lambda0EpsYCache(J,I));
799 
800 }
801 
802 
806 
808 
809  int I, J;
810  gslpp::complex C(0., 0., false);
811 
812  for (I = 0; I < 3; I++) {
813  for (J = 0; J < 3; J++) {
814  if (J != I) {
815  double mdJ = mySUSYMQ(2 * J + 1);
816  double mdI = mySUSYMQ(2 * I + 1);
817  DeltaDL_Cache.assign(J, I, -(mdJ * DeltaMd(J, I) + DeltaMd(I, J).conjugate() * mdI) /
818  (mdJ * mdJ - mdI * mdI));
819  } else
820  if (J == I) {
821  DeltaDL_Cache.assign(J, I, C);
822  }
823 
824  }
825 
826  }
827 
828 }
829 
831 
832  return(DeltaDL_Cache(J,I));
833 }
834 
836 
837  gslpp::complex C(0., 0., false);
838  C = DeltaDL_Cache(J,I).conjugate();
839 
840  return (C);
841 }
842 
844 
845 
846 
847  gslpp::complex Delta_CKM_IJ(0.,0.,false);
848 
849  int l, I, J;
850 
851  for (I = 0; I < 3; I++) {
852  for (J = 0; J < 3; J++) {
853 
854  for (l = 0; l < 3; l++) {
855 
856  Delta_CKM_IJ += myCKM(I, l) * DeltaDL(l, J);
857 
858  }
859 
860  myCKM_cache.assign(I, J, myCKM(I, J) - Delta_CKM_IJ);
861  Delta_CKM_IJ.assign(0.,0.,0);
862 
863  }
864  }
865 }
866 
868 
869  return (myCKM_cache);
870 
871 }
874 
876 
877 
878  gslpp::complex VdUCL_bkj(0., 0., false);
879  int l, b, k, j;
880 
881  for (b = 0; b < 3; b++) {
882  for (k = 0; k < 6; k++) {
883  for (j = 0; j < 2; j++) {
884 
885 
886  for (l = 0; l < 3; l++) {
887  VdUCL_bkj += -gW * myRu(k, l) * myCKM(l, b) * myV(j, 0).conjugate()
888  + sqrt(2.) / v2 * mySUSYMQ(2 * l)
889  * myRu(k, l + 3) * myV(j, 1).conjugate() * myCKM(l, b);
890  }
891 
892  VdUCL_cache[b][k][j] = VdUCL_bkj;
893  VdUCL_bkj.assign(0., 0., 0);
894 
895  }
896  }
897  }
898 }
899 
900 gslpp::complex SUSYMatching::VdUCL(int b, int k, int j) {
901 
902  return (VdUCL_cache[b][k][j]);
903 
904 }
905 
906 
909 void SUSYMatching::Comp_VdUCR(int flag) {
910 
911  gslpp::complex VdUCR_bkj(0., 0., false);
912  gslpp::complex Ydb(0., 0., false);
913  gslpp::complex Ydp(0., 0., false);
914  int l, p, b, k, j;
915 
916  for (b = 0; b < 3; b++) {
917  for (k = 0; k < 6; k++) {
918  for (j = 0; j < 2; j++) {
919  for (l = 0; l < 3; l++) {
920  if(flag == 1) {
921  Ydb = mySUSYMQ(2 * b + 1) * sqrt(2.) / v1 /(1. + Eps_J(b)*tanb) ;
922  VdUCR_bkj += Ydb * myCKM(l, b) * myRu(k, l) * myU(j, 1);
923 
924  for (p = 0; p < 3; p++) {
925  Ydp = mySUSYMQ(2 * p + 1)* sqrt(2.) / v1 /(1. + Eps_J(p)* tanb) ;
926  VdUCR_bkj += (myCKM(l, p)*(Ydp * DeltaDR(p, b)
927  - DeltaDL(p, b) * Ydb) * myRu(k, l) * myU(j, 1));
928  }
929 
930  }
931  else if(flag == 0){
932  Ydb = mySUSYMQ(2 * b + 1) * sqrt(2.) / v1;
933  VdUCR_bkj += Ydb * myRu(k, l) * myU(j, 1)
934  * myCKM(l, b);
935  }
936 
937  else{throw std::runtime_error("Wrong flag assigned to vertex VdUCR_bkj Ã¥");}
938 
939  }
940 
941  VdUCR_cache[b][k][j][flag] = VdUCR_bkj;
942  VdUCR_bkj.assign(0., 0., 0);
943 
944  }
945  }
946  }
947 }
948 
949 
950 gslpp::complex SUSYMatching::VdUCR(int b, int k, int j, int flag) {
951 
952  return (VdUCR_cache[b][k][j][flag]);
953 }
954 
955 
958 
960 
961  gslpp::complex VdDNL_bkj(0., 0., false);
962  /* tree-level cW2 */
963  double cW2 = mySUSY.Mw_tree()*mySUSY.Mw_tree()/mySUSY.getMz()/mySUSY.getMz();
964  /* SM value for cW2 in the on-shell scheme */
965  //double cW2 = mySUSY.StandardModel::cW2();
966  /* MSSM value for cW2 in the on-shell scheme */
967  //double cW2 = mySUSY.cW2();
968  double sW2 = 1.0 - cW2;
969  double CosThetaW = sqrt(cW2);
970  double SinThetaW = sqrt(sW2);
971  int l, b, k, j;
972 
973  for (b = 0; b < 3; b++) {
974  for (k = 0; k < 6; k++) {
975  for (j = 0; j < 4; j++) {
976 
977  if(flag==1) {
978 
979  VdDNL_bkj += (-gW / sqrt(2.) * myRd(k, b) * (1. / 3.
980  * SinThetaW / CosThetaW * myN(j, 0).conjugate() -
981  myN(j, 1).conjugate()) - sqrt(2.) / v1
982  * mySUSYMQ(2 * b + 1) /
983  (1. + Eps_J(b) * tanb)
984  * myRd(k, b + 3) * myN(j, 2).conjugate());
985 
986  for (l = 0; l < 3; l++) {
987 
988  // correzione vertici neutralini calcolate seguendo le indicazioni di Buras
989 
990  VdDNL_bkj += (-gW / sqrt(2.) * myRd(k, l) * (1. / 3.
991  * SinThetaW / CosThetaW * myN(j, 0).conjugate() -
992  myN(j, 1).conjugate()) - sqrt(2.) / v1
993  * mySUSYMQ(2 * l + 1) /
994  (1. + Eps_J(l)* tanb)
995  * myRd(k, l + 3) * myN(j, 2).conjugate())
996  *DeltaDL(l, b);
997  }
998  }
999 
1000  if(flag==0){
1001 
1002  VdDNL_bkj += -gW / sqrt(2.) * myRd(k, b) * (1. / 3.
1003  * SinThetaW / CosThetaW * myN(j, 0).conjugate() -
1004  myN(j, 1).conjugate()) - sqrt(2.) / v1
1005  * mySUSYMQ(2 * b + 1)
1006  * myRd(k, b + 3) * myN(j, 2).conjugate();
1007 
1008  }
1009 
1010  VdDNL_cache[b][k][j][flag] = VdDNL_bkj;
1011  VdDNL_bkj.assign(0., 0., 0);
1012 
1013  }
1014 
1015  }
1016  }
1017 
1018  if(flag != 0 && flag != 1) throw std::runtime_error("Error in Comp_VdDNL(flag) in SUSYMatching.cpp ");
1019 }
1020 
1021 gslpp::complex SUSYMatching::VdDNL(int b, int k, int j, int flag) {
1022 
1023 
1024  return (VdDNL_cache[b][k][j][flag]);
1025 
1026 }
1027 
1030 
1032 
1033  gslpp::complex VdDNR_bkj(0., 0., false);
1034  /* tree-level cW2 */
1035  double cW2 = mySUSY.Mw_tree()*mySUSY.Mw_tree()/mySUSY.getMz()/mySUSY.getMz();
1036  /* SM value for cW2 in the on-shell scheme */
1037  //double cW2 = mySUSY.StandardModel::cW2();
1038  /* MSSM value for cW2 in the on-shell scheme */
1039  //double cW2 = mySUSY.cW2();
1040  double sW2 = 1.0 - cW2;
1041 
1042  double CosThetaW = sqrt(cW2);
1043  double SinThetaW = sqrt(sW2);
1044  int l, b, k, j;
1045 
1046  for (b = 0; b < 3; b++) {
1047  for (k = 0; k < 6; k++) {
1048  for (j = 0; j < 4; j++) {
1049 
1050  if(flag==1){
1051 
1052  VdDNR_bkj += -sqrt(2.) / 3. * gW * SinThetaW / CosThetaW *
1053  myRd(k, b + 3) * myN(j, 0) - sqrt(2.) / v1
1054  * mySUSYMQ(2 * b + 1) /
1055  (1. + Eps_J(b) * tanb) * myRd(k, b) *
1056  myN(j, 2);
1057 
1058  for (l = 0; l < 3; l++) {
1059 
1060  // correzione vertici neutralini calcolate seguendo le indicazioni di Buras
1061 
1062  VdDNR_bkj += (-sqrt(2.) / 3. * gW * SinThetaW / CosThetaW *
1063  myRd(k, l + 3) * myN(j, 0) - sqrt(2.) / v1
1064  * mySUSYMQ(2 * l + 1) /
1065  (1. + Eps_J(l) * tanb) * myRd(k, l) *
1066  myN(j, 2)) * DeltaDR(l, b);
1067  }
1068  }
1069 
1070  if(flag==0){
1071  VdDNR_bkj += -sqrt(2.) / 3. * gW * SinThetaW / CosThetaW *
1072  myRd(k, b + 3) * myN(j, 0) - sqrt(2.) / v1
1073  * mySUSYMQ(2 * b + 1)* myRd(k, b) * myN(j, 2);
1074  }
1075 
1076  VdDNR_cache[b][k][j][flag] = VdDNR_bkj;
1077  VdDNR_bkj.assign(0., 0., 0);
1078 
1079  }
1080  }
1081  }
1082 
1083  if(flag != 0 && flag != 1) throw std::runtime_error("Error in Comp_VdDNR(flag) in SUSYMatching.cpp ");
1084 
1085 }
1086 
1087 
1088 gslpp::complex SUSYMatching::VdDNR(int b, int k, int j, int flag) {
1089 
1090  return (VdDNR_cache[b][k][j][flag]);
1091 
1092 }
1093 
1094 
1097 
1098 void SUSYMatching::Comp_VuDCL() { // to be corrected
1099 
1100 
1102  gslpp::complex VuDCL_bkj(0., 0., false);
1103  gslpp::complex YdI(0., 0., false);
1104  int I, b, k, j;
1105 
1106  for (b = 0; b < 3; b++) {
1107  for (k = 0; k < 6; k++) {
1108  for (j = 0; j < 2; j++) {
1109 
1110  for (I = 0; I < 3; I++) {
1111  YdI = sqrt(2.) / v1 * mySUSYMQ(2 * I + 1);
1112  VuDCL_bkj += -(gW * myRd(k, I) * myU(j, 0).conjugate()
1113  - YdI * myRd(k, I + 3) * myU(j, 1).conjugate()) *
1114  myCKM(b, I).conjugate();
1115  }
1116 
1117  VuDCL_cache[b][k][j] = VuDCL_bkj;
1118  VuDCL_bkj.assign(0., 0., 0);
1119 
1120  }
1121  }
1122  }
1123 }
1124 
1125 gslpp::complex SUSYMatching::VuDCL(int b, int k, int j) {
1126 
1127  return (VuDCL_cache[b][k][j]);
1128 
1129 }
1130 
1132 
1133 
1134  gslpp::matrix<gslpp::complex> mySUSYCKM(3, 3, 0.);
1135  mySUSYCKM = mySUSY_CKM();
1137  myV = mySUSY.getV();
1138  double Yub;
1139  gslpp::complex VuDCR_bkj(0., 0., false);
1140 
1141  int I, b, k, j;
1142 
1143  for (b = 0; b < 3; b++) {
1144  for (k = 0; k < 6; k++) {
1145  for (j = 0; j < 2; j++) {
1146 
1147  Yub = sqrt(2.) / v2 * mySUSYMQ(2 * b); // b is the up quark type index
1148 
1149  for (I = 0; I < 3; I++) {
1150 
1151  VuDCR_bkj += mySUSYCKM(b, I).conjugate() * Yub * myRd(k, I) * myV(j, 1) ;
1152 
1153  }
1154 
1155  VuDCR_cache[b][k][j] = VuDCR_bkj;
1156  VuDCR_bkj.assign(0., 0., 0);
1157 
1158 
1159  }
1160  }
1161  }
1162 }
1163 
1164 gslpp::complex SUSYMatching::VuDCR(int b, int k, int j) {
1165 
1166  return (VuDCR_cache[b][k][j]);
1167 }
1168 
1169 gslpp::complex SUSYMatching::VdUCL(int b, int k, int j, int Dmixingflag) {
1170 
1171  if (Dmixingflag == 0) {
1172 
1173  return (VdUCL(b, k, j));
1174  }
1175  else if (Dmixingflag == 1) {
1176 
1177  return (VuDCL(b, k, j));
1178  }
1179  else {
1180 
1181  throw std::runtime_error("Error in VdUCL(b,k,j,flag,Dmixingflag) in SUSYMatching.cpp ");
1182  }
1183 }
1184 
1185 gslpp::complex SUSYMatching::VdUCR(int b, int k, int j, int flag, int Dmixingflag) {
1186 
1187  if (Dmixingflag == 0) {
1188 
1189  return (VdUCR(b, k, j, flag));
1190  }
1191  else if (Dmixingflag == 1) {
1192 
1193  return (VuDCR(b, k, j));
1194  }
1195  else {
1196 
1197  throw std::runtime_error("Error in VdUCR(b,k,j,flag,Dmixingflag) in SUSYMatching.cpp ");
1198  }
1199 }
1200 
1201 /* Vertices uUN from Buras arXiv:hep-ph/0210145v2 in SLHA convention
1202  usefull in D - Dbar mixing */
1203 
1205 
1206  double TanThetaW = sqrt(mySUSY.sW2() / mySUSY.cW2());
1207  gslpp::complex VuUNL_bkj(0.,0.,false);
1208  gslpp::complex VuUNR_bkj(0.,0.,false);
1209  double Yub;
1210 
1211  int b, k, j;
1212 
1213  for (b = 0; b < 3; b++) {
1214  for (k = 0; k < 6; k++) {
1215  for (j = 0; j < 4; j++) {
1216 
1217  Yub = sqrt(2.) / v2 * mySUSYMQ(2 * b);
1218 
1219  VuUNL_bkj += -1. / sqrt(2.) * gW * myRu(k, b) * (1. / (3. * TanThetaW) *
1220  myN(j, 0).conjugate() + myN(j, 1).conjugate())
1221  - Yub * myRu(k, b + 3) * myN(j, 3).conjugate();
1222 
1223  VuUNR_bkj += 2. * sqrt(2.) / 3. * gW * TanThetaW * myRu(k, b + 3) *
1224  myN(j, 0) - Yub * myRu(k, b) * myN(j, 3);
1225 
1226  VuUNL_cache[b][k][j] = VuUNL_bkj;
1227  VuUNL_bkj.assign(0., 0., 0);
1228  VuUNR_cache[b][k][j] = VuUNR_bkj;
1229  VuUNR_bkj.assign(0.,0.,0);
1230 
1231  }
1232  }
1233  }
1234 }
1235 
1236 
1237 
1238 gslpp::complex SUSYMatching::VuUN(int b, int k, int j, const std::string chirality) {
1239 
1240 
1241  if (chirality.compare("L") == 0) {
1242 
1243  return (VuUNL_cache[b][k][j]);
1244 
1245  }
1246  else if (chirality.compare("R") == 0) {
1247 
1248  return (VuUNR_cache[b][k][j]);
1249 
1250  }
1251  else {
1252 
1253  std::cout << " VuUN error in SUSYMatching.cpp" << std::endl;
1254 
1255  }
1256 
1257  return (EXIT_FAILURE);
1258 
1259 }
1260 
1261 /******************************************************************************/
1262 
1263 
1264 gslpp::complex SUSYMatching::VdDNL(int b, int k, int j, int flag, int Dmixingflag) {
1265 
1266  if (Dmixingflag == 0) {
1267 
1268  return (VdDNL(b, k, j, flag));
1269 
1270  }
1271  else if (Dmixingflag == 1) {
1272 
1273  return (VuUN(b, k, j, "L"));
1274  }
1275  else {
1276 
1277  throw std::runtime_error("Error in VdDNL(b,k,j,flag,Dmixingflag) in SUSYMatching.cpp ");
1278  }
1279 
1280  return (EXIT_FAILURE);
1281 }
1282 
1283 gslpp::complex SUSYMatching::VdDNR(int b, int k, int j, int flag, int Dmixingflag) {
1284 
1285  if (Dmixingflag == 0) {
1286 
1287  return (VdDNR(b, k, j, flag));
1288 
1289  }
1290  else if (Dmixingflag == 1) {
1291 
1292  return (VuUN(b, k, j, "R"));
1293  }
1294  else {
1295 
1296  throw std::runtime_error("Error in VdDNR(b,k,j,flag,Dmixingflag) in SUSYMatching.cpp ");
1297  }
1298 
1299  return (EXIT_FAILURE);
1300 }
1301 
1306 
1308 
1309  return (-sqrt(2.) / v * myCKM(j, i) *
1310  mySUSYMQ(2 * i + 1));
1311 }
1312 
1314 
1315  return (sqrt(2.) / v * myCKM(j, i) *
1316  mySUSYMQ(2 * j));
1317 }
1318 
1320 
1321  gslpp::complex PHLR(0., 0., false);
1322  int k;
1323  int i, j;
1324  for (i = 0; i < 3; i++) {
1325  for (j = 0; j < 3; j++) {
1326 
1327 
1328 
1329  PHLR += myCKM(j, i) *
1330  mySUSYMQ(2 * i + 1) / (1. + Eps_J(i) * tanb);
1331 
1332  for (k = 0; k < 3; k++) {
1333 
1334  PHLR += myCKM(j, k) * mySUSYMQ(2 * k + 1) /
1335  (1. + Eps_J(k) * tanb) * DeltaDR(k, i) - myCKM(j, k) *
1336  DeltaDL(k, i) * mySUSYMQ(2 * i + 1) /
1337  (1. + Eps_J(i) * tanb);
1338 
1339  }
1340 
1341  PHLR *= sqrt(2.) / mySUSY.v() * tanb;
1342 
1343  PHLRCache.assign(j,i,PHLR);
1344  PHLR.assign(0.,0.,0);
1345  }
1346  }
1347 }
1348 
1350 
1351  return(PHLRCache(j,i));
1352 }
1353 
1354 
1356 
1357  gslpp::complex VUDHijH(0., 0., false);
1358  gslpp::matrix<gslpp::complex> myTU(3, 3, 0.);
1359  gslpp::matrix<gslpp::complex> myTD(3, 3, 0.);
1360  gslpp::complex YuJ(0., 0., false);
1361  gslpp::complex YdI(0., 0., false);
1362  gslpp::matrix<gslpp::complex> mySUSYCKM(3, 3, 0.);
1363  mySUSYCKM = mySUSY_CKM();
1364  myTU = mySUSY.getTUhat();
1365  myTD = mySUSY.getTDhat();
1366  gslpp::matrix<gslpp::complex> ZH(2, 2, 0.);
1367  ZH.assign(0, 0, mySUSY.getSinb());
1368  ZH.assign(0, 1, -mySUSY.getCosb());
1369  ZH.assign(1, 0, mySUSY.getCosb());
1370  ZH.assign(1, 1, mySUSY.getSinb());
1371  int I, J, i, j;// ,l;
1372 
1373  for (i = 0; i < 6; i++) {
1374  for (j = 0; j < 6; j++) {
1375 
1376 
1377  for (I = 0; I < 3; I++) {
1378  for (J = 0; J < 3; J++) {
1379 
1380 
1381  VUDHijH += v / sqrt(2.) * sqrt(2.) / v2 * mySUSYMQ(2 * J) *
1382  sqrt(2.) / v1 * mySUSYMQ(2 * I + 1) /
1383  (1 + Eps_J(I) * tanb) * mySUSYCKM(J, I) * myRd(j, I + 3).conjugate() *
1384  myRu(i, J + 3)
1385 
1386  + 1. / sqrt(2.) * (v1 * sqrt(2.) / v1 * mySUSYMQ(2 * I + 1) /
1387  (1 + Eps_J(I) * tanb) * sqrt(2.) / v1 * mySUSYMQ(2 * I + 1) /
1388  (1 + Eps_J(I) * tanb) * ZH(0, 0) +
1389  v2 * sqrt(2.) / v2 * mySUSYMQ(2 * J) * sqrt(2.) / v2 * mySUSYMQ(2 * J)
1390  * ZH(1, 0)) * mySUSYCKM(J, I) * myRd(j, I).conjugate() * myRu(i, J)
1391 
1392 
1393  + (ZH(0, 0) * (mySUSY.getMuH()).conjugate() *
1394  sqrt(2.) / v2 * mySUSYMQ(2 * J) * mySUSYCKM(J, I) +
1395  ZH(1,0)*(myTU(J,0)*mySUSYCKM(0,I) + myTU(J,1)*mySUSYCKM(1,I)
1396  + myTU(J,2)*mySUSYCKM(2,I)))
1397  * myRu(i, J + 3) * myRd(j, I).conjugate()
1398 
1399  + (ZH(0,0) * (myTD(I,0).conjugate() * mySUSYCKM(J,0)
1400  + myTD(I,1).conjugate() * mySUSYCKM(J,1)
1401  + myTD(I,2).conjugate() * mySUSYCKM(J,2))
1402  + ZH(1,0) * mySUSY.getMuH() * sqrt(2.) / v1 * mySUSYMQ(2 * I + 1) /
1403  (1 + Eps_J(I) * tanb) * mySUSYCKM(J,I)) * myRu(i,J) *
1404  myRd(j, I + 3).conjugate();
1405 
1406 
1407  }
1408  }
1409 
1410 
1411 
1412  VUDHH_cache.assign(i, j, VUDHijH);
1413  VUDHijH.assign(0., 0., 0);
1414  }
1415  }
1416 }
1417 
1419 
1420  return (VUDHH_cache(i, j));
1421 
1422 }
1423 
1424 
1426 
1427 
1428  gslpp::complex DFHL_ji(0., 0., false);
1429  gslpp::vector<double> myMU2Squarks(6, 0.);
1430  gslpp::vector<double> myMD2Squarks(6, 0.);
1431  myMU2Squarks = mySUSY.getMsu2();
1432  myMD2Squarks = mySUSY.getMsd2();
1434  gslpp::complex Yuj(0., 0., false);
1435  gslpp::complex Ydi(0., 0., false);
1436  int m, l;
1437 
1438  Yuj = sqrt(2.) / v2 * mySUSYMQ(2 * j);
1439  Ydi = sqrt(2.) / v1 * mySUSYMQ(2 * i + 1) /
1440  (1 + Eps_J(i) * tanb);
1441 
1442  for (m = 0; m < 6; m++) {
1443  for (l = 0; l < 6; l++) {
1444 
1445  DFHL_ji += VUDHH(m,l) *(-2 * Als / (3. * M_PI) * Mg
1446  * myRu(m, j + 3).conjugate() * myRd(l, i) *
1447  Ck(Mg * Mg, myMU2Squarks(m), myMD2Squarks(l), 0)
1448 
1449  - 1. / (16. * M_PI * M_PI) * Yuj * Ydi *
1450  myRu(m, j).conjugate() * myRd(l, i + 3) *
1451  mySUSY.getMuH().conjugate() *
1452  Ck(mySUSY.getMuH().abs2(), myMU2Squarks(m), myMD2Squarks(l), 0));
1453 
1454  }
1455 
1456  }
1457  return (DFHL_ji);
1458 }
1459 
1460 
1462 
1463  int i, j;
1464  for (i = 0; i < 3; i++) {
1465  for (j = 0; j < 3; j++) {
1466 
1467  PHRLCache.assign(j, i, sqrt(2.) / (v * tanb) *
1468  mySUSYMQ(2 * j) * myCKM(j, i) + DeltaFHL(j, i));
1469  }
1470  }
1471 }
1472 
1474 
1475 
1476  return(PHRLCache(j,i));
1477 }
1478 
1479 gslpp::complex SUSYMatching::PLRk(int j, int i, int k){
1480 
1481  if(k == 0){
1482  return (PHLR(j,i));
1483  }
1484  else if(k == 1){
1485  return (PGLR(j,i));
1486  }
1487  else {
1488  throw std::runtime_error("Error in PLRk(j,i,k) in SUSYMatching.cpp ");
1489  }
1490 
1491  return (EXIT_FAILURE);
1492 }
1493 
1494 gslpp::complex SUSYMatching::PRLk(int j, int i, int k){
1495 
1496  if(k == 0){
1497  return (PHRL(j,i));
1498  }
1499  else if(k == 1){
1500  return (PGRL(j,i));
1501  }
1502  else {
1503  throw std::runtime_error("Error in PRLk(j,i,k) in SUSYMatching.cpp ");
1504  }
1505 }
1506 
1507 
1510 gslpp::complex SUSYMatching::PRLk(int j, int i, int k, int Dmixingflag) {
1511 
1512  if (Dmixingflag == 0) {
1513  return (PRLk(j, i, k));
1514 
1515  }
1516  else if (Dmixingflag == 1) {
1517  return (PLRk(i, j, k).conjugate());
1518  }
1519  else {
1520  throw std::runtime_error("Error in PRLk(j,i,k,Dmixingflag) in SUSYMatching.cpp ");
1521  }
1522 
1523 }
1524 
1525 gslpp::complex SUSYMatching::PLRk(int j, int i, int k, int Dmixingflag) {
1526 
1527 
1528  if (Dmixingflag == 0) {
1529  return (PLRk(j, i, k));
1530 
1531  }
1532  else if (Dmixingflag == 1) {
1533  return (PRLk(i, j, k).conjugate());
1534  }
1535  else {
1536  throw std::runtime_error("Error in PLRk(j,i,k,Dmixingflag) in SUSYMatching.cpp ");
1537  }
1538 
1539  return (EXIT_FAILURE);
1540 }
1543 
1545 
1546  double M2A = mySUSY.getMHa() * mySUSY.getMHa();
1547  double M2Z = mySUSY.getMz() * mySUSY.getMz();
1548  double tan2alpha = 2. * tanb / (1 - tanb * tanb) * (M2A + M2Z) / (M2A - M2Z);
1549  double tana = (-1. + sqrt(1. + tan2alpha * tan2alpha)) / tan2alpha;
1550  double sina = tana / sqrt(1. + tana * tana);
1551  double cosa = 1. / sqrt(1 + tana * tana);
1552 
1553  gslpp::complex Cosa(cosa,0.,false);
1554  gslpp::complex Sina(sina,0.,false);
1555  gslpp::complex i(0.,1.,false);
1556 
1557 
1558  switch ( S ) {
1559  case 0:
1560  return (Cosa);
1561 
1562  case 1:
1563  return (-Sina);
1564 
1565  case 2:
1566  return ( i * mySUSY.getSinb());
1567 
1568  default:
1569  throw std::runtime_error("Error in xdS(S) in SUSYMatching.cpp ");
1570  break;
1571  }
1572 
1573  return (EXIT_FAILURE);
1574 }
1575 
1577 
1578  double M2A = mySUSY.getMHa() * mySUSY.getMHa();
1579  double M2Z = mySUSY.getMz() * mySUSY.getMz();
1580 
1581  double tan2alpha = 2. * tanb / (1 - tanb * tanb) * (M2A + M2Z) / (M2A - M2Z);
1582  double tana = (-1. + sqrt(1. + tan2alpha * tan2alpha)) / tan2alpha;
1583  double sina = tana / sqrt(1. + tana * tana);
1584  double cosa = 1. / sqrt(1 + tana * tana);
1585 
1586  gslpp::complex Cosa(cosa,0.,false);
1587  gslpp::complex Sina(sina,0.,false);
1588  gslpp::complex i(0.,1.,false);
1589 
1590  switch ( S ) {
1591  case 0:
1592  return (Sina);
1593 
1594  case 1:
1595  return (Cosa);
1596 
1597  case 2:
1598  return (-i * mySUSY.getCosb());
1599 
1600  default:
1601  throw std::runtime_error("Error in xuS(S) in SUSYMatching.cpp ");
1602  break;
1603  }
1604 
1605  return (EXIT_FAILURE);
1606 }
1607 
1609 
1610  if (J > I) {
1611  return (mySUSYMQ(2 * J + 1) / (v1 * (1 + Eps_J(J) * tanb) *
1612  (1 + Eps_J(J) * tanb)) * Lambda0EpsY(J, I) * 2. / (v2 * v2)
1613  * mySUSYMQ(4) * mySUSYMQ(4) *
1614  (xuS(S) - xdS(S) * tanb));
1615  }
1616  else if (J < I) {
1617  return (XLRS(I, J, S).conjugate());
1618  }
1619  else {
1620  throw std::runtime_error("Error in XRLS(J,I,S) in SUSYMatching.cpp ");
1621  }
1622 
1623  return (EXIT_FAILURE);
1624 }
1625 
1627 
1628 
1629  double Y2ut = sqrt(2.) / v2 * mySUSYMQ(4);
1630  Y2ut *= Y2ut;
1631  gslpp::complex temp(0.,0.,false);
1632  temp = 1 + Eps_J(J) * tanb;
1633  gslpp::complex rJI(0.,0.,false);
1634 
1635  rJI = ((1. + (Eps_J(J) + (Eps_J(I).conjugate() - Eps_J(J).conjugate()) *
1636  Lambda0EpsY(J, I) / Lambda0EpsY(I, J).conjugate()) * tanb) /
1637  (1 + Eps_J(I).conjugate() * tanb));
1638 
1639  if (J > I) {
1640  return (mySUSYMQ(2 * I + 1) / (v1 * temp.abs2()) *
1641  Lambda0EpsY(I, J).conjugate() * Y2ut * rJI *
1642  (xuS(S).conjugate() - xdS(S).conjugate() * tanb));
1643  }
1644  else if (J < I) {
1645  return (XRLS(I, J, S).conjugate());
1646 
1647  }
1648  else {
1649  throw std::runtime_error("Error in XLRS(J,I,S) in SUSYMatching.cpp ");
1650  }
1651 
1652  return (EXIT_FAILURE);
1653 
1654 }
1655 
1661 
1663 
1664  gslpp::vector<double> M2S(3,0.);
1665  gslpp::vector<double> MQuarks(6,0.);
1666  int i;
1667 
1668  // Set the D - Dbar mixing flag
1669  // in D - Dbar mixing the flag = 1 otherwise the flag = 0
1670 
1671  if (Dmixingflag == 0) {
1672  for (i = 0; i < 6; i++) {
1673  MQuarks(i) += mySUSYMQ(i);
1674  }
1675  }
1676  else if (Dmixingflag == 1) {
1677  for (i = 0; i < 3; i++) {
1678 
1679  MQuarks(2 * i) += mySUSYMQ(2 * i + 1);
1680  MQuarks(2 * i + 1) += mySUSYMQ(2 * i);
1681  }
1682  myCKM.transpose();
1683  }
1684  else {
1685  throw std::runtime_error("Error in Dmixingflag in SUSYMatching.cpp. Flag can be either 0 or 1 ");
1686  }
1687 
1688  M2S(0) = mySUSY.getMHl() * mySUSY.getMHl();
1689  M2S(1) = mySUSY.getMHh() * mySUSY.getMHh();
1690  M2S(2) = mySUSY.getMHa() * mySUSY.getMHa();
1691 
1692  gslpp::vector<gslpp::complex> VCLO(8, 0.);
1693  gslpp::complex CLO(0.,0.,false);
1694 
1695 
1696  int I, J, k, l, S, O;
1697  double M2W = mySUSY.Mw_tree();
1698  double M2H = mySUSY.getMHp();
1699  double M2I;
1700  double M2J;
1701  M2W *= M2W;
1702  M2H *= M2H;
1703 
1704  gslpp::vector<double> M2Hk(2, 0);
1705  M2Hk(0) = M2H;
1706  M2Hk(1) = M2W;
1707 
1708  int D = Dmixingflag;
1709 
1710  for (O = 1; O < 9; O++) {
1711 
1712  CLO.assign(0., 0., 0);
1713 
1714  if (O == 1) {
1715  for (I = 0; I < 3; I++) {
1716  M2I = MQuarks(2 * I);
1717  M2I *= M2I;
1718 
1719  for (J = 0; J < 3; J++) {
1720 
1721  M2J = MQuarks(2 * J);
1722  M2J *= M2J;
1723  CLO += gW * gW / (32. * M_PI * M_PI) *
1724  myCKM(I, q).conjugate() * myCKM(J, b) * PRLk(J, q, 0, D).conjugate() *
1725  PRLk(I, b, 0, D) * D0N(M2W, M2W, M2I, M2J)
1726 
1727  - 1. / (32. * M_PI * M_PI) * PRLk(I, q, 0, D).conjugate() *
1728  PRLk(J, q, 0, D).conjugate() * PRLk(I, b, 0, D) * PRLk(J, b, 0, D) *
1729  Dk(M2W, M2W, M2I, M2J, 2)
1730 
1731  - 1. / (16. * M_PI * M_PI) * PRLk(I, q, 1, D).conjugate() *
1732  PRLk(J, q, 0, D).conjugate() * PRLk(I, b, 0, D) * PRLk(J, b, 1, D) *
1733  Dk(M2W, M2W, M2I, M2J, 2);
1734  }
1735  }
1736  }
1737  else if (O == 2) {
1738  for (I = 1; I < 3; I++) {
1739  M2I = MQuarks(2 * I);
1740  M2I *= M2I;
1741 
1742  for (J = 1; J < 3; J++) {
1743 
1744  M2J = MQuarks(2 * J);
1745  M2J *= M2J;
1746 
1747  for (k = 0; k < 2; k++) {
1748  for (l = 0; l < 2; l++) {
1749 
1750  CLO += -1. / (32. * M_PI * M_PI) * PLRk(I, q, l, D).conjugate() *
1751  PLRk(J, q, k, D).conjugate() * PRLk(I, b, k, D) * PRLk(J, b, l, D) *
1752  D0N(M2Hk(k), M2Hk(l), M2I, M2J);
1753 
1754 
1755  }
1756  }
1757  }
1758  }
1759  }
1760  else if (O == 4) {
1761  for (I = 0; I < 3; I++) {
1762  M2I = MQuarks(2 * I);
1763  M2I *= M2I;
1764 
1765  for (J = 0; J < 3; J++) {
1766 
1767  M2J = MQuarks(2 * J);
1768  M2J *= M2J;
1769 
1770  for (k = 0; k < 2; k++) {
1771 
1772 
1773  CLO += gW * gW / (8. * M_PI * M_PI) *
1774  myCKM(I, q).conjugate() * myCKM(J, b) *
1775  PLRk(J, q, k, D).conjugate() * PLRk(I, b, k, D) *
1776  Dk(M2W, M2Hk(k), M2I, M2J, 2);
1777 
1778 
1779 
1780  for (l = 0; l < 2; l++) {
1781 
1782  CLO += -1. / (16. * M_PI * M_PI) * PLRk(I, q, l, D).conjugate() *
1783  PRLk(J, q, k, D).conjugate() * PRLk(I, b, k, D) *
1784  PLRk(J, b, l, D) * D0N(M2Hk(k), M2Hk(l), M2I, M2J);
1785  }
1786  }
1787  }
1788  }
1789 
1792  if (D == 0) {
1793  for (S = 0; S < 3; S++) {
1794 
1795  CLO += -XRLS(q, b, S) * XLRS(q, b, S) / M2S(S);
1796 
1797  }
1798  }
1799 
1802  }
1803  else if (O == 5) {
1804  for (I = 0; I < 3; I++) {
1805  M2I = MQuarks(2 * I);
1806  M2I *= M2I;
1807 
1808  for (J = 0; J < 3; J++) {
1809 
1810  M2J = MQuarks(2 * J);
1811  M2J *= M2J;
1812 
1813  for (k = 0; k < 2; k++) {
1814  for (l = 0; l < 2; l++) {
1815 
1816  CLO += 1. / 8. * PRLk(I, q, l, D).conjugate() *
1817  PLRk(J, q, k, D).conjugate() * PRLk(I, b, k, D) *
1818  PLRk(J, b, l, D) * Dk(M2Hk(k), M2Hk(l), M2I, M2J, 2);
1819  }
1820  }
1821  }
1822  }
1823  }
1824  else if (O == 6) {
1825  for (I = 0; I < 3; I++) {
1826  M2I = MQuarks(2 * I);
1827  M2I *= M2I;
1828 
1829  for (J = 0; J < 3; J++) {
1830 
1831  M2J = MQuarks(2 * J);
1832  M2J *= M2J;
1833 
1834  for (k = 0; k < 2; k++) {
1835  for (l = 0; l < 2; l++) {
1836 
1837  CLO += -1. / (32. * M_PI * M_PI) * PLRk(I, q, k, D).conjugate() *
1838  PLRk(J, q, l, D).conjugate() * PLRk(I, b, k, D) *
1839  PLRk(J, b, l, D) * Dk(M2Hk(k), M2Hk(l), M2I, M2J, 2);
1840 
1841  }
1842  }
1843  }
1844  }
1845  }
1846  else if (O == 7) {
1847  for (I = 0; I < 3; I++) {
1848  M2I = MQuarks(2 * I);
1849  M2I *= M2I;
1850 
1851  for (J = 0; J < 3; J++) {
1852 
1853  M2J = MQuarks(2 * J);
1854  M2J *= M2J;
1855 
1856  for (k = 0; k < 2; k++) {
1857  for (l = 0; l < 2; l++) {
1858 
1859  CLO += -1. / (32. * M_PI * M_PI) * PRLk(I, q, l, D).conjugate() *
1860  PRLk(J, q, k, D).conjugate() * PLRk(I, b, k, D) * PLRk(J, b, l, D)
1861  * D0N(M2Hk(k), M2Hk(l), M2I, M2J);
1862 
1863  }
1864  }
1865  }
1866  }
1867  }
1868 
1869  VCLO.assign(O - 1,CLO);
1870 
1871  }
1872 
1873  return (VCLO);
1874 }
1875 
1878 
1880 
1881  gslpp::matrix<gslpp::complex> myR(6, 6, 0.);
1882  gslpp::vector<double> myM2Squarks(6, 0.);
1883 
1884 
1885  // Set the D - Dbar mixing flag
1886  // in D - Dbar mixing the flag = 1 otherwise the flag = 0
1887 
1888  if (Dmixingflag == 0) {
1889  myM2Squarks = mySUSY.getMsd2();
1890  myR = mySUSY.getRd();
1891  }
1892  else if (Dmixingflag == 1) {
1893  myM2Squarks = mySUSY.getMsu2();
1894 
1895  /* in the D mixing Rd -> Ru^* , b -> c , q -> u */
1896 
1897  myR = mySUSY.getRu().hconjugate().transpose();
1898 
1899  }
1900 
1901  gslpp::complex CLO(0., 0., false);
1902  gslpp::vector<gslpp::complex> VCLO(8, 0.);
1903 
1904 
1905  double M2g = Mg*Mg;
1906  int h, k, O;
1907 
1908 
1909  for (O = 1; O < 9; O++) {
1910 
1911  CLO.assign(0., 0.,0);
1912 
1913  if (O == 1) {
1914  for (h = 0; h < 6; h++) {
1915  for (k = 0; k < 6; k++) {
1916 
1917  CLO += -Als * Als *
1918  myR(h, b) * myR(k, b)
1919  * myR(h, q).conjugate() * myR(k, q).conjugate() *
1920  (1. / 9. * M2g *
1921  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 0) +
1922  11. / 9. * Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 2));
1923  }
1924  }
1925  }
1926  else if (O == 2) {
1927  for (h = 0; h < 6; h++) {
1928  for (k = 0; k < 6; k++) {
1929 
1930  CLO += -Als * Als * 17. / 18. * M2g * myR(h, b)
1931  * myR(k, b) * myR(h, q + 3).conjugate()
1932  * myR(k, q + 3).conjugate() *
1933  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 0);
1934  }
1935  }
1936  }
1937  else if (O == 3) {
1938  for (h = 0; h < 6; h++) {
1939  for (k = 0; k < 6; k++) {
1940 
1941  CLO += Als * Als * 1. / 6. * M2g * myR(h, b)
1942  * myR(k, b) * myR(h, q + 3).conjugate()
1943  * myR(k, q + 3).conjugate() *
1944  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 0);
1945  }
1946  }
1947  }
1948  else if (O == 4) {
1949  for (h = 0; h < 6; h++) {
1950  for (k = 0; k < 6; k++) {
1951 
1952  CLO += -Als * Als * 7. / 3. * M2g * myR(h, b)
1953  * myR(k, b + 3) * myR(h, q).conjugate()
1954  * myR(k, q + 3).conjugate() *
1955  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 0) +
1956  Als * Als * 2. / 9. *
1957  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 2)
1958  * myR(h, b) * myR(k, b + 3) *
1959  (6. * myR(h, q).conjugate() * myR(k, q + 3).conjugate()
1960  + 11. * myR(k, q).conjugate() * myR(h, q + 3).conjugate())
1961  ;
1962  }
1963  }
1964  }
1965  else if (O == 5) {
1966  for (h = 0; h < 6; h++) {
1967  for (k = 0; k < 6; k++) {
1968 
1969  CLO += -Als * Als * 1. / 9. * M2g * myR(h, b)
1970  * myR(k, b + 3) * myR(h, q).conjugate()
1971  * myR(k, q + 3).conjugate() *
1972  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 0) +
1973  Als * Als * 10. / 9. *
1974  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 2)
1975  * myR(h, b) * myR(k, b + 3) *
1976  (3. * myR(k, q).conjugate() * myR(h, q + 3).conjugate()
1977  - 2. * myR(h, q).conjugate() * myR(k, q + 3).conjugate())
1978  ;
1979  }
1980  }
1981  }
1982  else if (O == 6) {
1983  for (h = 0; h < 6; h++) {
1984  for (k = 0; k < 6; k++) {
1985 
1986  CLO += -Als * Als * myR(h, b + 3) * myR(k, b + 3)
1987  * myR(h, q + 3).conjugate() * myR(k, q + 3).conjugate() *
1988  (1. / 9. * M2g * Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 0) -
1989  11. / 9. * Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 2));
1990  }
1991  }
1992  }
1993  else if (O == 7) {
1994  for (h = 0; h < 6; h++) {
1995  for (k = 0; k < 6; k++) {
1996 
1997  CLO += -Als * Als * 17. / 18. * M2g * myR(h, b + 3)
1998  * myR(k, b + 3) * myR(h, q).conjugate()
1999  * myR(k, q).conjugate() *
2000  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 0);
2001  }
2002  }
2003  }
2004  else if (O == 8) {
2005  for (h = 0; h < 6; h++) {
2006  for (k = 0; k < 6; k++) {
2007 
2008  CLO += Als * Als * 1. / 6. * M2g * myR(h, b + 3)
2009  * myR(k, b + 3) * myR(h, q).conjugate()
2010  * myR(k, q).conjugate() *
2011  Dk(myM2Squarks(h), myM2Squarks(k), M2g, M2g, 0);
2012  }
2013  }
2014  }
2015 
2016 
2017  VCLO.assign(O - 1, CLO);
2018 
2019  }
2020 
2021  return (VCLO);
2022 }
2023 
2026 
2028 
2029  gslpp::vector<double> myM2Squarks(6, 0.);
2030 
2031  gslpp::complex CLO(0., 0., false);
2032  gslpp::vector<gslpp::complex> VCLO(8, 0.);
2033  int i, j, h, k, O;
2034 
2035 
2036  // Set the D - Dbar mixing flag
2037  // in D - Dbar mixing the flag = 1 otherwise the flag = 0
2038 
2039  if (Dmixingflag == 0) {
2040  myM2Squarks = mySUSY.getMsu2();
2041  }
2042  else if (Dmixingflag == 1) {
2043  myM2Squarks = mySUSY.getMsd2();
2044  }
2045 
2046  int D = Dmixingflag;
2047 
2048  for (O = 1; O < 9; O++) {
2049 
2050  CLO.assign(0., 0.,0);
2051 
2052  if (O == 1) {
2053  for (i = 0; i < 2; i++) {
2054  for (j = 0; j < 2; j++) {
2055  for (h = 0; h < 6; h++) {
2056  for (k = 0; k < 6; k++) {
2057 
2058  CLO += -1. / (32. * M_PI * M_PI) * Dk(myM2Squarks(k),
2059  myM2Squarks(h), MChi(i) * MChi(i), MChi(j)
2060  * MChi(j), 2) * VdUCL(b, k, j, D) * VdUCL(b, h, i, D)
2061  * VdUCL(q, h, j, D).conjugate()
2062  * VdUCL(q, k, i, D).conjugate();
2063  }
2064  }
2065  }
2066  }
2067  }
2068  else if (O == 3) {
2069  for (i = 0; i < 2; i++) {
2070  for (j = 0; j < 2; j++) {
2071  for (h = 0; h < 6; h++) {
2072  for (k = 0; k < 6; k++) {
2073 
2074  CLO += -1. / (32. * M_PI * M_PI) *
2075  VdUCR(q, k, j, 1, D).conjugate() *
2076  VdUCR(q, h, i, 1, D).conjugate() *
2077  VdUCL(b, k, i, D) * VdUCL(b, h, j, D) *
2078  D0N(myM2Squarks(k),
2079  myM2Squarks(h), MChi(i) * MChi(i),
2080  MChi(j) * MChi(j));
2081  }
2082  }
2083  }
2084  }
2085  }
2086  else if (O == 4) {
2087  for (i = 0; i < 2; i++) {
2088  for (j = 0; j < 2; j++) {
2089  for (h = 0; h < 6; h++) {
2090  for (k = 0; k < 6; k++) {
2091 
2092  CLO += 1. / (8. * M_PI * M_PI) * VdUCL(q, h, i, D).conjugate() *
2093  VdUCR(q, k, j, 1, D).conjugate() * VdUCL(b, k, i, D) *
2094  VdUCR(b, h, j, 1, D) * Dk(myM2Squarks(k),
2095  myM2Squarks(h), MChi(i) * MChi(i), MChi(j)
2096  * MChi(j), 2);
2097  }
2098  }
2099  }
2100  }
2101  }
2102  else if (O == 5) {
2103  for (i = 0; i < 2; i++) {
2104  for (j = 0; j < 2; j++) {
2105  for (h = 0; h < 6; h++) {
2106  for (k = 0; k < 6; k++) {
2107 
2108  CLO += -1. / (16. * M_PI * M_PI) * VdUCL(q, k, j, D).conjugate() *
2109  VdUCR(q, h, i, 1, D).conjugate() * VdUCL(b, k, i, D) *
2110  VdUCR(b, h, j, 1, D) * D0N(myM2Squarks(k),
2111  myM2Squarks(h), MChi(i) * MChi(i), MChi(j)
2112  * MChi(j));
2113  }
2114  }
2115  }
2116  }
2117  }
2118  else if (O == 6) {
2119  for (i = 0; i < 2; i++) {
2120  for (j = 0; j < 2; j++) {
2121  for (h = 0; h < 6; h++) {
2122  for (k = 0; k < 6; k++) {
2123 
2124  CLO += -1. / (32. * M_PI * M_PI) * Dk(myM2Squarks(k),
2125  myM2Squarks(h), MChi(i) * MChi(i), MChi(j)
2126  * MChi(j), 2) * VdUCR(q, k, i, 1, D).conjugate() *
2127  VdUCR(q, h, j, 1, D).conjugate() * VdUCR(b, h, i, 1, D) *
2128  VdUCR(b, k, j, 1, D);
2129  }
2130  }
2131  }
2132  }
2133  }
2134  else if (O == 8) {
2135  for (i = 0; i < 2; i++) {
2136  for (j = 0; j < 2; j++) {
2137  for (h = 0; h < 6; h++) {
2138  for (k = 0; k < 6; k++) {
2139 
2140  CLO += -1. / (32. * M_PI * M_PI) * VdUCL(q, k, j, D).conjugate() *
2141  VdUCL(q, h, i, D).conjugate() * VdUCR(b, k, i, 1, D) *
2142  VdUCR(b, h, j, 1, D) *
2143  D0N(myM2Squarks(k), myM2Squarks(h),
2144  MChi(i) * MChi(i), MChi(j) * MChi(j));
2145  }
2146  }
2147  }
2148  }
2149  }
2150 
2151  VCLO.assign(O - 1, CLO);
2152  }
2153 
2154  return (VCLO);
2155 }
2156 
2159 /**** In the D mixing b -> c , q -> u ****/
2160 
2162 
2163  gslpp::vector<double> myM2Squarks(6, 0.);
2164  gslpp::vector<gslpp::complex> VCLO(8, 0.);
2165  gslpp::complex CLO(0., 0., false);
2166  int i, j, h, k, O;
2167 
2168  // Set the D - Dbar mixing flag
2169  // in D - Dbar mixing the flag = 1 otherwise the flag = 0
2170 
2171  if (Dmixingflag == 0) {
2172  myM2Squarks = mySUSY.getMsd2();
2173  }
2174  else if (Dmixingflag == 1) {
2175  myM2Squarks = mySUSY.getMsu2();
2176  }
2177 
2178 
2179  int D = Dmixingflag;
2180 
2181  for (O = 1; O < 9; O++) {
2182 
2183  CLO.assign(0., 0., 0);
2184 
2185  if (O == 1) {
2186  for (i = 0; i < 4; i++) {
2187  for (j = 0; j < 4; j++) {
2188  for (h = 0; h < 6; h++) {
2189  for (k = 0; k < 6; k++) {
2190 
2191  CLO += - VdDNL(q, k, j, 1, D).conjugate()*VdDNL(b, k, i, 1, D)*
2192  (1./ 32. / M_PI / M_PI * VdDNL(b, h, j, 1, D)
2193  * VdDNL(q, h, i, 1, D).conjugate()
2194  * Dk(myM2Squarks(k),myM2Squarks(h), MChi0(i) * MChi0(i),
2195  MChi0(j) * MChi0(j), 2) + MChi0(i) * MChi0(j)
2196  / 64. / M_PI / M_PI * Dk(myM2Squarks(k),
2197  myM2Squarks(h), MChi0(i) * MChi0(i), MChi0(j)
2198  * MChi0(j), 0) * VdDNL(b, h, i, 1, D)*
2199  VdDNL(q, h, j, 1, D).conjugate());
2200  }
2201  }
2202  }
2203  }
2204  }
2205  else if (O == 2) {
2206 
2207  for (i = 0; i < 4; i++) {
2208  for (j = 0; j < 4; j++) {
2209  for (h = 0; h < 6; h++) {
2210  for (k = 0; k < 6; k++) {
2211 
2212  CLO += MChi0(i) * MChi0(j) / 32. / M_PI / M_PI *
2213  Dk(myM2Squarks(k), myM2Squarks(h),
2214  MChi0(i) * MChi0(i), MChi0(j) * MChi0(j), 0) *
2215  VdDNL(b, k, i, 1, D) * VdDNR(q, k, j, 1, D).conjugate()*
2216  VdDNL(b, h, i, 1, D) * VdDNR(q, h, j, 1, D).conjugate() ;
2217  }
2218  }
2219  }
2220  }
2221  }
2222  else if (O == 3) {
2223 
2224  for (i = 0; i < 4; i++) {
2225  for (j = 0; j < 4; j++) {
2226  for (h = 0; h < 6; h++) {
2227  for (k = 0; k < 6; k++) {
2228 
2229  CLO += -MChi0(i) * MChi0(j) / 32. / M_PI / M_PI *
2230  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i) * MChi0(i),
2231  MChi0(j) * MChi0(j), 0) * VdDNL(b, k, i, 1, D) *
2232  VdDNR(q, k, j, 1, D).conjugate() *
2233  (VdDNL(b, h, j, 1, D) * VdDNR(q, h, i, 1, D).conjugate() -
2234  VdDNL(b, h, i, 1, D) * VdDNR(q, h, j, 1, D).conjugate());
2235  }
2236  }
2237  }
2238  }
2239  }
2240  else if (O == 4) {
2241 
2242  for (i = 0; i < 4; i++) {
2243  for (j = 0; j < 4; j++) {
2244  for (h = 0; h < 6; h++) {
2245  for (k = 0; k < 6; k++) {
2246 
2247  CLO += 1. / 8. / M_PI / M_PI * Dk(myM2Squarks(k),
2248  myM2Squarks(h), MChi0(i) * MChi0(i),
2249  MChi0(j) * MChi0(j), 2) * VdDNR(b, k, i, 1, D) *
2250  VdDNL(q, k, j, 1, D).conjugate() * (
2251  VdDNL(b, h, j, 1, D) * (VdDNR(q, h, i, 1, D).conjugate()) +
2252  VdDNL(b, h, i, 1, D) * (VdDNR(q, h, j, 1, D).conjugate()));
2253  }
2254  }
2255  }
2256  }
2257  }
2258  else if (O == 5) {
2259 
2260  for (i = 0; i < 4; i++) {
2261  for (j = 0; j < 4; j++) {
2262  for (h = 0; h < 6; h++) {
2263  for (k = 0; k < 6; k++) {
2264 
2265  CLO += -1. / 8. / M_PI / M_PI * Dk(myM2Squarks(k),
2266  myM2Squarks(h), MChi0(i) * MChi0(i),
2267  MChi0(j) * MChi0(j), 2) * VdDNL(q, k, j, 1, D).conjugate() *
2268  VdDNR(q, h, j, 1, D).conjugate() * VdDNL(b, k, i, 1, D) *
2269  VdDNR(b, h, i, 1, D) - MChi0(i) * MChi0(j) / 16. / M_PI /
2270  M_PI * Dk(myM2Squarks(k), myM2Squarks(h),
2271  MChi0(i) * MChi0(i), MChi0(j) * MChi0(j), 0) *
2272  VdDNL(q, h, i, 1, D).conjugate() * VdDNR(q, k, j, 1, D).conjugate() *
2273  VdDNL(b, h, j, 1, D) * VdDNR(b, k, i, 1, D);
2274  }
2275  }
2276  }
2277  }
2278  }
2279  else if (O == 6) {
2280 
2281  for (i = 0; i < 4; i++) {
2282  for (j = 0; j < 4; j++) {
2283  for (h = 0; h < 6; h++) {
2284  for (k = 0; k < 6; k++) {
2285 
2286  CLO += - VdDNR(q, k, j, 1, D).conjugate()*VdDNR(b, k, i, 1, D)*
2287  (1./ 32. / M_PI / M_PI * VdDNR(b, h, j, 1, D)
2288  * VdDNR(q, h, i, 1, D).conjugate()
2289  * Dk(myM2Squarks(k),myM2Squarks(h), MChi0(i) * MChi0(i),
2290  MChi0(j) * MChi0(j), 2) + MChi0(i) * MChi0(j)
2291  / 64. / M_PI / M_PI * Dk(myM2Squarks(k),
2292  myM2Squarks(h), MChi0(i) * MChi0(i), MChi0(j)
2293  * MChi0(j), 0) * VdDNR(b, h, i, 1, D)*
2294  VdDNR(q, h, j, 1, D).conjugate());
2295  }
2296  }
2297  }
2298  }
2299  }
2300  else if (O == 7) {
2301 
2302  for (i = 0; i < 4; i++) {
2303  for (j = 0; j < 4; j++) {
2304  for (h = 0; h < 6; h++) {
2305  for (k = 0; k < 6; k++) {
2306 
2307  CLO += MChi0(i) * MChi0(j) / 32. / M_PI / M_PI *
2308  Dk(myM2Squarks(k), myM2Squarks(h),
2309  MChi0(i) * MChi0(i), MChi0(j) * MChi0(j), 0) *
2310  VdDNR(b, k, i, 1, D) * VdDNL(q, k, j, 1, D).conjugate()*
2311  VdDNR(b, h, i, 1, D) * VdDNL(q, h, j, 1, D).conjugate() ;
2312  }
2313  }
2314  }
2315  }
2316 
2317  }
2318  else if (O == 8) {
2319 
2320  for (i = 0; i < 4; i++) {
2321  for (j = 0; j < 4; j++) {
2322  for (h = 0; h < 6; h++) {
2323  for (k = 0; k < 6; k++) {
2324 
2325  CLO += -MChi0(i) * MChi0(j) / 32. / M_PI / M_PI *
2326  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i) * MChi0(i),
2327  MChi0(j) * MChi0(j), 0) * VdDNR(b, k, i, 1, D) *
2328  VdDNL(q, k, j, 1, D).conjugate() *
2329  (VdDNR(b, h, j, 1, D) * VdDNL(q, h, i, 1, D).conjugate() -
2330  VdDNR(b, h, i, 1, D) * VdDNL(q, h, j, 1, D).conjugate());
2331  }
2332  }
2333  }
2334  }
2335  }
2336 
2337  VCLO.assign(O - 1, CLO);
2338 
2339  }
2340  return (VCLO);
2341 
2342 }
2343 
2346 
2348 
2349 
2350  gslpp::matrix<gslpp::complex> myR(6, 6, 0.);
2351  gslpp::vector<double> myM2Squarks(6, 0.);
2352  gslpp::vector<gslpp::complex> VCLO(8, 0.);
2353  gslpp::complex CLO(0., 0., false);
2354  int i, h, k, O;
2355  double M2g = Mg*Mg;
2356 
2357 
2358 
2359  // Set the D - Dbar mixing flag
2360  // in D - Dbar mixing the flag = 1 otherwise the flag = 0
2361 
2362  if (Dmixingflag == 0) {
2363  myM2Squarks = mySUSY.getMsd2();
2364  myR = mySUSY.getRd();
2365  }
2366  else if (Dmixingflag == 1) {
2367  myM2Squarks = mySUSY.getMsu2();
2368 
2369  /* in the D mixing Rd -> Ru^* , b -> c , q -> u */
2370 
2371  myR = mySUSY.getRu().hconjugate().transpose();
2372  }
2373 
2374  int D = Dmixingflag;
2375 
2376 
2377  for (O = 1; O < 9; O++) {
2378 
2379  CLO.assign(0., 0., 0);
2380 
2381  if (O == 1) {
2382  for (i = 0; i < 4; i++) {
2383  for (h = 0; h < 6; h++) {
2384  for (k = 0; k < 6; k++) {
2385 
2386  CLO += -Als * 2. / 3. / 4. / M_PI * Dk(myM2Squarks(k), myM2Squarks(h),
2387  MChi0(i) * MChi0(i), M2g, 2) * myR(k, q).conjugate()
2388  * myR(h, b) * VdDNL(q, h, i, 1, D).conjugate() *
2389  VdDNL(b, k, i, 1, D) - Als / 4. / M_PI * MChi0(i) * Mg / 6. *
2390  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i) * MChi0(i)
2391  , M2g, 0) * (myR(h, q).conjugate() * myR(k, q).conjugate()
2392  * VdDNL(b, h, i, 1, D) * VdDNL(b, k, i, 1, D)
2393  + myR(h, b) * myR(k, b) * VdDNL(q, h, i, 1, D).conjugate() *
2394  VdDNL(q, k, i, 1, D).conjugate());
2395 
2396  }
2397  }
2398  }
2399  }
2400  else if (O == 2) {
2401  for (i = 0; i < 4; i++) {
2402  for (h = 0; h < 6; h++) {
2403  for (k = 0; k < 6; k++) {
2404 
2405  CLO += Als /4. / M_PI * MChi0(i) * Mg / 3. *
2406  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i)
2407  * MChi0(i), M2g, 0) * (3. * myR(h, b) *
2408  myR(k, q + 3).conjugate() * VdDNL(b, k, i, 1, D) *
2409  VdDNR(q, h, i, 1, D).conjugate()
2410  + myR(k, b) * myR(h, b) *
2411  VdDNR(q, k, i, 1, D).conjugate() * VdDNR(q, h, i, 1, D).conjugate() +
2412  myR(k, q + 3).conjugate() * myR(h, q + 3).conjugate() *
2413  VdDNL(b, k, i, 1, D) * VdDNL(b, h, i, 1, D));
2414 
2415  }
2416  }
2417  }
2418  }
2419  else if (O == 3) {
2420  for (i = 0; i < 4; i++) {
2421  for (h = 0; h < 6; h++) {
2422  for (k = 0; k < 6; k++) {
2423 
2424  CLO += -Als / 4. / M_PI * MChi0(i) * Mg / 3. *
2425  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i)
2426  * MChi0(i), M2g, 0) * (
2427  myR(h, b) * myR(k, q + 3).conjugate() * VdDNL(b, k, i, 1, D) *
2428  VdDNR(q, h, i, 1, D).conjugate() - myR(k, b) *
2429  myR(h, b) * VdDNR(q, k, i, 1, D).conjugate() *
2430  VdDNR(q, h, i, 1, D).conjugate() - myR(k, q + 3).conjugate() *
2431  myR(h, q + 3).conjugate() * VdDNL(b, k, i, 1, D) *
2432  VdDNL(b, h, i, 1, D));
2433 
2434  }
2435  }
2436  }
2437  }
2438  else if (O == 4) {
2439  for (i = 0; i < 4; i++) {
2440  for (h = 0; h < 6; h++) {
2441  for (k = 0; k < 6; k++) {
2442 
2443  CLO += -Als / 4. / M_PI * 2. / 3. *
2444  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i)
2445  * MChi0(i), M2g, 2) * (
2446  myR(h, b) * myR(k, q).conjugate() * VdDNR(b, k, i, 1, D) *
2447  VdDNR(q, h, i, 1, D).conjugate() +
2448  myR(h, b + 3) *
2449  myR(k, q + 3).conjugate() * VdDNL(b, k, i, 1, D) *
2450  VdDNL(q, h, i, 1, D).conjugate()
2451  - myR(h, b) * myR(k, b + 3) *
2452  VdDNL(q, k, i, 1, D).conjugate() * VdDNR(q, h, i, 1, D).conjugate()
2453  - myR(h, q).conjugate() * myR(k, q + 3).conjugate() *
2454  VdDNL(b, k, i, 1, D) * VdDNR(b, h, i, 1, D)
2455  - 3. * myR(k, b + 3) * myR(h, b) *
2456  VdDNL(q, h, i, 1, D).conjugate() *VdDNR(q, k, i, 1, D).conjugate()
2457  - 3. * myR(k, q + 3).conjugate() *
2458  myR(h, q).conjugate() * VdDNL(b, h, i, 1, D) * VdDNR(b, k, i, 1, D)) +
2459  Als / 4. / M_PI * MChi0(i) * Mg *
2460  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i)* MChi0(i), M2g, 0) *
2461  (myR(h, b) * myR(k, q + 3).conjugate() *
2462  VdDNR(b, k, i, 1, D) * VdDNL(q, h, i, 1, D).conjugate() +
2463  myR(h, b + 3) * myR(k, q).conjugate() *
2464  VdDNL(b, k, i, 1, D) * VdDNR(q, h, i, 1, D).conjugate());
2465 
2466  }
2467  }
2468  }
2469  }
2470  else if (O == 5) {
2471  for (i = 0; i < 4; i++) {
2472  for (h = 0; h < 6; h++) {
2473  for (k = 0; k < 6; k++) {
2474 
2475  CLO += Als / 4. / M_PI * 2. / 3. *
2476  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i)
2477  * MChi0(i), M2g, 2)*(
2478  3. * myR(h, b) * myR(k, q).conjugate() * VdDNR(b, k, i, 1, D) *
2479  VdDNR(q, h, i, 1, D).conjugate() + 3. * myR(h, b + 3) *
2480  myR(k, q + 3).conjugate() * VdDNL(b, k, i, 1, D) *
2481  VdDNL(q, h, i, 1, D).conjugate()
2482  - 3. * myR(h, b) * myR(k, b + 3) *
2483  VdDNL(q, k, i, 1, D).conjugate() * VdDNR(q, h, i, 1, D).conjugate()
2484  - 3. * myR(h, q).conjugate() * myR(k, q + 3).conjugate() *
2485  VdDNL(b, k, i, 1, D) * VdDNR(b, h, i, 1, D) - myR(k, b + 3) *
2486  myR(h, b) * VdDNL(q, h, i, 1, D).conjugate() *
2487  VdDNR(q, k, i, 1, D).conjugate() - myR(k, q + 3).conjugate() *
2488  myR(h, q).conjugate() * VdDNL(b, h, i, 1, D) * VdDNR(b, k, i, 1, D)) -
2489  Als / 4. / M_PI * MChi0(i) * Mg / 3. *
2490  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i)
2491  * MChi0(i), M2g, 0)* (myR(h, b) * myR(k, q + 3).conjugate() *
2492  VdDNR(b, k, i, 1, D) * VdDNL(q, h, i, 1, D).conjugate() +
2493  myR(h, b + 3) * myR(k, q).conjugate() *
2494  VdDNL(b, k, i, 1, D) * VdDNR(q, h, i, 1, D).conjugate());
2495 
2496  }
2497  }
2498  }
2499  }
2500  else if (O == 6) {
2501  for (i = 0; i < 4; i++) {
2502  for (h = 0; h < 6; h++) {
2503  for (k = 0; k < 6; k++) {
2504 
2505  CLO += -Als * 2. / 3. / 4. / M_PI * Dk(myM2Squarks(k), myM2Squarks(h),
2506  MChi0(i) * MChi0(i), M2g, 2) * myR(k, q + 3).conjugate()
2507  * myR(h, b + 3) * VdDNR(q, h, i, 1, D).conjugate() *
2508  VdDNR(b, k, i, 1, D) - Als / 4. / M_PI * MChi0(i) * Mg / 6. *
2509  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i) * MChi0(i)
2510  , M2g, 0) * (myR(h, q + 3).conjugate() * myR(k, q + 3).conjugate()
2511  * VdDNR(b, h, i, 1, D) * VdDNR(b, k, i, 1, D)
2512  + myR(h, b + 3) * myR(k, b + 3) * VdDNR(q, h, i, 1, D).conjugate() *
2513  VdDNR(q, k, i, 1, D).conjugate());
2514 
2515  }
2516  }
2517  }
2518  }
2519  else if (O == 7) {
2520  for (i = 0; i < 4; i++) {
2521  for (h = 0; h < 6; h++) {
2522  for (k = 0; k < 6; k++) {
2523 
2524  CLO += Als /4. / M_PI * MChi0(i) * Mg / 3. *
2525  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i)
2526  * MChi0(i), M2g, 0) * (3. * myR(h, b + 3) *
2527  myR(k, q).conjugate() * VdDNR(b, k, i, 1, D) *
2528  VdDNL(q, h, i, 1, D).conjugate()
2529  + myR(k, b + 3) * myR(h, b + 3) *
2530  VdDNL(q, k, i, 1, D).conjugate() * VdDNL(q, h, i, 1, D).conjugate() +
2531  myR(k, q).conjugate() * myR(h, q).conjugate() *
2532  VdDNR(b, k, i, 1, D) * VdDNR(b, h, i, 1, D));
2533 
2534  }
2535  }
2536  }
2537  }
2538  else if (O == 8) {
2539  for (i = 0; i < 4; i++) {
2540  for (h = 0; h < 6; h++) {
2541  for (k = 0; k < 6; k++) {
2542 
2543  CLO += -Als / 4. / M_PI * MChi0(i) * Mg / 3. *
2544  Dk(myM2Squarks(k), myM2Squarks(h), MChi0(i)
2545  * MChi0(i), M2g, 0) * (
2546  myR(h, b + 3) * myR(k, q).conjugate() * VdDNR(b, k, i, 1, D) *
2547  VdDNL(q, h, i, 1, D).conjugate() - myR(k, b + 3) *
2548  myR(h, b + 3) * VdDNL(q, k, i, 1, D).conjugate() *
2549  VdDNL(q, h, i, 1, D).conjugate() - myR(k, q).conjugate() *
2550  myR(h, q).conjugate() * VdDNR(b, k, i, 1, D) *
2551  VdDNR(b, h, i, 1, D));
2552 
2553  }
2554  }
2555  }
2556  }
2557 
2558  VCLO.assign(O - 1, CLO);
2559 
2560  }
2561  return (VCLO);
2562 }
2563 
2564 
2567 
2568 
2569 /******************************************************************************/
2570 std::vector<WilsonCoefficient>& SUSYMatching::CMdbd2() {
2571 
2572  int i;
2573  gslpp::vector<gslpp::complex> CdF2dHpT(8, 0.);
2574  gslpp::vector<gslpp::complex> CdF2dggT(8, 0.);
2575  gslpp::vector<gslpp::complex> CdF2dChiChiT(8, 0.);
2576  gslpp::vector<gslpp::complex> CdF2dChi0Chi0T(8, 0.);
2577  gslpp::vector<gslpp::complex> CdF2dChigT(8, 0.);
2578 
2579  if (mySUSY.IsFlag_h()) CdF2dHpT = CdF2dHp(0, 2, 0);
2580  if (mySUSY.IsFlag_ch()) CdF2dChiChiT = CdF2dChiChi(0, 2, 0);
2581  if (mySUSY.IsFlag_g()) CdF2dggT = CdF2dgg(0, 2, 0);
2582  if (mySUSY.IsFlag_ne()) CdF2dChi0Chi0T = CdF2dChi0Chi0(0, 2, 0);
2583  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) CdF2dChigT = CdF2dChi0g(0, 2, 0);
2584 
2586 
2589  switch (mcdbd2Hp.getOrder()) {
2590  case NLO:
2591  case LO:
2592  if (mySUSY.IsFlag_h()) {
2593  mcdbd2Hp.setMu(Q_S);
2594  for (i = 0; i < 5; i++) {
2595  mcdbd2Hp.setCoeff(i, CdF2dHpT(i), LO);
2596  }
2597  vmdbd2.push_back(mcdbd2Hp);
2598  }
2599  break;
2600  case FULLNLO:
2601  case NNLO:
2602  case FULLNNLO:
2603  default:
2604  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2605  }
2606  switch (mcdbd2gg.getOrder()) {
2607  case NLO:
2608  case LO:
2609  if (mySUSY.IsFlag_g()) {
2610 
2611  mcdbd2gg.setMu(Q_S);
2612  for (i = 0; i < 5; i++) {
2613  mcdbd2gg.setCoeff(i, CdF2dggT(i), LO);
2614  }
2615  vmdbd2.push_back(mcdbd2gg);
2616  }
2617  break;
2618  case FULLNLO:
2619  case NNLO:
2620  case FULLNNLO:
2621  default:
2622  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2623  }
2624  switch (mcdbd2ChiChi.getOrder()) {
2625  case NLO:
2626  case LO:
2627  if (mySUSY.IsFlag_ch()) {
2629  for (i = 0; i < 5; i++) {
2630  mcdbd2ChiChi.setCoeff(i, CdF2dChiChiT(i), LO);
2631  }
2632  vmdbd2.push_back(mcdbd2ChiChi);
2633  }
2634  break;
2635  case FULLNLO:
2636  case NNLO:
2637  case FULLNNLO:
2638  default:
2639  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2640  }
2641  switch (mcdbd2Chi0Chi0.getOrder()) {
2642  case NLO:
2643  case LO:
2644  if (mySUSY.IsFlag_ne()) {
2646  for (i = 0; i < 5; i++) {
2647  mcdbd2Chi0Chi0.setCoeff(i, CdF2dChi0Chi0T(i), LO);
2648  }
2649  vmdbd2.push_back(mcdbd2Chi0Chi0);
2650  }
2651  break;
2652  case FULLNLO:
2653  case NNLO:
2654  case FULLNNLO:
2655  default:
2656  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2657  }
2658  switch (mcdbd2Chi0g.getOrder()) {
2659  case NLO:
2660  case LO:
2661  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) {
2663  for (i = 0; i < 5; i++) {
2664  mcdbd2Chi0g.setCoeff(i, CdF2dChigT(i), LO);
2665  }
2666  vmdbd2.push_back(mcdbd2Chi0g);
2667  }
2668  break;
2669  case FULLNLO:
2670  case NNLO:
2671  case FULLNNLO:
2672  default:
2673  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2674  }
2675 
2678  switch (mcdbd2HpT.getOrder()) {
2679  case NLO:
2680  case LO:
2681  if (mySUSY.IsFlag_h()) {
2682  mcdbd2HpT.setMu(Q_S);
2683  for (i = 0; i < 3; i++) {
2684  mcdbd2HpT.setCoeff(i, CdF2dHpT(i + 5), LO);
2685  }
2686  vmdbd2.push_back(mcdbd2HpT);
2687  }
2688  break;
2689  case FULLNLO:
2690  case NNLO:
2691  case FULLNNLO:
2692  default:
2693  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2694  }
2695  switch (mcdbd2ggT.getOrder()) {
2696  case NLO:
2697  case LO:
2698  if (mySUSY.IsFlag_g()) {
2699 
2700  mcdbd2ggT.setMu(Q_S);
2701  for(i = 0; i < 3 ; i++){
2702  mcdbd2ggT.setCoeff(i, CdF2dggT(i + 5), LO);
2703  }
2704  vmdbd2.push_back(mcdbd2ggT);
2705  }
2706  break;
2707  case FULLNLO:
2708  case NNLO:
2709  case FULLNNLO:
2710  default:
2711  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2712  }
2713  switch (mcdbd2ChiChiT.getOrder()) {
2714  case NLO:
2715  case LO:
2716  if (mySUSY.IsFlag_ch()) {
2718  for (i = 0; i < 3; i++) {
2719  mcdbd2ChiChiT.setCoeff(i, CdF2dChiChiT(i + 5), LO);
2720  }
2721  vmdbd2.push_back(mcdbd2ChiChiT);
2722  }
2723  break;
2724  case FULLNLO:
2725  case NNLO:
2726  case FULLNNLO:
2727  default:
2728  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2729  }
2730  switch (mcdbd2Chi0Chi0T.getOrder()) {
2731  case NLO:
2732  case LO:
2733  if (mySUSY.IsFlag_ne()) {
2734 
2736  for (i = 0; i < 3; i++) {
2737  mcdbd2Chi0Chi0T.setCoeff(i, CdF2dChi0Chi0T(i + 5), LO);
2738  }
2739  vmdbd2.push_back(mcdbd2Chi0Chi0T);
2740  }
2741  break;
2742  case FULLNLO:
2743  case NNLO:
2744  case FULLNNLO:
2745  default:
2746  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2747  }
2748  switch (mcdbd2Chi0gT.getOrder()) {
2749  case NLO:
2750  case LO:
2751  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) {
2753  for (i = 0; i < 3; i++) {
2754  mcdbd2Chi0gT.setCoeff(i, CdF2dChigT(i + 5), LO);
2755  }
2756  vmdbd2.push_back(mcdbd2Chi0gT);
2757  }
2758  break;
2759  case FULLNLO:
2760  case NNLO:
2761  case FULLNNLO:
2762  default:
2763  throw std::runtime_error("Error in SUSYMatching::CMdbd2()");
2764 
2765  }
2766 
2767  return (vmdbd2);
2768 }
2769 
2770 /******************************************************************************/
2771 
2772 std::vector<WilsonCoefficient>& SUSYMatching::CMdbs2() {
2773  int i;
2774  gslpp::vector<gslpp::complex> CdF2dHpT(8, 0.);
2775  gslpp::vector<gslpp::complex> CdF2dggT(8, 0.);
2776  gslpp::vector<gslpp::complex> CdF2dChiChiT(8, 0.);
2777  gslpp::vector<gslpp::complex> CdF2dChi0Chi0T(8, 0.);
2778  gslpp::vector<gslpp::complex> CdF2dChigT(8, 0.);
2779 
2780  if (mySUSY.IsFlag_h()) CdF2dHpT = CdF2dHp(1, 2, 0);
2781  if (mySUSY.IsFlag_ch()) CdF2dChiChiT = CdF2dChiChi(1, 2, 0);
2782  if (mySUSY.IsFlag_g()) CdF2dggT = CdF2dgg(1, 2, 0);
2783  if (mySUSY.IsFlag_ne()) CdF2dChi0Chi0T = CdF2dChi0Chi0(1, 2, 0);
2784  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) CdF2dChigT = CdF2dChi0g(1, 2, 0);
2785 
2787 
2790  switch (mcdbs2Hp.getOrder()) {
2791  case NLO:
2792  case LO:
2793  if (mySUSY.IsFlag_h()) {
2794  mcdbs2Hp.setMu(Q_S);
2795  for (i = 0; i < 5; i++) {
2796  mcdbs2Hp.setCoeff(i, CdF2dHpT(i), LO);
2797  }
2798  vmdbs2.push_back(mcdbs2Hp);
2799  }
2800  break;
2801  case FULLNLO:
2802  case NNLO:
2803  case FULLNNLO:
2804  default:
2805  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2806  }
2807  switch (mcdbs2gg.getOrder()) {
2808  case NLO:
2809  case LO:
2810  if (mySUSY.IsFlag_g()) {
2811  mcdbs2gg.setMu(Q_S);
2812  for(i = 0; i < 5 ; i++){
2813  mcdbs2gg.setCoeff(i, CdF2dggT(i), LO);
2814  }
2815  vmdbs2.push_back(mcdbs2gg);
2816  }
2817  break;
2818  case FULLNLO:
2819  case NNLO:
2820  case FULLNNLO:
2821  default:
2822  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2823  }
2824  switch (mcdbs2ChiChi.getOrder()) {
2825  case NLO:
2826  case LO:
2827  if (mySUSY.IsFlag_ch()) {
2829  for (i = 0; i < 5; i++) {
2830  mcdbs2ChiChi.setCoeff(i, CdF2dChiChiT(i), LO);
2831  }
2832  vmdbs2.push_back(mcdbs2ChiChi);
2833  }
2834  break;
2835  case FULLNLO:
2836  case NNLO:
2837  case FULLNNLO:
2838  default:
2839  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2840  }
2841  switch (mcdbs2Chi0Chi0.getOrder()) {
2842  case NLO:
2843  case LO:
2844  if (mySUSY.IsFlag_ne()) {
2846  for (i = 0; i < 5; i++) {
2847  mcdbs2Chi0Chi0.setCoeff(i, CdF2dChi0Chi0T(i), LO);
2848  }
2849  vmdbs2.push_back(mcdbs2Chi0Chi0);
2850  }
2851  break;
2852  case FULLNLO:
2853  case NNLO:
2854  case FULLNNLO:
2855  default:
2856  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2857  }
2858  switch (mcdbs2Chi0g.getOrder()) {
2859  case NLO:
2860  case LO:
2861  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) {
2863  for (i = 0; i < 5; i++) {
2864  mcdbs2Chi0g.setCoeff(i, CdF2dChigT(i), LO);
2865  }
2866  vmdbs2.push_back(mcdbs2Chi0g);
2867  }
2868  break;
2869  case FULLNLO:
2870  case NNLO:
2871  case FULLNNLO:
2872  default:
2873  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2874  }
2875 
2878  switch (mcdbs2HpT.getOrder()) {
2879  case NLO:
2880  case LO:
2881  if (mySUSY.IsFlag_h()) {
2882  mcdbs2HpT.setMu(Q_S);
2883  for (i = 0; i < 3; i++) {
2884  mcdbs2HpT.setCoeff(i, CdF2dHpT(i + 5), LO);
2885  }
2886  vmdbs2.push_back(mcdbs2HpT);
2887  }
2888  break;
2889  case FULLNLO:
2890  case NNLO:
2891  case FULLNNLO:
2892  default:
2893  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2894  }
2895  switch (mcdbs2ggT.getOrder()) {
2896  case NLO:
2897  case LO:
2898  if (mySUSY.IsFlag_g()) {
2899  mcdbs2ggT.setMu(Q_S);
2900  for(i = 0; i < 3 ; i++){
2901  mcdbs2ggT.setCoeff(i, CdF2dggT(i + 5), LO);
2902  }
2903  vmdbs2.push_back(mcdbs2ggT);
2904  }
2905  break;
2906  case FULLNLO:
2907  case NNLO:
2908  case FULLNNLO:
2909  default:
2910  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2911  }
2912  switch (mcdbs2ChiChiT.getOrder()) {
2913  case NLO:
2914  case LO:
2915  if (mySUSY.IsFlag_ch()) {
2917  for (i = 0; i < 3; i++) {
2918  mcdbs2ChiChiT.setCoeff(i, CdF2dChiChiT(i + 5), LO);
2919  }
2920  vmdbs2.push_back(mcdbs2ChiChiT);
2921  }
2922  break;
2923  case FULLNLO:
2924  case NNLO:
2925  case FULLNNLO:
2926  default:
2927  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2928  }
2929  switch (mcdbs2Chi0Chi0T.getOrder()) {
2930  case NLO:
2931  case LO:
2932  if (mySUSY.IsFlag_ne()) {
2934  for (i = 0; i < 3; i++) {
2935  mcdbs2Chi0Chi0T.setCoeff(i, CdF2dChi0Chi0T(i + 5), LO);
2936  }
2937  vmdbs2.push_back(mcdbs2Chi0Chi0T);
2938  }
2939  break;
2940  case FULLNLO:
2941  case NNLO:
2942  case FULLNNLO:
2943  default:
2944  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2945  }
2946  switch (mcdbs2Chi0gT.getOrder()) {
2947  case NLO:
2948  case LO:
2949  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) {
2951  for (i = 0; i < 3; i++) {
2952  mcdbs2Chi0gT.setCoeff(i, CdF2dChigT(i + 5), LO);
2953  }
2954  vmdbs2.push_back(mcdbs2Chi0gT);
2955  }
2956  break;
2957  case FULLNLO:
2958  case NNLO:
2959  case FULLNNLO:
2960  default:
2961  throw std::runtime_error("Error in SUSYMatching::CMdbs2()");
2962  }
2963 
2964 
2965  return (vmdbs2);
2966 }
2967 
2969 
2970 std::vector<WilsonCoefficient>& SUSYMatching::CMdk2() {
2971 
2972  int i;
2973  gslpp::vector<gslpp::complex> CdF2dHpT(8, 0.);
2974  gslpp::vector<gslpp::complex> CdF2dggT(8, 0.);
2975  gslpp::vector<gslpp::complex> CdF2dChiChiT(8, 0.);
2976  gslpp::vector<gslpp::complex> CdF2dChi0Chi0T(8, 0.);
2977  gslpp::vector<gslpp::complex> CdF2dChigT(8, 0.);
2978 
2979  if (mySUSY.IsFlag_h()) CdF2dHpT = CdF2dHp(0, 1, 0);
2980  if (mySUSY.IsFlag_ch()) CdF2dChiChiT = CdF2dChiChi(0, 1, 0);
2981  if (mySUSY.IsFlag_g()) CdF2dggT = CdF2dgg(0, 1, 0);
2982  if (mySUSY.IsFlag_ne()) CdF2dChi0Chi0T = CdF2dChi0Chi0(0, 1, 0);
2983  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) CdF2dChigT = CdF2dChi0g(0, 1, 0);
2984 
2985  vmdk2 = StandardModelMatching::CMdk2();
2986 
2989  switch (mcdk2Hp.getOrder()) {
2990  case NLO:
2991  case LO:
2992  if (mySUSY.IsFlag_h()) {
2993  mcdk2Hp.setMu(Q_S);
2994  for (i = 0; i < 5; i++) {
2995  mcdk2Hp.setCoeff(i, CdF2dHpT(i), LO);
2996  }
2997  vmdk2.push_back(mcdk2Hp);
2998  }
2999  break;
3000  case FULLNLO:
3001  case NNLO:
3002  case FULLNNLO:
3003  default:
3004  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3005  }
3006  switch (mcdk2gg.getOrder()) {
3007  case NLO:
3008  case LO:
3009  if (mySUSY.IsFlag_g()) {
3010  mcdk2gg.setMu(Q_S);
3011  for(i = 0; i < 5 ; i++){
3012  mcdk2gg.setCoeff(i, CdF2dggT(i), LO);
3013  }
3014  vmdk2.push_back(mcdk2gg);
3015  }
3016  break;
3017  case FULLNLO:
3018  case NNLO:
3019  case FULLNNLO:
3020  default:
3021  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3022  }
3023  switch (mcdk2ChiChi.getOrder()) {
3024  case NLO:
3025  case LO:
3026  if (mySUSY.IsFlag_ch()) {
3028  for (i = 0; i < 5; i++) {
3029  mcdk2ChiChi.setCoeff(i, CdF2dChiChiT(i), LO);
3030  }
3031  vmdk2.push_back(mcdk2ChiChi);
3032  }
3033  break;
3034  case FULLNLO:
3035  case NNLO:
3036  case FULLNNLO:
3037  default:
3038  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3039  }
3040  switch (mcdk2Chi0Chi0.getOrder()) {
3041  case NLO:
3042  case LO:
3043  if (mySUSY.IsFlag_ne()) {
3045  for (i = 0; i < 5; i++) {
3046  mcdk2Chi0Chi0.setCoeff(i, CdF2dChi0Chi0T(i), LO);
3047  }
3048  vmdk2.push_back(mcdk2Chi0Chi0);
3049  }
3050  break;
3051  case FULLNLO:
3052  case NNLO:
3053  case FULLNNLO:
3054  default:
3055  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3056  }
3057  switch (mcdk2Chi0g.getOrder()) {
3058  case NLO:
3059  case LO:
3060  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) {
3061  mcdk2Chi0g.setMu(Q_S);
3062  for (i = 0; i < 5; i++) {
3063  mcdk2Chi0g.setCoeff(i, CdF2dChigT(i), LO);
3064  }
3065  vmdk2.push_back(mcdk2Chi0g);
3066  }
3067  break;
3068  case FULLNLO:
3069  case NNLO:
3070  case FULLNNLO:
3071  default:
3072  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3073  }
3074 
3077  switch (mcdk2HpT.getOrder()) {
3078  case NLO:
3079  case LO:
3080  if (mySUSY.IsFlag_h()) {
3081  mcdk2HpT.setMu(Q_S);
3082  for (i = 0; i < 3; i++) {
3083  mcdk2HpT.setCoeff(i, CdF2dHpT(i + 5), LO);
3084  }
3085  vmdk2.push_back(mcdk2HpT);
3086  }
3087  break;
3088  case FULLNLO:
3089  case NNLO:
3090  case FULLNNLO:
3091  default:
3092  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3093  }
3094  switch (mcdk2ggT.getOrder()) {
3095  case NLO:
3096  case LO:
3097  if (mySUSY.IsFlag_g()) {
3098  mcdk2ggT.setMu(Q_S);
3099  for(i = 0; i < 3 ; i++){
3100  mcdk2ggT.setCoeff(i, CdF2dggT(i + 5), LO);
3101  }
3102  vmdk2.push_back(mcdk2ggT);
3103  }
3104  break;
3105  case FULLNLO:
3106  case NNLO:
3107  case FULLNNLO:
3108  default:
3109  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3110  }
3111  switch (mcdk2ChiChiT.getOrder()) {
3112  case NLO:
3113  case LO:
3114  if (mySUSY.IsFlag_ch()) {
3116  for (i = 0; i < 3; i++) {
3117  mcdk2ChiChiT.setCoeff(i, CdF2dChiChiT(i + 5), LO);
3118  }
3119  vmdk2.push_back(mcdk2ChiChiT);
3120  }
3121  break;
3122  case FULLNLO:
3123  case NNLO:
3124  case FULLNNLO:
3125  default:
3126  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3127  }
3128  switch (mcdk2Chi0Chi0T.getOrder()) {
3129  case NLO:
3130  case LO:
3131  if (mySUSY.IsFlag_ne()) {
3133  for (i = 0; i < 3; i++) {
3134  mcdk2Chi0Chi0T.setCoeff(i, CdF2dChi0Chi0T(i + 5), LO);
3135  }
3136  vmdk2.push_back(mcdk2Chi0Chi0T);
3137  }
3138  break;
3139  case FULLNLO:
3140  case NNLO:
3141  case FULLNNLO:
3142  default:
3143  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3144  }
3145  switch (mcdk2Chi0gT.getOrder()) {
3146  case NLO:
3147  case LO:
3148  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) {
3150  for (i = 0; i < 3; i++) {
3151  mcdk2Chi0gT.setCoeff(i, CdF2dChigT(i + 5), LO);
3152  }
3153  vmdk2.push_back(mcdk2Chi0gT);
3154  }
3155  break;
3156  case FULLNLO:
3157  case NNLO:
3158  case FULLNNLO:
3159  default:
3160  throw std::runtime_error("Error in SUSYMatching::CMdk2()");
3161  }
3162 
3163 
3164  return (vmdk2);
3165 }
3166 
3167 
3169 
3170  std::vector<WilsonCoefficient>& SUSYMatching::CMdd2(){
3171 
3172  int i;
3173  gslpp::vector<gslpp::complex> CdF2dHpT(8, 0.);
3174  gslpp::vector<gslpp::complex> CdF2dggT(8, 0.);
3175  gslpp::vector<gslpp::complex> CdF2dChiChiT(8, 0.);
3176  gslpp::vector<gslpp::complex> CdF2dChi0Chi0T(8, 0.);
3177  gslpp::vector<gslpp::complex> CdF2dChigT(8, 0.);
3178 
3179  if (mySUSY.IsFlag_h()) CdF2dHpT = CdF2dHp(1, 0, 1);
3180  if (mySUSY.IsFlag_g()) CdF2dggT = CdF2dgg(1, 0, 1);
3181  if (mySUSY.IsFlag_ch()) CdF2dChiChiT = CdF2dChiChi(1, 0, 1);
3182  if (mySUSY.IsFlag_ne()) CdF2dChi0Chi0T = CdF2dChi0Chi0(1, 0, 1);
3183  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) CdF2dChigT = CdF2dChi0g(1, 0, 1);
3184 
3186 
3189  switch (mcdd2Hp.getOrder()) {
3190  case NLO:
3191  case LO:
3192  if (mySUSY.IsFlag_h()) {
3193  mcdd2Hp.setMu(Q_S);
3194  for (i = 0; i < 5; i++) {
3195  mcdd2Hp.setCoeff(i, CdF2dHpT(i), LO);
3196  }
3197  vmdd2.push_back(mcdd2Hp);
3198  }
3199  break;
3200  case FULLNLO:
3201  case NNLO:
3202  case FULLNNLO:
3203  default:
3204  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3205  }
3206  switch (mcdd2gg.getOrder()) {
3207  case NLO:
3208  case LO:
3209  if (mySUSY.IsFlag_g()) {
3210  mcdd2gg.setMu(Q_S);
3211  for(i = 0; i < 5 ; i++){
3212  mcdd2gg.setCoeff(i, CdF2dggT(i), LO);
3213  }
3214  vmdd2.push_back(mcdd2gg);
3215  }
3216  break;
3217  case FULLNLO:
3218  case NNLO:
3219  case FULLNNLO:
3220  default:
3221  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3222  }
3223  switch (mcdd2ChiChi.getOrder()) {
3224  case NLO:
3225  case LO:
3226  if (mySUSY.IsFlag_ch()) {
3228  for (i = 0; i < 5; i++) {
3229  mcdd2ChiChi.setCoeff(i, CdF2dChiChiT(i), LO);
3230  }
3231  vmdd2.push_back(mcdd2ChiChi);
3232  }
3233  break;
3234  case FULLNLO:
3235  case NNLO:
3236  case FULLNNLO:
3237  default:
3238  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3239  }
3240  switch (mcdd2Chi0Chi0.getOrder()) {
3241  case NLO:
3242  case LO:
3243  if (mySUSY.IsFlag_ne()) {
3245  for (i = 0; i < 5; i++) {
3246  mcdd2Chi0Chi0.setCoeff(i, CdF2dChi0Chi0T(i), LO);
3247  }
3248  vmdd2.push_back(mcdd2Chi0Chi0);
3249  }
3250  break;
3251  case FULLNLO:
3252  case NNLO:
3253  case FULLNNLO:
3254  default:
3255  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3256  }
3257  switch (mcdd2Chi0g.getOrder()) {
3258  case NLO:
3259  case LO:
3260  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) {
3261  mcdd2Chi0g.setMu(Q_S);
3262  for (i = 0; i < 5; i++) {
3263  mcdd2Chi0g.setCoeff(i, CdF2dChigT(i), LO);
3264  }
3265  vmdd2.push_back(mcdd2Chi0g);
3266  }
3267  break;
3268  case FULLNLO:
3269  case NNLO:
3270  case FULLNNLO:
3271  default:
3272  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3273  }
3274 
3277  switch (mcdd2HpT.getOrder()) {
3278  case NLO:
3279  case LO:
3280  if (mySUSY.IsFlag_h()) {
3281  mcdd2HpT.setMu(Q_S);
3282  for (i = 0; i < 3; i++) {
3283  mcdd2HpT.setCoeff(i, CdF2dHpT(i + 5), LO);
3284  }
3285  vmdd2.push_back(mcdd2HpT);
3286  }
3287  break;
3288  case FULLNLO:
3289  case NNLO:
3290  case FULLNNLO:
3291  default:
3292  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3293  }
3294  switch (mcdd2ggT.getOrder()) {
3295  case NLO:
3296  case LO:
3297  if (mySUSY.IsFlag_g()) {
3298  mcdd2ggT.setMu(Q_S);
3299  for(i = 0; i < 3 ; i++){
3300  mcdd2ggT.setCoeff(i, CdF2dggT(i + 5), LO);
3301  }
3302  vmdd2.push_back(mcdd2ggT);
3303  }
3304  break;
3305  case FULLNLO:
3306  case NNLO:
3307  case FULLNNLO:
3308  default:
3309  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3310  }
3311  switch (mcdd2ChiChiT.getOrder()) {
3312  case NLO:
3313  case LO:
3314  if (mySUSY.IsFlag_ch()) {
3316  for (i = 0; i < 3; i++) {
3317  mcdd2ChiChiT.setCoeff(i, CdF2dChiChiT(i + 5), LO);
3318  }
3319  vmdd2.push_back(mcdd2ChiChiT);
3320  }
3321  break;
3322  case FULLNLO:
3323  case NNLO:
3324  case FULLNNLO:
3325  default:
3326  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3327  }
3328  switch (mcdd2Chi0Chi0T.getOrder()) {
3329  case NLO:
3330  case LO:
3331  if (mySUSY.IsFlag_ne()) {
3333  for (i = 0; i < 3; i++) {
3334  mcdd2Chi0Chi0T.setCoeff(i, CdF2dChi0Chi0T(i + 5), LO);
3335  }
3336  vmdd2.push_back(mcdd2Chi0Chi0T);
3337  }
3338  break;
3339  case FULLNLO:
3340  case NNLO:
3341  case FULLNNLO:
3342  default:
3343  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3344  }
3345  switch (mcdd2Chi0gT.getOrder()) {
3346  case NLO:
3347  case LO:
3348  if ((mySUSY.IsFlag_g()) || (mySUSY.IsFlag_ne())) {
3350  for (i = 0; i < 3; i++) {
3351  mcdd2Chi0gT.setCoeff(i, CdF2dChigT(i + 5), LO);
3352  }
3353  vmdd2.push_back(mcdd2Chi0gT);
3354  }
3355  break;
3356  case FULLNLO:
3357  case NNLO:
3358  case FULLNNLO:
3359  default:
3360  throw std::runtime_error("Error in SUSYMatching::CMdd2()");
3361  }
3362 
3363  return (vmdd2);
3364 
3365 }
3366 
3367 /******************************************************************************/
3369 /*******************************************************************************
3370  * Wilson coefficients misiak base for b -> s gamma *
3371  * operator basis: - magnetic moment operator Q7 *
3372  * *
3373  * ****************************************************************************/
3376 
3378  myCKM = mySUSY_CKM();
3379  gslpp::complex YuJ(0., 0., false);
3380 
3381  YuJ = sqrt(2.) / v2 * mySUSYMQ(2 * J);
3382 
3383 
3384  return (-DeltaFHL(J,I) / (tanb * myCKM(J,I) * YuJ));
3386 double SUSYMatching::F7k(double x, int k) {
3387 
3388  if (k == 1) {
3389 
3390  if (fabs(x - 1.) < SUSYLEPS) return (-5. / 48.);
3391 
3392  return ((x * (7 - 5 * x - 8 * x * x)) / (24. * (-1 + x)*(-1 + x)*(-1 + x)) +
3393  x * x * (-2 + 3 * x) * log(x) / (4. * (-1 + x)*(-1 + x)*(-1 + x)*(-1 + x)));
3394 
3395  }
3396  else if (k == 2) {
3397 
3398  if (fabs(x - 1.) < SUSYLEPS) return (-7. / 36.);
3399 
3400  return (((3 - 5 * x) * x) / (12. * (-1 + x)*(-1 + x)) +
3401  (x * (-2 + 3 * x) * log(x)) / (6. * (-1 + x)*(-1 + x)*(-1 + x)));
3402 
3403  }
3404  else throw std::runtime_error("Error in F7k ");
3405 
3406 }
3409 
3410  gslpp::vector<gslpp::complex> VCLO(5, 0.);
3411  gslpp::complex CLO(0., 0., false);
3412  double m2top = mySUSYMQ(4) * mySUSYMQ(4);
3413  double M2Hp = mySUSY.getMHp() * mySUSY.getMHp();
3414  double M2W = mySUSY.Mw_tree() * mySUSY.Mw_tree();
3415 
3416  gslpp::vector<double> myMU2Squarks(6, 0.);
3417  myMU2Squarks = mySUSY.getMsu2();
3418  int j, k;
3419 
3420 
3421  VCLO.assign(0, F7k(m2top / M2W, 0) + (Eps_J(2) - EpsPrime(2, 2)) / (1 + Eps_J(2)
3422  * tanb) * F7k(m2top / M2W, 2));
3423 
3424  VCLO.assign(1, 1. / (3. * tanb * tanb) * F7k(m2top / M2Hp, 1) +
3425  F7k(m2top / M2Hp, 2) - (EpsPrime(2, 1) + Eps_J(2)) / (1. + Eps_J(2) * tanb) *
3426  tanb * F7k(m2top / M2Hp, 2));
3427 
3428  for (j = 0; j < 2; j++) {
3429  for (k = 0; k < 6; k++) {
3430  CLO += 1. / (3. * gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2)) *
3431  M2W / (MChi(j) * MChi(j)) * (-1. / 2. * VdUCL(q, k, j).conjugate()
3432  * VdUCL(b, k, j).conjugate()
3433  * F7k(myMU2Squarks(k) / (MChi(j) * MChi(j)), 1) +
3434  VdUCL(q, k, j).conjugate() * VdUCR(b, k, j,1) *
3435  MChi(j) / mySUSYMQ(5) * 6. *
3436  F7k(myMU2Squarks(k) / (MChi(j) * MChi(j)), 2));
3437  }
3438  }
3439 
3440  VCLO.assign(2, CLO);
3441 
3442  return (VCLO);
3443 
3444 }
3446 std::vector<WilsonCoefficient>& SUSYMatching::CMbsg()
3447 {
3448 
3450 
3451  switch (mcbsg.getScheme()) {
3452  case NDR:
3453 
3454  break;
3455  default:
3456  std::stringstream out;
3457  out << mcbsg.getScheme();
3458  throw std::runtime_error("SUSYMatching::CMbsg(): scheme " + out.str() + "not implemented");
3459  }
3460 
3461  mcbsg.setMu(mySUSY.getMuw());
3462 
3463  switch (mcbsg.getOrder()) {
3464  case NNLO:
3465  case NLO:
3466  case LO:
3468 // mcbsg.setCoeff(7,, LO); "WE WILL THINK ABOUT THIS LATER" : MAURO VALLI & AYAN PAUL (I WANTED TO THINK ABOUT IT NOW...)
3469 
3470  break;
3471  default:
3472  std::stringstream out;
3473  out << mcbsg.getOrder();
3474  throw std::runtime_error("SUSYMatching::CMbsg(): order " + out.str() + "not implemented");
3475  }
3476 
3477  vmcbsg.push_back(mcbsg);
3478  return (vmcbsg);
3479 }
3481 std::vector<WilsonCoefficient>& SUSYMatching::CMBMll(QCD::lepton lepton)
3482 {
3483  int lepton_pair;
3484  switch (lepton) {
3485  case QCD::ELECTRON:
3486  lepton_pair = 0;
3487  break;
3488  case QCD::MU:
3489  lepton_pair = 1;
3490  break;
3491  case QCD::TAU:
3492  lepton_pair = 2;
3493  break;
3494  case QCD::NOLEPTON:
3495  lepton_pair = 1; // NOLEPTON SET TO MUON. Ayan Paul
3496  break;
3497  case QCD::NEUTRINO_1:
3498  case QCD::NEUTRINO_2:
3499  case QCD::NEUTRINO_3:
3500  std::runtime_error("SUSYMatching::CMBMll(): LEPTON not implemented");
3501  break;
3502  }
3503  vmcBMll = StandardModelMatching::CMBMll(lepton);
3504 
3505  switch (mcBMll.getScheme()) {
3506  case NDR:
3507  //case HV:
3508  //case LRI:
3509  break;
3510  default:
3511  std::stringstream out;
3512  out << mcBMll.getScheme();
3513  throw std::runtime_error("StandardModel::CMBKstrall(): scheme " + out.str() + "not implemented");
3514  }
3515 
3517 
3518  switch (mcBMll.getOrder()) {
3519  case NNLO:
3520  case NLO:
3521  case LO:
3522  mcBMll.setCoeff(8, bsll_DeltaC9_SUSY(lepton_pair), LO);
3523  mcBMll.setCoeff(9, bsll_DeltaC10_SUSY(lepton_pair), LO);
3524  break;
3525  default:
3526  std::stringstream out;
3527  out << mcBMll.getOrder();
3528  throw std::runtime_error("StandardModelMatching::CMBKstrall(): order " + out.str() + "not implemented");
3529  }
3530 
3531  vmcBMll.push_back(mcBMll);
3532  return (vmcBMll);
3533 }
3534 
3535 
3536 /* b->sll STARTS HERE */
3538 double SUSYMatching::bsll_f1(double x)
3539 {
3540 
3541  if (std::fabs(x - 1.) > SUSYLEPS2) {
3542  return (-7. + 5. * x + 8. * x * x) / (6. * (1. - x) * (1. - x) * (1. - x))
3543  - (2. * x - 3. * x * x) / ((1. - x) * (1. - x) * (1. - x) * (1. - x)) * log(x);
3544  } else {
3545  return -5. / 12.;
3546  }
3547 }
3549 double SUSYMatching::bsll_f2(double x)
3550 {
3551 
3552  if (std::fabs(x - 1.) > SUSYLEPS2) {
3553  return (3. * x - 5. * x * x) / (2. * (1. - x) * (1. - x))
3554  + (2. * x - 3. * x * x) / ((1. - x) * (1. - x) * (1. - x)) * log(x);
3555  } else {
3556  return -7. / 6.;
3557  }
3558 }
3560 double SUSYMatching::bsll_f3(double x)
3561 {
3562 
3563  if (std::fabs(x - 1.) > SUSYLEPS2) {
3564  return (2. + 5. * x - x * x) / (6. * (1. - x) * (1. - x) * (1. - x))
3565  + x / ((1. - x) * (1. - x) * (1. - x) * (1. - x)) * log(x);
3566  } else {
3567  return 1. / 12.;
3568  }
3569 }
3571 double SUSYMatching::bsll_f4(double x)
3572 {
3573 
3574  if (std::fabs(x - 1.) > SUSYLEPS2) {
3575  return (1. + x) / (2. * (1. - x) * (1. - x))
3576  + x / ((1. - x) * (1. - x) * (1. - x)) * log(x);
3577  } else {
3578  return 1. / 6.;
3579  }
3580 }
3582 double SUSYMatching::bsll_f5(double x)
3583 {
3584 
3585  if (std::fabs(x - 1.) > SUSYLEPS2) {
3586  return x / (1. - x) + x / ((1. - x) * (1. - x)) * log(x);
3587  } else return -1. / 2.;
3588 }
3590 double SUSYMatching::bsll_f6(double x)
3591 {
3592 
3593  if (std::fabs(x - 1.) > SUSYLEPS2) {
3594  return (38. * x - 79. * x * x + 47. * x * x * x) / (6. * (1. - x) * (1. - x) * (1. - x))
3595  + (4. * x - 6. * x * x + 3. * x * x * x * x) / ((1. - x) * (1. - x) * (1. - x) * (1. - x)) * log(x);
3596  } else {
3597  return -3. / 4.;
3598  }
3599 }
3601 double SUSYMatching::bsll_f7(double x)
3602 {
3603 
3604  if (std::fabs(x - 1.) > SUSYLEPS2) {
3605  return (52. - 101. * x + 43. * x * x) / (6. * (1. - x) * (1. - x) * (1. - x))
3606  + (6. - 9. * x + 2. * x * x * x) / ((1. - x) * (1. - x) * (1. - x) * (1. - x)) * log(x);
3607  } else {
3608  return -7. / 4.;
3609  }
3610 }
3612 double SUSYMatching::bsll_f8(double x)
3613 {
3614 
3615  if (std::fabs(x - 1.) > SUSYLEPS2) {
3616  return (2. - 7. * x + 11. * x * x) / ((1. - x) * (1. - x) * (1. - x))
3617  + (6. * x * x * x) / ((1. - x) * (1. - x) * (1. - x) * (1. - x)) * log(x);
3618  } else {
3619  return 3. / 2.;
3620  }
3621 }
3623 double SUSYMatching::bsll_C0(double m1, double m2, double m3)
3624 {
3625 
3626  if (m1 <= 0.0 || m2 <= 0.0 || m3 <= 0.0) throw std::runtime_error("SUSYMatching::bsll_C0(): Invalid argument!");
3627 
3628  if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m3) / m2) <= SUSYLEPS2)) {
3629  return -1. / (2 * m1 * m1);
3630  } else if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m3) / m2) > SUSYLEPS2)) {
3631  return (m3 * m3 * (1. - log(m3 * m3 / (m2 * m2))) - m2 * m2) / ((m2 * m2 - m3 * m3)*(m2 * m2 - m3 * m3));
3632  } else if ((std::fabs((m1 - m3) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m3) / m2) > SUSYLEPS2)) {
3633  return (m2 * m2 * (1. - log(m2 * m2 / (m3 * m3))) - m3 * m3) / ((m2 * m2 - m3 * m3)*(m2 * m2 - m3 * m3));
3634  } else if ((std::fabs((m1 - m2) / m1) > SUSYLEPS2) && (std::fabs((m2 - m3) / m2) <= SUSYLEPS2)) {
3635  return (m1 * m1 * (1. + log(m3 * m3 / (m1 * m1))) - m3 * m3) / ((m1 * m1 - m3 * m3)*(m1 * m1 - m3 * m3));
3636  } else if ((std::fabs((m1 - m2) / m1) > SUSYLEPS2) && (std::fabs((m2 - m3) / m2) > SUSYLEPS2)) {
3637  return (m2 * m2 / (m1 * m1 - m2 * m2) * log(m2 * m2 / (m1 * m1)) - m3 * m3 / (m1 * m1 - m3 * m3) * log(m3 * m3 / (m1 * m1))) / (m2 * m2 - m3 * m3);
3638  } else {
3639  std::cout << "m1, m2, m3 = " << m1 << ", " << m2 << ", " << m3 << std::endl;
3640  throw std::runtime_error("SUSYMatching::bsll_C0(): limit/case not implemented!");
3641  }
3642 }
3644 double SUSYMatching::bsll_C2(double m1, double m2, double m3, double mu2)
3645 {
3646 
3647  if (mu2 <= 0.0 || m1 <= 0.0 || m2 <= 0.0 || m3 <= 0.0) throw std::runtime_error("SUSYMatching::bsll_C2(): Invalid argument!");
3648 
3649  if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m3) / m2) <= SUSYLEPS2)) {
3650  return -(1 / 4.) * log(m3 * m3 / (mu2));
3651  } else if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m3) / m2) > SUSYLEPS2)) {
3652  return (pow(m2, 4.) - 4. * m2 * m2 * m3 * m3 + 3. * pow(m3, 4.) - (2. * pow(m2, 4.) - 4. * m2 * m2 * m3 * m3) * log(m2 * m2 / (mu2)) - 2. * pow(m3, 4.) * log(m3 * m3 / (mu2))) / (8. * (m2 * m2 - m3 * m3)*(m2 * m2 - m3 * m3));
3653  } else if ((std::fabs((m1 - m3) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m3) / m2) > SUSYLEPS2)) {
3654  return (3. * pow(m2, 4.) - 4. * m2 * m2 * m3 * m3 + pow(m3, 4.) + (-2. * pow(m3, 4.) + 4. * m2 * m2 * m3 * m3) * log(m3 * m3 / (mu2)) - 2. * pow(m2, 4.) * log(m2 * m2 / (mu2))) / (8. * (m2 * m2 - m3 * m3)*(m2 * m2 - m3 * m3));
3655  } else if ((std::fabs((m1 - m2) / m1) > SUSYLEPS2) && (std::fabs((m2 - m3) / m2) <= SUSYLEPS2)) {
3656  return (3. * pow(m1, 4.) - 4. * m1 * m1 * m3 * m3 + pow(m3, 4.) + (-2. * pow(m3, 4.) + 4. * m1 * m1 * m3 * m3) * log(m3 * m3 / (mu2)) - 2. * pow(m1, 4.) * log(m1 * m1 / (mu2))) / (8. * (m1 * m1 - m3 * m3)*(m1 * m1 - m3 * m3));
3657  } else if ((std::fabs((m1 - m2) / m1) > SUSYLEPS2) && (std::fabs((m2 - m3) / m2) > SUSYLEPS2)) {
3658  return 3. / 8. - (1. / 4.)*(pow(m1, 4.) / ((m1 * m1 - m2 * m2)*(m1 * m1 - m3 * m3)) * log(m1 * m1 / (mu2)) + pow(m2, 4.) / ((m2 * m2 - m1 * m1)*(m2 * m2 - m3 * m3)) * log(m2 * m2 / (mu2)) + pow(m3, 4.) / ((m3 * m3 - m2 * m2)*(m3 * m3 - m1 * m1)) * log(m3 * m3 / (mu2)));
3659  } else {
3660  std::cout << "m1, m2, m3, mu2 = " << m1 << ", " << m2 << ", " << m3 << ", " << mu2 << std::endl;
3661  throw std::runtime_error("SUSYMatching::bsll_C2(): limit/case not implemented!");
3662  }
3663 }
3665 double SUSYMatching::bsll_D0reg(double m1, double m2, double m3, double m4)
3666 {
3667 
3668  if (m1 <= 0.0 || m2 <= 0.0 || m3 <= 0.0 || m4 <= 0.0) throw std::runtime_error("SUSYMatching::bsll_D0(): Invalid argument!");
3669 
3670  if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m1 - m3) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m4) / m2) <= SUSYLEPS2)) {
3671  return 1. / (6. * m1 * m1 * m1 * m1);
3672  } else if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m3) / m3) <= SUSYLEPS2)) {
3673  return (m3 * m3 * m3 * m3 - m4 * m4 * m4 * m4 + 4. * m3 * m3 * m4 * m4 * log(m4 / m3)) / (2. * (m3 * m3 - m4 * m4)*(m3 * m3 - m4 * m4)*(m3 * m3 - m4 * m4) * m3 * m3);
3674  } else if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m4) / m4) <= SUSYLEPS2)) {
3675  return (-m3 * m3 * m3 * m3 + m4 * m4 * m4 * m4 + 4. * m3 * m3 * m4 * m4 * log(m3 / m4)) / (2. * (-m3 * m3 + m4 * m4)*(-m3 * m3 + m4 * m4)*(-m3 * m3 + m4 * m4) * m4 * m4);
3676  } else if ((std::fabs((m1 - m3) / m1) <= SUSYLEPS2) && (std::fabs((m3 - m4) / m4) <= SUSYLEPS2)) {
3677  return (-m2 * m2 * m2 * m2 + m4 * m4 * m4 * m4 + 4. * m2 * m2 * m4 * m4 * log(m2 / m4)) / (2. * (-m2 * m2 + m4 * m4)*(-m2 * m2 + m4 * m4)*(-m2 * m2 + m4 * m4) * m4 * m4);
3678  } else if ((std::fabs((m2 - m3) / m2) <= SUSYLEPS2) && (std::fabs((m3 - m4) / m4) <= SUSYLEPS2)) {
3679  return (-m1 * m1 * m1 * m1 + m4 * m4 * m4 * m4 + 4. * m1 * m1 * m4 * m4 * log(m1 / m4)) / (2. * (-m1 * m1 + m4 * m4)*(-m1 * m1 + m4 * m4)*(-m1 * m1 + m4 * m4) * m4 * m4);
3680  } else if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2)) {
3681  double term1 = (m3 * m3 * (-m2 * m2 + m3 * m3 + 2. * m2 * m2 * log(m2 / m3))) / (m2 * m2 - m3 * m3) / (m2 * m2 - m3 * m3);
3682  double term2 = (m4 * m4 * (-m2 * m2 + m4 * m4 + 2. * m2 * m2 * log(m2 / m4))) / (m2 * m2 - m4 * m4) / (m2 * m2 - m4 * m4);
3683  return (term1 - term2) / (m2 * m2 * (m3 * m3 - m4 * m4));
3684  } else if ((std::fabs((m1 - m3) / m1) <= SUSYLEPS2)) {
3685  double term1 = (2. * m3 * m3 * log(m3 / m2)) / (-m2 * m2 + m3 * m3);
3686  double term2 = (2. * m4 * m4 * log(m4 / m2)) / (-m2 * m2 + m4 * m4);
3687  double term3 = (2. * m4 * m4 * log(m4 / m3)) / (-m3 * m3 + m4 * m4);
3688  return (-1. + term1 - term2 + term3) / (m3 * m3 - m2 * m2) / (m3 * m3 - m4 * m4);
3689  } else if ((std::fabs((m1 - m4) / m1) <= SUSYLEPS2)) {
3690  double term1 = (2. * m3 * m3 * log(m3 / m2)) / (-m2 * m2 + m3 * m3);
3691  double term2 = (2. * m3 * m3 * log(m3 / m4)) / (-m4 * m4 + m3 * m3);
3692  double term3 = (2. * m4 * m4 * log(m4 / m2)) / (-m2 * m2 + m4 * m4);
3693  return (1. + term1 - term2 - term3) / (m4 * m4 - m2 * m2) / (m3 * m3 - m4 * m4);
3694  } else if ((std::fabs((m2 - m3) / m2) <= SUSYLEPS2)) {
3695  double term1 = (2. * m3 * m3 * log(m3 / m1)) / (-m1 * m1 + m3 * m3);
3696  double term2 = (2. * m4 * m4 * log(m4 / m1)) / (-m1 * m1 + m4 * m4);
3697  double term3 = (2. * m4 * m4 * log(m4 / m3)) / (-m3 * m3 + m4 * m4);
3698  return (1. - term1 + term2 - term3) / (-m4 * m4 + m3 * m3) / (-m3 * m3 + m1 * m1);
3699  } else if ((std::fabs((m2 - m4) / m2) <= SUSYLEPS2)) {
3700  double term1 = (2. * m3 * m3 * log(m3 / m1)) / (-m1 * m1 + m3 * m3);
3701  double term2 = (2. * m3 * m3 * log(m3 / m4)) / (-m4 * m4 + m3 * m3);
3702  double term3 = (2. * m4 * m4 * log(m4 / m1)) / (-m1 * m1 + m4 * m4);
3703  return (-1. - term1 + term2 + term3) / (-m4 * m4 + m3 * m3) / (-m4 * m4 + m1 * m1);
3704  } else if ((std::fabs((m3 - m4) / m3) <= SUSYLEPS2)) {
3705  double term1 = (-m4 * m4 + m1 * m1 + 2. * m1 * m1 * log(m4 / m1)) / (m1 * m1 - m4 * m4) / (m1 * m1 - m4 * m4);
3706  double term2 = (-m4 * m4 + m2 * m2 + 2. * m2 * m2 * log(m4 / m2)) / (m2 * m2 - m4 * m4) / (m2 * m2 - m4 * m4);
3707  return (term1 - term2) / (m1 * m1 - m2 * m2);
3708  } else if ((std::fabs((m1 - m2) / m1) > SUSYLEPS2) && (std::fabs((m3 - m4) / m3) > SUSYLEPS2) && (std::fabs((m1 - m4) / m1) > SUSYLEPS2) && (std::fabs((m1 - m3) / m1) > SUSYLEPS2) && (std::fabs((m2 - m3) / m2) > SUSYLEPS2) && (std::fabs((m2 - m4) / m2) > SUSYLEPS2)) {
3709  return (bsll_C0(m1, m3, m4) - bsll_C0(m2, m3, m4)) / (m1 * m1 - m2 * m2);
3710  } else {
3711  std::cout << "m1, m2, m3, m4 = " << m1 << ", " << m2 << ", " << m3 << ", " << m4 << std::endl;
3712  throw std::runtime_error("SUSYMatching::bsll_D0reg(): limit/case not implemented!");
3713  }
3714 }
3716 double SUSYMatching::bsll_D2reg(double m1, double m2, double m3, double m4)
3717 {
3718 
3719  if (m1 <= 0.0 || m2 <= 0.0 || m3 <= 0.0 || m4 <= 0.0) throw std::runtime_error("SUSYMatching::bsll_D2(): Invalid argument!");
3720 
3721  if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m1 - m3) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m4) / m2) <= SUSYLEPS2)) {
3722  return -1. / (12. * m1 * m1 * m1 * m1);
3723  } else if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m3) / m3) <= SUSYLEPS2)) {
3724  return -(m3 * m3 * m3 * m3 - 4. * m3 * m3 * m4 * m4 + 3. * m4 * m4 * m4 * m4 - 4. * m4 * m4 * m4 * m4 * log(m4 / m3)) / (8. * (m3 * m3 - m4 * m4)*(m3 * m3 - m4 * m4)*(m3 * m3 - m4 * m4));
3725  } else if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2) && (std::fabs((m2 - m4) / m4) <= SUSYLEPS2)) {
3726  return (m4 * m4 * m4 * m4 - 4. * m3 * m3 * m4 * m4 + 3. * m3 * m3 * m3 * m3 - 4. * m3 * m3 * m3 * m3 * log(m3 / m4)) / (8. * (m3 * m3 - m4 * m4)*(m3 * m3 - m4 * m4)*(m3 * m3 - m4 * m4));
3727  } else if ((std::fabs((m1 - m3) / m1) <= SUSYLEPS2) && (std::fabs((m3 - m4) / m3) <= SUSYLEPS2)) {
3728  return (m4 * m4 * m4 * m4 - 4. * m2 * m2 * m4 * m4 + 3. * m2 * m2 * m2 * m2 - 4. * m2 * m2 * m2 * m2 * log(m2 / m4)) / (8. * (m2 * m2 - m4 * m4)*(m2 * m2 - m4 * m4)*(m2 * m2 - m4 * m4));
3729  } else if ((std::fabs((m2 - m3) / m2) <= SUSYLEPS2) && (std::fabs((m3 - m4) / m3) <= SUSYLEPS2)) {
3730  return (m4 * m4 * m4 * m4 - 4. * m1 * m1 * m4 * m4 + 3. * m1 * m1 * m1 * m1 - 4. * m1 * m1 * m1 * m1 * log(m1 / m4)) / (8. * (m1 * m1 - m4 * m4)*(m1 * m1 - m4 * m4)*(m1 * m1 - m4 * m4));
3731  } else if ((std::fabs((m1 - m2) / m1) <= SUSYLEPS2)) {
3732  double num = 2. * m3 * m3 * m3 * m3 * (m2 * m2 - m4 * m4)*(m2 * m2 - m4 * m4) * log(m3 / m2)+(m2 * m2 - m3 * m3)*(m2 * m2 * (m2 * m2 - m4 * m4)*(m3 * m3 - m4 * m4) + 2. * (-m2 * m2 + m3 * m3) * m4 * m4 * m4 * m4 * log(m4 / m2));
3733  double den = 4. * (m2 * m2 - m3 * m3)*(m2 * m2 - m3 * m3)*(m2 * m2 - m4 * m4)*(m2 * m2 - m4 * m4)*(m3 * m3 - m4 * m4);
3734  return -(num / den);
3735  } else if ((std::fabs((m1 - m3) / m1) <= SUSYLEPS2)) {
3736  double num = -m2 * m2 * (2. * m3 * m3 * log(m3 / m2) / (m2 * m2 - m3 * m3) + 2. * m4 * m4 * log(m4 / m2) / (-m2 * m2 + m4 * m4)) + m3 * m3 * (-1. + 2. * m4 * m4 * log(m4 / m3) / (m4 * m4 - m3 * m3));
3737  double den = 4. * (-m2 * m2 + m3 * m3)*(m3 * m3 - m4 * m4);
3738  return (num / den);
3739  } else if ((std::fabs((m1 - m4) / m1) <= SUSYLEPS2)) {
3740  double num = 2. * m2 * m2 * m3 * m3 * log(m3 / m2) / (-m2 * m2 + m3 * m3) + m4 * m4 * (1. - 2. * m3 * m3 * log(m3 / m4) / (m3 * m3 - m4 * m4) - 2. * m2 * m2 * log(m2 / m4) / (m2 * m2 - m4 * m4));
3741  double den = 4. * (-m2 * m2 + m4 * m4)*(m3 * m3 - m4 * m4);
3742  return (num / den);
3743  } else if ((std::fabs((m2 - m3) / m2) <= SUSYLEPS2)) {
3744  double num = m3 * m3 + m1 * m1 * (2. * m3 * m3 * log(m3 / m1) / (m1 * m1 - m3 * m3) + 2. * m4 * m4 * log(m4 / m1) / (m4 * m4 - m1 * m1)) + 2. * m3 * m3 * m4 * m4 * log(m4 / m3) / (m3 * m3 - m4 * m4);
3745  double den = 4. * (m1 * m1 - m3 * m3)*(m3 * m3 - m4 * m4);
3746  return (num / den);
3747  } else if ((std::fabs((m2 - m4) / m2) <= SUSYLEPS2)) {
3748  double num = 2. * m1 * m1 * m3 * m3 * log(m3 / m1) / (m1 * m1 - m3 * m3) + m4 * m4 * (-1. + 2. * m3 * m3 * log(m3 / m4) / (m3 * m3 - m4 * m4) + 2. * m1 * m1 * log(m1 / m4) / (m1 * m1 - m4 * m4));
3749  double den = 4. * (m1 * m1 - m4 * m4)*(m3 * m3 - m4 * m4);
3750  return (num / den);
3751  } else if ((std::fabs((m3 - m4) / m3) <= SUSYLEPS2)) {
3752  double num = 2. * m1 * m1 * (m1 * m1 - m4 * m4 + 2. * m1 * m1 * log(m4 / m1)) / (m1 * m1 - m4 * m4) / (m1 * m1 - m4 * m4);
3753  num -= 2. * m2 * m2 * (m2 * m2 - m4 * m4 + 2. * m2 * m2 * log(m4 / m2)) / (m2 * m2 - m4 * m4) / (m2 * m2 - m4 * m4);
3754  double den = 8. * (m1 * m1 - m2 * m2);
3755  return (num / den);
3756  } else if ((std::fabs((m1 - m2) / m1) > SUSYLEPS2) && (std::fabs((m3 - m4) / m3) > SUSYLEPS2) && (std::fabs((m1 - m4) / m1) > SUSYLEPS2) && (std::fabs((m1 - m3) / m1) > SUSYLEPS2) && (std::fabs((m2 - m3) / m2) > SUSYLEPS2) && (std::fabs((m2 - m4) / m2) > SUSYLEPS2)) {
3757  return (m1 * m1 * bsll_C0(m1, m3, m4) - m2 * m2 * bsll_C0(m2, m3, m4)) / (4. * (m1 * m1 - m2 * m2));
3758  } else {
3759  std::cout << "m1,m2,m3,m4 = " << m1 << ", " << m2 << ", " << m3 << ", " << m4 << std::endl;
3760  throw std::runtime_error("SUSYMatching::bsll_D2reg(): limit/case not implemented!");
3761  }
3762 }
3765 {
3766 
3767  double pi = M_PI;
3768  double MW = mySUSY.Mw_tree();
3769  double mt = mySUSY.Mq_Q(mySUSY.TOP);
3770  double mb = mySUSY.Mq_Q(mySUSY.BOTTOM);
3771  double g3 = sqrt(4. * pi * Als);
3772 
3773  // charged Higgs loops
3774  gslpp::complex DC7_chargedHiggs = (0.5 * mt * mt / MHpm / MHpm * bsll_f1(mt * mt / MHpm / MHpm) / (tanb * tanb) + bsll_f2(mt * mt / MHpm / MHpm)) / 6.;
3775 
3776  // chargino loops
3777  gslpp::complex DC7_chargino = 0.;
3778  for (int a = 0; a < 6; a++) {
3779  for (int i = 0; i < 2; i++) {
3780  DC7_chargino += (-0.5 * (XUL[a][1][i]).conjugate() * XUL[a][2][i] * bsll_f1(mym_su_sq(a) / MChi(i) / MChi(i))
3781  + (XUL[a][1][i]).conjugate() * XUR[a][2][i]*(MChi(i) / mb) * bsll_f2(mym_su_sq(a) / MChi(i) / MChi(i))) / MChi(i) / MChi(i);
3782  }
3783  }
3784  DC7_chargino *= MW * MW / (3. * gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3785 
3786 
3787  // neutralino loops
3788  gslpp::complex DC7_neutralino = 0.;
3789  for (int a = 0; a < 6; a++) {
3790  for (int i = 0; i < 4; i++) {
3791  DC7_neutralino += (0.5 * (ZDL[a][1][i]).conjugate() * ZDL[a][2][i] * bsll_f3(mym_sd_sq(a) / MChi0(i) / MChi0(i))
3792  + (ZDL[a][1][i]).conjugate() * ZDR[a][2][i]*(MChi0(i) / mb) * bsll_f4(mym_sd_sq(a) / MChi0(i) / MChi0(i))) / MChi0(i) / MChi0(i);
3793  }
3794  }
3795  DC7_neutralino *= -MW * MW / (3. * gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3796 
3797  // gluino loops
3798  gslpp::complex DC7_gluino = 0.;
3799  for (int a = 0; a < 6; a++) {
3800  DC7_gluino += (-myRd(a, 1).conjugate() * myRd(a, 2) * bsll_f3(mym_sd_sq(a) / Mg / Mg)
3801  + 2. * myRd(a, 1).conjugate() * myRd(a, 5)*(Mg / mb) * bsll_f4(mym_sd_sq(a) / Mg / Mg)) / Mg / Mg;
3802  }
3803  DC7_gluino *= 4. * MW * MW * g3 * g3 / (9. * gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3804 
3805  // std::cout << DC7_chargedHiggs << ", " << DC7_chargino << ", " << DC7_neutralino << ", " << DC7_gluino << std::endl;
3806 
3807  return DC7_chargedHiggs + DC7_chargino + DC7_neutralino + DC7_gluino;
3808 
3809 }
3812 {
3813 
3814 
3815  double pi = M_PI;
3816  double MW = mySUSY.Mw_tree();
3817  double mt = mySUSY.Mq_Q(mySUSY.TOP);
3818  double g3 = sqrt(4. * pi * Als);
3819  double sw2 = sinthetaW*sinthetaW;
3820  double tantheta = sqrt(sw2) / sqrt(1. - sw2);
3821  double mu2 = 100.; // check independence of the result from renornmalization scale mu!
3822 
3823  // charged Higgs Z penguin and bubble
3824  gslpp::complex Y_chargedHiggs = -bsll_f5(mt * mt / MHpm / MHpm) / 8. / (tanb * tanb) * mt * mt / MW / MW;
3825 
3826  // chargino Z penguin and bubble
3827  gslpp::complex Y_chargino = 0.;
3828  for (int a = 0; a < 6; a++) {
3829  for (int b = 0; b < 6; b++) {
3830  for (int i = 0; i < 2; i++) {
3831  for (int j = 0; j < 2; j++) {
3832  Y_chargino += (XUL[a][1][i]).conjugate() * XUL[b][2][j] *
3833  (bsll_C2(MChi(i), sqrt(mym_su_sq(a)), sqrt(mym_su_sq(b)), mu2) * gamULgamULdag(a, b)*(i == j)
3834  - bsll_C2(sqrt(mym_su_sq(a)), MChi(i), MChi(j), mu2)*(a == b) * myV(i, 0).conjugate() * myV(j, 0)
3835  + 0.5 * MChi(i) * MChi(j) * bsll_C0(sqrt(mym_su_sq(a)), MChi(i), MChi(j))*(a == b)
3836  * myU(i, 0) * myU(j, 0).conjugate()) / 2.;
3837  }
3838  }
3839  }
3840  }
3841  Y_chargino /= (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3842 
3843  // neutralino Z penguin and bubble
3844  gslpp::complex Y_neutralino = 0.;
3845  for (int a = 0; a < 6; a++) {
3846  for (int b = 0; b < 6; b++) {
3847  for (int i = 0; i < 4; i++) {
3848  for (int j = 0; j < 4; j++) {
3849  Y_neutralino += (ZDL[a][1][i]).conjugate() * ZDL[b][2][j] *
3850  (bsll_C2(MChi0(i), sqrt(mym_sd_sq(a)), sqrt(mym_sd_sq(b)), mu2) * gamDRgamDRdag(a, b)*(i == j)
3851  - bsll_C2(sqrt(mym_sd_sq(a)), MChi0(i), MChi0(j), mu2)*(a == b)*(myN(i, 2).conjugate() * myN(j, 2) - myN(i, 3).conjugate() * myN(j, 3))
3852  - 0.5 * MChi0(i) * MChi0(j) * bsll_C0(sqrt(mym_sd_sq(a)), MChi0(i), MChi0(j))*(a == b)
3853  *(myN(j, 2).conjugate() * myN(i, 2) - myN(j, 3).conjugate() * myN(i, 3))) / 2.;
3854  }
3855  }
3856  }
3857  }
3858  Y_neutralino /= (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3859 
3860  // gluino Z penguin and bubble
3861  gslpp::complex Y_gluino = 0.;
3862  for (int a = 0; a < 6; a++) {
3863  for (int b = 0; b < 6; b++) {
3864  Y_gluino += 4. * myRd(a, 1).conjugate() * myRd(b, 2) * bsll_C2(Mg, sqrt(mym_sd_sq(a)), sqrt(mym_sd_sq(b)), mu2) * gamDRgamDRdag(a, b) / 3.;
3865  }
3866  }
3867  Y_gluino *= g3 * g3 / (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3868 
3869  // LFV contribution: chargino box
3870  gslpp::complex Y_chargino_box = 0.;
3871  for (int a = 0; a < 6; a++) {
3872  for (int i = 0; i < 2; i++) {
3873  for (int j = 0; j < 2; j++) {
3874  Y_chargino_box += (XUL[a][1][i]).conjugate() * XUL[a][2][j] * bsll_D2reg(MChi(i), MChi(j), sqrt(mym_su_sq(a)), sqrt(mym_sn_sq(lep_pair))) * myV(i, 0).conjugate() * myV(j, 0);
3875  }
3876  }
3877  }
3878  Y_chargino_box *= MW * MW / (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3879 
3880  // LFV contribution: neutralino box
3881  gslpp::complex Z_neutralino_box = 0.;
3882  for (int a = 0; a < 6; a++) {
3883  for (int i = 0; i < 4; i++) {
3884  for (int j = 0; j < 4; j++) {
3885  Z_neutralino_box += (ZDL[a][1][i]).conjugate() * ZDL[a][2][j] / (1. - sw2)*
3886  (bsll_D2reg(MChi0(i), MChi0(j), sqrt(mym_sd_sq(a)), sqrt(mym_se_sq(3 + lep_pair))) * myN(i, 0).conjugate() * myN(j, 0)
3887  + 0.5 * MChi0(i) * MChi0(j) * bsll_D0reg(MChi0(i), MChi0(j), sqrt(mym_sd_sq(a)), sqrt(mym_se_sq(3 + lep_pair))) * myN(j, 0).conjugate() * myN(i, 0));
3888  }
3889  }
3890  }
3891  Z_neutralino_box *= MW * MW / (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3892 
3893  gslpp::complex Y_neutralino_box = 0.;
3894  for (int a = 0; a < 6; a++) {
3895  for (int i = 0; i < 4; i++) {
3896  for (int j = 0; j < 4; j++) {
3897  Y_neutralino_box += (ZDL[a][1][i]).conjugate() * ZDL[a][2][j]*
3898  (bsll_D2reg(MChi0(i), MChi0(j), sqrt(mym_sd_sq(a)), sqrt(mym_se_sq(lep_pair)))*
3899  (tantheta * myN(i, 0).conjugate() + myN(i, 1).conjugate())*(tantheta * myN(j, 0) + myN(j, 1))
3900  + 0.5 * MChi0(i) * MChi0(j) * bsll_D0reg(MChi0(i), MChi0(j), sqrt(mym_sd_sq(a)), sqrt(mym_se_sq(lep_pair)))
3901  *(tantheta * myN(j, 0).conjugate() + myN(j, 1).conjugate())*(tantheta * myN(i, 0) + myN(i, 1))) / 2.;
3902  }
3903  }
3904  }
3905  Y_neutralino_box *= MW * MW / (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3906  Y_neutralino_box += 2. * sw2*Z_neutralino_box;
3907 
3908  // std::cout << "Y_chargedHiggs = " << Y_chargedHiggs << ", " << "Y_chargino = " << Y_chargino << ", " << "Y_neutralino = " << Y_neutralino << ", " << "Y_gluino = " << Y_gluino << ", " << "Y_chargino_box = " << Y_chargino_box << ", " << "Y_neutralino_box = " << Y_neutralino_box << ", " << "Z_neutralino_box = " << Z_neutralino_box << std::endl;
3909 
3910  return Y_chargedHiggs + Y_chargino + Y_neutralino + Y_gluino + Y_chargino_box + Y_neutralino_box;
3911 }
3914 {
3915 
3916  double pi = M_PI;
3917  double MW = mySUSY.Mw_tree();
3918  double sw2 = sinthetaW*sinthetaW;
3919  double mt = mySUSY.Mq_Q(mySUSY.TOP);
3920 
3921  // double g2 = gW;
3922  double g3 = sqrt(4. * pi * Als);
3923  double mu2 = 100.; // check independence of the result from renornmalization scale mu!
3924 
3925  // charged Higgs Z penguin and bubble
3926  gslpp::complex Z_chargedHiggs = -bsll_f5(mt * mt / MHpm / MHpm) / 8. / (tanb * tanb) * mt * mt / MW / MW;
3927 
3928  // charged Higgs gamma penguin and bubble
3929  Z_chargedHiggs += -bsll_f6(mt * mt / MHpm / MHpm) / 72. / (tanb * tanb);
3930 
3931  // chargino Z penguin and bubble
3932  gslpp::complex Z_chargino = 0.;
3933  for (int a = 0; a < 6; a++) {
3934  for (int b = 0; b < 6; b++) {
3935  for (int i = 0; i < 2; i++) {
3936  for (int j = 0; j < 2; j++) {
3937  Z_chargino += (XUL[a][1][i]).conjugate() * (XUL[b][2][j]) *
3938  (bsll_C2(MChi(i), sqrt(mym_su_sq(a)), sqrt(mym_su_sq(b)), mu2)*(gamULgamULdag(a, b))*(i == j)
3939  - bsll_C2(sqrt(mym_su_sq(a)), MChi(i), MChi(j), mu2)*(a == b) * myV(i, 0).conjugate() * myV(j, 0)
3940  + 0.5 * MChi(i) * MChi(j) * bsll_C0(sqrt(mym_su_sq(a)), MChi(i), MChi(j))*(a == b)
3941  * myU(i, 0) * myU(j, 0).conjugate()) / 2.;
3942  }
3943  }
3944  }
3945  }
3946  // chargino gamma penguin and bubble
3947  for (int a = 0; a < 6; a++) {
3948  for (int i = 0; i < 2; i++) {
3949  Z_chargino += mW * mW / mym_su_sq(a) * XUL[a][1][i].conjugate() * XUL[a][2][i] * bsll_f7(MChi(i) * MChi(i) / mym_su_sq(a)) / 36.;
3950  }
3951  }
3952  Z_chargino /= (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3953 
3954  // neutralino Z penguin and bubble
3955  gslpp::complex Z_neutralino = 0.;
3956  for (int a = 0; a < 6; a++) {
3957  for (int b = 0; b < 6; b++) {
3958  for (int i = 0; i < 4; i++) {
3959  for (int j = 0; j < 4; j++) {
3960  Z_neutralino += (ZDL[a][1][i]).conjugate() * ZDL[b][2][j] *
3961  (bsll_C2(MChi0(i), sqrt(mym_sd_sq(a)), sqrt(mym_sd_sq(b)), mu2) * gamDRgamDRdag(a, b)*(i == j)
3962  - bsll_C2(sqrt(mym_sd_sq(a)), MChi0(i), MChi0(j), mu2)*(a == b)*(myN(i, 2).conjugate() * myN(j, 2) - myN(i, 3).conjugate() * myN(j, 3))
3963  - 0.5 * MChi0(i) * MChi0(j) * bsll_C0(sqrt(mym_sd_sq(a)), MChi0(i), MChi0(j))*(a == b)
3964  *(myN(j, 2).conjugate() * myN(i, 2) - myN(j, 3).conjugate() * myN(i, 3))) / 2.;
3965  }
3966  }
3967  }
3968  }
3969  // neutralino gamma penguin and bubble
3970  for (int a = 0; a < 6; a++) {
3971  for (int i = 0; i < 4; i++) {
3972  Z_neutralino -= mW * mW / mym_sd_sq(a)*(ZDL[a][1][i]).conjugate() * ZDL[a][2][i] *
3973  bsll_f8(MChi0(i) * MChi0(i) / mym_sd_sq(a)) / 216.;
3974  }
3975  }
3976  Z_neutralino /= (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3977 
3978  // gluino Z penguin and bubble
3979  gslpp::complex Z_gluino = 0.;
3980  for (int a = 0; a < 6; a++) {
3981  for (int b = 0; b < 6; b++) {
3982  Z_gluino += 4. * myRd(a, 1).conjugate() * myRd(b, 2) * bsll_C2(Mg, sqrt(mym_sd_sq(a)), sqrt(mym_sd_sq(b)), mu2) * gamDRgamDRdag(a, b) / 3.;
3983  }
3984  }
3985  // gluino gamma penguin and bubble
3986  for (int a = 0; a < 6; a++) {
3987  Z_gluino -= mW * mW / mym_sd_sq(a) * myRd(a, 1).conjugate() * myRd(a, 2) * bsll_f8(Mg * Mg / mym_sd_sq(a)) / 81.;
3988  }
3989  Z_gluino *= g3 * g3 / (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
3990 
3991  // LFV contribution: neutralino box
3992  gslpp::complex Z_neutralino_box = 0.;
3993  for (int a = 0; a < 6; a++) {
3994  for (int i = 0; i < 4; i++) {
3995  for (int j = 0; j < 4; j++) {
3996  Z_neutralino_box += (ZDL[a][1][i]).conjugate() * ZDL[a][2][j] / (1. - sw2)*
3997  (bsll_D2reg(MChi0(i), MChi0(j), sqrt(mym_sd_sq(a)), sqrt(mym_se_sq(3 + lep_pair))) * myN(i, 0).conjugate() * myN(j, 0)
3998  + 0.5 * MChi0(i) * MChi0(j) * bsll_D0reg(MChi0(i), MChi0(j), sqrt(mym_sd_sq(a)), sqrt(mym_se_sq(3 + lep_pair))) * myN(j, 0).conjugate() * myN(i, 0));
3999  }
4000  }
4001  }
4002  Z_neutralino_box *= MW * MW / (gW * gW * myCKM(2, 1).conjugate() * myCKM(2, 2));
4003 
4004 
4005  // std::cout << "Z_chargedHiggs = " << Z_chargedHiggs << ", " << "Z_chargino = " << Z_chargino << ", " << "Z_neutralino = " << Z_neutralino << ", " << "Z_gluino = " << Z_gluino << ", " << "Z_neutralino_box = " << Z_neutralino_box << std::endl;
4006 
4007  return Z_chargedHiggs + Z_chargino + Z_neutralino + Z_gluino + Z_neutralino_box;
4008 }
4011 {
4012 
4013  double sw2 = sinthetaW*sinthetaW;
4014  return bsll_Y_SUSY(lep_pair) / sw2 - 4. * bsll_Z_SUSY(lep_pair);
4015 }
4018 {
4019 
4020  double sw2 = sinthetaW*sinthetaW;
4021  return -bsll_Y_SUSY(lep_pair) / sw2;
4022 }
4023 
4024 
4025 /* b->sll ENDS HERE */
4026 
4027 /* LEPTON FLAVOUR */
4030 
4031  gslpp::matrix<gslpp::complex> MN_tmp(4, 4, 0.);
4032  gslpp::matrix<gslpp::complex> Mdiag(4, 4, 0.);
4033  for (int a=0;a<4;a++) {
4034  Mdiag.assign(a,a,MChi0(a));
4035  }
4036 // std::cout<<"Old eigenvalues "<<MChi0<<std::endl;
4037 // std::cout<<"Old mixing matrix "<<myN<<std::endl;
4038  MN_tmp = myN.transpose() * Mdiag * myN;
4039  gslpp::matrix<gslpp::complex> cmplxONT(4, 4, 0.);
4040  MN_tmp.eigensystem(cmplxONT, MNeig);
4041  for (int a=0;a<4;a++) {
4042  for (int b=0;b<4;b++) {
4043  ON.assign(a,b,cmplxONT(b,a).real());
4044  }
4045  }
4046 // std::cout<<"New eigenvalues"<<MNeig<<std::endl;
4047 // std::cout<<"New mixing matrix "<<ON<<std::endl;
4048 }
4051  //gamma penguin contributions
4052 
4054 
4055  double MW = mySUSY.Mw_tree();
4056  double pi = M_PI;
4057  double piconst = 1.0/(32.0 * pi * pi);
4058  double sw2 = mySUSY.StandardModel::sW2(MW);
4059  double stw = sqrt(sw2);
4060  double ctw = sqrt(1.0 - sw2);
4061  double ttw = stw/ctw;
4063  double mMU = mySUSY.getLeptons(StandardModel::MU).getMass();
4064  double mTAU = mySUSY.getLeptons(StandardModel::TAU).getMass();
4065  sinb = mySUSY.getSinb();
4066  double cdenc = sqrt(2.0)*MW*cosb;
4067  double cdenn = MW*cosb;
4068  double g2 = gW;
4069  double g2t = g2/sqrt(2.0);
4070 
4072 
4073  // Neutralino-Fermion-Sfermion couplings
4074  for (int a=0;a<4;a++) {
4075  for (int x=0;x<6;x++) {
4076  // LL + RL TYPE MI
4077  NRlE.assign(a, x, - (g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 0) + (mE/cdenn)*ON(a, 2)*myRl(x, 3)));
4078  NRlMU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 1) + (mMU/cdenn)*ON(a, 2)*myRl(x, 4)));
4079  NRlTAU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 2) + (mTAU/cdenn)*ON(a, 2)*myRl(x, 5)));
4080  // RL + RR TYPE MI
4081  NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2)*myRl(x, 0) + 2.0*ON(a, 0)*ttw*myRl(x, 3)));
4082  NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2)*myRl(x, 1) + 2.0*ON(a, 0)*ttw*myRl(x, 4)));
4083  NLlTAU.assign(a, x, -(g2t)*((mTAU/cdenn)*ON(a, 2)*myRl(x, 2) + 2.0*ON(a, 0)*ttw*myRl(x, 5)));
4084 // Commented expressions might be useful for complex neutralino mixing matrices
4085 // NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2).conjugate()*myRl(x, 0) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 3)));
4086 // NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2).conjugate()*myRl(x, 1) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 4)));
4087 // NLlTAU.assign(a, x, -(g2t)*((mTAU/cdenn)*ON(a, 2).conjugate()*myRl(x, 2) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 5)));
4088  }
4089  }
4090 
4091  // Chargino-Fermion-Sfermion couplings
4092  for (int a=0;a<2;a++) {
4093  for (int x=0;x<3;x++) {
4094  // LL-TYPE
4095  CRlE.assign(a, x, - (g2*myV(a, 0)*myRn(x, 0)));
4096  CRlMU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 1)));
4097  CRlTAU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 2)));
4098  // LR-TYPE
4099  CLlE.assign(a, x, g2*mE/cdenc*myU(a, 1).conjugate()*myRn(x, 0));
4100  CLlMU.assign(a, x, g2*mMU/cdenc*myU(a, 1).conjugate()*myRn(x, 1));
4101  CLlTAU.assign(a, x, g2*mTAU/cdenc*myU(a, 1).conjugate()*myRn(x, 2));
4102  }
4103  }
4104 
4105  // Definition of y and z - remember they are dimensionless quantities.
4106  for (int a=0;a<4;a++) {
4107  for (int x=0;x<6;x++) {
4108  Lepty.assign(a, x, MNeig(a) * MNeig(a) / mym_se_sq(x) );
4109  }
4110  }
4111 
4112  for (int a=0;a<2;a++) {
4113  for (int x=0;x<3;x++) {
4114  Leptz.assign(a, x, MChi(a) * MChi(a) / mym_sn_sq(x) );
4115  }
4116  }
4117 
4118  for (int a=0;a<4;a++) {
4119  for (int x=0;x<6;x++) {
4120  if (fabs(1.0 - Lepty(a, x)) > 0.01) {
4121  Leptfa1.assign(a, x, (1.0/mym_se_sq(x))*(1.0/pow((1.0 - Lepty(a, x)),4.0))*
4122  (2.0 - 9.0*Lepty(a, x) + 18.0*pow(Lepty(a, x),2.0) - 11.0*pow(Lepty(a, x),3.0)
4123  + 6.0*pow(Lepty(a, x),3.0)*log(Lepty(a, x))) );
4124  Leptf1.assign(a, x, ((1.0 - 6.0*Lepty(a, x) + 3.0 * pow(Lepty(a, x),2.0) +
4125  2.0*pow(Lepty(a, x),3.0) - 6.0*pow(Lepty(a,x),2.0)*log(Lepty(a, x))))/
4126  (6.0 * pow((1.0 - Lepty(a,x)),4.0)) );
4127  Leptf2.assign(a, x, (1.0 - pow(Lepty(a, x),2.0) + 2.0 * Lepty(a, x) * log(Lepty(a, x)))/
4128  (pow((1.0-Lepty(a, x)),3.0)));
4129  }
4130  else {
4131  Leptfa1.assign(a, x, (3.0/2.0)*(1.0/mym_se_sq(x)));
4132  Leptf1.assign(a, x, 1.0/12.0 - (Lepty(a, x) - 1.0)/30.0);
4133  Leptf2.assign(a, x, 1.0/3.0 - (Lepty(a, x) - 1.0)/6.0);
4134  }
4135  }
4136  }
4137 
4138  for (int a=0;a<2;a++) {
4139  for (int x=0;x<3;x++) {
4140  if(fabs(1.0-Leptz(a, x)) > 0.01) {
4141  Leptfa2.assign(a, x, (1.0/mym_sn_sq(x))*(1.0/pow(1.0 - Leptz(a,x),4.0))*
4142  (16.0 - 45.0*Leptz(a,x) + 36.0*pow(Leptz(a,x),2.0) - 7.0*pow(Leptz(a,x),3.0)
4143  + 6.0*(2.0 - 3.0*Leptz(a,x))*log(Leptz(a,x))) );
4144  Leptf3.assign(a, x, ((2.0 + 3.0*Leptz(a, x) - 6.0*pow(Leptz(a, x),2.0)
4145  + pow(Leptz(a, x),3.0) + 6.0*Leptz(a, x)*log(Leptz(a, x)))/
4146  (6.0*pow((1.0 - Leptz(a, x)),4.0))) );
4147  Leptf4.assign(a, x, ((-3.0 + 4.0*Leptz(a, x) - pow(Leptz(a, x),2.0)
4148  - 2.0*log(Leptz(a, x)))/
4149  pow((1.0 - Leptz(a, x)),3.0)) );
4150  }
4151  else {
4152  Leptfa2.assign(a, x, (-9.0/2.0)*(1.0/mym_sn_sq(x)) );
4153  Leptf3.assign(a, x, 1.0/12.0 - (Leptz(a, x) - 1.0)/20.0 );
4154  Leptf4.assign(a, x, 2.0/3.0 - (Leptz(a, x) - 1.0)/2.0 );
4155  }
4156  }
4157  }
4158 
4159  if (li_to_lj == 1) // mu -> (3)e
4160  {
4161  // Neutralino contributions
4162  for (int a=0;a<4;a++) {
4163  for (int x=0;x<6;x++) {
4164  AmpA1RN.assign(a, x, (piconst/18.0)*NLlE(a,x)*NLlMU(a,x).conjugate()*Leptfa1(a,x) );
4165  AmpA1LN.assign(a, x, (piconst/18.0)*NRlE(a,x)*NRlMU(a,x).conjugate()*Leptfa1(a,x) );
4166  AmpARN.assign(a, x, piconst*(NRlE(a, x) * NRlMU(a, x).conjugate() * Leptf1(a, x)
4167 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4168  + NLlE(a, x) * NLlMU(a, x).conjugate() * (mE/mMU) * Leptf1(a, x)
4169 //...until here
4170  + NRlE(a, x) * NLlMU(a, x).conjugate() * (MNeig(a)/mMU) * Leptf2(a, x)) /mym_se_sq(x) );
4171  AmpALN.assign(a, x, piconst*(NLlE(a, x) * NLlMU(a, x).conjugate() * Leptf1(a, x)
4172 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4173  + NRlE(a, x) * NRlMU(a, x).conjugate() * (mE/mMU) * Leptf1(a, x)
4174 //...until here
4175  + NLlE(a, x) * NRlMU(a, x).conjugate() * (MNeig(a)/mMU) * Leptf2(a, x)) /mym_se_sq(x) );
4176  }
4177  }
4178  gslpp::complex A1RN = 0.0;
4179  gslpp::complex A1LN = 0.0;
4180  gslpp::complex ARN = 0.0;
4181  gslpp::complex ALN = 0.0;
4182  for (int a=0;a<4;a++) {
4183  for (int x=0;x<6;x++) {
4184  A1RN = A1RN + AmpA1RN(a,x);
4185  A1LN = A1LN + AmpA1LN(a,x);
4186  ARN = ARN + AmpARN(a,x);
4187  ALN = ALN + AmpALN(a,x);
4188  }
4189  }
4190  // Chargino contributions
4191  for (int a=0;a<2;a++) {
4192  for (int x=0;x<3;x++) {
4193  AmpA1RC.assign(a, x, -(piconst/18.0)*CLlE(a,x)*CLlMU(a,x).conjugate()*Leptfa2(a,x) );
4194  AmpA1LC.assign(a, x, -(piconst/18.0)*CRlE(a,x)*CRlMU(a,x).conjugate()*Leptfa2(a,x) );
4195  AmpARC.assign(a, x, -(piconst/mym_sn_sq(x)) * (CRlE(a, x)*CRlMU(a, x).conjugate() * Leptf3(a, x)
4196 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4197  + CLlE(a, x) * CLlMU(a, x).conjugate() * (mE/mMU) * Leptf3(a, x)
4198 //...until here
4199  + CRlE(a, x) * CLlMU(a, x).conjugate() * (MChi(a)/mMU) * Leptf4(a, x)) );
4200  AmpALC.assign(a, x, -(piconst/mym_sn_sq(x)) * (CLlE(a, x) * CLlMU(a, x).conjugate() * Leptf3(a, x)
4201 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4202  + CRlE(a, x) * CRlMU(a, x).conjugate() * (mE/mMU) * Leptf3(a, x)
4203 //...until here
4204  + CLlE(a, x) * CRlMU(a, x).conjugate() * (MChi(a)/mMU) * Leptf4(a, x)) );
4205  }
4206  }
4207  gslpp::complex A1RC = 0.0;
4208  gslpp::complex A1LC = 0.0;
4209  gslpp::complex ARC = 0.0;
4210  gslpp::complex ALC = 0.0;
4211  for (int a=0;a<2;a++) {
4212  for (int x=0;x<3;x++) {
4213  A1RC = A1RC + AmpA1RC(a,x);
4214  A1LC = A1LC + AmpA1LC(a,x);
4215  ARC = ARC + AmpARC(a,x);
4216  ALC = ALC + AmpALC(a,x);
4217  }
4218  }
4219  // write AR and AL into a vector for mu->(3)e
4220  AFunctions.assign(0, A1RN + A1RC );
4221  AFunctions.assign(1, A1LN + A1LC );
4222  AFunctions.assign(2, ARN + ARC );
4223  AFunctions.assign(3, ALN + ALC );
4224 
4225  }
4226 
4227  if (li_to_lj == 2) // tau -> (3)mu
4228  {
4229  // Neutralino contributions
4230  for (int a=0;a<4;a++) {
4231  for (int x=0;x<6;x++) {
4232  AmpTauA1RN.assign(a, x, (piconst/18.0)*NLlMU(a,x)*NLlTAU(a,x).conjugate()*Leptfa1(a,x) );
4233  AmpTauA1LN.assign(a, x, (piconst/18.0)*NRlMU(a,x)*NRlTAU(a,x).conjugate()*Leptfa1(a,x) );
4234  AmpTauARN.assign(a, x, piconst * (NRlMU(a, x) * NRlTAU(a, x).conjugate() * Leptf1(a, x)
4235 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4236  + NLlMU(a, x) * NLlTAU(a, x).conjugate() * (mMU/mTAU) * Leptf1(a, x)
4237 //...until here
4238  + NRlMU(a, x) * NLlTAU(a, x).conjugate() * (MNeig(a)/mTAU) * Leptf2(a, x)) /mym_se_sq(x) );
4239  AmpTauALN.assign(a, x, piconst * (NLlMU(a, x) * NLlTAU(a, x).conjugate() * Leptf1(a, x)
4240 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4241  + NRlMU(a, x) * NRlTAU(a, x).conjugate() * (mMU/mTAU) * Leptf1(a, x)
4242 //...until here
4243  + NLlMU(a, x) * NRlTAU(a, x).conjugate() * (MNeig(a)/mTAU) * Leptf2(a, x)) /mym_se_sq(x) );
4244  }
4245  }
4246  gslpp::complex TauA1RN = 0.0;
4247  gslpp::complex TauA1LN = 0.0;
4248  gslpp::complex TauARN = 0.0;
4249  gslpp::complex TauALN = 0.0;
4250  for (int a=0;a<4;a++) {
4251  for (int x=0;x<6;x++) {
4252  TauA1RN = TauA1RN + AmpTauA1RN(a,x);
4253  TauA1LN = TauA1LN + AmpTauA1LN(a,x);
4254  TauARN = TauARN + AmpTauARN(a,x);
4255  TauALN = TauALN + AmpTauALN(a,x);
4256  }
4257  }
4258  // Chargino contributions
4259  for (int a=0;a<2;a++) {
4260  for (int x=0;x<3;x++) {
4261  AmpTauA1RC.assign(a, x, -(piconst/18.0)*CLlMU(a,x)*CLlTAU(a,x).conjugate()*Leptfa2(a,x) );
4262  AmpTauA1LC.assign(a, x, -(piconst/18.0)*CRlMU(a,x)*CRlTAU(a,x).conjugate()*Leptfa2(a,x) );
4263  AmpTauARC.assign(a, x, -piconst / mym_sn_sq(x) * (CRlMU(a, x) * CRlTAU(a, x).conjugate() * Leptf3(a, x)
4264 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4265  + CLlMU(a, x) * CLlTAU(a, x).conjugate() * (mMU/mTAU) * Leptf3(a, x)
4266 //...until here
4267  + CRlMU(a, x) * CLlTAU(a, x).conjugate() * (MChi(a)/mTAU) * Leptf4(a, x)) );
4268  AmpTauALC.assign(a, x, -piconst / mym_sn_sq(x) * (CLlMU(a, x) * CLlTAU(a, x).conjugate() * Leptf3(a, x)
4269 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4270  + CRlMU(a, x) * CRlTAU(a, x).conjugate() * (mMU/mTAU) * Leptf3(a, x)
4271 //...until here
4272  + CLlMU(a, x) * CRlTAU(a, x).conjugate() * (MChi(a)/mTAU) * Leptf4(a, x)) );
4273  }
4274  }
4275  gslpp::complex TauA1RC = 0.0;
4276  gslpp::complex TauA1LC = 0.0;
4277  gslpp::complex TauARC = 0.0;
4278  gslpp::complex TauALC = 0.0;
4279  for (int a=0;a<2;a++) {
4280  for (int x=0;x<3;x++) {
4281  TauA1RC = TauA1RC + AmpTauA1RC(a,x);
4282  TauA1LC = TauA1LC + AmpTauA1LC(a,x);
4283  TauARC = TauARC + AmpTauARC(a,x);
4284  TauALC = TauALC + AmpTauALC(a,x);
4285  }
4286  }
4287  // write AR and AL into a vector for tau->(3)mu
4288  AFunctions.assign(0, TauA1RC + TauA1RN );
4289  AFunctions.assign(1, TauA1LC + TauA1LN );
4290  AFunctions.assign(2, TauARC + TauARN );
4291  AFunctions.assign(3, TauALC + TauALN );
4292  }
4293 
4294  if (li_to_lj == 3) // tau -> (3)e
4295  {
4296  // Neutralino contributions
4297  for (int a=0;a<4;a++) {
4298  for (int x=0;x<6;x++) {
4299  AmpTEA1RN.assign(a, x, (piconst/18.0)*NLlE(a,x)*NLlTAU(a,x).conjugate()*Leptfa1(a,x) );
4300  AmpTEA1LN.assign(a, x, (piconst/18.0)*NRlE(a,x)*NRlTAU(a,x).conjugate()*Leptfa1(a,x) );
4301  AmpTEARN.assign(a, x, piconst * (NRlE(a, x) * NRlTAU(a, x).conjugate() * Leptf1(a,x)
4302 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4303  + NLlE(a, x) * NLlTAU(a, x).conjugate() * (mE/mTAU) * Leptf1(a,x)
4304 //...until here
4305  + NRlE(a, x) * NLlTAU(a, x).conjugate() * (MNeig(a)/mTAU) * Leptf2(a, x)) / mym_se_sq(x) );
4306  AmpTEALN.assign(a, x, piconst * (NLlE(a, x) * NLlTAU(a, x).conjugate() * Leptf1(a, x)
4307 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4308  + NRlE(a, x) * NRlTAU(a, x).conjugate() * (mE/mTAU) * Leptf1(a, x)
4309 //...until here
4310  + NLlE(a, x) * NRlTAU(a, x).conjugate() * (MNeig(a)/mTAU) * Leptf2(a, x)) / mym_se_sq(x) );
4311  }
4312  }
4313  gslpp::complex TEA1RN = 0.0;
4314  gslpp::complex TEA1LN = 0.0;
4315  gslpp::complex TEARN = 0.0;
4316  gslpp::complex TEALN = 0.0;
4317  for (int a=0;a<4;a++) {
4318  for (int x=0;x<6;x++) {
4319  TEA1RN = TEA1RN + AmpTEA1RN(a,x);
4320  TEA1LN = TEA1LN + AmpTEA1LN(a,x);
4321  TEARN = TEARN + AmpTEARN(a,x);
4322  TEALN = TEALN + AmpTEALN(a,x);
4323  }
4324  }
4325  // Chargino contributions
4326  for (int a=0;a<2;a++) {
4327  for (int x=0;x<3;x++) {
4328  AmpTEA1RC.assign(a, x, -(piconst/18.0)*CLlE(a,x)*CLlTAU(a,x).conjugate()*Leptfa2(a,x) );
4329  AmpTEA1LC.assign(a, x, -(piconst/18.0)*CRlE(a,x)*CRlTAU(a,x).conjugate()*Leptfa2(a,x) );
4330  AmpTEARC.assign(a, x, -piconst / mym_sn_sq(x) * (CRlE(a, x) * CRlTAU(a, x).conjugate() * Leptf3(a, x)
4331 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4332  + CLlE(a, x) * CLlTAU(a, x).conjugate() * (mE/mTAU) * Leptf3(a, x)
4333 //...until here
4334  + CRlE(a, x) * CLlTAU(a, x).conjugate() *(MChi(a)/mTAU) * Leptf4(a, x)) );
4335  AmpTEALC.assign(a, x, -piconst / mym_sn_sq(x) * (CLlE(a, x) * CLlTAU(a, x).conjugate() * Leptf3(a, x)
4336 // The following contribution is absent in PRD 53.2442 (Hisano et al.), but appears in PRD 73.055003 (Arganda & Herrero)...
4337  + CRlE(a, x) * CRlTAU(a, x).conjugate() * (mE/mTAU) * Leptf3(a, x)
4338 //...until here
4339  + CLlE(a, x) * CRlTAU(a, x).conjugate() * (MChi(a)/mTAU) * Leptf4(a, x)) );
4340  }
4341  }
4342  gslpp::complex TEA1RC = 0.0;
4343  gslpp::complex TEA1LC = 0.0;
4344  gslpp::complex TEARC = 0.0;
4345  gslpp::complex TEALC = 0.0;
4346  for (int a=0;a<2;a++) {
4347  for (int x=0;x<3;x++) {
4348  TEA1RC = TEA1RC + AmpTEA1RC(a, x);
4349  TEA1LC = TEA1LC + AmpTEA1LC(a,x);
4350  TEARC = TEARC + AmpTEARC(a,x);
4351  TEALC = TEALC + AmpTEALC(a,x);
4352  }
4353  }
4354  // write AR and AL into a vector for tau->(3)e
4355  AFunctions.assign(0, TEA1RC + TEA1RN );
4356  AFunctions.assign(1, TEA1LC + TEA1LN );
4357  AFunctions.assign(2, TEARC + TEARN );
4358  AFunctions.assign(3, TEALC + TEALN );
4359 
4360  }
4361 
4362  return(AFunctions);
4363 }
4366  //box diagram contributions
4367 
4369 
4370  double MW = mySUSY.Mw_tree();
4371  double pi = M_PI;
4372  double sw2 = mySUSY.StandardModel::sW2(MW);
4373  double stw = sqrt(sw2);
4374  double ctw = sqrt(1.0 - sw2);
4375  double ttw = stw/ctw;
4377  double mMU = mySUSY.getLeptons(StandardModel::MU).getMass();
4378  double mTAU = mySUSY.getLeptons(StandardModel::TAU).getMass();
4379 
4380  double cdenc = sqrt(2.0)*MW*cosb;
4381  double cdenn = MW*cosb;
4382  double g2 = gW;
4383  double g2t = g2/sqrt(2.0);
4384  double alph = mySUSY.getAle();
4385 
4387 
4388  // Neutralino-Fermion-Sfermion couplings
4389  for (int a=0;a<4;a++) {
4390  for (int x=0;x<6;x++) {
4391  // LL + RL TYPE MI
4392  NRlE.assign(a, x, - (g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 0) + (mE/cdenn)*ON(a, 2)*myRl(x, 3)));
4393  NRlMU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 1) + (mMU/cdenn)*ON(a, 2)*myRl(x, 4)));
4394  NRlTAU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 2) + (mTAU/cdenn)*ON(a, 2)*myRl(x, 5)));
4395  // RL + RR TYPE MI
4396  NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2)*myRl(x, 0) + 2.0*ON(a, 0)*ttw*myRl(x, 3)));
4397  NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2)*myRl(x, 1) + 2.0*ON(a, 0)*ttw*myRl(x, 4)));
4398  NLlTAU.assign(a, x, -(g2t)*((mTAU/cdenn)*ON(a, 2)*myRl(x, 2) + 2.0*ON(a, 0)*ttw*myRl(x, 5)));
4399 // Commented expressions might be useful for complex neutralino mixing matrices
4400 // NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2).conjugate()*myRl(x, 0) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 3)));
4401 // NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2).conjugate()*myRl(x, 1) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 4)));
4402 // NLlTAU.assign(a, x, -(g2t)*((mTAU/cdenn)*ON(a, 2).conjugate()*myRl(x, 2) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 5)));
4403  }
4404  }
4405 
4406  // Chargino-Fermion-Sfermion couplings
4407  for (int a=0;a<2;a++) {
4408  for (int x=0;x<3;x++) {
4409  // LL-TYPE
4410  CRlE.assign(a, x, - (g2*myV(a, 0)*myRn(x, 0)));
4411  CRlMU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 1)));
4412  CRlTAU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 2)));
4413  // LR-TYPE
4414  CLlE.assign(a, x, g2*mE/cdenc*myU(a, 1).conjugate()*myRn(x, 0));
4415  CLlMU.assign(a, x, g2*mMU/cdenc*myU(a, 1).conjugate()*myRn(x, 1));
4416  CLlTAU.assign(a, x, g2*mTAU/cdenc*myU(a, 1).conjugate()*myRn(x, 2));
4417  }
4418  }
4419 
4420  if (li_to_lj == 1) // mu -> 3e
4421  {
4422  // Neutralino contributions
4423 // J4n(a,b,x,t)=/*J4n(a,b,x,t)*/
4424 // *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4425 // I4n(a,b,x,t)=/*I4n(a,b,x,t)*/
4426 // *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi)
4427  gslpp::complex B1nRMu3E = 0.0;
4428  gslpp::complex B2nRMu3E = 0.0;
4429  gslpp::complex B3nRMu3E = 0.0;
4430  gslpp::complex B4nRMu3E = 0.0;
4431  gslpp::complex B1nLMu3E = 0.0;
4432  gslpp::complex B2nLMu3E = 0.0;
4433  gslpp::complex B3nLMu3E = 0.0;
4434  gslpp::complex B4nLMu3E = 0.0;
4435  for (int a=0;a<4;a++) {
4436  for (int b=0;b<4;b++) {
4437  for (int x=0;x<6;x++) {
4438  for (int t=0;t<6;t++) {
4439  B1nRMu3E = B1nRMu3E + (1.0/(4.0*pi*alph))*(0.5*NLlMU(a,x)*NLlE(a,t)*NLlE(b,t)*NLlE(b,x)/*J4n(a,b,x,t)*/
4440  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4441  +MNeig(a)*MNeig(b)*NLlMU(a,x)*NLlE(a,t)*NLlE(b,t)*NLlE(b,x)/*I4n(a,b,x,t)*/
4442  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4443  B2nRMu3E = B2nRMu3E + (1.0/(4.0*pi*alph))*(0.25*(NLlMU(a,x)*NLlE(a,t)*NRlE(b,t)*NRlE(b,x)
4444  +NLlMU(a,x)*NRlE(a,t)*NLlE(b,t)*NRlE(b,x)
4445  -NLlMU(a,x)*NRlE(a,t)*NRlE(b,t)*NLlE(b,x))/*J4n(a,b,x,t)*/
4446  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4447  -0.5*MNeig(a)*MNeig(b)*NLlMU(a,x)*NRlE(a,t)*NRlE(b,t)*NLlE(b,x)/*I4n(a,b,x,t)*/
4448  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4449  B3nRMu3E = B3nRMu3E + (1.0/(4.0*pi*alph))*MNeig(a)*MNeig(b)*(NLlMU(a,x)*NRlE(a,t)*NLlE(b,t)*NRlE(b,x)
4450  +0.5*NLlMU(a,x)*NLlE(a,t)*NRlE(b,t)*NRlE(b,x))/*I4n(a,b,x,t)*/
4451  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4452  B4nRMu3E = B4nRMu3E + (1.0/(32.0*pi*alph))*MNeig(a)*MNeig(b)*NLlMU(a,x)*NLlE(a,t)*NRlE(b,t)*NRlE(b,x)/*I4n(a,b,x,t)*/
4453  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4454  B1nLMu3E = B1nLMu3E + (1.0/(4.0*pi*alph))*(0.5*NRlMU(a,x)*NRlE(a,t)*NRlE(b,t)*NRlE(b,x)/*J4n(a,b,x,t)*/
4455  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4456  +MNeig(a)*MNeig(b)*NRlMU(a,x)*NRlE(a,t)*NRlE(b,t)*NRlE(b,x)/*I4n(a,b,x,t)*/
4457  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4458  B2nLMu3E = B2nLMu3E + (1.0/(4.0*pi*alph))*(0.25*(NRlMU(a,x)*NRlE(a,t)*NLlE(b,t)*NLlE(b,x)
4459  +NRlMU(a,x)*NLlE(a,t)*NRlE(b,t)*NLlE(b,x)
4460  -NRlMU(a,x)*NLlE(a,t)*NLlE(b,t)*NRlE(b,x))/*J4n(a,b,x,t)*/
4461  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4462  -0.5*MNeig(a)*MNeig(b)*NRlMU(a,x)*NLlE(a,t)*NLlE(b,t)*NRlE(b,x)/*I4n(a,b,x,t)*/
4463  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4464  B3nLMu3E = B3nLMu3E + (1.0/(4.0*pi*alph))*MNeig(a)*MNeig(b)*(NRlMU(a,x)*NLlE(a,t)*NRlE(b,t)*NLlE(b,x)
4465  +0.5*NRlMU(a,x)*NRlE(a,t)*NLlE(b,t)*NLlE(b,x))/*I4n(a,b,x,t)*/
4466  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4467  B4nLMu3E = B4nLMu3E + (1.0/(32.0*pi*alph))*MNeig(a)*MNeig(b)*NRlMU(a,x)*NRlE(a,t)*NLlE(b,t)*NLlE(b,x)/*I4n(a,b,x,t)*/
4468  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4469  }
4470  }
4471  }
4472  }
4473  // Chargino contributions
4474 // J4c(a,b,x,t)=/*J4c(a,b,x,t)*/
4475 // *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi)
4476 // I4c(a,b,x,t)=/*I4c(a,b,x,t)*/
4477 // *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi)
4478  gslpp::complex B1cRMu3E = 0.0;
4479  gslpp::complex B2cRMu3E = 0.0;
4480  gslpp::complex B3cRMu3E = 0.0;
4481  gslpp::complex B1cLMu3E = 0.0;
4482  gslpp::complex B2cLMu3E = 0.0;
4483  gslpp::complex B3cLMu3E = 0.0;
4484  for (int a=0;a<2;a++) {
4485  for (int b=0;b<2;b++) {
4486  for (int x=0;x<3;x++) {
4487  for (int t=0;t<3;t++) {
4488  B1cRMu3E = B1cRMu3E + (1.0/(8.0*pi*alph))*CLlMU(a,x)*CLlE(a,t)*CLlE(b,t)*CLlE(b,x)/*J4c(a,b,x,t)*/
4489  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi);
4490  B2cRMu3E = B2cRMu3E + (1.0/(4.0*pi*alph))*(0.25*CLlMU(a,x)*CLlE(a,t)*CRlE(b,t)*CRlE(b,x)/*J4c(a,b,x,t)*/
4491  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi)
4492  -0.5*MChi(a)*MChi(b)*CLlMU(a,x)*CRlE(a,t)*CRlE(b,t)*CLlE(b,x)/*I4c(a,b,x,t)*/
4493  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi));
4494  B3cRMu3E = B3cRMu3E + (1.0/(4.0*pi*alph))*MChi(a)*MChi(b)*CLlMU(a,x)*CRlE(a,t)*CLlE(b,t)*CRlE(b,x)/*I4c(a,b,x,t)*/
4495  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi);
4496  B1cLMu3E = B1cLMu3E + (1.0/(8.0*pi*alph))*(CRlMU(a,x)*CRlE(a,t)*CRlE(b,t)*CRlE(b,x)/*J4c(a,b,x,t)*/
4497  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi));
4498  B2cLMu3E = B2cLMu3E + (1.0/(4.0*pi*alph))*(0.25*CRlMU(a,x)*CRlE(a,t)*CLlE(b,t)*CLlE(b,x)/*J4c(a,b,x,t)*/
4499  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi)
4500  -0.5*MChi(a)*MChi(b)*CRlMU(a,x)*CLlE(a,t)*CLlE(b,t)*CRlE(b,x)/*I4c(a,b,x,t)*/
4501  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi));
4502  B3cLMu3E = B3cLMu3E + (1.0/(4.0*pi*alph))*MChi(a)*MChi(b)*CRlMU(a,x)*CLlE(a,t)*CRlE(b,t)*CLlE(b,x)/*I4c(a,b,x,t)*/
4503  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi);
4504  }
4505  }
4506  }
4507  }
4508 
4509 // write BR and BL into a vector for mu->3e
4510  BFunctions.assign(0, B1nRMu3E + B1cRMu3E );
4511  BFunctions.assign(1, B1nLMu3E + B1cLMu3E );
4512  BFunctions.assign(2, B2nRMu3E + B2cRMu3E );
4513  BFunctions.assign(3, B2nLMu3E + B2cLMu3E );
4514  BFunctions.assign(4, B3nRMu3E + B3cRMu3E );
4515  BFunctions.assign(5, B3nLMu3E + B3cLMu3E );
4516  BFunctions.assign(6, B4nRMu3E );
4517  BFunctions.assign(7, B4nLMu3E );
4518  }
4519  if (li_to_lj == 2) // tau -> 3mu
4520  {
4521  // Neutralino contributions
4522  gslpp::complex B1nRTau3Mu = 0.0;
4523  gslpp::complex B2nRTau3Mu = 0.0;
4524  gslpp::complex B3nRTau3Mu = 0.0;
4525  gslpp::complex B4nRTau3Mu = 0.0;
4526  gslpp::complex B1nLTau3Mu = 0.0;
4527  gslpp::complex B2nLTau3Mu = 0.0;
4528  gslpp::complex B3nLTau3Mu = 0.0;
4529  gslpp::complex B4nLTau3Mu = 0.0;
4530  for (int a=0;a<4;a++) {
4531  for (int b=0;b<4;b++) {
4532  for (int x=0;x<6;x++) {
4533  for (int t=0;t<6;t++) {
4534  B1nRTau3Mu = B1nRTau3Mu + (1.0/(4.0*pi*alph))*(0.5*NLlTAU(a,x)*NLlMU(a,t)*NLlMU(b,t)*NLlMU(b,x)/*J4n(a,b,x,t)*/
4535  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4536  +MNeig(a)*MNeig(b)*NLlTAU(a,x)*NLlMU(a,t)*NLlMU(b,t)*NLlMU(b,x)/*I4n(a,b,x,t)*/
4537  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4538  B2nRTau3Mu = B2nRTau3Mu + (1.0/(4.0*pi*alph))*(0.25*(NLlTAU(a,x)*NLlMU(a,t)*NRlMU(b,t)*NRlMU(b,x)
4539  +NLlTAU(a,x)*NRlMU(a,t)*NLlMU(b,t)*NRlMU(b,x)
4540  -NLlTAU(a,x)*NRlMU(a,t)*NRlMU(b,t)*NLlMU(b,x))/*J4n(a,b,x,t)*/
4541  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4542  -0.5*MNeig(a)*MNeig(b)*NLlTAU(a,x)*NRlMU(a,t)*NRlMU(b,t)*NLlMU(b,x)/*I4n(a,b,x,t)*/
4543  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4544  B3nRTau3Mu = B3nRTau3Mu + (1.0/(4.0*pi*alph))*MNeig(a)*MNeig(b)*(NLlTAU(a,x)*NRlMU(a,t)*NLlMU(b,t)*NRlMU(b,x)
4545  +0.5*NLlTAU(a,x)*NLlMU(a,t)*NRlMU(b,t)*NRlMU(b,x))/*I4n(a,b,x,t)*/
4546  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4547  B4nRTau3Mu = B4nRTau3Mu + (1.0/(32.0*pi*alph))*MNeig(a)*MNeig(b)*NLlTAU(a,x)*NLlMU(a,t)*NRlMU(b,t)*NRlMU(b,x)/*I4n(a,b,x,t)*/
4548  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4549  B1nLTau3Mu = B1nLTau3Mu + (1.0/(4.0*pi*alph))*(0.5*NRlTAU(a,x)*NRlMU(a,t)*NRlMU(b,t)*NRlMU(b,x)/*J4n(a,b,x,t)*/
4550  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4551  +MNeig(a)*MNeig(b)*NRlTAU(a,x)*NRlMU(a,t)*NRlMU(b,t)*NRlMU(b,x)/*I4n(a,b,x,t)*/
4552  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4553  B2nLTau3Mu = B2nLTau3Mu + (1.0/(4.0*pi*alph))*(0.25*(NRlTAU(a,x)*NRlMU(a,t)*NLlMU(b,t)*NLlMU(b,x)
4554  +NRlTAU(a,x)*NLlMU(a,t)*NRlMU(b,t)*NLlMU(b,x)
4555  -NRlTAU(a,x)*NLlMU(a,t)*NLlMU(b,t)*NRlMU(b,x))/*J4n(a,b,x,t)*/
4556  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4557  -0.5*MNeig(a)*MNeig(b)*NRlTAU(a,x)*NLlMU(a,t)*NLlMU(b,t)*NRlMU(b,x)/*I4n(a,b,x,t)*/
4558  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4559  B3nLTau3Mu = B3nLTau3Mu + (1.0/(4.0*pi*alph))*MNeig(a)*MNeig(b)*(NRlTAU(a,x)*NLlMU(a,t)*NRlMU(b,t)*NLlMU(b,x)
4560  +0.5*NRlTAU(a,x)*NRlMU(a,t)*NLlMU(b,t)*NLlMU(b,x))/*I4n(a,b,x,t)*/
4561  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4562  B4nLTau3Mu = B4nLTau3Mu + (1.0/(32.0*pi*alph))*MNeig(a)*MNeig(b)*NRlTAU(a,x)*NRlMU(a,t)*NLlMU(b,t)*NLlMU(b,x)/*I4n(a,b,x,t)*/
4563  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4564  }
4565  }
4566  }
4567  }
4568  // Chargino contributions
4569  gslpp::complex B1cRTau3Mu = 0.0;
4570  gslpp::complex B2cRTau3Mu = 0.0;
4571  gslpp::complex B3cRTau3Mu = 0.0;
4572  gslpp::complex B1cLTau3Mu = 0.0;
4573  gslpp::complex B2cLTau3Mu = 0.0;
4574  gslpp::complex B3cLTau3Mu = 0.0;
4575  for (int a=0;a<2;a++) {
4576  for (int b=0;b<2;b++) {
4577  for (int x=0;x<3;x++) {
4578  for (int t=0;t<3;t++) {
4579  B1cRTau3Mu = B1cRTau3Mu + (1.0/(8.0*pi*alph))*CLlTAU(a,x)*CLlMU(a,t)*CLlMU(b,t)*CLlMU(b,x)/*J4c(a,b,x,t)*/
4580  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi);
4581  B2cRTau3Mu = B2cRTau3Mu + (1.0/(4.0*pi*alph))*(0.25*CLlTAU(a,x)*CLlMU(a,t)*CRlMU(b,t)*CRlMU(b,x)/*J4c(a,b,x,t)*/
4582  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi)
4583  -0.5*MChi(a)*MChi(b)*CLlTAU(a,x)*CRlMU(a,t)*CRlMU(b,t)*CLlMU(b,x)/*I4c(a,b,x,t)*/
4584  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi));
4585  B3cRTau3Mu = B3cRTau3Mu + (1.0/(4.0*pi*alph))*MChi(a)*MChi(b)*CLlTAU(a,x)*CRlMU(a,t)*CLlMU(b,t)*CRlMU(b,x)/*I4c(a,b,x,t)*/
4586  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi);
4587  B1cLTau3Mu = B1cLTau3Mu + (1.0/(8.0*pi*alph))*CRlTAU(a,x)*CRlMU(a,t)*CRlMU(b,t)*CRlMU(b,x)/*J4c(a,b,x,t)*/
4588  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi);
4589  B2cLTau3Mu = B2cLTau3Mu + (1.0/(4.0*pi*alph))*(0.25*CRlTAU(a,x)*CRlMU(a,t)*CLlMU(b,t)*CLlMU(b,x)/*J4c(a,b,x,t)*/
4590  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi)
4591  -0.5*MChi(a)*MChi(b)*CRlTAU(a,x)*CLlMU(a,t)*CLlMU(b,t)*CRlMU(b,x)/*I4c(a,b,x,t)*/
4592  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi));
4593  B3cLTau3Mu = B3cLTau3Mu + (1.0/(4.0*pi*alph))*MChi(a)*MChi(b)*CRlTAU(a,x)*CLlMU(a,t)*CRlMU(b,t)*CLlMU(b,x)/*I4c(a,b,x,t)*/
4594  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi);
4595  }
4596  }
4597  }
4598  }
4599  // write BR and BL into a vector for tau->3mu
4600  BFunctions.assign(0, B1nRTau3Mu + B1cRTau3Mu );
4601  BFunctions.assign(1, B1nLTau3Mu + B1cLTau3Mu );
4602  BFunctions.assign(2, B2nRTau3Mu + B2cRTau3Mu );
4603  BFunctions.assign(3, B2nLTau3Mu + B2cLTau3Mu );
4604  BFunctions.assign(4, B3nRTau3Mu + B3cRTau3Mu );
4605  BFunctions.assign(5, B3nLTau3Mu + B3cLTau3Mu );
4606  BFunctions.assign(6, B4nRTau3Mu );
4607  BFunctions.assign(7, B4nLTau3Mu );
4608  }
4609  if (li_to_lj == 3) // tau -> 3e
4610  {
4611  // Neutralino contributions
4612  gslpp::complex B1nRTau3E = 0.0;
4613  gslpp::complex B2nRTau3E = 0.0;
4614  gslpp::complex B3nRTau3E = 0.0;
4615  gslpp::complex B4nRTau3E = 0.0;
4616  gslpp::complex B1nLTau3E = 0.0;
4617  gslpp::complex B2nLTau3E = 0.0;
4618  gslpp::complex B3nLTau3E = 0.0;
4619  gslpp::complex B4nLTau3E = 0.0;
4620  for (int a=0;a<4;a++) {
4621  for (int b=0;b<4;b++) {
4622  for (int x=0;x<6;x++) {
4623  for (int t=0;t<6;t++) {
4624  B1nRTau3E = B1nRTau3E + (1.0/(4.0*pi*alph))*(0.5*NLlTAU(a,x)*NLlE(a,t)*NLlE(b,t)*NLlE(b,x)/*J4n(a,b,x,t)*/
4625  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4626  +MNeig(a)*MNeig(b)*NLlTAU(a,x)*NLlE(a,t)*NLlE(b,t)*NLlE(b,x)/*I4n(a,b,x,t)*/
4627  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4628  B2nRTau3E = B2nRTau3E + (1.0/(4.0*pi*alph))*(0.25*(NLlTAU(a,x)*NLlE(a,t)*NRlE(b,t)*NRlE(b,x)
4629  +NLlTAU(a,x)*NRlE(a,t)*NLlE(b,t)*NRlE(b,x)
4630  -NLlTAU(a,x)*NRlE(a,t)*NRlE(b,t)*NLlE(b,x))/*J4n(a,b,x,t)*/
4631  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4632  -0.5*MNeig(a)*MNeig(b)*NLlTAU(a,x)*NRlE(a,t)*NRlE(b,t)*NLlE(b,x)/*I4n(a,b,x,t)*/
4633  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4634  B3nRTau3E = B3nRTau3E + (1.0/(4.0*pi*alph))*MNeig(a)*MNeig(b)*(NLlTAU(a,x)*NRlE(a,t)*NLlE(b,t)*NRlE(b,x)
4635  +0.5*NLlTAU(a,x)*NLlE(a,t)*NRlE(b,t)*NRlE(b,x))/*I4n(a,b,x,t)*/
4636  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4637  B4nRTau3E = B4nRTau3E + (1.0/(32.0*pi*alph))*MNeig(a)*MNeig(b)*NLlTAU(a,x)*NLlE(a,t)*NRlE(b,t)*NRlE(b,x)/*I4n(a,b,x,t)*/
4638  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4639  B1nLTau3E = B1nLTau3E + (1.0/(4.0*pi*alph))*(0.5*NRlTAU(a,x)*NRlE(a,t)*NRlE(b,t)*NRlE(b,x)/*J4n(a,b,x,t)*/
4640  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4641  +MNeig(a)*MNeig(b)*NRlTAU(a,x)*NRlE(a,t)*NRlE(b,t)*NRlE(b,x)/*I4n(a,b,x,t)*/
4642  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4643  B2nLTau3E = B2nLTau3E + (1.0/(4.0*pi*alph))*(0.25*(NRlTAU(a,x)*NRlE(a,t)*NLlE(b,t)*NLlE(b,x)
4644  +NRlTAU(a,x)*NLlE(a,t)*NRlE(b,t)*NLlE(b,x)
4645  -NRlTAU(a,x)*NLlE(a,t)*NLlE(b,t)*NRlE(b,x))/*J4n(a,b,x,t)*/
4646  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(4.0*pi*pi)
4647  -0.5*MNeig(a)*MNeig(b)*NRlTAU(a,x)*NLlE(a,t)*NLlE(b,t)*NRlE(b,x)/*I4n(a,b,x,t)*/
4648  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi));
4649  B3nLTau3E = B3nLTau3E + (1.0/(4.0*pi*alph))*MNeig(a)*MNeig(b)*(NRlTAU(a,x)*NLlE(a,t)*NRlE(b,t)*NLlE(b,x)
4650  +0.5*NRlTAU(a,x)*NRlE(a,t)*NLlE(b,t)*NLlE(b,x))/*I4n(a,b,x,t)*/
4651  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4652  B4nLTau3E = B4nLTau3E + (1.0/(32.0*pi*alph))*MNeig(a)*MNeig(b)*NRlTAU(a,x)*NRlE(a,t)*NLlE(b,t)*NLlE(b,x)/*I4n(a,b,x,t)*/
4653  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_se_sq(t))/(16.0*pi*pi);
4654  }
4655  }
4656  }
4657  }
4658  // Chargino contributions
4659  gslpp::complex B1cRTau3E = 0.0;
4660  gslpp::complex B2cRTau3E = 0.0;
4661  gslpp::complex B3cRTau3E = 0.0;
4662  gslpp::complex B1cLTau3E = 0.0;
4663  gslpp::complex B2cLTau3E = 0.0;
4664  gslpp::complex B3cLTau3E = 0.0;
4665  for (int a=0;a<2;a++) {
4666  for (int b=0;b<2;b++) {
4667  for (int x=0;x<3;x++) {
4668  for (int t=0;t<3;t++) {
4669  B1cRTau3E = B1cRTau3E + (1.0/(8.0*pi*alph))*CLlTAU(a,x)*CLlE(a,t)*CLlE(b,t)*CLlE(b,x)/*J4c(a,b,x,t)*/
4670  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi);
4671  B2cRTau3E = B2cRTau3E + (1.0/(4.0*pi*alph))*(0.25*CLlTAU(a,x)*CLlE(a,t)*CRlE(b,t)*CRlE(b,x)/*J4c(a,b,x,t)*/
4672  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi)
4673  -0.5*MChi(a)*MChi(b)*CLlTAU(a,x)*CRlE(a,t)*CRlE(b,t)*CLlE(b,x)/*I4c(a,b,x,t)*/
4674  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi));
4675  B3cRTau3E = B3cRTau3E + (1.0/(4.0*pi*alph))*MChi(a)*MChi(b)*CLlTAU(a,x)*CRlE(a,t)*CLlE(b,t)*CRlE(b,x)/*I4c(a,b,x,t)*/
4676  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi);
4677  B1cLTau3E = B1cLTau3E + (1.0/(8.0*pi*alph))*CRlTAU(a,x)*CRlE(a,t)*CRlE(b,t)*CRlE(b,x)/*J4c(a,b,x,t)*/
4678  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi);
4679  B2cLTau3E = B2cLTau3E + (1.0/(4.0*pi*alph))*(0.25*CRlTAU(a,x)*CRlE(a,t)*CLlE(b,t)*CLlE(b,x)/*J4c(a,b,x,t)*/
4680  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(4.0*pi*pi)
4681  -0.5*MChi(a)*MChi(b)*CRlTAU(a,x)*CLlE(a,t)*CLlE(b,t)*CRlE(b,x)/*I4c(a,b,x,t)*/
4682  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi));
4683  B3cLTau3E = B3cLTau3E + (1.0/(4.0*pi*alph))*MChi(a)*MChi(b)*CRlTAU(a,x)*CLlE(a,t)*CRlE(b,t)*CLlE(b,x)/*I4c(a,b,x,t)*/
4684  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sn_sq(t))/(16.0*pi*pi);
4685  }
4686  }
4687  }
4688  }
4689  // write BR and BL into a vector for tau->3e
4690  BFunctions.assign(0, B1nRTau3E + B1cRTau3E );
4691  BFunctions.assign(1, B1nLTau3E + B1cLTau3E );
4692  BFunctions.assign(2, B2nRTau3E + B2cRTau3E );
4693  BFunctions.assign(3, B2nLTau3E + B2cLTau3E );
4694  BFunctions.assign(4, B3nRTau3E + B3cRTau3E );
4695  BFunctions.assign(5, B3nLTau3E + B3cLTau3E );
4696  BFunctions.assign(6, B4nRTau3E );
4697  BFunctions.assign(7, B4nLTau3E );
4698  }
4699 // if (li_to_lj == 4) // tau -> muee
4700 // {
4701 // // write BR and BL into a vector for tau->muee
4702 // BFunctions.assign(0, 0. );
4703 // BFunctions.assign(1, 0. );
4704 // BFunctions.assign(2, 0. );
4705 // BFunctions.assign(3, 0. );
4706 // BFunctions.assign(4, 0. );
4707 // BFunctions.assign(5, 0. );
4708 // BFunctions.assign(6, 0. );
4709 // BFunctions.assign(7, 0. );
4710 // }
4711 // std::cout<<"BFunctions("<<li_to_lj<<") = "<<BFunctions<<std::endl;
4712 
4713  return(BFunctions);
4714 }
4716 int SUSYMatching::delta_ab(int a, int b) {
4717  if(a == b) return 1;
4718  else return 0;
4719 }
4722  //Higgs penguin contributions from PhysRevD.73.055003
4723 
4724 
4725  // To do:
4726  // Are the trilinear couplings from (A24) correct?
4727  // Should we update the missing parameters in the update function (sinalpha, A_l, ...)?
4728 
4730 
4731  double MZ = mySUSY.getMz();
4732  double MW = mySUSY.Mw_tree();
4733  double pi = M_PI;
4734  double piconst = 1.0/(32.0 * pi * pi);
4735  double sw2 = mySUSY.StandardModel::sW2(MW);
4736  double stw = sqrt(sw2);
4737  double ctw = sqrt(1.0 - sw2);
4738  double ttw = stw/ctw;
4740  double mMU = mySUSY.getLeptons(StandardModel::MU).getMass();
4741  double mTAU = mySUSY.getLeptons(StandardModel::TAU).getMass();
4742  double cos2b = 2.0*cosb*cosb-1.0;
4743  gslpp::complex sina = mySUSY.getSaeff();
4744  gslpp::complex cosa = sqrt(1.0-sina*sina);
4745  gslpp::complex sinapb = sina*cosb+cosa*sinb;
4746  gslpp::complex cosapb = cosa*cosb-sina*sinb;
4747  gslpp::complex cosbma = cosb*cosa+sinb*sina;
4748  gslpp::complex sinbma = sinb*cosa-cosb*sina;
4749  double mh = mySUSY.getMHl();
4750  double mH = mySUSY.getMHh();
4751  double mA = mySUSY.getMHa();
4752  gslpp::complex M1 = mySUSY.getM1();
4753  gslpp::complex M2 = mySUSY.getM2();
4754  gslpp::complex muH = mySUSY.getMuH();
4755  TEhat = mySUSY.getTEhat();
4756 
4757  double cdenc = sqrt(2.0)*MW*cosb;
4758  double cdenn = MW*cosb;
4759  double g2 = gW;
4760  double g2t = g2/sqrt(2.0);
4761  double alph = mySUSY.getAle();
4762 
4763  //DEBUG
4791 
4793 
4794 
4795  // Neutralino-Fermion-Sfermion couplings
4796  for (int a=0;a<4;a++) {
4797  for (int x=0;x<6;x++) {
4798  // LL + RL TYPE MI
4799  NRlE.assign(a, x, - (g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 0) + (mE/cdenn)*ON(a, 2)*myRl(x, 3)));
4800  NRlMU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 1) + (mMU/cdenn)*ON(a, 2)*myRl(x, 4)));
4801  NRlTAU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 2) + (mTAU/cdenn)*ON(a, 2)*myRl(x, 5)));
4802  // RL + RR TYPE MI
4803  NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2)*myRl(x, 0) + 2.0*ON(a, 0)*ttw*myRl(x, 3)));
4804  NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2)*myRl(x, 1) + 2.0*ON(a, 0)*ttw*myRl(x, 4)));
4805  NLlTAU.assign(a, x, -(g2t)*((mTAU/cdenn)*ON(a, 2)*myRl(x, 2) + 2.0*ON(a, 0)*ttw*myRl(x, 5)));
4806 // Commented expressions might be useful for complex neutralino mixing matrices
4807 // NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2).conjugate()*myRl(x, 0) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 3)));
4808 // NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2).conjugate()*myRl(x, 1) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 4)));
4809 // NLlTAU.assign(a, x, -(g2t)*((mTAU/cdenn)*ON(a, 2).conjugate()*myRl(x, 2) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 5)));
4810  }
4811  }
4812 
4813  // Chargino-Fermion-Sfermion couplings
4814  for (int a=0;a<2;a++) {
4815  for (int x=0;x<3;x++) {
4816  // LL-TYPE
4817  CRlE.assign(a, x, - (g2*myV(a, 0)*myRn(x, 0)));
4818  CRlMU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 1)));
4819  CRlTAU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 2)));
4820  // LR-TYPE
4821  CLlE.assign(a, x, g2*mE/cdenc*myU(a, 1).conjugate()*myRn(x, 0));
4822  CLlMU.assign(a, x, g2*mMU/cdenc*myU(a, 1).conjugate()*myRn(x, 1));
4823  CLlTAU.assign(a, x, g2*mTAU/cdenc*myU(a, 1).conjugate()*myRn(x, 2));
4824  }
4825  }
4826 
4827  gslpp::vector<gslpp::complex> sigma1(3, 0.);
4828  gslpp::vector<gslpp::complex> sigma2(3, 0.);
4829  gslpp::vector<gslpp::complex> sigma3(3, 0.);
4830  gslpp::vector<gslpp::complex> sigma4(3, 0.);
4831  gslpp::vector<gslpp::complex> sigma5(3, 0.);
4832  sigma1.assign(0, sina);
4833  sigma1.assign(1, -cosa);
4834  sigma1.assign(2, sinb*gslpp::complex::i());
4835  sigma2.assign(0, cosa);
4836  sigma2.assign(1, sina);
4837  sigma2.assign(2, -cosb*gslpp::complex::i());
4838  sigma3.assign(0, sinapb);
4839  sigma3.assign(1, -cosapb);
4840  sigma3.assign(2, 0.);
4841  sigma4.assign(0, -sina);
4842  sigma4.assign(1, cosa);
4843  sigma4.assign(2, 0.);
4844  sigma5.assign(0, -cosbma);
4845  sigma5.assign(1, sinbma);
4846  sigma5.assign(2, cos2b*gslpp::complex::i());
4847 
4848  gslpp::matrix<gslpp::complex> Qpp(4, 4, 0.), Rpp(4, 4, 0.);
4849  gslpp::matrix<gslpp::complex> DL0(4, 4, 0.), DR0(4, 4, 0.), DL1(4, 4, 0.), DR1(4, 4, 0.), DL2(4, 4, 0.), DR2(4, 4, 0.);
4850  for (int a=0;a<4;a++) {
4851  for (int b=0;b<4;b++) {
4852  Qpp.assign(a, b, 0.5*(ON(a,2)*(ON(b,1)-ttw*ON(b,0))+ON(b,2)*(ON(a,1)-ttw*ON(a,0))) );
4853  Rpp.assign(a, b, (M2.conjugate()*ON(a,1)*ON(b,1) +M1.conjugate()*ON(a,0)*ON(b,0) -muH.conjugate()*(ON(a,2)*ON(b,3)+ON(a,3)*ON(b,2)))/(2.0*MW) );
4854  DL0.assign(b, a, -g2/sinb * (Qpp(a,b).conjugate()*sigma5(0) -Rpp(a,b).conjugate()*sigma2(0) +MNeig(a)/(2.0*MW)*sigma2(0)*delta_ab(a,b)) );
4855  DR0.assign(b, a, DL0(b,a).conjugate() );
4856  DL1.assign(b, a, -g2/sinb * (Qpp(a,b).conjugate()*sigma5(1) -Rpp(a,b).conjugate()*sigma2(1) +MNeig(a)/(2.0*MW)*sigma2(1)*delta_ab(a,b)) );
4857  DR1.assign(b, a, DL1(b,a).conjugate() );
4858  DL2.assign(b, a, -g2/sinb * (Qpp(a,b).conjugate()*sigma5(2) -Rpp(a,b).conjugate()*sigma2(2) +MNeig(a)/(2.0*MW)*sigma2(2)*delta_ab(a,b)) );
4859  DR2.assign(b, a, DL2(b,a).conjugate() );
4860  }
4861  }
4862 
4863  gslpp::matrix<gslpp::complex> Qch(2, 2, 0.), Rch(2, 2, 0.);
4864  gslpp::matrix<gslpp::complex> WL0(2, 2, 0.), WR0(2, 2, 0.), WL1(2, 2, 0.), WR1(2, 2, 0.), WL2(2, 2, 0.), WR2(2, 2, 0.);
4865  for (int a=0;a<2;a++) {
4866  for (int b=0;b<2;b++) {
4867  Qch.assign(a, b, myU(a,1)*myV(b,0)/sqrt(2.0) );
4868  Rch.assign(a, b, (M2.conjugate()*myU(a,0)*myV(b,0) +muH.conjugate()*myU(a,1)*myV(b,1))/(2.0*MW) );
4869  WR0.assign(a, b, -g2/sinb * (Qch(a,b)*sigma5(0).conjugate() -Rch(a,b)*sigma2(0).conjugate() +MChi(a)/(2.0*MW)*sigma2(0).conjugate()*delta_ab(a,b)) );
4870  WL0.assign(b, a, WR0(a,b).conjugate() );
4871  WR1.assign(a, b, -g2/sinb * (Qch(a,b)*sigma5(1).conjugate() -Rch(a,b)*sigma2(1).conjugate() +MChi(a)/(2.0*MW)*sigma2(1).conjugate()*delta_ab(a,b)) );
4872  WL1.assign(b, a, WR1(a,b).conjugate() );
4873  WR2.assign(a, b, -g2/sinb * (Qch(a,b)*sigma5(2).conjugate() -Rch(a,b)*sigma2(2).conjugate() +MChi(a)/(2.0*MW)*sigma2(2).conjugate()*delta_ab(a,b)) );
4874  WL2.assign(b, a, WR2(a,b).conjugate() );
4875  }
4876  }
4877 
4878  gslpp::vector<gslpp::complex> gLLE(3, 0.), gRRE(3, 0.), gLRE(3, 0.), gRLE(3, 0.);
4879  gslpp::vector<gslpp::complex> gLLMU(3, 0.), gRRMU(3, 0.), gLRMU(3, 0.), gRLMU(3, 0.);
4880  gslpp::vector<gslpp::complex> gLLTAU(3, 0.), gRRTAU(3, 0.), gLRTAU(3, 0.), gRLTAU(3, 0.);
4881  gslpp::vector<gslpp::complex> gLLNU(3, 0.);
4882  for (int p=0;p<3;p++) {
4883  gLLE.assign(p, MZ/ctw*sigma3(p)*(0.5-sw2) + mE*mE/(MW*cosb)*sigma4(p));
4884  gLLMU.assign(p, MZ/ctw*sigma3(p)*(0.5-sw2) + mMU*mMU/(MW*cosb)*sigma4(p));
4885  gLLTAU.assign(p, MZ/ctw*sigma3(p)*(0.5-sw2) + mTAU*mTAU/(MW*cosb)*sigma4(p));
4886  gRRE.assign(p, MZ/ctw*sigma3(p)*sw2 + mE*mE/(MW*cosb)*sigma4(p));
4887  gRRMU.assign(p, MZ/ctw*sigma3(p)*sw2 + mMU*mMU/(MW*cosb)*sigma4(p));
4888  gRRTAU.assign(p, MZ/ctw*sigma3(p)*sw2 + mTAU*mTAU/(MW*cosb)*sigma4(p));
4889  gLRE.assign(p, (-sigma1(p)*TEhat(0,0)/mE*v1/sqrt(2.0)-sigma2(p).conjugate()*muH)*mE/(2.0*MW*cosb));
4890  gLRMU.assign(p, (-sigma1(p)*TEhat(1,1)/mMU*v1/sqrt(2.0)-sigma2(p).conjugate()*muH)*mMU/(2.0*MW*cosb));
4891  gLRTAU.assign(p, (-sigma1(p)*TEhat(2,2)/mTAU*v1/sqrt(2.0)-sigma2(p).conjugate()*muH)*mTAU/(2.0*MW*cosb));
4892  gRLE.assign(p, gLRE(p).conjugate());
4893  gRLMU.assign(p, gLRMU(p).conjugate());
4894  gRLTAU.assign(p, gLRTAU(p).conjugate());
4895  gLLNU.assign(p, -0.5*MZ/ctw*sigma3(p));
4896  }
4897 
4898  //Note that the dependence on the Rl and Rn elements here is different than the one in PhysRevD.73.055003
4899  //due to the different choice of flavour basis.
4900  //The replacement rules are:
4901  //AH basis (PhysRevD.73.055003) -> SLHA basis
4902  // (from 1 to 6) -> (from 0 to 5)
4903  // Rl(x,1) -> Rl(0,x)
4904  // Rl(x,2) -> Rl(3,x)
4905  // Rl(x,3) -> Rl(1,x)
4906  // Rl(x,4) -> Rl(4,x)
4907  // Rl(x,5) -> Rl(2,x)
4908  // Rl(x,6) -> Rl(5,x)
4909  //For Rn, the indices have to be swapped.
4910 
4911  gslpp::matrix<gslpp::complex> Gl0(6, 6, 0.), Gl1(6, 6, 0.), Gl2(6, 6, 0.);
4912  for (int x=0;x<6;x++) {
4913  for (int y=0;y<6;y++) {
4914  Gl0.assign(x, y, -g2*( gLLE(0)*myRl(x,0).conjugate()*myRl(y,0) +gRRE(0)*myRl(x,3).conjugate()*myRl(y,3) +gLRE(0)*myRl(x,0).conjugate()*myRl(y,3) +gRLE(0)*myRl(x,3).conjugate()*myRl(y,0)
4915  +gLLMU(0)*myRl(x,1).conjugate()*myRl(y,1) +gRRMU(0)*myRl(x,4).conjugate()*myRl(y,4) +gLRMU(0)*myRl(x,1).conjugate()*myRl(y,4) +gRLMU(0)*myRl(x,4).conjugate()*myRl(y,1)
4916  +gLLTAU(0)*myRl(x,2).conjugate()*myRl(y,2) +gRRTAU(0)*myRl(x,5).conjugate()*myRl(y,5) +gLRTAU(0)*myRl(x,2).conjugate()*myRl(y,5) +gRLTAU(0)*myRl(x,5).conjugate()*myRl(y,2)));
4917  Gl1.assign(x, y, -g2*( gLLE(1)*myRl(x,0).conjugate()*myRl(y,0) +gRRE(1)*myRl(x,3).conjugate()*myRl(y,3) +gLRE(1)*myRl(x,0).conjugate()*myRl(y,3) +gRLE(1)*myRl(x,3).conjugate()*myRl(y,0)
4918  +gLLMU(1)*myRl(x,1).conjugate()*myRl(y,1) +gRRMU(1)*myRl(x,4).conjugate()*myRl(y,4) +gLRMU(1)*myRl(x,1).conjugate()*myRl(y,4) +gRLMU(1)*myRl(x,4).conjugate()*myRl(y,1)
4919  +gLLTAU(1)*myRl(x,2).conjugate()*myRl(y,2) +gRRTAU(1)*myRl(x,5).conjugate()*myRl(y,5) +gLRTAU(1)*myRl(x,2).conjugate()*myRl(y,5) +gRLTAU(1)*myRl(x,5).conjugate()*myRl(y,2)));
4920  Gl2.assign(x, y, -g2*( gLLE(2)*myRl(x,0).conjugate()*myRl(y,0) +gRRE(2)*myRl(x,3).conjugate()*myRl(y,3) +gLRE(2)*myRl(x,0).conjugate()*myRl(y,3) +gRLE(2)*myRl(x,3).conjugate()*myRl(y,0)
4921  +gLLMU(2)*myRl(x,1).conjugate()*myRl(y,1) +gRRMU(2)*myRl(x,4).conjugate()*myRl(y,4) +gLRMU(2)*myRl(x,1).conjugate()*myRl(y,4) +gRLMU(2)*myRl(x,4).conjugate()*myRl(y,1)
4922  +gLLTAU(2)*myRl(x,2).conjugate()*myRl(y,2) +gRRTAU(2)*myRl(x,5).conjugate()*myRl(y,5) +gLRTAU(2)*myRl(x,2).conjugate()*myRl(y,5) +gRLTAU(2)*myRl(x,5).conjugate()*myRl(y,2)));
4923  }
4924  }
4925 
4926  gslpp::matrix<gslpp::complex> Gnu0(3, 3, 0.), Gnu1(3, 3, 0.), Gnu2(3, 3, 0.);
4927  for (int x=0;x<3;x++) {
4928  Gnu0.assign(x, x, -g2*gLLNU(0) );
4929  Gnu1.assign(x, x, -g2*gLLNU(1) );
4930  Gnu2.assign(x, x, -g2*gLLNU(2) );
4931  }
4932 
4933  gslpp::vector<gslpp::complex> SRE(3, 0.), SLE(3, 0.), SRMU(3, 0.), SLMU(3, 0.), SRTAU(3, 0.), SLTAU(3, 0.);
4934  for (int p=0;p<3;p++) {
4935  SRE.assign(p, g2*mE/(2.0*MW*cosb) * sigma1(p));
4936  SLE.assign(p, g2*mE/(2.0*MW*cosb) * sigma1(p).conjugate());
4937  SRMU.assign(p, g2*mMU/(2.0*MW*cosb) * sigma1(p));
4938  SLMU.assign(p, g2*mMU/(2.0*MW*cosb) * sigma1(p).conjugate());
4939  SRTAU.assign(p, g2*mTAU/(2.0*MW*cosb) * sigma1(p));
4940  SLTAU.assign(p, g2*mTAU/(2.0*MW*cosb) * sigma1(p).conjugate());
4941  }
4942 
4943  if (li_to_lj == 1) // mu -> 3e
4944  {
4945  // Neutralino contributions
4946  gslpp::complex HpengMuEEENR0 = 0.0;
4947  gslpp::complex HpengMuEEENL0 = 0.0;
4948  gslpp::complex HpengMuEEENR1 = 0.0;
4949  gslpp::complex HpengMuEEENL1 = 0.0;
4950  gslpp::complex HpengMuEEENR2 = 0.0;
4951  gslpp::complex HpengMuEEENL2 = 0.0;
4952  for (int x=0;x<6;x++) {
4953  for (int a=0;a<4;a++) {
4954  for (int b=0;b<4;b++) {
4955  // h R contribution
4956  HpengMuEEENR0 = HpengMuEEENR0 - 2.0*piconst*(NRlE(a,x)*DL0(a,b)*NLlMU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4957  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4958  +mMU*mMU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4959  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4960  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
4961  +NLlE(a,x)*DR0(a,b)*NRlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4962  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4963  +NLlE(a,x)*DR0(a,b)*NLlMU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4964  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4965  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4966  +NRlE(a,x)*DL0(a,b)*NRlMU(b,x).conjugate()*mMU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4967  +NLlE(a,x)*DL0(a,b)*NLlMU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4968  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4969  +NRlE(a,x)*DR0(a,b)*NRlMU(b,x).conjugate()*mMU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4970  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4971  +NRlE(a,x)*DR0(a,b)*NLlMU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
4972  // h L contribution
4973  HpengMuEEENL0 = HpengMuEEENL0 - 2.0*piconst*(NLlE(a,x)*DR0(a,b)*NRlMU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4974  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4975  +mMU*mMU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4976  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4977  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
4978  +NRlE(a,x)*DL0(a,b)*NLlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4979  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4980  +NRlE(a,x)*DL0(a,b)*NRlMU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4981  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4982  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4983  +NLlE(a,x)*DR0(a,b)*NLlMU(b,x).conjugate()*mMU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4984  +NRlE(a,x)*DR0(a,b)*NRlMU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4985  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4986  +NLlE(a,x)*DL0(a,b)*NLlMU(b,x).conjugate()*mMU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4987  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4988  +NLlE(a,x)*DL0(a,b)*NRlMU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
4989  // H R contribution
4990  HpengMuEEENR1 = HpengMuEEENR1 - 2.0*piconst*(NRlE(a,x)*DL1(a,b)*NLlMU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4991  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4992  +mMU*mMU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4993  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4994  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
4995  +NLlE(a,x)*DR1(a,b)*NRlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4996  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
4997  +NLlE(a,x)*DR1(a,b)*NLlMU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4998  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
4999  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5000  +NRlE(a,x)*DL1(a,b)*NRlMU(b,x).conjugate()*mMU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5001  +NLlE(a,x)*DL1(a,b)*NLlMU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5002  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5003  +NRlE(a,x)*DR1(a,b)*NRlMU(b,x).conjugate()*mMU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5004  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5005  +NRlE(a,x)*DR1(a,b)*NLlMU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5006  // H L contribution
5007  HpengMuEEENL1 = HpengMuEEENL1 - 2.0*piconst*(NLlE(a,x)*DR1(a,b)*NRlMU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5008  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5009  +mMU*mMU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5010  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5011  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5012  +NRlE(a,x)*DL1(a,b)*NLlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5013  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5014  +NRlE(a,x)*DL1(a,b)*NRlMU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5015  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5016  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5017  +NLlE(a,x)*DR1(a,b)*NLlMU(b,x).conjugate()*mMU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5018  +NRlE(a,x)*DR1(a,b)*NRlMU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5019  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5020  +NLlE(a,x)*DL1(a,b)*NLlMU(b,x).conjugate()*mMU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5021  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5022  +NLlE(a,x)*DL1(a,b)*NRlMU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5023  // A R contribution
5024  HpengMuEEENR2 = HpengMuEEENR2 - 2.0*piconst*(NRlE(a,x)*DL2(a,b)*NLlMU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5025  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5026  +mMU*mMU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5027  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5028  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5029  +NLlE(a,x)*DR2(a,b)*NRlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5030  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5031  +NLlE(a,x)*DR2(a,b)*NLlMU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5032  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5033  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5034  +NRlE(a,x)*DL2(a,b)*NRlMU(b,x).conjugate()*mMU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5035  +NLlE(a,x)*DL2(a,b)*NLlMU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5036  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5037  +NRlE(a,x)*DR2(a,b)*NRlMU(b,x).conjugate()*mMU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5038  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5039  +NRlE(a,x)*DR2(a,b)*NLlMU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5040  // A L contribution
5041  HpengMuEEENL2 = HpengMuEEENL2 - 2.0*piconst*(NLlE(a,x)*DR2(a,b)*NRlMU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5042  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5043  +mMU*mMU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5044  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5045  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5046  +NRlE(a,x)*DL2(a,b)*NLlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5047  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5048  +NRlE(a,x)*DL2(a,b)*NRlMU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5049  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5050  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5051  +NLlE(a,x)*DR2(a,b)*NLlMU(b,x).conjugate()*mMU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5052  +NRlE(a,x)*DR2(a,b)*NRlMU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5053  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5054  +NLlE(a,x)*DL2(a,b)*NLlMU(b,x).conjugate()*mMU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5055  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5056  +NLlE(a,x)*DL2(a,b)*NRlMU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5057  }
5058  for (int y=0;y<6;y++) {
5059  // h R contribution
5060  HpengMuEEENR0 = HpengMuEEENR0 - 2.0*piconst*Gl0(x,y)*(-NLlE(a,x)*NLlMU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5061  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5062  -NRlE(a,x)*NRlMU(a,y).conjugate()*mMU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5063  -NRlE(a,x)*NLlMU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5064  // h L contribution
5065  HpengMuEEENL0 = HpengMuEEENL0 - 2.0*piconst*Gl0(x,y)*(-NRlE(a,x)*NRlMU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5066  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5067  -NLlE(a,x)*NLlMU(a,y).conjugate()*mMU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5068  -NLlE(a,x)*NRlMU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5069  // H R contribution
5070  HpengMuEEENR1 = HpengMuEEENR1 - 2.0*piconst*Gl1(x,y)*(-NLlE(a,x)*NLlMU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5071  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5072  -NRlE(a,x)*NRlMU(a,y).conjugate()*mMU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5073  -NRlE(a,x)*NLlMU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5074  // H L contribution
5075  HpengMuEEENL1 = HpengMuEEENL1 - 2.0*piconst*Gl1(x,y)*(-NRlE(a,x)*NRlMU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5076  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5077  -NLlE(a,x)*NLlMU(a,y).conjugate()*mMU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5078  -NLlE(a,x)*NRlMU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5079  // A R contribution
5080  HpengMuEEENR2 = HpengMuEEENR2 - 2.0*piconst*Gl2(x,y)*(-NLlE(a,x)*NLlMU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5081  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5082  -NRlE(a,x)*NRlMU(a,y).conjugate()*mMU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5083  -NRlE(a,x)*NLlMU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5084  // A L contribution
5085  HpengMuEEENL2 = HpengMuEEENL2 - 2.0*piconst*Gl2(x,y)*(-NRlE(a,x)*NRlMU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5086  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5087  -NLlE(a,x)*NLlMU(a,y).conjugate()*mMU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5088  -NLlE(a,x)*NRlMU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5089  }
5090  // h R contribution
5091  HpengMuEEENR0 = HpengMuEEENR0 - 2.0*piconst*(SRMU(0)/(mE*mE-mMU*mMU)*(-NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5092  +NLlE(a,x)*NRlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5093  -NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5094  +NRlE(a,x)*NLlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5095  +SRE(0)/(mMU*mMU-mE*mE)*(-NLlE(a,x)*NLlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5096  +NLlE(a,x)*NRlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5097  -NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5098  +NRlE(a,x)*NLlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5099  // h L contribution
5100  HpengMuEEENL0 = HpengMuEEENL0 - 2.0*piconst*(SLMU(0)/(mE*mE-mMU*mMU)*(-NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5101  +NRlE(a,x)*NLlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5102  -NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5103  +NLlE(a,x)*NRlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5104  +SLE(0)/(mMU*mMU-mE*mE)*(-NRlE(a,x)*NRlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5105  +NRlE(a,x)*NLlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5106  -NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5107  +NLlE(a,x)*NRlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5108  // H R contribution
5109  HpengMuEEENR1 = HpengMuEEENR1 - 2.0*piconst*(SRMU(1)/(mE*mE-mMU*mMU)*(-NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5110  +NLlE(a,x)*NRlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5111  -NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5112  +NRlE(a,x)*NLlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5113  +SRE(1)/(mMU*mMU-mE*mE)*(-NLlE(a,x)*NLlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5114  +NLlE(a,x)*NRlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5115  -NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5116  +NRlE(a,x)*NLlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5117  // H L contribution
5118  HpengMuEEENL1 = HpengMuEEENL1 - 2.0*piconst*(SLMU(1)/(mE*mE-mMU*mMU)*(-NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5119  +NRlE(a,x)*NLlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5120  -NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5121  +NLlE(a,x)*NRlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5122  +SLE(1)/(mMU*mMU-mE*mE)*(-NRlE(a,x)*NRlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5123  +NRlE(a,x)*NLlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5124  -NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5125  +NLlE(a,x)*NRlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5126  // A R contribution
5127  HpengMuEEENR2 = HpengMuEEENR2 - 2.0*piconst*(SRMU(2)/(mE*mE-mMU*mMU)*(-NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5128  +NLlE(a,x)*NRlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5129  -NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5130  +NRlE(a,x)*NLlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5131  +SRE(2)/(mMU*mMU-mE*mE)*(-NLlE(a,x)*NLlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5132  +NLlE(a,x)*NRlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5133  -NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5134  +NRlE(a,x)*NLlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5135  // A L contribution
5136  HpengMuEEENL2 = HpengMuEEENL2 - 2.0*piconst*(SLMU(2)/(mE*mE-mMU*mMU)*(-NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5137  +NRlE(a,x)*NLlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5138  -NRlE(a,x)*NRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5139  +NLlE(a,x)*NRlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5140  +SLE(2)/(mMU*mMU-mE*mE)*(-NRlE(a,x)*NRlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5141  +NRlE(a,x)*NLlMU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5142  -NLlE(a,x)*NLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5143  +NLlE(a,x)*NRlMU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5144  }
5145  }
5146 
5147  // summing up the h (0), H (1) and A (2) parts
5148  gslpp::complex B2HiggsnR = (-0.5*HpengMuEEENR0*SLE(0)/(mh*mh)-0.5*HpengMuEEENR1*SLE(1)/(mH*mH)-0.5*HpengMuEEENR2*SLE(2)/(mA*mA))/(4.0*pi*alph);
5149  gslpp::complex B2HiggsnL = (-0.5*HpengMuEEENL0*SRE(0)/(mh*mh)-0.5*HpengMuEEENL1*SRE(1)/(mH*mH)-0.5*HpengMuEEENL2*SRE(2)/(mA*mA))/(4.0*pi*alph);
5150  gslpp::complex B3HiggsnR = (HpengMuEEENR0*SRE(0)/(mh*mh)+HpengMuEEENR1*SRE(1)/(mH*mH)+HpengMuEEENR2*SRE(2)/(mA*mA))/(4.0*pi*alph);
5151  gslpp::complex B3HiggsnL = (HpengMuEEENL0*SLE(0)/(mh*mh)+HpengMuEEENL1*SLE(1)/(mH*mH)+HpengMuEEENL2*SLE(2)/(mA*mA))/(4.0*pi*alph);
5152 
5153  // Chargino contributions
5154  gslpp::complex HpengMuEEECR0 = 0.0;
5155  gslpp::complex HpengMuEEECL0 = 0.0;
5156  gslpp::complex HpengMuEEECR1 = 0.0;
5157  gslpp::complex HpengMuEEECL1 = 0.0;
5158  gslpp::complex HpengMuEEECR2 = 0.0;
5159  gslpp::complex HpengMuEEECL2 = 0.0;
5160  for (int x=0;x<3;x++) {
5161  for (int a=0;a<2;a++) {
5162  for (int b=0;b<2;b++) {
5163  // h R contribution
5164  HpengMuEEECR0 = HpengMuEEECR0 - 2.0*piconst*(CRlE(a,x)*WL0(a,b)*CLlMU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5165  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5166  +mMU*mMU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5167  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5168  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5169  +CLlE(a,x)*WR0(a,b)*CRlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5170  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5171  +CLlE(a,x)*WR0(a,b)*CLlMU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5172  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5173  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5174  +CRlE(a,x)*WL0(a,b)*CRlMU(b,x).conjugate()*mMU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5175  +CLlE(a,x)*WL0(a,b)*CLlMU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5176  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5177  +CRlE(a,x)*WR0(a,b)*CRlMU(b,x).conjugate()*mMU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5178  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5179  +CRlE(a,x)*WR0(a,b)*CLlMU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5180  // h L contribution
5181  HpengMuEEECL0 = HpengMuEEECL0 - 2.0*piconst*(CLlE(a,x)*WR0(a,b)*CRlMU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5182  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5183  +mMU*mMU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5184  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5185  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5186  +CRlE(a,x)*WL0(a,b)*CLlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5187  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5188  +CRlE(a,x)*WL0(a,b)*CRlMU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5189  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5190  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5191  +CLlE(a,x)*WR0(a,b)*CLlMU(b,x).conjugate()*mMU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5192  +CRlE(a,x)*WR0(a,b)*CRlMU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5193  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5194  +CLlE(a,x)*WL0(a,b)*CLlMU(b,x).conjugate()*mMU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5195  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5196  +CLlE(a,x)*WL0(a,b)*CRlMU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5197  // H R contribution
5198  HpengMuEEECR1 = HpengMuEEECR1 - 2.0*piconst*(CRlE(a,x)*WL1(a,b)*CLlMU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5199  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5200  +mMU*mMU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5201  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5202  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5203  +CLlE(a,x)*WR1(a,b)*CRlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5204  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5205  +CLlE(a,x)*WR1(a,b)*CLlMU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5206  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5207  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5208  +CRlE(a,x)*WL1(a,b)*CRlMU(b,x).conjugate()*mMU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5209  +CLlE(a,x)*WL1(a,b)*CLlMU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5210  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5211  +CRlE(a,x)*WR1(a,b)*CRlMU(b,x).conjugate()*mMU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5212  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5213  +CRlE(a,x)*WR1(a,b)*CLlMU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5214  // H L contribution
5215  HpengMuEEECL1 = HpengMuEEECL1 - 2.0*piconst*(CLlE(a,x)*WR1(a,b)*CRlMU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5216  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5217  +mMU*mMU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5218  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5219  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5220  +CRlE(a,x)*WL1(a,b)*CLlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5221  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5222  +CRlE(a,x)*WL1(a,b)*CRlMU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5223  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5224  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5225  +CLlE(a,x)*WR1(a,b)*CLlMU(b,x).conjugate()*mMU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5226  +CRlE(a,x)*WR1(a,b)*CRlMU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5227  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5228  +CLlE(a,x)*WL1(a,b)*CLlMU(b,x).conjugate()*mMU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5229  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5230  +CLlE(a,x)*WL1(a,b)*CRlMU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5231  // A R contribution
5232  HpengMuEEECR2 = HpengMuEEECR2 - 2.0*piconst*(CRlE(a,x)*WL2(a,b)*CLlMU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5233  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5234  +mMU*mMU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5235  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5236  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5237  +CLlE(a,x)*WR2(a,b)*CRlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5238  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5239  +CLlE(a,x)*WR2(a,b)*CLlMU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5240  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5241  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5242  +CRlE(a,x)*WL2(a,b)*CRlMU(b,x).conjugate()*mMU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5243  +CLlE(a,x)*WL2(a,b)*CLlMU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5244  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5245  +CRlE(a,x)*WR2(a,b)*CRlMU(b,x).conjugate()*mMU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5246  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5247  +CRlE(a,x)*WR2(a,b)*CLlMU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5248  // A L contribution
5249  HpengMuEEECL2 = HpengMuEEECL2 - 2.0*piconst*(CLlE(a,x)*WR2(a,b)*CRlMU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5250  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5251  +mMU*mMU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5252  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5253  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5254  +CRlE(a,x)*WL2(a,b)*CLlMU(b,x).conjugate()*mMU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5255  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5256  +CRlE(a,x)*WL2(a,b)*CRlMU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5257  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5258  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5259  +CLlE(a,x)*WR2(a,b)*CLlMU(b,x).conjugate()*mMU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5260  +CRlE(a,x)*WR2(a,b)*CRlMU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5261  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5262  +CLlE(a,x)*WL2(a,b)*CLlMU(b,x).conjugate()*mMU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5263  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5264  +CLlE(a,x)*WL2(a,b)*CRlMU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5265  }
5266  for (int y=0;y<3;y++) {
5267  // h R contribution
5268  HpengMuEEECR0 = HpengMuEEECR0 - 2.0*piconst*Gnu0(x,y)*(-CLlE(a,x)*CLlMU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5269  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5270  -CRlE(a,x)*CRlMU(a,y).conjugate()*mMU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5271  -CRlE(a,x)*CLlMU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5272  // h L contribution
5273  HpengMuEEECL0 = HpengMuEEECL0 - 2.0*piconst*Gnu0(x,y)*(-CRlE(a,x)*CRlMU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5274  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5275  -CLlE(a,x)*CLlMU(a,y).conjugate()*mMU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5276  -CLlE(a,x)*CRlMU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5277  // H R contribution
5278  HpengMuEEECR1 = HpengMuEEECR1 - 2.0*piconst*Gnu1(x,y)*(-CLlE(a,x)*CLlMU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5279  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5280  -CRlE(a,x)*CRlMU(a,y).conjugate()*mMU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5281  -CRlE(a,x)*CLlMU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5282  // H L contribution
5283  HpengMuEEECL1 = HpengMuEEECL1 - 2.0*piconst*Gnu1(x,y)*(-CRlE(a,x)*CRlMU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5284  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5285  -CLlE(a,x)*CLlMU(a,y).conjugate()*mMU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5286  -CLlE(a,x)*CRlMU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5287  // A R contribution
5288  HpengMuEEECR2 = HpengMuEEECR2 - 2.0*piconst*Gnu2(x,y)*(-CLlE(a,x)*CLlMU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5289  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5290  -CRlE(a,x)*CRlMU(a,y).conjugate()*mMU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5291  -CRlE(a,x)*CLlMU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5292  // A L contribution
5293  HpengMuEEECL2 = HpengMuEEECL2 - 2.0*piconst*Gnu2(x,y)*(-CRlE(a,x)*CRlMU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5294  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5295  -CLlE(a,x)*CLlMU(a,y).conjugate()*mMU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5296  -CLlE(a,x)*CRlMU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5297  }
5298  // h R contribution
5299  HpengMuEEECR0 = HpengMuEEECR0 - 2.0*piconst*(SRMU(0)/(mE*mE-mMU*mMU)*(-CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5300  +CLlE(a,x)*CRlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5301  -CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5302  +CRlE(a,x)*CLlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5303  +SRE(0)/(mMU*mMU-mE*mE)*(-CLlE(a,x)*CLlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5304  +CLlE(a,x)*CRlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5305  -CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5306  +CRlE(a,x)*CLlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5307  // h L contribution
5308  HpengMuEEECL0 = HpengMuEEECL0 - 2.0*piconst*(SLMU(0)/(mE*mE-mMU*mMU)*(-CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5309  +CRlE(a,x)*CLlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5310  -CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5311  +CLlE(a,x)*CRlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5312  +SLE(0)/(mMU*mMU-mE*mE)*(-CRlE(a,x)*CRlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5313  +CRlE(a,x)*CLlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5314  -CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5315  +CLlE(a,x)*CRlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5316  // H R contribution
5317  HpengMuEEECR1 = HpengMuEEECR1 - 2.0*piconst*(SRMU(1)/(mE*mE-mMU*mMU)*(-CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5318  +CLlE(a,x)*CRlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5319  -CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5320  +CRlE(a,x)*CLlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5321  +SRE(1)/(mMU*mMU-mE*mE)*(-CLlE(a,x)*CLlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5322  +CLlE(a,x)*CRlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5323  -CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5324  +CRlE(a,x)*CLlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5325  // H L contribution
5326  HpengMuEEECL1 = HpengMuEEECL1 - 2.0*piconst*(SLMU(1)/(mE*mE-mMU*mMU)*(-CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5327  +CRlE(a,x)*CLlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5328  -CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5329  +CLlE(a,x)*CRlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5330  +SLE(1)/(mMU*mMU-mE*mE)*(-CRlE(a,x)*CRlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5331  +CRlE(a,x)*CLlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5332  -CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5333  +CLlE(a,x)*CRlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5334  // A R contribution
5335  HpengMuEEECR2 = HpengMuEEECR2 - 2.0*piconst*(SRMU(2)/(mE*mE-mMU*mMU)*(-CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5336  +CLlE(a,x)*CRlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5337  -CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5338  +CRlE(a,x)*CLlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5339  +SRE(2)/(mMU*mMU-mE*mE)*(-CLlE(a,x)*CLlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5340  +CLlE(a,x)*CRlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5341  -CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5342  +CRlE(a,x)*CLlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5343  // A L contribution
5344  HpengMuEEECL2 = HpengMuEEECL2 - 2.0*piconst*(SLMU(2)/(mE*mE-mMU*mMU)*(-CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5345  +CRlE(a,x)*CLlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5346  -CRlE(a,x)*CRlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5347  +CLlE(a,x)*CRlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5348  +SLE(2)/(mMU*mMU-mE*mE)*(-CRlE(a,x)*CRlMU(a,x).conjugate()*mMU*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5349  +CRlE(a,x)*CLlMU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5350  -CLlE(a,x)*CLlMU(a,x).conjugate()*mE*mMU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5351  +CLlE(a,x)*CRlMU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5352  }
5353  }
5354 
5355  // summing up the h (0), H (1) and A (2) parts
5356  gslpp::complex B2HiggscR = (-0.5*HpengMuEEECR0*SLE(0)/(mh*mh)-0.5*HpengMuEEECR1*SLE(1)/(mH*mH)-0.5*HpengMuEEECR2*SLE(2)/(mA*mA))/(4.0*pi*alph);
5357  gslpp::complex B2HiggscL = (-0.5*HpengMuEEECL0*SRE(0)/(mh*mh)-0.5*HpengMuEEECL1*SRE(1)/(mH*mH)-0.5*HpengMuEEECL2*SRE(2)/(mA*mA))/(4.0*pi*alph);
5358  gslpp::complex B3HiggscR = (HpengMuEEECR0*SRE(0)/(mh*mh)+HpengMuEEECR1*SRE(1)/(mH*mH)+HpengMuEEECR2*SRE(2)/(mA*mA))/(4.0*pi*alph);
5359  gslpp::complex B3HiggscL = (HpengMuEEECL0*SLE(0)/(mh*mh)+HpengMuEEECL1*SLE(1)/(mH*mH)+HpengMuEEECL2*SLE(2)/(mA*mA))/(4.0*pi*alph);
5360 
5361  // write B2H and B3H into a vector for mu->3e
5362  BHFunctions.assign(0, B2HiggsnR+B2HiggscR );
5363  BHFunctions.assign(1, B2HiggsnL+B2HiggscL );
5364  BHFunctions.assign(2, B3HiggsnR+B3HiggscR );
5365  BHFunctions.assign(3, B3HiggsnL+B3HiggscL );
5366  }
5367 
5368  if (li_to_lj == 2) // tau -> 3mu
5369  {
5370  // Neutralino contributions
5371  gslpp::complex HpengTauMUMUMUNR0 = 0.0;
5372  gslpp::complex HpengTauMUMUMUNL0 = 0.0;
5373  gslpp::complex HpengTauMUMUMUNR1 = 0.0;
5374  gslpp::complex HpengTauMUMUMUNL1 = 0.0;
5375  gslpp::complex HpengTauMUMUMUNR2 = 0.0;
5376  gslpp::complex HpengTauMUMUMUNL2 = 0.0;
5377  for (int x=0;x<6;x++) {
5378  for (int a=0;a<4;a++) {
5379  for (int b=0;b<4;b++) {
5380  // h R contribution
5381  HpengTauMUMUMUNR0 = HpengTauMUMUMUNR0 - 2.0*piconst*(NRlMU(a,x)*DL0(a,b)*NLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5382  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5383  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5384  +mMU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5385  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5386  +NLlMU(a,x)*DR0(a,b)*NRlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5387  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5388  +NLlMU(a,x)*DR0(a,b)*NLlTAU(b,x).conjugate()*mMU*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5389  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5390  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5391  +NRlMU(a,x)*DL0(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5392  +NLlMU(a,x)*DL0(a,b)*NLlTAU(b,x).conjugate()*mMU*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5393  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5394  +NRlMU(a,x)*DR0(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5395  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5396  +NRlMU(a,x)*DR0(a,b)*NLlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5397  // h L contribution
5398  HpengTauMUMUMUNL0 = HpengTauMUMUMUNL0 - 2.0*piconst*(NLlMU(a,x)*DR0(a,b)*NRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5399  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5400  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5401  +mMU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5402  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5403  +NRlMU(a,x)*DL0(a,b)*NLlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5404  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5405  +NRlMU(a,x)*DL0(a,b)*NRlTAU(b,x).conjugate()*mMU*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5406  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5407  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5408  +NLlMU(a,x)*DR0(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5409  +NRlMU(a,x)*DR0(a,b)*NRlTAU(b,x).conjugate()*mMU*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5410  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5411  +NLlMU(a,x)*DL0(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5412  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5413  +NLlMU(a,x)*DL0(a,b)*NRlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5414  // H R contribution
5415  HpengTauMUMUMUNR1 = HpengTauMUMUMUNR1 - 2.0*piconst*(NRlMU(a,x)*DL1(a,b)*NLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5416  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5417  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5418  +mMU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5419  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5420  +NLlMU(a,x)*DR1(a,b)*NRlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5421  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5422  +NLlMU(a,x)*DR1(a,b)*NLlTAU(b,x).conjugate()*mMU*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5423  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5424  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5425  +NRlMU(a,x)*DL1(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5426  +NLlMU(a,x)*DL1(a,b)*NLlTAU(b,x).conjugate()*mMU*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5427  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5428  +NRlMU(a,x)*DR1(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5429  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5430  +NRlMU(a,x)*DR1(a,b)*NLlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5431  // H L contribution
5432  HpengTauMUMUMUNL1 = HpengTauMUMUMUNL1 - 2.0*piconst*(NLlMU(a,x)*DR1(a,b)*NRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5433  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5434  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5435  +mMU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5436  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5437  +NRlMU(a,x)*DL1(a,b)*NLlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5438  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5439  +NRlMU(a,x)*DL1(a,b)*NRlTAU(b,x).conjugate()*mMU*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5440  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5441  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5442  +NLlMU(a,x)*DR1(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5443  +NRlMU(a,x)*DR1(a,b)*NRlTAU(b,x).conjugate()*mMU*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5444  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5445  +NLlMU(a,x)*DL1(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5446  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5447  +NLlMU(a,x)*DL1(a,b)*NRlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5448  // A R contribution
5449  HpengTauMUMUMUNR2 = HpengTauMUMUMUNR2 - 2.0*piconst*(NRlMU(a,x)*DL2(a,b)*NLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5450  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5451  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5452  +mMU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5453  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5454  +NLlMU(a,x)*DR2(a,b)*NRlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5455  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5456  +NLlMU(a,x)*DR2(a,b)*NLlTAU(b,x).conjugate()*mMU*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5457  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5458  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5459  +NRlMU(a,x)*DL2(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5460  +NLlMU(a,x)*DL2(a,b)*NLlTAU(b,x).conjugate()*mMU*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5461  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5462  +NRlMU(a,x)*DR2(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5463  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5464  +NRlMU(a,x)*DR2(a,b)*NLlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5465  // A L contribution
5466  HpengTauMUMUMUNL2 = HpengTauMUMUMUNL2 - 2.0*piconst*(NLlMU(a,x)*DR2(a,b)*NRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5467  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5468  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5469  +mMU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5470  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5471  +NRlMU(a,x)*DL2(a,b)*NLlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5472  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5473  +NRlMU(a,x)*DL2(a,b)*NRlTAU(b,x).conjugate()*mMU*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5474  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5475  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5476  +NLlMU(a,x)*DR2(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5477  +NRlMU(a,x)*DR2(a,b)*NRlTAU(b,x).conjugate()*mMU*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5478  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5479  +NLlMU(a,x)*DL2(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5480  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5481  +NLlMU(a,x)*DL2(a,b)*NRlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5482  }
5483  for (int y=0;y<6;y++) {
5484  // h R contribution
5485  HpengTauMUMUMUNR0 = HpengTauMUMUMUNR0 - 2.0*piconst*Gl0(x,y)*(-NLlMU(a,x)*NLlTAU(a,y).conjugate()*mMU*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5486  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5487  -NRlMU(a,x)*NRlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5488  -NRlMU(a,x)*NLlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5489  // h L contribution
5490  HpengTauMUMUMUNL0 = HpengTauMUMUMUNL0 - 2.0*piconst*Gl0(x,y)*(-NRlMU(a,x)*NRlTAU(a,y).conjugate()*mMU*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5491  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5492  -NLlMU(a,x)*NLlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5493  -NLlMU(a,x)*NRlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5494  // H R contribution
5495  HpengTauMUMUMUNR1 = HpengTauMUMUMUNR1 - 2.0*piconst*Gl1(x,y)*(-NLlMU(a,x)*NLlTAU(a,y).conjugate()*mMU*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5496  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5497  -NRlMU(a,x)*NRlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5498  -NRlMU(a,x)*NLlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5499  // H L contribution
5500  HpengTauMUMUMUNL1 = HpengTauMUMUMUNL1 - 2.0*piconst*Gl1(x,y)*(-NRlMU(a,x)*NRlTAU(a,y).conjugate()*mMU*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5501  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5502  -NLlMU(a,x)*NLlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5503  -NLlMU(a,x)*NRlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5504  // A R contribution
5505  HpengTauMUMUMUNR2 = HpengTauMUMUMUNR2 - 2.0*piconst*Gl2(x,y)*(-NLlMU(a,x)*NLlTAU(a,y).conjugate()*mMU*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5506  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5507  -NRlMU(a,x)*NRlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5508  -NRlMU(a,x)*NLlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5509  // A L contribution
5510  HpengTauMUMUMUNL2 = HpengTauMUMUMUNL2 - 2.0*piconst*Gl2(x,y)*(-NRlMU(a,x)*NRlTAU(a,y).conjugate()*mMU*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5511  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5512  -NLlMU(a,x)*NLlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5513  -NLlMU(a,x)*NRlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5514  }
5515  // h R contribution
5516  HpengTauMUMUMUNR0 = HpengTauMUMUMUNR0 - 2.0*piconst*(SRTAU(0)/(mMU*mMU-mTAU*mTAU)*(-NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5517  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5518  -NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5519  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5520  +SRMU(0)/(mTAU*mTAU-mMU*mMU)*(-NLlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5521  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5522  -NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5523  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5524  // h L contribution
5525  HpengTauMUMUMUNL0 = HpengTauMUMUMUNL0 - 2.0*piconst*(SLTAU(0)/(mMU*mMU-mTAU*mTAU)*(-NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5526  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5527  -NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5528  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5529  +SLMU(0)/(mTAU*mTAU-mMU*mMU)*(-NRlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5530  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5531  -NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5532  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5533  // H R contribution
5534  HpengTauMUMUMUNR1 = HpengTauMUMUMUNR1 - 2.0*piconst*(SRTAU(1)/(mMU*mMU-mTAU*mTAU)*(-NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5535  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5536  -NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5537  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5538  +SRMU(1)/(mTAU*mTAU-mMU*mMU)*(-NLlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5539  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5540  -NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5541  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5542  // H L contribution
5543  HpengTauMUMUMUNL1 = HpengTauMUMUMUNL1 - 2.0*piconst*(SLTAU(1)/(mMU*mMU-mTAU*mTAU)*(-NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5544  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5545  -NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5546  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5547  +SLMU(1)/(mTAU*mTAU-mMU*mMU)*(-NRlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5548  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5549  -NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5550  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5551  // A R contribution
5552  HpengTauMUMUMUNR2 = HpengTauMUMUMUNR2 - 2.0*piconst*(SRTAU(2)/(mMU*mMU-mTAU*mTAU)*(-NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5553  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5554  -NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5555  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5556  +SRMU(2)/(mTAU*mTAU-mMU*mMU)*(-NLlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5557  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5558  -NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5559  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5560  // A L contribution
5561  HpengTauMUMUMUNL2 = HpengTauMUMUMUNL2 - 2.0*piconst*(SLTAU(2)/(mMU*mMU-mTAU*mTAU)*(-NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5562  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5563  -NRlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5564  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5565  +SLMU(2)/(mTAU*mTAU-mMU*mMU)*(-NRlMU(a,x)*NRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5566  +NRlMU(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5567  -NLlMU(a,x)*NLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5568  +NLlMU(a,x)*NRlTAU(a,x).conjugate()*mMU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5569  }
5570  }
5571 
5572  // summing up the h (0), H (1) and A (2) parts
5573  gslpp::complex B2HiggsnRtm = (-0.5*HpengTauMUMUMUNR0*SLMU(0)/(mh*mh)-0.5*HpengTauMUMUMUNR1*SLMU(1)/(mH*mH)-0.5*HpengTauMUMUMUNR2*SLMU(2)/(mA*mA))/(4.0*pi*alph);
5574  gslpp::complex B2HiggsnLtm = (-0.5*HpengTauMUMUMUNL0*SRMU(0)/(mh*mh)-0.5*HpengTauMUMUMUNL1*SRMU(1)/(mH*mH)-0.5*HpengTauMUMUMUNL2*SRMU(2)/(mA*mA))/(4.0*pi*alph);
5575  gslpp::complex B3HiggsnRtm = (HpengTauMUMUMUNR0*SRMU(0)/(mh*mh)+HpengTauMUMUMUNR1*SRMU(1)/(mH*mH)+HpengTauMUMUMUNR2*SRMU(2)/(mA*mA))/(4.0*pi*alph);
5576  gslpp::complex B3HiggsnLtm = (HpengTauMUMUMUNL0*SLMU(0)/(mh*mh)+HpengTauMUMUMUNL1*SLMU(1)/(mH*mH)+HpengTauMUMUMUNL2*SLMU(2)/(mA*mA))/(4.0*pi*alph);
5577 
5578  // Chargino contributions
5579  gslpp::complex HpengTauMUMUMUCR0 = 0.0;
5580  gslpp::complex HpengTauMUMUMUCL0 = 0.0;
5581  gslpp::complex HpengTauMUMUMUCR1 = 0.0;
5582  gslpp::complex HpengTauMUMUMUCL1 = 0.0;
5583  gslpp::complex HpengTauMUMUMUCR2 = 0.0;
5584  gslpp::complex HpengTauMUMUMUCL2 = 0.0;
5585  for (int x=0;x<3;x++) {
5586  for (int a=0;a<2;a++) {
5587  for (int b=0;b<2;b++) {
5588  // h R contribution
5589  HpengTauMUMUMUCR0 = HpengTauMUMUMUCR0 - 2.0*piconst*(CRlMU(a,x)*WL0(a,b)*CLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5590  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5591  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5592  +mMU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5593  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5594  +CLlMU(a,x)*WR0(a,b)*CRlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5595  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5596  +CLlMU(a,x)*WR0(a,b)*CLlTAU(b,x).conjugate()*mMU*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5597  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5598  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5599  +CRlMU(a,x)*WL0(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5600  +CLlMU(a,x)*WL0(a,b)*CLlTAU(b,x).conjugate()*mMU*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5601  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5602  +CRlMU(a,x)*WR0(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5603  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5604  +CRlMU(a,x)*WR0(a,b)*CLlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5605  // h L contribution
5606  HpengTauMUMUMUCL0 = HpengTauMUMUMUCL0 - 2.0*piconst*(CLlMU(a,x)*WR0(a,b)*CRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5607  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5608  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5609  +mMU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5610  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5611  +CRlMU(a,x)*WL0(a,b)*CLlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5612  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5613  +CRlMU(a,x)*WL0(a,b)*CRlTAU(b,x).conjugate()*mMU*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5614  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5615  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5616  +CLlMU(a,x)*WR0(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5617  +CRlMU(a,x)*WR0(a,b)*CRlTAU(b,x).conjugate()*mMU*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5618  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5619  +CLlMU(a,x)*WL0(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5620  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5621  +CLlMU(a,x)*WL0(a,b)*CRlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5622  // H R contribution
5623  HpengTauMUMUMUCR1 = HpengTauMUMUMUCR1 - 2.0*piconst*(CRlMU(a,x)*WL1(a,b)*CLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5624  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5625  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5626  +mMU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5627  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5628  +CLlMU(a,x)*WR1(a,b)*CRlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5629  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5630  +CLlMU(a,x)*WR1(a,b)*CLlTAU(b,x).conjugate()*mMU*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5631  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5632  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5633  +CRlMU(a,x)*WL1(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5634  +CLlMU(a,x)*WL1(a,b)*CLlTAU(b,x).conjugate()*mMU*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5635  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5636  +CRlMU(a,x)*WR1(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5637  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5638  +CRlMU(a,x)*WR1(a,b)*CLlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5639  // H L contribution
5640  HpengTauMUMUMUCL1 = HpengTauMUMUMUCL1 - 2.0*piconst*(CLlMU(a,x)*WR1(a,b)*CRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5641  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5642  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5643  +mMU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5644  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5645  +CRlMU(a,x)*WL1(a,b)*CLlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5646  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5647  +CRlMU(a,x)*WL1(a,b)*CRlTAU(b,x).conjugate()*mMU*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5648  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5649  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5650  +CLlMU(a,x)*WR1(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5651  +CRlMU(a,x)*WR1(a,b)*CRlTAU(b,x).conjugate()*mMU*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5652  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5653  +CLlMU(a,x)*WL1(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5654  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5655  +CLlMU(a,x)*WL1(a,b)*CRlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5656  // A R contribution
5657  HpengTauMUMUMUCR2 = HpengTauMUMUMUCR2 - 2.0*piconst*(CRlMU(a,x)*WL2(a,b)*CLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5658  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5659  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5660  +mMU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5661  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5662  +CLlMU(a,x)*WR2(a,b)*CRlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5663  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5664  +CLlMU(a,x)*WR2(a,b)*CLlTAU(b,x).conjugate()*mMU*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5665  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5666  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5667  +CRlMU(a,x)*WL2(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5668  +CLlMU(a,x)*WL2(a,b)*CLlTAU(b,x).conjugate()*mMU*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5669  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5670  +CRlMU(a,x)*WR2(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5671  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5672  +CRlMU(a,x)*WR2(a,b)*CLlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5673  // A L contribution
5674  HpengTauMUMUMUCL2 = HpengTauMUMUMUCL2 - 2.0*piconst*(CLlMU(a,x)*WR2(a,b)*CRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
5675  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5676  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5677  +mMU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5678  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
5679  +CRlMU(a,x)*WL2(a,b)*CLlTAU(b,x).conjugate()*mTAU*mMU*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5680  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5681  +CRlMU(a,x)*WL2(a,b)*CRlTAU(b,x).conjugate()*mMU*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5682  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5683  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5684  +CLlMU(a,x)*WR2(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5685  +CRlMU(a,x)*WR2(a,b)*CRlTAU(b,x).conjugate()*mMU*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5686  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5687  +CLlMU(a,x)*WL2(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
5688  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
5689  +CLlMU(a,x)*WL2(a,b)*CRlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
5690  }
5691  for (int y=0;y<3;y++) {
5692  // h R contribution
5693  HpengTauMUMUMUCR0 = HpengTauMUMUMUCR0 - 2.0*piconst*Gnu0(x,y)*(-CLlMU(a,x)*CLlTAU(a,y).conjugate()*mMU*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5694  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5695  -CRlMU(a,x)*CRlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5696  -CRlMU(a,x)*CLlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5697  // h L contribution
5698  HpengTauMUMUMUCL0 = HpengTauMUMUMUCL0 - 2.0*piconst*Gnu0(x,y)*(-CRlMU(a,x)*CRlTAU(a,y).conjugate()*mMU*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5699  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5700  -CLlMU(a,x)*CLlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5701  -CLlMU(a,x)*CRlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5702  // H R contribution
5703  HpengTauMUMUMUCR1 = HpengTauMUMUMUCR1 - 2.0*piconst*Gnu1(x,y)*(-CLlMU(a,x)*CLlTAU(a,y).conjugate()*mMU*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5704  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5705  -CRlMU(a,x)*CRlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5706  -CRlMU(a,x)*CLlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5707  // H L contribution
5708  HpengTauMUMUMUCL1 = HpengTauMUMUMUCL1 - 2.0*piconst*Gnu1(x,y)*(-CRlMU(a,x)*CRlTAU(a,y).conjugate()*mMU*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5709  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5710  -CLlMU(a,x)*CLlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5711  -CLlMU(a,x)*CRlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5712  // A R contribution
5713  HpengTauMUMUMUCR2 = HpengTauMUMUMUCR2 - 2.0*piconst*Gnu2(x,y)*(-CLlMU(a,x)*CLlTAU(a,y).conjugate()*mMU*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5714  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5715  -CRlMU(a,x)*CRlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5716  -CRlMU(a,x)*CLlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5717  // A L contribution
5718  HpengTauMUMUMUCL2 = HpengTauMUMUMUCL2 - 2.0*piconst*Gnu2(x,y)*(-CRlMU(a,x)*CRlTAU(a,y).conjugate()*mMU*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5719  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
5720  -CLlMU(a,x)*CLlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
5721  -CLlMU(a,x)*CRlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
5722  }
5723  // h R contribution
5724  HpengTauMUMUMUCR0 = HpengTauMUMUMUCR0 - 2.0*piconst*(SRTAU(0)/(mMU*mMU-mTAU*mTAU)*(-CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5725  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5726  -CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5727  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5728  +SRMU(0)/(mTAU*mTAU-mMU*mMU)*(-CLlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5729  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5730  -CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5731  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5732  // h L contribution
5733  HpengTauMUMUMUCL0 = HpengTauMUMUMUCL0 - 2.0*piconst*(SLTAU(0)/(mMU*mMU-mTAU*mTAU)*(-CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5734  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5735  -CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5736  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5737  +SLMU(0)/(mTAU*mTAU-mMU*mMU)*(-CRlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5738  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5739  -CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5740  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5741  // H R contribution
5742  HpengTauMUMUMUCR1 = HpengTauMUMUMUCR1 - 2.0*piconst*(SRTAU(1)/(mMU*mMU-mTAU*mTAU)*(-CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5743  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5744  -CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5745  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5746  +SRMU(1)/(mTAU*mTAU-mMU*mMU)*(-CLlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5747  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5748  -CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5749  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5750  // H L contribution
5751  HpengTauMUMUMUCL1 = HpengTauMUMUMUCL1 - 2.0*piconst*(SLTAU(1)/(mMU*mMU-mTAU*mTAU)*(-CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5752  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5753  -CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5754  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5755  +SLMU(1)/(mTAU*mTAU-mMU*mMU)*(-CRlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5756  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5757  -CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5758  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5759  // A R contribution
5760  HpengTauMUMUMUCR2 = HpengTauMUMUMUCR2 - 2.0*piconst*(SRTAU(2)/(mMU*mMU-mTAU*mTAU)*(-CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5761  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5762  -CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5763  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5764  +SRMU(2)/(mTAU*mTAU-mMU*mMU)*(-CLlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5765  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5766  -CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5767  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5768  // A L contribution
5769  HpengTauMUMUMUCL2 = HpengTauMUMUMUCL2 - 2.0*piconst*(SLTAU(2)/(mMU*mMU-mTAU*mTAU)*(-CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mMU*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5770  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5771  -CRlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5772  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
5773  +SLMU(2)/(mTAU*mTAU-mMU*mMU)*(-CRlMU(a,x)*CRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5774  +CRlMU(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5775  -CLlMU(a,x)*CLlTAU(a,x).conjugate()*mMU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
5776  +CLlMU(a,x)*CRlTAU(a,x).conjugate()*mMU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
5777  }
5778  }
5779 
5780  // summing up the h (0), H (1) and A (2) parts
5781  gslpp::complex B2HiggscRtm = (-0.5*HpengTauMUMUMUCR0*SLMU(0)/(mh*mh)-0.5*HpengTauMUMUMUCR1*SLMU(1)/(mH*mH)-0.5*HpengTauMUMUMUCR2*SLMU(2)/(mA*mA))/(4.0*pi*alph);
5782  gslpp::complex B2HiggscLtm = (-0.5*HpengTauMUMUMUCL0*SRMU(0)/(mh*mh)-0.5*HpengTauMUMUMUCL1*SRMU(1)/(mH*mH)-0.5*HpengTauMUMUMUCL2*SRMU(2)/(mA*mA))/(4.0*pi*alph);
5783  gslpp::complex B3HiggscRtm = (HpengTauMUMUMUCR0*SRMU(0)/(mh*mh)+HpengTauMUMUMUCR1*SRMU(1)/(mH*mH)+HpengTauMUMUMUCR2*SRMU(2)/(mA*mA))/(4.0*pi*alph);
5784  gslpp::complex B3HiggscLtm = (HpengTauMUMUMUCL0*SLMU(0)/(mh*mh)+HpengTauMUMUMUCL1*SLMU(1)/(mH*mH)+HpengTauMUMUMUCL2*SLMU(2)/(mA*mA))/(4.0*pi*alph);
5785 
5786  // write B2H and B3H into a vector for tau->3mu
5787  BHFunctions.assign(0, B2HiggsnRtm+B2HiggscRtm );
5788  BHFunctions.assign(1, B2HiggsnLtm+B2HiggscLtm );
5789  BHFunctions.assign(2, B3HiggsnRtm+B3HiggscRtm );
5790  BHFunctions.assign(3, B3HiggsnLtm+B3HiggscLtm );
5791  }
5792 
5793  if (li_to_lj == 3) // tau -> 3e
5794  {
5795  // Neutralino contributions
5796  gslpp::complex HpengTauEEENR0 = 0.0;
5797  gslpp::complex HpengTauEEENL0 = 0.0;
5798  gslpp::complex HpengTauEEENR1 = 0.0;
5799  gslpp::complex HpengTauEEENL1 = 0.0;
5800  gslpp::complex HpengTauEEENR2 = 0.0;
5801  gslpp::complex HpengTauEEENL2 = 0.0;
5802  for (int x=0;x<6;x++) {
5803  for (int a=0;a<4;a++) {
5804  for (int b=0;b<4;b++) {
5805  // h R contribution
5806  HpengTauEEENR0 = HpengTauEEENR0 - 2.0*piconst*(NRlE(a,x)*DL0(a,b)*NLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5807  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5808  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5809  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5810  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5811  +NLlE(a,x)*DR0(a,b)*NRlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5812  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5813  +NLlE(a,x)*DR0(a,b)*NLlTAU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5814  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5815  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5816  +NRlE(a,x)*DL0(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5817  +NLlE(a,x)*DL0(a,b)*NLlTAU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5818  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5819  +NRlE(a,x)*DR0(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5820  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5821  +NRlE(a,x)*DR0(a,b)*NLlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5822  // h L contribution
5823  HpengTauEEENL0 = HpengTauEEENL0 - 2.0*piconst*(NLlE(a,x)*DR0(a,b)*NRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5824  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5825  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5826  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5827  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5828  +NRlE(a,x)*DL0(a,b)*NLlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5829  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5830  +NRlE(a,x)*DL0(a,b)*NRlTAU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5831  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5832  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5833  +NLlE(a,x)*DR0(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5834  +NRlE(a,x)*DR0(a,b)*NRlTAU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5835  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5836  +NLlE(a,x)*DL0(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5837  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5838  +NLlE(a,x)*DL0(a,b)*NRlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5839  // H R contribution
5840  HpengTauEEENR1 = HpengTauEEENR1 - 2.0*piconst*(NRlE(a,x)*DL1(a,b)*NLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5841  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5842  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5843  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5844  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5845  +NLlE(a,x)*DR1(a,b)*NRlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5846  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5847  +NLlE(a,x)*DR1(a,b)*NLlTAU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5848  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5849  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5850  +NRlE(a,x)*DL1(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5851  +NLlE(a,x)*DL1(a,b)*NLlTAU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5852  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5853  +NRlE(a,x)*DR1(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5854  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5855  +NRlE(a,x)*DR1(a,b)*NLlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5856  // H L contribution
5857  HpengTauEEENL1 = HpengTauEEENL1 - 2.0*piconst*(NLlE(a,x)*DR1(a,b)*NRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5858  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5859  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5860  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5861  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5862  +NRlE(a,x)*DL1(a,b)*NLlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5863  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5864  +NRlE(a,x)*DL1(a,b)*NRlTAU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5865  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5866  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5867  +NLlE(a,x)*DR1(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5868  +NRlE(a,x)*DR1(a,b)*NRlTAU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5869  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5870  +NLlE(a,x)*DL1(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5871  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5872  +NLlE(a,x)*DL1(a,b)*NRlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5873  // A R contribution
5874  HpengTauEEENR2 = HpengTauEEENR2 - 2.0*piconst*(NRlE(a,x)*DL2(a,b)*NLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5875  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5876  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5877  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5878  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5879  +NLlE(a,x)*DR2(a,b)*NRlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5880  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5881  +NLlE(a,x)*DR2(a,b)*NLlTAU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5882  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5883  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5884  +NRlE(a,x)*DL2(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5885  +NLlE(a,x)*DL2(a,b)*NLlTAU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5886  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5887  +NRlE(a,x)*DR2(a,b)*NRlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5888  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5889  +NRlE(a,x)*DR2(a,b)*NLlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5890  // A L contribution
5891  HpengTauEEENL2 = HpengTauEEENL2 - 2.0*piconst*(NLlE(a,x)*DR2(a,b)*NRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5892  -mym_se_sq(x)*PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5893  +mTAU*mTAU*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5894  +mE*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5895  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))))
5896  +NRlE(a,x)*DL2(a,b)*NLlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5897  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5898  +NRlE(a,x)*DL2(a,b)*NRlTAU(b,x).conjugate()*mE*MNeig(b)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5899  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5900  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5901  +NLlE(a,x)*DR2(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(b)*PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5902  +NRlE(a,x)*DR2(a,b)*NRlTAU(b,x).conjugate()*mE*MNeig(a)*(PV.C11(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5903  -PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5904  +NLlE(a,x)*DL2(a,b)*NLlTAU(b,x).conjugate()*mTAU*MNeig(a)*(PV.C12(mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))
5905  -PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b)))
5906  +NLlE(a,x)*DL2(a,b)*NRlTAU(b,x).conjugate()*MNeig(a)*MNeig(b)*(-PV.C0(0.,mym_se_sq(x),MNeig(a)*MNeig(a),MNeig(b)*MNeig(b))));
5907  }
5908  for (int y=0;y<6;y++) {
5909  // h R contribution
5910  HpengTauEEENR0 = HpengTauEEENR0 - 2.0*piconst*Gl0(x,y)*(-NLlE(a,x)*NLlTAU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5911  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5912  -NRlE(a,x)*NRlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5913  -NRlE(a,x)*NLlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5914  // h L contribution
5915  HpengTauEEENL0 = HpengTauEEENL0 - 2.0*piconst*Gl0(x,y)*(-NRlE(a,x)*NRlTAU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5916  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5917  -NLlE(a,x)*NLlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5918  -NLlE(a,x)*NRlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5919  // H R contribution
5920  HpengTauEEENR1 = HpengTauEEENR1 - 2.0*piconst*Gl1(x,y)*(-NLlE(a,x)*NLlTAU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5921  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5922  -NRlE(a,x)*NRlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5923  -NRlE(a,x)*NLlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5924  // H L contribution
5925  HpengTauEEENL1 = HpengTauEEENL1 - 2.0*piconst*Gl1(x,y)*(-NRlE(a,x)*NRlTAU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5926  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5927  -NLlE(a,x)*NLlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5928  -NLlE(a,x)*NRlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5929  // A R contribution
5930  HpengTauEEENR2 = HpengTauEEENR2 - 2.0*piconst*Gl2(x,y)*(-NLlE(a,x)*NLlTAU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5931  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5932  -NRlE(a,x)*NRlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5933  -NRlE(a,x)*NLlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5934  // A L contribution
5935  HpengTauEEENL2 = HpengTauEEENL2 - 2.0*piconst*Gl2(x,y)*(-NRlE(a,x)*NRlTAU(a,y).conjugate()*mE*(PV.C11(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5936  -PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)))
5937  -NLlE(a,x)*NLlTAU(a,y).conjugate()*mTAU*PV.C12(MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y))
5938  -NLlE(a,x)*NRlTAU(a,y).conjugate()*MNeig(a)*PV.C0(0.,MNeig(a)*MNeig(a),mym_se_sq(x),mym_se_sq(y)));
5939  }
5940  // h R contribution
5941  HpengTauEEENR0 = HpengTauEEENR0 - 2.0*piconst*(SRTAU(0)/(mE*mE-mTAU*mTAU)*(-NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5942  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5943  -NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5944  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5945  +SRE(0)/(mTAU*mTAU-mE*mE)*(-NLlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5946  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5947  -NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5948  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5949  // h L contribution
5950  HpengTauEEENL0 = HpengTauEEENL0 - 2.0*piconst*(SLTAU(0)/(mE*mE-mTAU*mTAU)*(-NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5951  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5952  -NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5953  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5954  +SLE(0)/(mTAU*mTAU-mE*mE)*(-NRlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5955  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5956  -NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5957  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5958  // H R contribution
5959  HpengTauEEENR1 = HpengTauEEENR1 - 2.0*piconst*(SRTAU(1)/(mE*mE-mTAU*mTAU)*(-NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5960  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5961  -NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5962  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5963  +SRE(1)/(mTAU*mTAU-mE*mE)*(-NLlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5964  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5965  -NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5966  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5967  // H L contribution
5968  HpengTauEEENL1 = HpengTauEEENL1 - 2.0*piconst*(SLTAU(1)/(mE*mE-mTAU*mTAU)*(-NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5969  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5970  -NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5971  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5972  +SLE(1)/(mTAU*mTAU-mE*mE)*(-NRlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5973  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5974  -NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5975  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5976  // A R contribution
5977  HpengTauEEENR2 = HpengTauEEENR2 - 2.0*piconst*(SRTAU(2)/(mE*mE-mTAU*mTAU)*(-NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5978  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5979  -NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5980  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5981  +SRE(2)/(mTAU*mTAU-mE*mE)*(-NLlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5982  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5983  -NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5984  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5985  // A L contribution
5986  HpengTauEEENL2 = HpengTauEEENL2 - 2.0*piconst*(SLTAU(2)/(mE*mE-mTAU*mTAU)*(-NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5987  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5988  -NRlE(a,x)*NRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5989  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x)))
5990  +SLE(2)/(mTAU*mTAU-mE*mE)*(-NRlE(a,x)*NRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5991  +NRlE(a,x)*NLlTAU(a,x).conjugate()*mTAU*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5992  -NLlE(a,x)*NLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))
5993  +NLlE(a,x)*NRlTAU(a,x).conjugate()*mE*MNeig(a)*PV.B0(1.,0.,MNeig(a)*MNeig(a),mym_se_sq(x))));
5994  }
5995  }
5996 
5997  // summing up the h (0), H (1) and A (2) parts
5998  gslpp::complex B2HiggsnRte = (-0.5*HpengTauEEENR0*SLE(0)/(mh*mh)-0.5*HpengTauEEENR1*SLE(1)/(mH*mH)-0.5*HpengTauEEENR2*SLE(2)/(mA*mA))/(4.0*pi*alph);
5999  gslpp::complex B2HiggsnLte = (-0.5*HpengTauEEENL0*SRE(0)/(mh*mh)-0.5*HpengTauEEENL1*SRE(1)/(mH*mH)-0.5*HpengTauEEENL2*SRE(2)/(mA*mA))/(4.0*pi*alph);
6000  gslpp::complex B3HiggsnRte = (HpengTauEEENR0*SRE(0)/(mh*mh)+HpengTauEEENR1*SRE(1)/(mH*mH)+HpengTauEEENR2*SRE(2)/(mA*mA))/(4.0*pi*alph);
6001  gslpp::complex B3HiggsnLte = (HpengTauEEENL0*SLE(0)/(mh*mh)+HpengTauEEENL1*SLE(1)/(mH*mH)+HpengTauEEENL2*SLE(2)/(mA*mA))/(4.0*pi*alph);
6002 
6003  // Chargino contributions
6004  gslpp::complex HpengTauEEECR0 = 0.0;
6005  gslpp::complex HpengTauEEECL0 = 0.0;
6006  gslpp::complex HpengTauEEECR1 = 0.0;
6007  gslpp::complex HpengTauEEECL1 = 0.0;
6008  gslpp::complex HpengTauEEECR2 = 0.0;
6009  gslpp::complex HpengTauEEECL2 = 0.0;
6010  for (int x=0;x<3;x++) {
6011  for (int a=0;a<2;a++) {
6012  for (int b=0;b<2;b++) {
6013  // h R contribution
6014  HpengTauEEECR0 = HpengTauEEECR0 - 2.0*piconst*(CRlE(a,x)*WL0(a,b)*CLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
6015  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6016  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6017  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6018  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
6019  +CLlE(a,x)*WR0(a,b)*CRlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6020  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6021  +CLlE(a,x)*WR0(a,b)*CLlTAU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6022  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6023  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6024  +CRlE(a,x)*WL0(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6025  +CLlE(a,x)*WL0(a,b)*CLlTAU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6026  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6027  +CRlE(a,x)*WR0(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6028  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6029  +CRlE(a,x)*WR0(a,b)*CLlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
6030  // h L contribution
6031  HpengTauEEECL0 = HpengTauEEECL0 - 2.0*piconst*(CLlE(a,x)*WR0(a,b)*CRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
6032  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6033  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6034  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6035  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
6036  +CRlE(a,x)*WL0(a,b)*CLlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6037  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6038  +CRlE(a,x)*WL0(a,b)*CRlTAU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6039  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6040  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6041  +CLlE(a,x)*WR0(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6042  +CRlE(a,x)*WR0(a,b)*CRlTAU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6043  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6044  +CLlE(a,x)*WL0(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6045  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6046  +CLlE(a,x)*WL0(a,b)*CRlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
6047  // H R contribution
6048  HpengTauEEECR1 = HpengTauEEECR1 - 2.0*piconst*(CRlE(a,x)*WL1(a,b)*CLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
6049  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6050  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6051  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6052  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
6053  +CLlE(a,x)*WR1(a,b)*CRlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6054  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6055  +CLlE(a,x)*WR1(a,b)*CLlTAU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6056  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6057  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6058  +CRlE(a,x)*WL1(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6059  +CLlE(a,x)*WL1(a,b)*CLlTAU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6060  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6061  +CRlE(a,x)*WR1(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6062  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6063  +CRlE(a,x)*WR1(a,b)*CLlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
6064  // H L contribution
6065  HpengTauEEECL1 = HpengTauEEECL1 - 2.0*piconst*(CLlE(a,x)*WR1(a,b)*CRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
6066  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6067  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6068  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6069  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
6070  +CRlE(a,x)*WL1(a,b)*CLlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6071  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6072  +CRlE(a,x)*WL1(a,b)*CRlTAU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6073  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6074  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6075  +CLlE(a,x)*WR1(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6076  +CRlE(a,x)*WR1(a,b)*CRlTAU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6077  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6078  +CLlE(a,x)*WL1(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6079  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6080  +CLlE(a,x)*WL1(a,b)*CRlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
6081  // A R contribution
6082  HpengTauEEECR2 = HpengTauEEECR2 - 2.0*piconst*(CRlE(a,x)*WL2(a,b)*CLlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
6083  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6084  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6085  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6086  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
6087  +CLlE(a,x)*WR2(a,b)*CRlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6088  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6089  +CLlE(a,x)*WR2(a,b)*CLlTAU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6090  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6091  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6092  +CRlE(a,x)*WL2(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6093  +CLlE(a,x)*WL2(a,b)*CLlTAU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6094  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6095  +CRlE(a,x)*WR2(a,b)*CRlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6096  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6097  +CRlE(a,x)*WR2(a,b)*CLlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
6098  // A L contribution
6099  HpengTauEEECL2 = HpengTauEEECL2 - 2.0*piconst*(CLlE(a,x)*WR2(a,b)*CRlTAU(b,x).conjugate()*(PV.B0(1.,0.,MChi(a)*MChi(a),MChi(b)*MChi(b))
6100  -mym_sn_sq(x)*PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6101  +mTAU*mTAU*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6102  +mE*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6103  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))))
6104  +CRlE(a,x)*WL2(a,b)*CLlTAU(b,x).conjugate()*mTAU*mE*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6105  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6106  +CRlE(a,x)*WL2(a,b)*CRlTAU(b,x).conjugate()*mE*MChi(b)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6107  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6108  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6109  +CLlE(a,x)*WR2(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(b)*PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6110  +CRlE(a,x)*WR2(a,b)*CRlTAU(b,x).conjugate()*mE*MChi(a)*(PV.C11(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6111  -PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6112  +CLlE(a,x)*WL2(a,b)*CLlTAU(b,x).conjugate()*mTAU*MChi(a)*(PV.C12(mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))
6113  -PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b)))
6114  +CLlE(a,x)*WL2(a,b)*CRlTAU(b,x).conjugate()*MChi(a)*MChi(b)*(-PV.C0(0.,mym_sn_sq(x),MChi(a)*MChi(a),MChi(b)*MChi(b))));
6115  }
6116  for (int y=0;y<3;y++) {
6117  // h R contribution
6118  HpengTauEEECR0 = HpengTauEEECR0 - 2.0*piconst*Gnu0(x,y)*(-CLlE(a,x)*CLlTAU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6119  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
6120  -CRlE(a,x)*CRlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6121  -CRlE(a,x)*CLlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
6122  // h L contribution
6123  HpengTauEEECL0 = HpengTauEEECL0 - 2.0*piconst*Gnu0(x,y)*(-CRlE(a,x)*CRlTAU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6124  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
6125  -CLlE(a,x)*CLlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6126  -CLlE(a,x)*CRlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
6127  // H R contribution
6128  HpengTauEEECR1 = HpengTauEEECR1 - 2.0*piconst*Gnu1(x,y)*(-CLlE(a,x)*CLlTAU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6129  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
6130  -CRlE(a,x)*CRlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6131  -CRlE(a,x)*CLlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
6132  // H L contribution
6133  HpengTauEEECL1 = HpengTauEEECL1 - 2.0*piconst*Gnu1(x,y)*(-CRlE(a,x)*CRlTAU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6134  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
6135  -CLlE(a,x)*CLlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6136  -CLlE(a,x)*CRlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
6137  // A R contribution
6138  HpengTauEEECR2 = HpengTauEEECR2 - 2.0*piconst*Gnu2(x,y)*(-CLlE(a,x)*CLlTAU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6139  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
6140  -CRlE(a,x)*CRlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6141  -CRlE(a,x)*CLlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
6142  // A L contribution
6143  HpengTauEEECL2 = HpengTauEEECL2 - 2.0*piconst*Gnu2(x,y)*(-CRlE(a,x)*CRlTAU(a,y).conjugate()*mE*(PV.C11(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6144  -PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)))
6145  -CLlE(a,x)*CLlTAU(a,y).conjugate()*mTAU*PV.C12(MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y))
6146  -CLlE(a,x)*CRlTAU(a,y).conjugate()*MChi(a)*PV.C0(0.,MChi(a)*MChi(a),mym_sn_sq(x),mym_sn_sq(y)));
6147  }
6148  // h R contribution
6149  HpengTauEEECR0 = HpengTauEEECR0 - 2.0*piconst*(SRTAU(0)/(mE*mE-mTAU*mTAU)*(-CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6150  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6151  -CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6152  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
6153  +SRE(0)/(mTAU*mTAU-mE*mE)*(-CLlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6154  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6155  -CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6156  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
6157  // h L contribution
6158  HpengTauEEECL0 = HpengTauEEECL0 - 2.0*piconst*(SLTAU(0)/(mE*mE-mTAU*mTAU)*(-CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6159  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6160  -CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6161  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
6162  +SLE(0)/(mTAU*mTAU-mE*mE)*(-CRlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6163  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6164  -CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6165  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
6166  // H R contribution
6167  HpengTauEEECR1 = HpengTauEEECR1 - 2.0*piconst*(SRTAU(1)/(mE*mE-mTAU*mTAU)*(-CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6168  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6169  -CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6170  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
6171  +SRE(1)/(mTAU*mTAU-mE*mE)*(-CLlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6172  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6173  -CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6174  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
6175  // H L contribution
6176  HpengTauEEECL1 = HpengTauEEECL1 - 2.0*piconst*(SLTAU(1)/(mE*mE-mTAU*mTAU)*(-CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6177  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6178  -CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6179  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
6180  +SLE(1)/(mTAU*mTAU-mE*mE)*(-CRlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6181  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6182  -CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6183  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
6184  // A R contribution
6185  HpengTauEEECR2 = HpengTauEEECR2 - 2.0*piconst*(SRTAU(2)/(mE*mE-mTAU*mTAU)*(-CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6186  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6187  -CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6188  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
6189  +SRE(2)/(mTAU*mTAU-mE*mE)*(-CLlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6190  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6191  -CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6192  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
6193  // A L contribution
6194  HpengTauEEECL2 = HpengTauEEECL2 - 2.0*piconst*(SLTAU(2)/(mE*mE-mTAU*mTAU)*(-CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mE*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6195  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6196  -CRlE(a,x)*CRlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6197  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x)))
6198  +SLE(2)/(mTAU*mTAU-mE*mE)*(-CRlE(a,x)*CRlTAU(a,x).conjugate()*mTAU*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6199  +CRlE(a,x)*CLlTAU(a,x).conjugate()*mTAU*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6200  -CLlE(a,x)*CLlTAU(a,x).conjugate()*mE*mTAU*PV.B1(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))
6201  +CLlE(a,x)*CRlTAU(a,x).conjugate()*mE*MChi(a)*PV.B0(1.,0.,MChi(a)*MChi(a),mym_sn_sq(x))));
6202  }
6203  }
6204 
6205  // summing up the h (0), H (1) and A (2) parts
6206  gslpp::complex B2HiggscRte = (-0.5*HpengTauEEECR0*SLE(0)/(mh*mh)-0.5*HpengTauEEECR1*SLE(1)/(mH*mH)-0.5*HpengTauEEECR2*SLE(2)/(mA*mA))/(4.0*pi*alph);
6207  gslpp::complex B2HiggscLte = (-0.5*HpengTauEEECL0*SRE(0)/(mh*mh)-0.5*HpengTauEEECL1*SRE(1)/(mH*mH)-0.5*HpengTauEEECL2*SRE(2)/(mA*mA))/(4.0*pi*alph);
6208  gslpp::complex B3HiggscRte = (HpengTauEEECR0*SRE(0)/(mh*mh)+HpengTauEEECR1*SRE(1)/(mH*mH)+HpengTauEEECR2*SRE(2)/(mA*mA))/(4.0*pi*alph);
6209  gslpp::complex B3HiggscLte = (HpengTauEEECL0*SLE(0)/(mh*mh)+HpengTauEEECL1*SLE(1)/(mH*mH)+HpengTauEEECL2*SLE(2)/(mA*mA))/(4.0*pi*alph);
6210 
6211  // write B2H and B3H into a vector for tau->3e
6212  BHFunctions.assign(0, B2HiggsnRte+B2HiggscRte );
6213  BHFunctions.assign(1, B2HiggsnLte+B2HiggscLte );
6214  BHFunctions.assign(2, B3HiggsnRte+B3HiggscRte );
6215  BHFunctions.assign(3, B3HiggsnLte+B3HiggscLte );
6216  }
6217 
6218  return(BHFunctions);
6219 }
6222  //box contributions to mu->e conversion
6223 
6225 
6226  double MW = mySUSY.Mw_tree();
6227  double pi = M_PI;
6228  double sw2 = mySUSY.StandardModel::sW2(MW);
6229  double stw = sqrt(sw2);
6230  double ctw = sqrt(1.0 - sw2);
6231  double ttw = stw/ctw;
6233  double mMU = mySUSY.getLeptons(StandardModel::MU).getMass();
6234  double mUP = mySUSY.getQuarks(QCD::UP).getMass();
6235  double mDOWN = mySUSY.getQuarks(QCD::DOWN).getMass();
6236  double cdenc = sqrt(2.0)*MW*cosb;
6237  double cdenn = MW*cosb;
6238  double g2 = gW;
6239  double g2t = g2/sqrt(2.0);
6240  double alph = mySUSY.getAle();
6241 
6243  // Neutralino-Fermion-Sfermion couplings
6244  for (int a=0;a<4;a++) {
6245  for (int x=0;x<6;x++) {
6246  // LL + RL TYPE MI
6247  NRlE.assign(a, x, - (g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 0) + (mE/cdenn)*ON(a, 2)*myRl(x, 3)));
6248  NRlMU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 1) + (mMU/cdenn)*ON(a, 2)*myRl(x, 4)));
6249  NRqUP.assign(a, x, -(g2t)*((ON(a, 1)+ON(a, 0)*ttw/3.0)*myRu(x, 0)+mUP/(MW*sinb)*ON(a, 3)*myRu(x, 3)));
6250  NRqDOWN.assign(a, x, -(g2t)*((-ON(a, 1)+ON(a, 0)*ttw/3.0)*myRd(x, 0)+mDOWN/(MW*cosb)*ON(a, 2)*myRd(x, 3)));
6251  // RL + RR TYPE MI
6252  NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2)*myRl(x, 0) + 2.0*ON(a, 0)*ttw*myRl(x, 3)));
6253  NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2)*myRl(x, 1) + 2.0*ON(a, 0)*ttw*myRl(x, 4)));
6254  NLqUP.assign(a, x, -(g2t)*(mUP/(MW*sinb)*ON(a, 3)*myRu(x, 0)-4.0*ON(a, 0)*myRu(x, 3)*ttw/3.0));
6255  NLqDOWN.assign(a, x, -(g2t)*(mDOWN/(MW*cosb)*ON(a, 2)*myRd(x, 0)+2.0*ON(a, 0)*myRd(x, 3)*ttw/3.0));
6256  }
6257  }
6258  // Chargino-Fermion-Sfermion couplings
6259  for (int a=0;a<2;a++) {
6260  for (int x=0;x<3;x++) {
6261  // LL-TYPE
6262  CRlE.assign(a, x, - (g2*myV(a, 0)*myRn(x, 0)));
6263  CRlMU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 1)));
6264  // LR-TYPE
6265  CLlE.assign(a, x, g2*mE/cdenc*myU(a, 1).conjugate()*myRn(x, 0));
6266  CLlMU.assign(a, x, g2*mMU/cdenc*myU(a, 1).conjugate()*myRn(x, 1));
6267  }
6268  }
6269  for (int a=0;a<2;a++) {
6270  for (int x=0;x<6;x++) {
6271  // LL-TYPE
6272  CRqUP.assign(a, x, g2*(-myU(a, 0)*myRd(x, 0) + mDOWN/cdenc*myU(a, 1)*myRd(x, 3)));
6273  CRqDOWN.assign(a, x, g2*(-myV(a, 0)*myRu(x, 0) + mUP/(sqrt(2.0)*MW*sinb)*myV(a, 1)*myRu(x, 3)));
6274  // LR-TYPE
6275  CLqUP.assign(a, x, g2*mUP/(sqrt(2.0)*MW*sinb)*myV(a, 1)*myRd(x, 0));
6276  CLqDOWN.assign(a, x, g2*mDOWN/cdenc*myU(a, 1)*myRu(x, 0));
6277  }
6278  }
6279 
6280  // Neutralino contributions
6281  gslpp::complex DunR = 0.0;
6282  gslpp::complex DunL = 0.0;
6283  gslpp::complex DdnR = 0.0;
6284  gslpp::complex DdnL = 0.0;
6285  for (int a=0;a<4;a++) {
6286  for (int b=0;b<4;b++) {
6287  for (int x=0;x<6;x++) {
6288  for (int y=0;y<6;y++) {
6289  DunR = DunR + (0.125*(NLlMU(a,x).conjugate()*NLlE(b,x)*NLqUP(a,y)*NLqUP(b,y).conjugate()
6290  -NLlMU(a,x).conjugate()*NLlE(b,x)*NRqUP(a,y).conjugate()*NRqUP(b,y))
6291  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_su_sq(y))/(4.0*pi*pi)
6292  -0.25*MNeig(a)*MNeig(b)*(NLlMU(a,x).conjugate()*NLlE(b,x)*NRqUP(a,y)*NRqUP(b,y).conjugate()
6293  -NLlMU(a,x).conjugate()*NLlE(b,x)*NLqUP(a,y).conjugate()*NLqUP(b,y))
6294  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_su_sq(y))/(16.0*pi*pi))/(4.0*pi*alph);
6295  DunL = DunL + (0.125*(NRlMU(a,x).conjugate()*NRlE(b,x)*NRqUP(a,y)*NRqUP(b,y).conjugate()
6296  -NRlMU(a,x).conjugate()*NRlE(b,x)*NLqUP(a,y).conjugate()*NLqUP(b,y))
6297  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_su_sq(y))/(4.0*pi*pi)
6298  -0.25*MNeig(a)*MNeig(b)*(NRlMU(a,x).conjugate()*NRlE(b,x)*NLqUP(a,y)*NLqUP(b,y).conjugate()
6299  -NRlMU(a,x).conjugate()*NRlE(b,x)*NRqUP(a,y).conjugate()*NRqUP(b,y))
6300  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_su_sq(y))/(16.0*pi*pi))/(4.0*pi*alph);
6301  DdnR = DdnR + (0.125*(NLlMU(a,x).conjugate()*NLlE(b,x)*NLqDOWN(a,y)*NLqDOWN(b,y).conjugate()
6302  -NLlMU(a,x).conjugate()*NLlE(b,x)*NRqDOWN(a,y).conjugate()*NRqDOWN(b,y))
6303  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_sd_sq(y))/(4.0*pi*pi)
6304  -0.25*MNeig(a)*MNeig(b)*(NLlMU(a,x).conjugate()*NLlE(b,x)*NRqDOWN(a,y)*NRqDOWN(b,y).conjugate()
6305  -NLlMU(a,x).conjugate()*NLlE(b,x)*NLqDOWN(a,y).conjugate()*NLqDOWN(b,y))
6306  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_sd_sq(y))/(16.0*pi*pi))/(4.0*pi*alph);
6307  DdnL = DdnL + (0.125*(NRlMU(a,x).conjugate()*NRlE(b,x)*NRqDOWN(a,y)*NRqDOWN(b,y).conjugate()
6308  -NRlMU(a,x).conjugate()*NRlE(b,x)*NLqDOWN(a,y).conjugate()*NLqDOWN(b,y))
6309  *PV.D00(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_sd_sq(y))/(4.0*pi*pi)
6310  -0.25*MNeig(a)*MNeig(b)*(NRlMU(a,x).conjugate()*NRlE(b,x)*NLqDOWN(a,y)*NLqDOWN(b,y).conjugate()
6311  -NRlMU(a,x).conjugate()*NRlE(b,x)*NRqDOWN(a,y).conjugate()*NRqDOWN(b,y))
6312  *PV.D0(0., 0., MNeig(a)*MNeig(a), MNeig(b)*MNeig(b), mym_se_sq(x), mym_sd_sq(y))/(16.0*pi*pi))/(4.0*pi*alph);
6313  }
6314  }
6315  }
6316  }
6317 
6318  // Chargino contributions
6319  gslpp::complex DucR = 0.0;
6320  gslpp::complex DucL = 0.0;
6321  gslpp::complex DdcR = 0.0;
6322  gslpp::complex DdcL = 0.0;
6323  for (int a=0;a<2;a++) {
6324  for (int b=0;b<2;b++) {
6325  for (int x=0;x<3;x++) {
6326  for (int y=0;y<6;y++) {
6327  DucR = DucR + (-0.125*CLlMU(a,x).conjugate()*CLlE(b,x)*CRqUP(a,y).conjugate()*CRqUP(b,y)
6328  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sd_sq(y))/(4.0*pi*pi)
6329  +0.25*MChi(a)*MChi(b)*CLlMU(a,x).conjugate()*CLlE(b,x)*CLqUP(a,y).conjugate()*CLqUP(b,y)
6330  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sd_sq(y))/(16.0*pi*pi))/(4.0*pi*alph);
6331  DucL = DucL + (-0.125*CRlMU(a,x).conjugate()*CRlE(b,x)*CLqUP(a,y).conjugate()*CLqUP(b,y)
6332  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sd_sq(y))/(4.0*pi*pi)
6333  +0.25*MChi(a)*MChi(b)*CRlMU(a,x).conjugate()*CRlE(b,x)*CRqUP(a,y).conjugate()*CRqUP(b,y)
6334  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_sd_sq(y))/(16.0*pi*pi))/(4.0*pi*alph);
6335  DdcR = DdcR + (0.125*CLlMU(a,x).conjugate()*CLlE(b,x)*CLqDOWN(a,y)*CLqDOWN(b,y).conjugate()
6336  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_su_sq(y))/(4.0*pi*pi)
6337  -0.25*MChi(a)*MChi(b)*CLlMU(a,x).conjugate()*CLlE(b,x)*CRqDOWN(a,y)*CRqDOWN(b,y).conjugate()
6338  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_su_sq(y))/(16.0*pi*pi))/(4.0*pi*alph);
6339  DdcL = DdcL + (0.125*CRlMU(a,x).conjugate()*CRlE(b,x)*CRqDOWN(a,y)*CRqDOWN(b,y).conjugate()
6340  *PV.D00(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_su_sq(y))/(4.0*pi*pi)
6341  -0.25*MChi(a)*MChi(b)*CRlMU(a,x).conjugate()*CRlE(b,x)*CLqDOWN(a,y)*CLqDOWN(b,y).conjugate()
6342  *PV.D0(0., 0., MChi(a)*MChi(a), MChi(b)*MChi(b), mym_sn_sq(x), mym_su_sq(y))/(16.0*pi*pi))/(4.0*pi*alph);
6343  }
6344  }
6345  }
6346  }
6347 
6348  // write DuR, DuL, DdR and DdL into a vector for mu->e conversion
6349  DFunctions.assign(0, DunR+DucR ); //DuR
6350  DFunctions.assign(1, DunL+DucL ); //DuL
6351  DFunctions.assign(2, DdnR+DdcR ); //DdR
6352  DFunctions.assign(3, DdnL+DdcL ); //DdL
6353 
6354  return(DFunctions);
6355 }
6358  //Z penguin contributions
6359 
6361 
6362  double MZ = mySUSY.getMz();
6363  double MW = mySUSY.Mw_tree();
6364  double pi = M_PI;
6365  double piconst = 1.0/(32.0 * pi * pi);
6366  double sw2 = mySUSY.StandardModel::sW2(MW);
6367  double stw = sqrt(sw2);
6368  double ctw = sqrt(1.0 - sw2);
6369  double ttw = stw/ctw;
6371  double mMU = mySUSY.getLeptons(StandardModel::MU).getMass();
6372  double mTAU = mySUSY.getLeptons(StandardModel::TAU).getMass();
6373 
6374  double cdenc = sqrt(2.0)*MW*cosb;
6375  double cdenn = MW*cosb;
6376  double g2 = gW;
6377  double g2t = g2/sqrt(2.0);
6378 
6380 // Note: Here contributions proportional to the Yukawa couplings are set to
6381 // zero. In particular this leads to Right Chargino Contributions to be zero.
6382 
6383  // Neutralino-Fermion-Sfermion couplings
6384  for (int a=0;a<4;a++) {
6385  for (int x=0;x<6;x++) {
6386  // LL + RL TYPE MI
6387  NRlE.assign(a, x, - (g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 0) + (mE/cdenn)*ON(a, 2)*myRl(x, 3)));
6388  NRlMU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 1) + (mMU/cdenn)*ON(a, 2)*myRl(x, 4)));
6389  NRlTAU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 2) + (mTAU/cdenn)*ON(a, 2)*myRl(x, 5)));
6390  // RL + RR TYPE MI
6391  NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2)*myRl(x, 0) + 2.0*ON(a, 0)*ttw*myRl(x, 3)));
6392  NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2)*myRl(x, 1) + 2.0*ON(a, 0)*ttw*myRl(x, 4)));
6393  NLlTAU.assign(a, x, -(g2t)*((mTAU/cdenn)*ON(a, 2)*myRl(x, 2) + 2.0*ON(a, 0)*ttw*myRl(x, 5)));
6394 // Commented expressions might be useful for complex neutralino mixing matrices
6395 // NLlE.assign(a, x, -(g2t)*((mE/cdenn)*ON(a, 2).conjugate()*myRl(x, 0) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 3)));
6396 // NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2).conjugate()*myRl(x, 1) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 4)));
6397 // NLlTAU.assign(a, x, -(g2t)*((mTAU/cdenn)*ON(a, 2).conjugate()*myRl(x, 2) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 5)));
6398  }
6399  }
6400 
6401  // Chargino-Fermion-Sfermion couplings
6402  for (int a=0;a<2;a++) {
6403  for (int x=0;x<3;x++) {
6404  // LL-TYPE
6405  CRlE.assign(a, x, - (g2*myV(a, 0)*myRn(x, 0)));
6406  CRlMU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 1)));
6407  CRlTAU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 2)));
6408  // LR-TYPE
6409  CLlE.assign(a, x, g2*mE/cdenc*myU(a, 1).conjugate()*myRn(x, 0));
6410  CLlMU.assign(a, x, g2*mMU/cdenc*myU(a, 1).conjugate()*myRn(x, 1));
6411  CLlTAU.assign(a, x, g2*mTAU/cdenc*myU(a, 1).conjugate()*myRn(x, 2));
6412  }
6413  }
6414 
6415 // Neutralino contributions
6416 
6417  for (int a=0;a<4;a++) {
6418  for (int x=0;x<6;x++) {
6419  Lepty.assign(a, x, ( MNeig(a) * MNeig(a) ) / mym_se_sq(x) );
6420  }
6421  }
6422 
6423  for (int x=0;x<6;x++) {
6424  for (int a=0;a<4;a++) {
6425  for (int b=0;b<4;b++) {
6426  if (a != b && std::fabs(Lepty(a,x)-Lepty(b,x)) > 0.01 && std::fabs(1.0-Lepty(a,x)) > 0.01 && std::fabs(1.0-Lepty(b,x)) > 0.01) {
6427  Leptfzn[x][a][b] = log(Lepty(a,x)) + 1.0/(Lepty(a,x)-Lepty(b,x))*
6428  ( (Lepty(a,x)*Lepty(a,x)*log(Lepty(a,x)))/(1.0-Lepty(a,x)) - (Lepty(b,x)*Lepty(b,x)*log(Lepty(b,x)))/(1.0-Lepty(b,x)) );
6429  Leptgzn[x][a][b] = (MNeig(a)*MNeig(b)/mym_se_sq(x))/(Lepty(a,x)-Lepty(b,x))*
6430  ( (Lepty(a,x)*log(Lepty(a,x)))/(1.0-Lepty(a,x)) - (Lepty(b,x)*log(Lepty(b,x)))/(1.0-Lepty(b,x)) );
6431  }
6432  else if (a != b && std::fabs(Lepty(a,x)-Lepty(b,x)) > 0.01 && std::fabs(1.0-Lepty(a,x)) > 0.01 && std::fabs(1.0-Lepty(b,x)) <= 0.01) {
6433  Leptfzn[x][a][b] = (-2.0*log(Lepty(a,x))*Lepty(a,x)+log(Lepty(a,x))+Lepty(a,x)-1.0)/(Lepty(a,x)-1.0)/(Lepty(a,x)-1.0);
6434  Leptgzn[x][a][b] = -(MNeig(a)*MNeig(b)/mym_se_sq(x))*(log(Lepty(a,x))*Lepty(a,x)-Lepty(a,x)+1.0)/(Lepty(a,x)-1.0)/(Lepty(a,x)-1.0);
6435  }
6436  else if (a != b && std::fabs(Lepty(a,x)-Lepty(b,x)) > 0.01 && std::fabs(1.0-Lepty(b,x)) > 0.01 && std::fabs(1.0-Lepty(a,x)) <= 0.01) {
6437  Leptfzn[x][a][b] = (-log(Lepty(b,x))*Lepty(b,x)*Lepty(b,x)+Lepty(b,x)-1.0)/(Lepty(b,x)-1.0)/(Lepty(b,x)-1.0);
6438  Leptgzn[x][a][b] = -(MNeig(a)*MNeig(b)/mym_se_sq(x))*(log(Lepty(b,x))*Lepty(b,x)-Lepty(b,x)+1.0)/(Lepty(b,x)-1.0)/(Lepty(b,x)-1.0);
6439  }
6440  else if ((a == b || std::fabs(Lepty(a,x)-Lepty(b,x)) <= 0.01) && std::fabs(1.0-Lepty(a,x)) > 0.01 && std::fabs(1.0-Lepty(b,x)) > 0.01) {
6441  Leptfzn[x][a][b] = (-Lepty(a,x)*Lepty(a,x)+Lepty(a,x)+log(Lepty(a,x)))/(Lepty(a,x)-1.0)/(Lepty(a,x)-1.0);
6442  Leptgzn[x][a][b] = (MNeig(b)*MNeig(b)/mym_se_sq(x))*(-Lepty(a,x)+log(Lepty(a,x))+1.0)/(Lepty(a,x)-1.0)/(Lepty(a,x)-1.0);
6443  }
6444  else {
6445  Leptfzn[x][a][b] = -3.0/2.0-(Lepty(a,x)-1.0)/3.0;
6446  Leptgzn[x][a][b] = -MNeig(a)*MNeig(b)/(2.0*mym_se_sq(x));
6447  }
6448  }
6449  }
6450  }
6451 
6452 // Chargino contributions
6453  for (int a=0;a<2;a++) {
6454  for (int x=0;x<3;x++) {
6455  Leptz.assign(a, x, MChi(a)*MChi(a)/mym_sn_sq(x) );
6456  }
6457  }
6458 
6459  for (int x=0;x<3;x++) {
6460  for (int a=0;a<2;a++) {
6461  for (int b=0;b<2;b++) {
6462  if (a != b && std::fabs(Leptz(a,x)-Leptz(b,x)) > 0.01 && std::fabs(1.0-Leptz(a,x)) > 0.01 && std::fabs(1.0-Leptz(b,x)) > 0.01) {
6463  Leptfzc[x][a][b] = log(Leptz(a,x)) + 1.0/(Leptz(a,x)-Leptz(b,x))*
6464  ( (Leptz(a,x)*Leptz(a,x)*log(Leptz(a,x)))/(1.0-Leptz(a,x)) - (Leptz(b,x)*Leptz(b,x)*log(Leptz(b,x)))/(1.0-Leptz(b,x)) );
6465  Leptgzc[x][a][b] = (MChi(a)*MChi(b)/mym_sn_sq(x))/(Leptz(a,x)-Leptz(b,x))*
6466  ( (Leptz(a,x)*log(Leptz(a,x)))/(1.0-Leptz(a,x)) - (Leptz(b,x)*log(Leptz(b,x)))/(1.0-Leptz(b,x)) );
6467  }
6468  else if (a != b && std::fabs(Leptz(a,x)-Leptz(b,x)) > 0.01 && std::fabs(1.0-Leptz(a,x)) > 0.01 && std::fabs(1.0-Leptz(b,x)) <= 0.01) {
6469  Leptfzc[x][a][b] = (-2.0*log(Leptz(a,x))*Leptz(a,x)+Leptz(a,x)+log(Leptz(a,x))-1.0)/(Leptz(a,x)-1.0)/(Leptz(a,x)-1.0);
6470  Leptgzc[x][a][b] = -(MChi(a)*MChi(b)/mym_sn_sq(x))*(log(Leptz(a,x))*Leptz(a,x)-Leptz(a,x)+1.0)/(Leptz(a,x)-1.0)/(Leptz(a,x)-1.0);
6471  }
6472  else if (a != b && std::fabs(Leptz(a,x)-Leptz(b,x)) > 0.01 && std::fabs(1.0-Leptz(b,x)) > 0.01 && std::fabs(1.0-Leptz(a,x)) <= 0.01) {
6473  Leptfzc[x][a][b] = (-log(Leptz(b,x))*Leptz(b,x)*Leptz(b,x)+Leptz(b,x)-1.0)/(Leptz(b,x)-1.0)/(Leptz(b,x)-1.0);
6474  Leptgzc[x][a][b] = -(MChi(a)*MChi(b)/mym_sn_sq(x))*(log(Leptz(b,x))*Leptz(b,x)-Leptz(b,x)+1.0)/(Leptz(b,x)-1.0)/(Leptz(b,x)-1.0);
6475  }
6476  else if ((a == b || std::fabs(Leptz(a,x)-Leptz(b,x)) <= 0.01) && std::fabs(1.0-Leptz(a,x)) > 0.01 && std::fabs(1.0-Leptz(b,x)) > 0.01) {
6477  Leptfzc[x][a][b] = (-Leptz(a,x)*Leptz(a,x)+Leptz(a,x)+log(Leptz(a,x)))/(Leptz(a,x)-1.0)/(Leptz(a,x)-1.0);
6478  Leptgzc[x][a][b] = (MChi(b)*MChi(b)/mym_sn_sq(x))*((-Leptz(a,x)+log(Leptz(a,x))+1.0))/(Leptz(a,x)-1.0)/(Leptz(a,x)-1.0);
6479  }
6480  else {
6481  Leptfzc[x][a][b] = -3.0/2.0-(Leptz(a,x)-1.0)/3.0;
6482  Leptgzc[x][a][b] = -MChi(a)*MChi(b)/(2.0*mym_sn_sq(x));
6483  }
6484  }
6485  }
6486  }
6487 
6488  if (li_to_lj == 1) // mu -> 3e
6489  {
6490  // Neutralino contributions
6491  gslpp::complex ZpengMuEEENR = 0.0;
6492  gslpp::complex ZpengMuEEENL = 0.0;
6493  for (int x=0;x<6;x++) {
6494  for (int a=0;a<4;a++) {
6495  for (int b=0;b<4;b++) {
6496  ZpengMuEEENR = ZpengMuEEENR - NLlE(a,x)*NLlMU(b,x)*piconst*
6497  (ON(a,2)*ON(b,2)-ON(a,3)*ON(b,3))*gslpp::complex(std::real(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]),std::imag(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]));
6498  ZpengMuEEENL = ZpengMuEEENL + NRlE(a,x)*NRlMU(b,x)*piconst*
6499  (ON(a,2)*ON(b,2)-ON(a,3)*ON(b,3))*gslpp::complex(std::real(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]),std::imag(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]));
6500  }
6501  }
6502  }
6503  // Chargino contributions
6504  gslpp::complex ZpengMuEEEC = 0.0;
6505  for (int x=0;x<3;x++) {
6506  for (int a=0;a<2;a++) {
6507  for (int b=0;b<2;b++) {
6508  ZpengMuEEEC = ZpengMuEEEC + CRlE(a,x)*CRlMU(b,x)*piconst*
6509  (myU(a,1)*myU(b,1)*gslpp::complex(std::real(Leptgzc[x][a][b]),std::imag(Leptgzc[x][a][b]))
6510  -myV(a,1)*myV(b,1)*gslpp::complex(std::real(Leptfzc[x][a][b]),std::imag(Leptfzc[x][a][b]))/2.0);
6511  }
6512  }
6513  }
6514  // write FRR, FRL, FLR and FLL into a vector for mu->3e
6515  FFunctions.assign(0, ZpengMuEEENR/(MZ*MZ*ctw*ctw) ); //FRR
6516  FFunctions.assign(1, ZpengMuEEENR*(-0.5+sw2)/(MZ*MZ*sw2*ctw*ctw) ); //FRL
6517  FFunctions.assign(2, (ZpengMuEEENL + ZpengMuEEEC)/(MZ*MZ*ctw*ctw) ); //FLR
6518  FFunctions.assign(3, (ZpengMuEEENL + ZpengMuEEEC)*(-0.5+sw2)/(MZ*MZ*sw2*ctw*ctw) ); //FLL
6519  }
6520  if (li_to_lj == 2) // tau -> 3mu
6521  {
6522  // Neutralino contributions
6523  gslpp::complex ZpengTauMuMuMuNR = 0.0;
6524  gslpp::complex ZpengTauMuMuMuNL = 0.0;
6525  for (int x=0;x<6;x++) {
6526  for (int a=0;a<4;a++) {
6527  for (int b=0;b<4;b++) {
6528  ZpengTauMuMuMuNR = ZpengTauMuMuMuNR - NLlMU(a,x)*NLlTAU(b,x)*piconst*
6529  (ON(a,2)*ON(b,2)-ON(a,3)*ON(b,3))*gslpp::complex(std::real(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]),std::imag(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]));
6530  ZpengTauMuMuMuNL = ZpengTauMuMuMuNL + NRlMU(a,x)*NRlTAU(b,x)*piconst*
6531  (ON(a,2)*ON(b,2)-ON(a,3)*ON(b,3))*gslpp::complex(std::real(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]),std::imag(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]));
6532  }
6533  }
6534  }
6535  // Chargino contributions
6536  gslpp::complex ZpengTauMuMuMuC = 0.0;
6537  for (int x=0;x<3;x++) {
6538  for (int a=0;a<2;a++) {
6539  for (int b=0;b<2;b++) {
6540  ZpengTauMuMuMuC = ZpengTauMuMuMuC + CRlMU(a,x)*CRlTAU(b,x)*piconst*
6541  (myU(a,1)*myU(b,1)*gslpp::complex(std::real(Leptgzc[x][a][b]),std::imag(Leptgzc[x][a][b]))
6542  -myV(a,1)*myV(b,1)*gslpp::complex(std::real(Leptfzc[x][a][b]),std::imag(Leptfzc[x][a][b]))/2.0);
6543  }
6544  }
6545  }
6546  // write FRR, FRL, FLR and FLL into a vector for tau->3mu
6547  FFunctions.assign(0, ZpengTauMuMuMuNR/(MZ*MZ*ctw*ctw) ); //FRR
6548  FFunctions.assign(1, ZpengTauMuMuMuNR*(-0.5+sw2)/(MZ*MZ*sw2*ctw*ctw) ); //FRL
6549  FFunctions.assign(2, (ZpengTauMuMuMuNL + ZpengTauMuMuMuC)/(MZ*MZ*ctw*ctw) ); //FLR
6550  FFunctions.assign(3, (ZpengTauMuMuMuNL + ZpengTauMuMuMuC)*(-0.5+sw2)/(MZ*MZ*sw2*ctw*ctw) ); //FLL
6551  }
6552  if (li_to_lj == 3) // tau -> 3e
6553  {
6554  // Neutralino contributions
6555  gslpp::complex ZpengTauEEENR = 0.0;
6556  gslpp::complex ZpengTauEEENL = 0.0;
6557  for (int x=0;x<6;x++) {
6558  for (int a=0;a<4;a++) {
6559  for (int b=0;b<4;b++) {
6560  ZpengTauEEENR = ZpengTauEEENR - NLlE(a,x)*NLlTAU(b,x)*piconst*
6561  (ON(a,2)*ON(b,2)-ON(a,3)*ON(b,3))*gslpp::complex(std::real(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]),std::imag(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]));
6562  ZpengTauEEENL = ZpengTauEEENL + NRlE(a,x)*NRlTAU(b,x)*piconst*
6563  (ON(a,2)*ON(b,2)-ON(a,3)*ON(b,3))*gslpp::complex(std::real(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]),std::imag(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]));
6564  }
6565  }
6566  }
6567  // Chargino contributions
6568  gslpp::complex ZpengTauEEEC = 0.0;
6569  for (int x=0;x<3;x++) {
6570  for (int a=0;a<2;a++) {
6571  for (int b=0;b<2;b++) {
6572  ZpengTauEEEC = ZpengTauEEEC + CRlE(a,x)*CRlTAU(b,x)*piconst*
6573  (myU(a,1)*myU(b,1)*gslpp::complex(std::real(Leptgzc[x][a][b]),std::imag(Leptgzc[x][a][b]))
6574  -myV(a,1)*myV(b,1)*gslpp::complex(std::real(Leptfzc[x][a][b]),std::imag(Leptfzc[x][a][b]))/2.0);
6575  }
6576  }
6577  }
6578  // write FRR, FRL, FLR and FLL into a vector for tau->3e
6579  FFunctions.assign(0, ZpengTauEEENR/(MZ*MZ*ctw*ctw) ); //FRR
6580  FFunctions.assign(1, ZpengTauEEENR*(-0.5+sw2)/(MZ*MZ*sw2*ctw*ctw) ); //FRL
6581  FFunctions.assign(2, (ZpengTauEEENL + ZpengTauEEEC)/(MZ*MZ*ctw*ctw) ); //FLR
6582  FFunctions.assign(3, (ZpengTauEEENL + ZpengTauEEEC)*(-0.5+sw2)/(MZ*MZ*sw2*ctw*ctw) ); //FLL
6583  }
6584  if (li_to_lj == 4) // tau -> muee
6585  {
6586  // Neutralino contributions
6587  gslpp::complex ZpengTauMuEENR = 0.0;
6588  gslpp::complex ZpengTauMuEENL = 0.0;
6589  for (int x=0;x<6;x++) {
6590  for (int a=0;a<4;a++) {
6591  for (int b=0;b<4;b++) {
6592  ZpengTauMuEENR = ZpengTauMuEENR - NLlMU(a,x)*NLlTAU(b,x)*piconst*
6593  (ON(a,2)*ON(b,2)-ON(a,3)*ON(b,3))*gslpp::complex(std::real(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]),std::imag(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]));
6594  ZpengTauMuEENL = ZpengTauMuEENL + NRlMU(a,x)*NRlTAU(b,x)*piconst*
6595  (ON(a,2)*ON(b,2)-ON(a,3)*ON(b,3))*gslpp::complex(std::real(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]),std::imag(Leptfzn[x][a][b]+2.0*Leptgzn[x][a][b]));
6596  }
6597  }
6598  }
6599  // Chargino contributions
6600  gslpp::complex ZpengTauMuEEC = 0.0;
6601  for (int x=0;x<3;x++) {
6602  for (int a=0;a<2;a++) {
6603  for (int b=0;b<2;b++) {
6604  ZpengTauMuEEC = ZpengTauMuEEC + CRlMU(a,x)*CRlTAU(b,x)*piconst*
6605  (myU(a,1)*myU(b,1)*gslpp::complex(std::real(Leptgzc[x][a][b]),std::imag(Leptgzc[x][a][b]))
6606  -myV(a,1)*myV(b,1)*gslpp::complex(std::real(Leptfzc[x][a][b]),std::imag(Leptfzc[x][a][b]))/2.0);
6607  }
6608  }
6609  }
6610  // write FRR, FRL, FLR and FLL into a vector for tau->muee
6611  FFunctions.assign(0, ZpengTauMuEENR/(MZ*MZ*ctw*ctw) ); //FRR
6612  FFunctions.assign(1, ZpengTauMuEENR*(-0.5+sw2)/(MZ*MZ*sw2*ctw*ctw) ); //FRL
6613  FFunctions.assign(2, (ZpengTauMuEENL + ZpengTauMuEEC)/(MZ*MZ*ctw*ctw) ); //FLR
6614  FFunctions.assign(3, (ZpengTauMuEENL + ZpengTauMuEEC)*(-0.5+sw2)/(MZ*MZ*sw2*ctw*ctw) ); //FLL
6615  }
6616 
6617  return(FFunctions);
6618 }
6621 
6623 
6624  double MW = mySUSY.Mw_tree();
6625  double pi = M_PI;
6626  double piconst = 1.0/(32.0 * pi * pi);
6627  double sw2 = mySUSY.StandardModel::sW2(MW);
6628  double stw = sqrt(sw2);
6629  double ctw = sqrt(1.0 - sw2);
6630  double ttw = stw/ctw;
6631  double mMU = mySUSY.getLeptons(StandardModel::MU).getMass();
6632 
6633  double cdenc = sqrt(2.0)*MW*cosb;
6634  double cdenn = MW*cosb;
6635  double g2 = gW;
6636  double g2t = g2/sqrt(2.0);
6637 
6639 
6640  // Neutralino-Fermion-Sfermion couplings
6641  for (int a=0;a<4;a++) {
6642  for (int x=0;x<6;x++) {
6643  // LL + RL TYPE MI
6644  NRlMU.assign(a, x, -(g2t)*((-ON(a, 1) - ON(a, 0)*ttw)*myRl(x, 1) + (mMU/cdenn)*ON(a, 2)*myRl(x, 4)));
6645  // RL + RR TYPE MI
6646  NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2)*myRl(x, 1) + 2.0*ON(a, 0)*ttw*myRl(x, 4)));
6647 // Commented expressions might be useful for complex neutralino mixing matrices
6648 // NLlMU.assign(a, x, -(g2t)*((mMU/cdenn)*ON(a, 2).conjugate()*myRl(x, 1) + 2.0*ON(a, 0).conjugate()*ttw*myRl(x, 4)));
6649  }
6650  }
6651 
6652  // Chargino-Fermion-Sfermion couplings
6653  for (int a=0;a<2;a++) {
6654  for (int x=0;x<3;x++) {
6655  // LL-TYPE
6656  CRlMU.assign(a, x, - (g2*myV(a, 0)*myRn(x, 1)));
6657  // LR-TYPE
6658  CLlMU.assign(a, x, g2*mMU/cdenc*myU(a, 1).conjugate()*myRn(x, 1));
6659  }
6660  }
6661 
6662  for (int a=0;a<4;a++) {
6663  for (int x=0;x<6;x++) {
6664  Lepty.assign(a, x, MNeig(a) * MNeig(a) / mym_se_sq(x) );
6665  }
6666  }
6667 
6668  for (int a=0;a<2;a++) {
6669  for (int x=0;x<3;x++) {
6670  Leptz.assign(a, x, MChi(a) * MChi(a) / mym_sn_sq(x) );
6671  }
6672  }
6673 
6674  for (int a=0;a<4;a++) {
6675  for (int x=0;x<6;x++) {
6676  if (fabs(1.0 - Lepty(a, x)) > 0.01) {
6677  Leptf1.assign(a, x, ((1.0 - 6.0*Lepty(a, x) + 3.0 * pow(Lepty(a, x),2.0) +
6678  2.0*pow(Lepty(a, x),3.0) - 6.0*pow(Lepty(a,x),2.0)*log(Lepty(a, x))))/
6679  (6.0 * pow((1.0 - Lepty(a,x)),4.0)) );
6680  Leptf2.assign(a, x, (1.0 - pow(Lepty(a, x),2.0) + 2.0 * Lepty(a, x) * log(Lepty(a, x)))/
6681  (pow((1.0-Lepty(a, x)),3.0)));
6682  }
6683  else {
6684  Leptf1.assign(a, x, 1.0/12.0 - (Lepty(a, x) - 1.0)/30.0);
6685  Leptf2.assign(a, x, 1.0/3.0 - (Lepty(a, x) - 1.0)/6.0);
6686  }
6687  }
6688  }
6689 
6690  for (int a=0;a<2;a++) {
6691  for (int x=0;x<3;x++) {
6692  if(fabs(1.0-Leptz(a, x)) > 0.01) {
6693  Leptf3.assign(a, x, ((2.0 + 3.0*Leptz(a, x) - 6.0*pow(Leptz(a, x),2.0)
6694  + pow(Leptz(a, x),3.0) + 6.0*Leptz(a, x)*log(Leptz(a, x)))/
6695  (6.0*pow((1.0 - Leptz(a, x)),4.0))) );
6696  Leptf4.assign(a, x, ((-3.0 + 4.0*Leptz(a, x) - pow(Leptz(a, x),2.0)
6697  - 2.0*log(Leptz(a, x)))/
6698  pow((1.0 - Leptz(a, x)),3.0)) );
6699  }
6700  else {
6701  Leptf3.assign(a, x, 1.0/12.0 - (Leptz(a, x) - 1.0)/20.0 );
6702  Leptf4.assign(a, x, 2.0/3.0 - (Leptz(a, x) - 1.0)/2.0 );
6703  }
6704  }
6705  }
6706 
6707  // Neutralino contributions
6708  gslpp::complex g2ARN = 0.0;
6709  gslpp::complex g2ALN = 0.0;
6710  for (int a=0;a<4;a++) {
6711  for (int x=0;x<6;x++) {
6712  g2ARN = g2ARN -mMU*mMU*piconst*(4.0*NRlMU(a,x)*NRlMU(a,x).conjugate()*Leptf1(a,x)
6713  +2.0*NRlMU(a,x)*NLlMU(a,x).conjugate()*(MNeig(a)/mMU)*Leptf2(a,x))/mym_se_sq(x);
6714  g2ALN = g2ALN -mMU*mMU*piconst*(4.0*NLlMU(a,x)*NLlMU(a,x).conjugate()*Leptf1(a,x)
6715  +2.0*NLlMU(a,x)*NRlMU(a,x).conjugate()*(MNeig(a)/mMU)*Leptf2(a,x))/mym_se_sq(x);
6716  }
6717  }
6718 
6719  // Chargino contributions
6720  gslpp::complex g2ARC = 0.0;
6721  gslpp::complex g2ALC = 0.0;
6722  for (int a=0;a<2;a++) {
6723  for (int x=0;x<3;x++) {
6724  g2ARC = g2ARC +mMU*mMU*piconst*(4.0*CRlMU(a,x)*CRlMU(a,x).conjugate()*Leptf3(a,x)
6725  +2.0*CRlMU(a,x)*CLlMU(a,x).conjugate()*(MChi(a)/mMU)*Leptf4(a,x))/mym_sn_sq(x);
6726  g2ALC = g2ALC +mMU*mMU*piconst*(4.0*CLlMU(a,x)*CLlMU(a,x).conjugate()*Leptf3(a,x)
6727  +2.0*CLlMU(a,x)*CRlMU(a,x).conjugate()*(MChi(a)/mMU)*Leptf4(a,x))/mym_sn_sq(x);
6728  }
6729  }
6730 
6731  // write R and L contributions to the muon g-2 into a vector
6732  gminus2mu.assign(0, g2ARN + g2ARC ); //g-2_muR
6733  gminus2mu.assign(1, g2ALN + g2ALC ); //g-2_muL
6734 
6735 // std::cout<<"g2AN="<<g2ARN+g2ALN <<std::endl;
6736 // std::cout<<"g2AC="<<g2ARC+g2ALC <<std::endl;
6737 
6738  return(gminus2mu);
6739 }
6742  double a;
6743 };
6745 double __fPS_integ(double x, void* p){
6746  __fPS_params &params= *reinterpret_cast<__fPS_params *>(p);
6747  double r = params.a*log(x*(1.-x)/params.a) / (x*(1.-x)-params.a);
6748  return r;
6749 }
6751 double SUSYMatching::fPS(double x){
6752 
6753  __fPS_params params;
6754  params.a=x;
6755 
6756  double result;
6757  gsl_integration_glfixed_table * w
6758  = gsl_integration_glfixed_table_alloc(100);
6759  gsl_function F;
6760 
6761  F.function = &__fPS_integ;
6762  F.params = reinterpret_cast<void *>(&params);
6763 
6764  result = gsl_integration_glfixed (&F, 0, 1, w);
6765 
6766  gsl_integration_glfixed_table_free (w);
6767 
6768  return result;
6769 }
6771 double SUSYMatching::fS(double x){
6772 
6773  double r=0;
6774  r=(2.*x-1.)*fPS(x)-2.*x*(2.+log(x));
6775  return r;
6776 }
6778 double SUSYMatching::fft(double x){
6779 
6780  double r=0;
6781  r=x*(2.+log(x)-fPS(x))/2.0;
6782  return r;
6783 }
6785 double SUSYMatching::It(double a, double b, double c){
6786 
6787  double r=0;
6788  if (std::fabs(a-b) < 0.0005 && std::fabs(a-c) < 0.0005 && std::fabs(b-c) < 0.0005)
6789  {
6790  r=9./(2.*(a+b+c)*(a+b+c));
6791  }
6792  else
6793  {
6794  if (std::fabs(a-b) < 0.0005)
6795  {
6796  if (std::fabs(a-c) < 0.0005)
6797  {
6798  r=(-4.*(4.*b*b*c*c*log(b*b/(c*c))
6799  +((b+c)*(b+c))*(c*c*log((4.*c*c)/((b+c)*(b+c)))
6800  + b*b*log(((b+c)*(b+c))/(4.*b*b)))))
6801  /(pow(b-c,3)*(b+c)*(3.*b+c)*(b+3.*c));
6802  }
6803  else
6804  {
6805  if (std::fabs(b-c) < 0.0005)
6806  {
6807  r=(4.*(pow(a-2.*b+c,2)*(-3.*pow(a,8) - 46.*pow(a,7)*c - 42.*pow(a,6)*c*c + 234.*pow(a,5)*c*c*c
6808  - 234.*a*a*a*pow(c,5) + 42.*a*a*pow(c,6) + 46.*a*pow(c,7) + 3.*pow(c,8)
6809  + 8.*a*a*c*c*(11.*pow(a,4) + 28.*a*a*a*c + 50.*a*a*c*c + 28.*a*c*c*c + 11.*pow(c,4))
6810  *log(c*c/(a*a))
6811  + a*a*(7.*pow(a,6) + 62.*pow(a,5)*c + 265.*pow(a,4)*c*c
6812  + 356.*a*a*a*c*c*c + 265.*a*a*pow(c,4) + 62.*a*pow(c,5) + 7.*pow(c,6))
6813  *log((4.*a*a)/((a+c)*(a+c)))
6814  + 7.*pow(a,6)*c*c*log(((a+c)*(a+c))/(4.*c*c))
6815  + 62.*pow(a,5)*c*c*c*log(((a+c)*(a+c))/(4.*c*c))
6816  + 265.*pow(a,4)*pow(c,4)*log(((a+c)*(a+c))/(4.*c*c))
6817  + 356.*a*a*a*pow(c,5)*log(((a+c)*(a+c))/(4.*c*c))
6818  + 265.*a*a*pow(c,6)*log(((a+c)*(a+c))/(4.*c*c))
6819  + 62.*a*pow(c,7)*log(((a+c)*(a+c))/(4.*c*c))
6820  + 7.*pow(c,8)*log(((a+c)*(a+c))/(4.*c*c)))
6821  +((a-c)*(a-c))*pow(3.*a+c,2)*pow(a+3.*c,2)
6822  *(4.*a*a*c*c*log((c*c)/(a*a))
6823  +((a+c)*(a+c))*(a*a*log((4.*a*a)/((a+c)*(a+c))) + c*c*log(((a+c)*(a+c))/(4.*c*c))))))
6824  /(pow(a-c,5)*(a+c)*pow(3.*a+c,3)*pow(a+3.*c,3));
6825  }
6826  else
6827  {
6828  r=((b*b) - (c*c) - (c*c)*log((b*b)/(c*c)))/pow((b*b) - (c*c),2) +
6829  ((a - b)*(-pow(b,4) + pow(c,4) + 2*(b*b)*(c*c)*log((b*b)/(c*c))))/(b*pow((b*b) - (c*c),3));
6830  }
6831  }
6832  }
6833  else
6834  {
6835  if (std::fabs(b-c) < 0.0005)
6836  {
6837  if (std::fabs(a-c) < 0.0005)
6838  {
6839  r=(-4*(4*(a*a)*(b*b)*log((a*a)/(b*b)) + ((a+b)*(a+b))*((b*b)*log((4*(b*b))/((a+b)*(a+b))) + (a*a)*log(((a+b)*(a+b))/(4.*(a*a))))))/
6840 (pow(a - b,3)*(a + b)*(3*a + b)*(a + 3*b));
6841  }
6842  else
6843  {
6844  r=(-(a*a) + (c*c) - (a*a)*log((c*c)/(a*a)))/pow((a*a) - (c*c),2) +
6845 ((b - c)*(pow(a,4) - pow(c,4) + 2*(a*a)*(c*c)*log((c*c)/(a*a))))/(c*pow(-(a*a) + (c*c),3));
6846  }
6847  }
6848  else
6849  {
6850  if (std::fabs(a-c) < 0.0005)
6851  {
6852  r=(-(b*b) + (c*c) + (b*b)*log((b*b)/(c*c)))/pow((b*b) - (c*c),2) +
6853  ((a - c)*(pow(b,4) - pow(c,4) - 2*(b*b)*(c*c)*log((b*b)/(c*c))))/(c*pow(-(b*b) + (c*c),3));
6854  }
6855  else
6856  {
6857  r=( a*a*b*b*log(a*a/(b*b))+b*b*c*c*log(b*b/(c*c))+c*c*a*a*log(c*c/(a*a)) )
6858  /( (a*a-b*b)*(b*b-c*c)*(a*a-c*c) );
6859  }
6860  }
6861  }
6862 
6863 
6864 
6865 
6866 
6867 
6868  }
6869  return r;
6870 }
6872 double SUSYMatching::F3C(double x){
6873 
6874  double r=0;
6875  if (std::fabs(x-1.) < 0.005)
6876  {
6877  r=1. + (1059.*(x-1.))/1175.;
6878  }
6879  else
6880  {
6881  r=(1. - x) * (151. * x*x - 335. * x + 592.)
6882  + 6. * (21. * x*x*x - 108. * x*x - 93. * x + 50.) * log(x)
6883  - 54. * x * (x*x - 2. * x - 2.) * pow(log(x),2)
6884  - 108. * x * (x*x - 2. * x + 12.) * Polylogs.Li2(1.- x).real() ;
6885  r*=4./(141.*pow(1. - x,4));
6886  }
6887  return r;
6888 }
6890 double SUSYMatching::F4C(double x){
6891 
6892  double r=0;
6893  if (std::fabs(x-1.) < 0.005)
6894  {
6895  r=1. - (45.*(x-1.))/122.;
6896  }
6897  else
6898  {
6899  r=8.*(x*x-3.*x+2.)+(11.*x*x-40.*x+5.)*log(x)
6900  -2.*(x*x-2.*x-2.)*log(x)*log(x)
6901  -4.*(x*x-2.*x+9.)*Polylogs.Li2(1.-x).real();
6902  r=r*(-9.)/(122.*pow(1-x,3));
6903  }
6904  return r;
6905 }
6907 double SUSYMatching::F3N(double x){
6908 
6909  double r=0;
6910  if (std::fabs(x-1.) < 0.005)
6911  {
6912  r=1. + (76.*(x-1.))/875.;
6913  }
6914  else
6915  {
6916  r=(1-x)*(-97.*x*x-529.*x+2.)+6.*x*x*(13.*x+81.)*log(x)
6917  +108.*x*(7.*x+4.)*Polylogs.Li2(1.-x).real();
6918  r=r*4./(105.*pow(1-x,4));
6919  }
6920  return r;
6921 }
6923 double SUSYMatching::F4N(double x){
6924 
6925  double r=0;
6926  if (std::fabs(x-1.) < 0.005)
6927  {
6928  r=1. - (111.*(x-1.)*(x-1.))/800.;
6929  }
6930  else
6931  {
6932  r=(x+3.)*(x*log(x)+x-1.0)+(6.*x+2.)*Polylogs.Li2(1.-x).real();
6933  r=r*(-9.)/(4.*pow(1-x,3));
6934  }
6935  return r;
6936 }
6938 double SUSYMatching::Fa(double x, double y){
6939 
6940  double r=0;
6941  if (std::fabs(x-y) < 0.005)
6942  {
6943  if (std::fabs(y-1.) < 0.005)
6944  {
6945  r=(49. - 22.*x - 22.*y + 10.*x*y)/60.;
6946  }
6947  else
6948  {
6949  r=(2. + 3.*x - 6.*x*x + x*x*x + 6.*x*log(x))/(4.*pow(x-1.,4)*x)
6950  +(2. + 3.*y - 6.*y*y + y*y*y + 6.*y*log(y))/(4.*pow(y-1.,4)*y);
6951  }
6952  }
6953  else
6954  {
6955  if (std::fabs(x-1.) < 0.005)
6956  {
6957  r=((x-1.)*(-25. + 48.*y - 36.*y*y + 16.*y*y*y - 3.*y*y*y*y - 12.*log(y)))/(12.*pow(y-1.,5))
6958  + (-11. + 18.*y - 9.*y*y + 2.*y*y*y - 6.*log(y))/(6.*pow(y-1.,4));
6959  }
6960  else if (std::fabs(y-1.) < 0.005)
6961  {
6962  r=((y-1.)*(-25. + 48.*x - 36.*x*x + 16.*x*x*x - 3.*x*x*x*x - 12.*log(x)))/(12.*pow(x-1.,5))
6963  + (-11. + 18.*x - 9.*x*x + 2.*x*x*x - 6.*log(x))/(6.*pow(x-1.,4));
6964  }
6965  else
6966  {
6967  double G3x, G3y;
6968  G3x=(1./(2.*pow(x-1,3))) *( (x-1)*(x-3)+2.*log(x) );
6969  G3y=(1./(2.*pow(y-1,3))) *( (y-1)*(y-3)+2.*log(y) );
6970  r=-(G3x-G3y)/(x-y);
6971  }
6972  }
6973  return r;
6974 }
6976 double SUSYMatching::Fb(double x, double y){
6977 
6978  double r=0;
6979  if (std::fabs(x-y) < 0.005)
6980  {
6981  if (std::fabs(y-1.) < 0.005)
6982  {
6983  r=(13. - 5.*x - 5.*y + 2.*x*y)/60.;
6984  }
6985  else
6986  {
6987  r=((2. + 3.*x - 6.*x*x + x*x*x + 6.*x*log(x))/pow(x-1.,4)
6988  + (2. + 3.*y - 6.*y*y + y*y*y + 6.*y*log(y))/pow(y-1.,4))/12.;
6989  }
6990  }
6991  else
6992  {
6993  if (std::fabs(x-1.) < 0.005)
6994  {
6995  r=(2. + 3.*y - 6.*y*y + y*y*y + 6.*y*log(y))/(6.*pow(y-1.,4))
6996  + ((x-1.)*(3. + 10.*y - 18.*y*y + 6.*y*y*y - y*y*y*y + 12.*y*log(y)))/(12.*pow(y-1.,5));
6997  }
6998  else if (std::fabs(y-1.) < 0.005)
6999  {
7000  r=(2. + 3.*x - 6.*x*x + x*x*x + 6.*x*log(x))/(6.*pow(x-1.,4))
7001  + ((y-1.)*(3. + 10.*x - 18.*x*x + 6.*x*x*x - x*x*x*x + 12.*x*log(x)))/(12.*pow(x-1.,5));
7002  }
7003  else
7004  {
7005  double G4x, G4y;
7006  G4x=(1./(2.*pow(x-1,3))) *( (x-1)*(x+1) -2.*x*log(x) );
7007  G4y=(1./(2.*pow(y-1,3))) *( (y-1)*(y+1) -2.*y*log(y) );
7008  r=-(G4x-G4y)/(x-y);
7009  }
7010  }
7011  return r;
7012 }
7014 double SUSYMatching::gminus2muNLO() {
7015 
7017 
7018  double pi = M_PI;
7019  double MZ = mySUSY.getMz();
7020 // double g1atMZ = sqrt(4.0*pi*mySUSY.getAle());
7021 // double g2atMZ = gW;
7022  double g1atMZ = 0.357456;
7023  double g2atMZ = 0.651721;
7024  double g3atMZ = sqrt(4.0*pi*mySUSY.getAlsMz());
7025  double mh = mySUSY.getMHl();
7026  double mhh = mySUSY.getMHh();
7027  double ma = mySUSY.getMHa();
7029  gslpp::complex ca = sqrt(1.0-sa*sa);
7030  gslpp::complex s2a = 2.0*ca*sa;
7031  gslpp::complex c2a = ca*ca-sa*sa;
7032  double vew = v/sqrt(2.);
7033 // double mE = mySUSY.getLeptons(StandardModel::ELECTRON).getMass();
7034  double mmu = mySUSY.getLeptons(StandardModel::MU).getMass();
7035  double mTAU = mySUSY.getLeptons(StandardModel::TAU).getMass();
7036  double mt = mySUSY.getQuarks(mySUSY.TOP).getMass();
7037  double mb = mySUSY.getQuarks(mySUSY.BOTTOM).getMass();
7038  gslpp::complex M1 = mySUSY.getM1();
7039  gslpp::complex M2 = mySUSY.getM2();
7040 
7041  gslpp::complex muH = mySUSY.getMuH();
7042  TUhat = mySUSY.getTUhat();
7043  TDhat = mySUSY.getTDhat();
7044  TEhat = mySUSY.getTEhat();
7045  gslpp::complex a3t = TUhat(2,2)*mySUSY.v2()/sqrt(2.0)/mt;
7046  gslpp::complex a3b = TDhat(2,2)*mySUSY.v1()/sqrt(2.0)/mb;
7047  gslpp::complex a3tau = TEhat(2,2)*mySUSY.v1()/sqrt(2.0)/mTAU;
7048 
7049  gslpp::matrix<gslpp::complex> MsQhat2(3,3,0);
7050  gslpp::matrix<gslpp::complex> MsUhat2(3,3,0);
7051  gslpp::matrix<gslpp::complex> MsDhat2(3,3,0);
7052  gslpp::matrix<gslpp::complex> MsLhat2(3,3,0);
7053  gslpp::matrix<gslpp::complex> MsEhat2(3,3,0);
7054  MsQhat2 = mySUSY.getMsQhat2();
7055  MsUhat2 = mySUSY.getMsUhat2();
7056  MsDhat2 = mySUSY.getMsDhat2();
7057  MsLhat2 = mySUSY.getMsLhat2();
7058  MsEhat2 = mySUSY.getMsEhat2();
7059  double msq1L = MsQhat2(0,0).real();
7060  double msq2L = MsQhat2(1,1).real();
7061  double msq3L = MsQhat2(2,2).real();
7062  double msuR = MsUhat2(0,0).real();
7063  double mscR = MsUhat2(1,1).real();
7064  double mstR = MsUhat2(2,2).real();
7065  double msdR = MsDhat2(0,0).real();
7066  double mssR = MsDhat2(1,1).real();
7067  double msbR = MsDhat2(2,2).real();
7068  double mseL = MsLhat2(0,0).real();
7069  double msmuL = MsLhat2(1,1).real();
7070  double mstauL = MsLhat2(2,2).real();
7071  double mseR = MsEhat2(0,0).real();
7072  double msmuR = MsEhat2(1,1).real();
7073  double mstauR = MsEhat2(2,2).real();
7074 
7075  int k;
7076  double b1[3];
7077  double gi[3];
7078  double g1, g2, g3;
7079  double res_g;
7080  b1[0]=41./6., b1[1]=-19./6., b1[2]=-7.;
7081  gi[0]=g1atMZ, gi[1]=g2atMZ, gi[2]=g3atMZ;
7082  for(k=0; k<3; k++){
7083  res_g=1./gi[k]/gi[k] -b1[k]/(8.*pi*pi)*log(sqrt(msmuL)/MZ);
7084  gi[k]=sqrt(1/res_g);
7085  }
7086  g1=gi[0], g2=gi[1], g3=gi[2];
7087 
7088  double alp = (g1*g1*g2*g2/(g1*g1+g2*g2))/(4.0*pi);
7089 // double s2b = 2.0*cosb*sinb;
7090  double c2b = cosb*cosb-sinb*sinb;
7091  double mzq = sqrt( 0.5*(g1*g1+g2*g2)*vew*vew );
7092  double mwq = sqrt( 0.5*(g2*g2)*vew*vew );
7093  double sw2 = g1*g1/(g1*g1+g2*g2);
7094  gslpp::complex lh1 = -sa/cosb;
7095  gslpp::complex lh2 = ca/cosb;
7096  double lA = tanb;
7097  double msneu2 = msmuL+0.5*mzq*mzq*c2b;
7098 
7099  TEhat.assign(1,1, 0.);
7100 // a3t = 0.;
7101 // a3b = 0.;
7102 // a3tau = 0.;
7103 
7104 
7105  gslpp::matrix<gslpp::complex> Rsmu(2,2,0.), Xm(2,2,0.);
7106  gslpp::vector<double> msmu2(2,0.);
7107  Rsmu.assign(0,0, msmuL+mmu*mmu+c2b*mzq*mzq*(-1.0/2.0+sw2) );
7108  Rsmu.assign(0,1, mySUSY.v1()/sqrt(2.0)*TEhat(1,1).conjugate()-muH*mmu*tanb);
7109  Rsmu.assign(1,0, mySUSY.v1()/sqrt(2.0)*TEhat(1,1)-muH.conjugate()*mmu*tanb);
7110  Rsmu.assign(1,1, msmuR+mmu*mmu-c2b*mzq*mzq*sw2);
7111  Rsmu.eigensystem(Xm,msmu2); //in the 1,2 basis now!
7112 
7113  gslpp::vector<gslpp::complex> gminus2muvector=gminus2mu();
7114 // std::cout<<"gminus2muvector"<<gminus2muvector<<std::endl;
7115 // double gm21loop = (gminus2muvector(0)+gminus2muvector(1)).abs();
7116 // std::cout<<"gm21loop="<<gm21loop<<std::endl;
7117 
7118 
7119  double gm21loop = 1.06978e-9;
7120  mh=125.;
7121  alp = 0.00729927;
7122  mt=173.34;
7123 
7124 
7125  double res,res1; //the two Barr-Zee contributions
7126  double gm2cor, res2, res3; //muon mass correction, photonic two-loop and corrected smuon-muon-chargino/neutralino couplings
7127  double res01, res02;
7128  double gminus2muNLO;
7129 
7131  //two-loop corrections to SM one-loop diagrams
7133 
7134  // Barr-Zee diagrams (photonic)
7135  // chargino-loop
7139 
7140  double tmp1;
7141  for(int i=0; i<2; i++){
7142  tmp1=sqrt(2.0)*mwq/MChi(i);
7143  lxh1.assign(i, tmp1*( myU(i,0)*myV(i,1)*ca + myU(i,1)*myV(i,0)*(-sa) ) );
7144  lxh2.assign(i, tmp1*( myU(i,0)*myV(i,1)*sa + myU(i,1)*myV(i,0)*( ca) ) );
7145  lxA.assign(i, tmp1*( myU(i,0)*myV(i,1)*(-cosb) + myU(i,1)*myV(i,0)*(-sinb) ) );
7146  }
7147 
7148  res=0;
7149  double xps, xh1, xh2;
7150  for(int i=0; i<2; i++){
7151  xps=MChi(i)*MChi(i)/(ma*ma);
7152  xh1=MChi(i)*MChi(i)/(mh*mh);
7153  xh2=MChi(i)*MChi(i)/(mhh*mhh);
7154 
7155  res += (lA*lxA(i)).real()*fPS(xps) + (lh1*lxh1(i)).real()*fS(xh1)
7156  +(lh2*lxh2(i)).real()*fS(xh2);
7157  }
7158  res *= alp*alp * mmu*mmu / (8.*pi*pi*mwq*mwq*sw2);
7159 
7160  // Barr-Zee diagrams (photonic)
7161  // sfermion-loop
7162  gslpp::matrix<gslpp::complex> stauM(2,2,0), sbottomM(2,2,0), stopM(2,2,0);
7163  gslpp::vector<double> mstau2(2,0), msbottom2(2,0), mstop2(2,0);
7164  gslpp::matrix<gslpp::complex> Ustau(2,2,0), Usbottom(2,2,0), Ustop(2,2,0);
7165 
7166  stauM.assign(0,0, mstauL+mTAU*mTAU + mzq*mzq*c2b*(0.5-(-1.)*sw2) );
7167  stauM.assign(1,1, mstauR+mTAU*mTAU + mzq*mzq*c2b*(-1.)*sw2);
7168  stauM.assign(0,1, mTAU*(a3tau-muH*tanb));
7169  stauM.assign(1,0, mTAU*(a3tau-muH*tanb));
7170 
7171  sbottomM.assign(0,0, msq3L+mb*mb + mzq*mzq*c2b*(0.5-(-1./3.)*sw2) );
7172  sbottomM.assign(1,1, msbR+mb*mb + mzq*mzq*c2b*(-1./3.)*sw2);
7173  sbottomM.assign(0,1, mb*(a3b-muH*tanb));
7174  sbottomM.assign(1,0, mb*(a3b-muH*tanb));
7175 
7176  stopM.assign(0,0, msq3L+mt*mt + mzq*mzq*c2b*(0.5-(2./3.)*sw2) );
7177  stopM.assign(1,1, mstR+mt*mt + mzq*mzq*c2b*(2./3.)*sw2);
7178  stopM.assign(0,1, mt*(a3t-muH/tanb));
7179  stopM.assign(1,0, mt*(a3t-muH/tanb));
7180 
7181  stauM.eigensystem(Ustau,mstau2);
7182  sbottomM.eigensystem(Usbottom,msbottom2);
7183  stopM.eigensystem(Ustop,mstop2);
7184 
7185  Ustau=Ustau.hconjugate();
7186  Usbottom=Usbottom.hconjugate();
7187  Ustop=Ustop.hconjugate();
7188 
7189  gslpp::vector<gslpp::complex> lstauh1(2,0);
7190  gslpp::vector<gslpp::complex> lstauh2(2,0);
7191  gslpp::vector<gslpp::complex> lsbottomh1(2,0);
7192  gslpp::vector<gslpp::complex> lsbottomh2(2,0);
7193  gslpp::vector<gslpp::complex> lstoph1(2,0);
7194  gslpp::vector<gslpp::complex> lstoph2(2,0);
7195 
7196  gslpp::complex rr;
7197  for(int i=0; i<2; i++){
7198 
7199  rr=2.*mTAU/(cosb*mstau2(i)) * Ustau(i,0).conjugate() * Ustau(i,1);
7200  lstauh1.assign(i,rr*(-muH*ca + a3tau*(-sa)) );
7201  lstauh2.assign(i,rr*(-muH*sa + a3tau*(ca)) );
7202 
7203  rr=2.*mb/(cosb*msbottom2(i)) * Usbottom(i,0).conjugate() * Usbottom(i,1);
7204  lsbottomh1.assign(i,rr*(-muH*ca + a3b*(-sa)) );
7205  lsbottomh2.assign(i,rr*(-muH*sa + a3b*(ca)) );
7206 
7207  rr=2.*mt/(cosb*mstop2(i)) * Ustop(i,0).conjugate() * Ustop(i,1);
7208  lstoph1.assign(i,rr*(-muH*sa + a3t*(ca)) );
7209  lstoph2.assign(i,rr*(-muH*(-ca) + a3t*(sa)) );
7210  }
7211 // std::cout<<"mh="<<mh<<std::endl;
7212 // std::cout<<"mhh="<<mhh<<std::endl;
7213 // std::cout<<"ma="<<ma<<std::endl;
7214 
7215  res1=0;
7216  double qe2;
7217  double xx1,xx2;
7218  for(int i=0;i<2;i++){
7219  xx1=mstau2(i)/(mh*mh);
7220  xx2=mstau2(i)/(mhh*mhh);
7221  res1 += (lh1*lstauh1(i)).real()*fft(xx1)
7222  +(lh2*lstauh2(i)).real()*fft(xx2);
7223 // std::cout<<"mstau2="<<mstau2<<std::endl;
7224 
7225  qe2=1./3.0;
7226  xx1=msbottom2(i)/(mh*mh);
7227  xx2=msbottom2(i)/(mhh*mhh);
7228  res1 += (lh1*lsbottomh1(i)).real()*qe2*fft(xx1)
7229  +(lh2*lsbottomh2(i)).real()*qe2*fft(xx2);
7230 // std::cout<<"msbottom2="<<msbottom2<<std::endl;
7231 
7232  qe2=4./3.0;
7233  xx1=mstop2(i)/(mh*mh);
7234  xx2=mstop2(i)/(mhh*mhh);
7235  res1 += (lh1*lstoph1(i)).real()*qe2*fft(xx1)
7236  +(lh2*lstoph2(i)).real()*qe2*fft(xx2);
7237 // std::cout<<"mstop2="<<mstop2<<std::endl;
7238  }
7239  res1 *= alp*alp * mmu*mmu / (8.*pi*pi*mwq*mwq*sw2);
7240 
7241  //adding up the photonic Barr-Zee contributions
7242  res02=res+res1;
7243 
7244 // std::cout<<"res="<<res<<std::endl;
7245 // std::cout<<"res1="<<res1<<std::endl;
7246 
7248  //two-loop corrections to MSSM one-loop diagrams
7250 
7251  gm2cor=0, res2=0, res3=0;
7252 
7254  //
7255  // tanb enhanced correction from SUSY one-loop correction to the muon mass
7256  // (ref. arXiv:0808.1530 )
7257  //
7259 
7260  double dmu=0;
7261 // double I=0;
7262  double x0, x1a, x2a, xL, xR;
7263  double tmp2, tmp3;
7264 
7265  x0=sqrt(std::fabs(msneu2));
7266  xL=sqrt( msmuL-mzq*mzq*(sw2-0.5) );
7267  xR=sqrt( msmuR +mzq*mzq*sw2 );
7268 
7269  tmp2=M2.abs2()+muH.abs2() +2.*mwq*mwq;
7270  tmp3= tmp2*tmp2 -4.*M2.abs2()*muH.abs2();
7271  x1a=sqrt( 0.5*( tmp2-sqrt(tmp3) ) );
7272  x2a=sqrt( 0.5*( tmp2+sqrt(tmp3) ) );
7273 
7274  dmu=-muH.real()*tanb*g2*g2*M2.real()/(16.*pi*pi)*(It(x1a,x2a,x0) + 0.5*It(x1a,x2a,xL))
7275  -muH.real()*tanb*g1*g1*M1.real()/(16.*pi*pi)*(It(muH.real(),M1.real(),xR) - 0.5*It(muH.real(),M1.real(),xL) - It(M1.real(),xL,xR));
7276 
7277  // corrected one-loop result
7278  gm2cor=gm21loop/(1+dmu);
7279 
7281  //
7282  // photonic two-loop (arXiv:1003.5820)
7283  //
7285 
7286  // leading part is simple, which is enhanced by log(mmu/msmu)
7287  res2=gm2cor*alp/(4.*pi)*16.*log(mmu/sqrt(msmuL));
7288 
7289  // non-logarithmic corrections, which are usually small
7290  double amch=0;
7291  double amne=0;
7292 
7293  // switch of the sub-leading contribution to reduce the computation time
7294  int sub_leading=1;
7295 
7296  if (sub_leading==1){
7298  // for the corrections to the chargino diagrams
7300  gslpp::vector<gslpp::complex> ckL(2,0), ckR(2,0);
7301  double ymu=mmu/(vew*cosb);
7302 
7303  ckR.assign(0, ymu*myU(0,1));
7304  ckR.assign(1, ymu*myU(1,1));
7305 
7306  // gauge couplings are defined at the smuon mass scale msmuL
7307  ckL.assign(0, -g2*myV(0,0));
7308  ckL.assign(1, -g2*myV(1,0));
7309 
7310  double xk=0;
7311  for(int i=0; i<2; i++){
7312  xk=MChi(i)*MChi(i)/msneu2;
7313  amch=amch -(47.*mmu/(12.*msneu2))*( (ckL(i).abs()*ckL(i).abs() + ckR(i).abs()*ckR(i).abs())*F3C(xk) );
7314  amch=amch -(122.*MChi(i)/(9.*msneu2))*F4C(xk)*( (ckL(i)*ckR(i)).real() );
7315  }
7316  amch=(1./(1+dmu))*amch*mmu/(16.*pi*pi)*alp/(4.*pi);
7317 
7319  // for the corrections to the neutralino diagrams
7321  gslpp::vector<gslpp::complex> nR1(4,0), nR2(4,0), nL1(4,0), nL2(4,0);
7322 
7323  for(int i=0; i<4; i++){
7324  nR1.assign(i, sqrt(2.)*g1*myN(i,0)*Xm(0,1) + ymu*myN(i,2)*Xm(0,0));
7325  nR2.assign(i, sqrt(2.)*g1*myN(i,0)*Xm(1,1) + ymu*myN(i,2)*Xm(1,0));
7326  nL1.assign(i, (1./sqrt(2.))*(g2*myN(i,1) + g1*myN(i,0))*Xm(0,0).conjugate() -ymu*myN(i,2)*Xm(0,1).conjugate());
7327  nL2.assign(i, (1./sqrt(2.))*(g2*myN(i,1) + g1*myN(i,0))*Xm(1,0).conjugate() -ymu*myN(i,2)*Xm(1,1).conjugate());
7328  }
7329 
7330  double tmp4, tmp5;
7331  double xi1, xi2;
7332  double r1, r2;
7333  for(int i=0; i<4; i++){
7334  xi1=MChi0(i)*MChi0(i)/msmu2(0);
7335  xi2=MChi0(i)*MChi0(i)/msmu2(1);
7336  tmp4=nL1(i).abs2() + nR1(i).abs2();
7337  tmp5=nL2(i).abs2() + nR2(i).abs2();
7338  r1=35.*mmu/(72.*msmu2(0))*F3N(xi1)*tmp4 - 16.*MChi0(i)/(9.*msmu2(0))*F4N(xi1)*( (nL1(i)*nR1(i)).real() );
7339  r2=35.*mmu/(72.*msmu2(1))*F3N(xi2)*tmp5 - 16.*MChi0(i)/(9.*msmu2(1))*F4N(xi2)*( (nL2(i)*nR2(i)).real() );
7340  amne=amne+r1+r2;
7341  }
7342 
7343  amne*=(1./(1.+dmu))*mmu/(16.*pi*pi)*alp/(4.*pi);
7344  }// end of the subleading term
7345 
7346  //adding leading log correction and sub-leading terms
7347  res2=res2+amch+amne;
7348 // std::cout<<"res2="<<res2<<std::endl;
7349 
7351  //
7352  // Deviation of the smuon-muon-chargino/neutralino couplings
7353  // from gauge/Yukawa couplings due to the breaking of SUSY relations
7354  // ref. arXiv:1311.1775
7355  //
7357 
7358  // approximate one-loop corrections
7359  // usually awhn and ablr are dominant contribution
7360  double x1,y1,x2,y2,x3,y3,x4,y4,x5,y5;
7361  double awhn=mmu*mmu*muH.real()*tanb/(1+dmu);
7362  double awhl=awhn;
7363  double abhl=awhn;
7364  double abhr=awhn;
7365  double ablr=awhn;
7366 
7367  //wino-Higgsino-sneutrino
7368  x1=M2.abs2()/msneu2;
7369  y1=muH.abs2()/msneu2;
7370  awhn *= g2*g2*M2.real()/(8.*pi*pi*msneu2*msneu2)*Fa(x1,y1);
7371 
7372  //wino-Higgsino-L-smuon
7373  x2=M2.abs2()/msmuL;
7374  y2=muH.abs2()/msmuL;
7375  awhl *= -g2*g2*M2.real()/(16.*pi*pi*pow(msmuL,2))*Fb(x2,y2);
7376 
7377  //bino-higgsino-L-smuon
7378  x3=M1.abs2()/msmuL;
7379  y3=muH.abs2()/msmuL;
7380  abhl *= g1*g1*M1.real()/(16.*pi*pi*pow(msmuL,2))*Fb(x3,y3);
7381 
7383  x4=M1.abs2()/msmuR;
7384  y4=muH.abs2()/msmuR;
7385  abhr *= -g1*g1*M1.real()/(8.*pi*pi*pow(msmuR,2))*Fb(x4,y4);
7386 
7387  //bino-L-smuon-R-smuon
7388  x5=msmuL/(M1.abs2());
7389  y5=msmuR/(M1.abs2());
7390  ablr *= g1*g1/(8.*pi*pi*pow(M1.real(),3))*Fb(x5,y5);
7391 
7392  double dg2, dg1, dh, dwh, dbh, dtb;
7393  double msusy=sqrt(msmuL);
7394 
7395  dg1=g1*g1/(16.*pi*pi)*(4./3.)
7396  *(4./3.*log(sqrt(msuR)/msusy) + 4./3.*log(sqrt(mscR)/msusy) + 4./3.*log(sqrt(mstR)/msusy)
7397  + 2./3.*log(sqrt(msdR)/msusy) + 2./3.*log(sqrt(mssR)/msusy) + 2./3.*log(sqrt(msbR)/msusy)
7398  + 1./3.*log(sqrt(msq1L)/msusy) + 1./3.*log(sqrt(msq2L)/msusy) + 1./3.*log(sqrt(msq3L)/msusy)
7399  + log(sqrt(mseR)/msusy) + log(sqrt(mstauR)/msusy)
7400  + 1./2.*log(sqrt(mseL)/msusy) + 1./2.*log(sqrt(mstauL)/msusy) );
7401 
7402  dg2=g2*g2/(16.*pi*pi)*(4./3.)
7403  *(3./2.*log(sqrt(msq1L)/msusy) + 3./2.*log(sqrt(msq2L)/msusy) + 3./2.*log(sqrt(msq3L)/msusy)
7404  + 1./2.*log(sqrt(mseL)/msusy) + 1./2.*log(sqrt(mstauL)/msusy) );
7405 
7406  // corrections involving Yukawa couplings
7407  double yb, ytau, yt;
7408  double as_mt, delta_mt;
7409 
7410  // a_s(msmuL)
7411  as_mt=1/(g3*g3);
7412  //running down to mt
7413  as_mt=as_mt - (-7.)*log(mt/sqrt(msmuL))/(8.*pi*pi);
7414  as_mt=(1./as_mt)/(4.*pi);
7415 
7416  delta_mt=-4./3.*(as_mt/pi)-9.1*pow( (as_mt/pi), 2)-80.*pow((as_mt/pi),3);
7417 
7418  yb=mb/(vew*cosb);
7419  yt=mt/(vew*sinb)*(1+delta_mt); //neglecting small EW correction
7420  ytau=mTAU/(vew*cosb);
7421 
7422  // to the DR bar scheme
7423  yt=yt*(1+as_mt/(8.*pi)*(-4./3.));
7424  yb=yb*(1+as_mt/(8.*pi)*(-4./3.));
7425 
7426  dh=0.5/(16.*pi*pi)*(3.*yt*yt*log(sqrt(mstR)/msusy) +3.*yb*yb*log(sqrt(msbR)/msusy)
7427  +3.*(yt*yt+yb*yb)*log(sqrt(msq3L)/msusy)
7428  +ytau*ytau*log(sqrt(mstauR)/msusy) +ytau*ytau*log(sqrt(mstauL)/msusy));
7429 
7430  dwh=yt*yt/(16.*pi*pi)*(-6.*log(sqrt(msq3L)/msusy));
7431 
7432  dbh=yt*yt/(16.*pi*pi)*( 2.*log(sqrt(msq3L)/msusy)-8.*log(sqrt(mstR)/msusy) );
7433 
7434  Q_S=msusy;
7435 
7436  dtb=1./(16.*pi*pi)*( 3.*yb*yb -3.*yt*yt +ytau*ytau)*log(Q_S/msusy);
7437 
7438  // summing sfermion/fermion contributions
7439  res3= awhn*(dg2 + dh + dwh + dtb)
7440  + awhl*(dg2 + dh + dwh + dtb)
7441  + abhl*(dg1 + dh + dbh + dtb)
7442  + abhr*(dg1 + dh + dbh + dtb)
7443  + ablr*(dg1 + dtb);
7444 // std::cout<<"awhn="<<awhn<<std::endl;
7445 // std::cout<<"awhl="<<awhl <<std::endl;
7446 // std::cout<<"abhl="<<abhl <<std::endl;
7447 // std::cout<<"abhr="<<abhr<<std::endl;
7448 // std::cout<<"ablr="<<ablr<<std::endl;
7449 
7450 // std::cout<<"res3="<<res3<<std::endl;
7451 // std::cout<<"gm2cor="<<gm2cor<<std::endl;
7452  res01=gm2cor+res2+res3-gm21loop;
7453 
7454 // std::cout<<"res01="<<res01<<std::endl;
7455 // std::cout<<"res02="<<res02<<std::endl;
7456 
7457  gminus2muNLO=res01+res02;
7458 
7459 // std::cout<<"gm2NLO="<<gminus2muNLO<<std::endl;
7460  return(gminus2muNLO);
7461 }
7464 
7466 
7467  // write C7 and C7' into a vector
7468  C7.assign(0, -0.5*AFunctions(li_to_lj)(2) );
7469  C7.assign(1, -0.5*AFunctions(li_to_lj)(3) );
7470  return(C7);
7471 }
7474 
7475  double MZ = mySUSY.getMz();
7476  double MW = mySUSY.Mw_tree();
7477  double sw2 = mySUSY.StandardModel::sW2(MW);
7478  double cw2 = 1.0 - sw2;
7479 
7481 
7482  // write C9 and C9' into a vector
7483  C9.assign(0, AFunctions(li_to_lj)(1)
7484  + (1.0-1.0/(4.0*sw2))/(cw2*MZ*MZ)*FFunctions(li_to_lj)(1)
7485  + (BFunctions(li_to_lj)(1)+BFunctions(li_to_lj)(3))/2.0 );
7486  C9.assign(1, AFunctions(li_to_lj)(0)
7487  + (1.0-1.0/(4.0*sw2))/(cw2*MZ*MZ)*FFunctions(li_to_lj)(0)
7488  + (BFunctions(li_to_lj)(0)+BFunctions(li_to_lj)(2))/2.0 );
7489 
7490  return(C9);
7491 }
7494 
7495  double MZ = mySUSY.getMz();
7496  double MW = mySUSY.Mw_tree();
7497  double sw2 = mySUSY.StandardModel::sW2(MW);
7498  double cw2 = 1.0 - sw2;
7499 
7500  gslpp::vector<gslpp::complex> C10(2, 0.);
7501 
7502  // write C10 and C10' into a vector
7503  C10.assign(0, 1.0/(4.0*sw2*cw2*MZ*MZ)*FFunctions(li_to_lj)(1)
7504  + (BFunctions(li_to_lj)(3)-BFunctions(li_to_lj)(1))/2.0 );
7505  C10.assign(1, 1.0/(4.0*sw2*cw2*MZ*MZ)*FFunctions(li_to_lj)(0)
7506  + (BFunctions(li_to_lj)(0)-BFunctions(li_to_lj)(2))/2.0 );
7507 
7508  return(C10);
7509 }
7512 
7514 
7515  // write CS and CS' into a vector
7516  CS.assign(0, BFunctions(li_to_lj)(4)/2.0 );
7517  CS.assign(1, BFunctions(li_to_lj)(5)/2.0 );
7518 
7519  return(CS);
7520 }
7523 
7525 
7526  // write CP and CP' into a vector
7527  CP.assign(0, BFunctions(li_to_lj)(4)/2.0 );
7528  CP.assign(1, -BFunctions(li_to_lj)(5)/2.0 );
7529 
7530  return(CP);
7531 }
7534 
7536 
7537  // write CT and CT5 into a vector
7538  CT.assign(0, (BFunctions(li_to_lj)(6)+BFunctions(li_to_lj)(7))/2.0 );
7539  CT.assign(1, (BFunctions(li_to_lj)(6)+BFunctions(li_to_lj)(7))/2.0 );
7540 
7541  return(CT);
7542 }
7544 std::vector<WilsonCoefficient>& SUSYMatching::CMDLij(int li_lj) {
7545 
7546  vmcDLij = StandardModelMatching::CMDLij(li_lj);
7547 
7548  gslpp::vector<gslpp::complex> C7vector=C7_Lepton(li_lj);
7549  switch (mcDLij.getOrder()) {
7550  case LO:
7551  mcDLij.setCoeff(0, C7vector(0), LO);
7552  mcDLij.setCoeff(1, C7vector(1), LO);
7553  break;
7554  case NNLO:
7555  case NLO:
7556  default:
7557  std::stringstream out;
7558  out << mcDLij.getOrder();
7559  throw std::runtime_error("SUSYMatching::CMDLij(): order " + out.str() + " not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
7560  }
7561 
7562  vmcDLij.push_back(mcDLij);
7563  return(vmcDLij);
7564 
7565 }
7567 std::vector<WilsonCoefficient>& SUSYMatching::CMDLi3j(int li_lj) {
7568 
7569  vmcDLi3j = StandardModelMatching::CMDLi3j(li_lj);
7570 
7575  switch (mcDLi3j.getOrder()) {
7576  case LO:
7577 // mcDLi3j.setCoeff(0, C7_Lepton(li_lj)(0), LO);
7578 // mcDLi3j.setCoeff(1, C7_Lepton(li_lj)(1), LO);
7579 // mcDLi3j.setCoeff(2, C9_Lepton(li_lj)(0), LO);
7580 // mcDLi3j.setCoeff(3, C9_Lepton(li_lj)(1), LO);
7581 // mcDLi3j.setCoeff(4, C10_Lepton(li_lj)(0), LO);
7582 // mcDLi3j.setCoeff(5, C10_Lepton(li_lj)(1), LO);
7583 // mcDLi3j.setCoeff(6, CS_Lepton(li_lj)(0), LO);
7584 // mcDLi3j.setCoeff(7, CS_Lepton(li_lj)(1), LO);
7585 // mcDLi3j.setCoeff(8, CP_Lepton(li_lj)(0), LO);
7586 // mcDLi3j.setCoeff(9, CP_Lepton(li_lj)(1), LO);
7587 // mcDLi3j.setCoeff(10, CT_Lepton(li_lj)(0), LO);
7588 // mcDLi3j.setCoeff(11, CT_Lepton(li_lj)(1), LO);
7589  mcDLi3j.setCoeff(0, Avector(0), LO); //A1R
7590  mcDLi3j.setCoeff(1, Avector(1), LO); //A1L
7591  mcDLi3j.setCoeff(2, Avector(2), LO); //A2R
7592  mcDLi3j.setCoeff(3, Avector(3), LO); //A2L
7593  mcDLi3j.setCoeff(4, Bvector(0), LO); //B1R
7594  mcDLi3j.setCoeff(5, Bvector(1), LO); //B1L
7595  mcDLi3j.setCoeff(6, Bvector(2), LO); //B2R
7596  mcDLi3j.setCoeff(7, Bvector(3), LO); //B2L
7597  mcDLi3j.setCoeff(8, Bvector(4), LO); //B3R
7598  mcDLi3j.setCoeff(9, Bvector(5), LO); //B3L
7599  mcDLi3j.setCoeff(10, Bvector(6), LO); //B4R
7600  mcDLi3j.setCoeff(11, Bvector(7), LO); //B4L
7601  mcDLi3j.setCoeff(12, BHvector(0), LO); //BH2R
7602  mcDLi3j.setCoeff(13, BHvector(1), LO); //BH2L
7603  mcDLi3j.setCoeff(14, BHvector(2), LO); //BH3R
7604  mcDLi3j.setCoeff(15, BHvector(3), LO); //BH3L
7605  mcDLi3j.setCoeff(16, Fvector(0), LO); //FRR
7606  mcDLi3j.setCoeff(17, Fvector(1), LO); //FRL
7607  mcDLi3j.setCoeff(18, Fvector(2), LO); //FLR
7608  mcDLi3j.setCoeff(19, Fvector(3), LO); //FLL
7609  break;
7610  case NNLO:
7611  case NLO:
7612  default:
7613  std::stringstream out;
7614  out << mcDLi3j.getOrder();
7615  throw std::runtime_error("SUSYMatching::CMDLi3j(): order " + out.str() + " not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
7616  }
7617 
7618  vmcDLi3j.push_back(mcDLi3j);
7619  return(vmcDLi3j);
7620 
7621 }
7623 std::vector<WilsonCoefficient>& SUSYMatching::CMmueconv() {
7624 
7625  double MW = mySUSY.Mw_tree();
7626  double sw2 = mySUSY.StandardModel::sW2(MW);
7627 
7628  vmcmueconv = StandardModelMatching::CMmueconv();
7629 
7633  switch (mcmueconv.getOrder()) {
7634  case LO:
7635  mcmueconv.setCoeff(0, Avector(0), LO); //A1R
7636  mcmueconv.setCoeff(1, Avector(1), LO); //A1L
7637  mcmueconv.setCoeff(2, Avector(2), LO); //A2R
7638  mcmueconv.setCoeff(3, Avector(3), LO); //A2L
7639  mcmueconv.setCoeff(4, Dvector(0)+(1.0/(4.0*sw2)-2.0/3.0)*Fvector(0), LO); //DbaruR
7640  mcmueconv.setCoeff(5, Dvector(1)+(1.0/(4.0*sw2)-2.0/3.0)*Fvector(2), LO); //DbaruL
7641  mcmueconv.setCoeff(6, Dvector(2)+(-1.0/(4.0*sw2)+1.0/3.0)*Fvector(0), LO); //DbardR
7642  mcmueconv.setCoeff(7, Dvector(3)+(-1.0/(4.0*sw2)+1.0/3.0)*Fvector(2), LO); //DbardL
7643  break;
7644  case NNLO:
7645  case NLO:
7646  default:
7647  std::stringstream out;
7648  out << mcmueconv.getOrder();
7649  throw std::runtime_error("SUSYMatching::CMmueconv(): order " + out.str() + " not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
7650  }
7651 
7652  vmcmueconv.push_back(mcmueconv);
7653  return(vmcmueconv);
7654 
7655 }
7657 std::vector<WilsonCoefficient>& SUSYMatching::CMgminus2mu() {
7658 
7659  vmcgminus2mu = StandardModelMatching::CMgminus2mu();
7660 
7661  gslpp::vector<gslpp::complex> gminus2muvector=gminus2mu();
7662 // std::cout<<"gminus2muvector in the Wilson coeff"<<gminus2muvector<<std::endl;
7663  double gminus2muvectorNLO=gminus2muNLO();
7664  switch (mcgminus2mu.getOrder()) {
7665  case LO:
7666  mcgminus2mu.setCoeff(0, gminus2muvector(0), LO); //g-2_muR
7667  mcgminus2mu.setCoeff(1, gminus2muvector(1), LO); //g-2_muL
7668  break;
7669  case NLO:
7670  mcgminus2mu.setCoeff(0, gminus2muvectorNLO, NLO); //g-2_muR
7671  mcgminus2mu.setCoeff(1, 0., NLO); //g-2_muL
7672  break;
7673  case NNLO:
7674  default:
7675  std::stringstream out;
7676  out << mcgminus2mu.getOrder();
7677  throw std::runtime_error("SUSYMatching::CMgminus2mu(): order " + out.str() + " not implemented.\nFor lepton flavour violating observables only Leading Order (LO) necessary.");
7678  }
7679 
7680  vmcgminus2mu.push_back(mcgminus2mu);
7681  return(vmcgminus2mu);
7682 
7683 }
QCD::TAU
Definition: QCD.h:316
SUSYMatching::AmpTEALC
gslpp::matrix< gslpp::complex > AmpTEALC
Definition: SUSYMatching.h:423
SUSYMatching::mcdd2Chi0Chi0T
WilsonCoefficient mcdd2Chi0Chi0T
Definition: SUSYMatching.h:319
SUSYMatching::VdDNR
gslpp::complex VdDNR(int b, int k, int j, int flag)
Definition: SUSYMatching.cpp:1088
SUSYMatching::gamDRMD
gslpp::matrix< gslpp::complex > gamDRMD
Definition: SUSYMatching.h:511
SUSYMatching::Lepty
gslpp::matrix< double > Lepty
Functions needed to calculate various LFV observables.
Definition: SUSYMatching.h:380
QCD::NEUTRINO_3
Definition: QCD.h:315
PVfunctions::D0
gslpp::complex D0(const double s, const double t, const double m02, const double m12, const double m22, const double m32) const
.
Definition: PVfunctions.cpp:670
SUSY::getM3
double getM3() const
Gets the gluino mass.
Definition: SUSY.h:127
SUSYMatching::CdF2dChi0Chi0
gslpp::vector< gslpp::complex > CdF2dChi0Chi0(int b, int q, int Dmixingflag)
Definition: SUSYMatching.cpp:2161
StandardModel::cW2
virtual double cW2(const double Mw_i) const
The square of the cosine of the weak mixing angle in the on-shell scheme, denoted as .
Definition: StandardModel.cpp:1015
SUSYMatching::bsll_C0
double bsll_C0(double m1, double m2, double m3)
Definition: SUSYMatching.cpp:3622
SUSYMatching::PHLR
gslpp::complex PHLR(int j, int i)
Definition: SUSYMatching.cpp:1349
SUSYMatching::bsll_f6
double bsll_f6(double x)
Definition: SUSYMatching.cpp:3589
SUSYMatching::C10_Lepton
virtual gslpp::vector< gslpp::complex > C10_Lepton(int n)
Calculates and Wilson coefficients for the process .
Definition: SUSYMatching.cpp:7492
SUSYMatching::NLlMU
gslpp::matrix< gslpp::complex > NLlMU
Definition: SUSYMatching.h:398
StandardModel::v
virtual double v() const
The Higgs vacuum expectation value.
Definition: StandardModel.cpp:943
SUSYMatching::Comp_DeltaMd
void Comp_DeltaMd()
Definition: SUSYMatching.cpp:711
SUSYMatching::CdF2dChi0g
gslpp::vector< gslpp::complex > CdF2dChi0g(int b, int q, int Dmixingflag)
Definition: SUSYMatching.cpp:2347
SUSYMatching::fft
double fft(double x)
Definition: SUSYMatching.cpp:6777
SUSYMatching::sinthetaW
double sinthetaW
Definition: SUSYMatching.h:475
SUSYMatching::myRd
gslpp::matrix< gslpp::complex > myRd
Definition: SUSYMatching.h:353
QCD::BOTTOM
Definition: QCD.h:329
SUSYMatching::mcdbd2Chi0g
WilsonCoefficient mcdbd2Chi0g
Definition: SUSYMatching.h:313
QCD::NOLEPTON
Definition: QCD.h:317
SUSYMatching::mcdk2Hp
WilsonCoefficient mcdk2Hp
Definition: SUSYMatching.h:317
SUSYMatching::AmpTauA1RN
gslpp::matrix< gslpp::complex > AmpTauA1RN
Definition: SUSYMatching.h:423
SUSYMatching::mcDLij
WilsonCoefficient mcDLij
Definition: SUSYMatching.h:321
SUSYMatching::bsll_D0reg
double bsll_D0reg(double m1, double m2, double m3, double m4)
Definition: SUSYMatching.cpp:3664
SUSYMatching::mcdk2gg
WilsonCoefficient mcdk2gg
Definition: SUSYMatching.h:317
SUSYMatching::mcdbd2gg
WilsonCoefficient mcdbd2gg
Definition: SUSYMatching.h:313
SUSYMatching::TDhat
gslpp::matrix< gslpp::complex > TDhat
Sdown tri-linear coupling matrix.
Definition: SUSYMatching.h:457
SUSY::getTDhat
gslpp::matrix< gslpp::complex > getTDhat() const
Gets the trilinear-coupling matrix for down-type squarks.
Definition: SUSY.h:340
SUSYMatching::mcdd2Chi0gT
WilsonCoefficient mcdd2Chi0gT
Definition: SUSYMatching.h:319
PVfunctions::D00
gslpp::complex D00(const double s, const double t, const double m02, const double m12, const double m22, const double m32) const
.
Definition: PVfunctions.cpp:758
gslpp::matrix< double >::assign
void assign(const size_t &i, const size_t &j, const double &a)
Definition: gslpp_matrix_double.cpp:108
SUSYMatching::AmpTEA1LC
gslpp::matrix< gslpp::complex > AmpTEA1LC
Definition: SUSYMatching.h:423
SUSYMatching::F4N
double F4N(double x)
Definition: SUSYMatching.cpp:6922
SUSYMatching::CdF2dChiChi
gslpp::vector< gslpp::complex > CdF2dChiChi(int b, int q, int Dmixingflag)
Definition: SUSYMatching.cpp:2027
SUSY::IsFlag_g
bool IsFlag_g() const
Definition: SUSY.h:81
SUSYMatching::updateSUSYParameters
void updateSUSYParameters()
current-current oerators, Misiak basis
Definition: SUSYMatching.cpp:174
SUSYMatching::VdUCR
gslpp::complex VdUCR(int b, int k, int j, int flag)
Definition: SUSYMatching.cpp:950
StandardModelMatching::CMdbd2
virtual std::vector< WilsonCoefficient > & CMdbd2()
,
Definition: StandardModelMatching.cpp:999
SUSYMatching::AmpTEALN
gslpp::matrix< gslpp::complex > AmpTEALN
Definition: SUSYMatching.h:423
SUSYMatching::CLlTAU
gslpp::matrix< gslpp::complex > CLlTAU
Definition: SUSYMatching.h:398
SUSY::getMHp
double getMHp() const
Gets the charged Higgs mass.
Definition: SUSY.h:240
SUSY::getMsUhat2
gslpp::matrix< gslpp::complex > getMsUhat2() const
Definition: SUSY.h:317
NLO_QED11
Definition: OrderScheme.h:51
SUSY::getMHh
double getMHh() const
Gets the heavy Higgs mass.
Definition: SUSY.h:222
SUSYMatching::mcdbs2gg
WilsonCoefficient mcdbs2gg
Definition: SUSYMatching.h:315
SUSYMatching::AmpA1LC
gslpp::matrix< gslpp::complex > AmpA1LC
Definition: SUSYMatching.h:423
SUSYMatching::PGLR
gslpp::complex PGLR(int j, int i)
Definition: SUSYMatching.cpp:1307
SUSYMatching::CLqDOWN
gslpp::matrix< gslpp::complex > CLqDOWN
Definition: SUSYMatching.h:398
SUSYMatching::mcdbd2ggT
WilsonCoefficient mcdbd2ggT
Definition: SUSYMatching.h:313
SUSYMatching::myN
gslpp::matrix< gslpp::complex > myN
Neutralino mixing matrix.
Definition: SUSYMatching.h:372
SUSYMatching::CS_Lepton
virtual gslpp::vector< gslpp::complex > CS_Lepton(int n)
Calculates and Wilson coefficients for the process .
Definition: SUSYMatching.cpp:7510
SUSYMatching::AmpARN
gslpp::matrix< gslpp::complex > AmpARN
Definition: SUSYMatching.h:423
SUSY::getU
gslpp::matrix< gslpp::complex > getU() const
Gets the rotation matrix for negative charginos.
Definition: SUSY.h:272
SUSYMatching::bsll_Z_SUSY
gslpp::complex bsll_Z_SUSY(int lep_pair)
Definition: SUSYMatching.cpp:3912
SUSYMatching::mcdbd2ChiChiT
WilsonCoefficient mcdbd2ChiChiT
Definition: SUSYMatching.h:313
SUSY::getMsLhat2
gslpp::matrix< gslpp::complex > getMsLhat2() const
Definition: SUSY.h:404
SUSYMatching::mcdk2ChiChi
WilsonCoefficient mcdk2ChiChi
Definition: SUSYMatching.h:317
SUSYMatching::Comp_mySUSY_CKM
void Comp_mySUSY_CKM()
Definition: SUSYMatching.cpp:843
SUSYMatching::XUR
gslpp::complex XUR[6][3][2]
Definition: SUSYMatching.h:515
SUSYMatching::AmpA1LN
gslpp::matrix< gslpp::complex > AmpA1LN
Amplitudes of Chargino and Neutralino contribution to various LFV observables.
Definition: SUSYMatching.h:423
SUSYMatching::AmpALN
gslpp::matrix< gslpp::complex > AmpALN
Definition: SUSYMatching.h:423
SUSYMatching::MNeig
gslpp::vector< double > MNeig
Definition: SUSYMatching.h:368
StandardModelMatching::CMdbs2
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
Definition: StandardModelMatching.cpp:1049
SUSYMatching::gamDRgamDRdag
gslpp::matrix< gslpp::complex > gamDRgamDRdag
Definition: SUSYMatching.h:512
SUSYMatching::FFunctions
virtual gslpp::vector< gslpp::complex > FFunctions(int n)
Calculates Z penguin amplitudes for the process from .
Definition: SUSYMatching.cpp:6356
SUSYMatching::v2
double v2
Definition: SUSYMatching.h:474
SUSYMatching::gminus2muNLO
virtual double gminus2muNLO()
Calculates amplitudes for at two-loop.
Definition: SUSYMatching.cpp:7013
SUSYMatching::Leptfzn
std::complex< double > Leptfzn[6][4][4]
Definition: SUSYMatching.h:381
SUSY::getSinb
double getSinb() const
Gets .
Definition: SUSY.h:186
SUSYMatching::AmpTauA1LN
gslpp::matrix< gslpp::complex > AmpTauA1LN
Definition: SUSYMatching.h:423
SUSYMatching::ZDR
gslpp::complex ZDR[6][3][4]
Definition: SUSYMatching.h:515
SUSYMatching::Leptgzn
std::complex< double > Leptgzn[6][4][4]
Definition: SUSYMatching.h:381
StandardModel::getAlsMz
double getAlsMz() const
A get method to access the value of .
Definition: StandardModel.h:730
SUSY::getM2
gslpp::complex getM2() const
Gets the wino mass.
Definition: SUSY.h:118
SUSYMatching::gamULCKMMD
gslpp::matrix< gslpp::complex > gamULCKMMD
Definition: SUSYMatching.h:511
SUSYMatching::mcdk2Chi0Chi0
WilsonCoefficient mcdk2Chi0Chi0
Definition: SUSYMatching.h:317
SUSYMatching::TUhat
gslpp::matrix< gslpp::complex > TUhat
Sup tri-linear coupling matrix.
Definition: SUSYMatching.h:452
SUSYMatching::mcdk2Chi0g
WilsonCoefficient mcdk2Chi0g
Definition: SUSYMatching.h:317
PVfunctions::C12
double C12(const double m12, const double m22, const double m32) const
.
Definition: PVfunctions.cpp:637
SUSYMatching::bsll_C2
double bsll_C2(double m1, double m2, double m3, double mu2)
Definition: SUSYMatching.cpp:3643
LO
Definition: OrderScheme.h:33
QCD::UP
Definition: QCD.h:324
SUSYMatching::DL
double DL(double a, double b, double c, int k)
Definition: SUSYMatching.cpp:319
SUSYMatching::Fb
double Fb(double x, double y)
Definition: SUSYMatching.cpp:6975
SUSYMatching::XRLS
gslpp::complex XRLS(int J, int I, int S)
Definition: SUSYMatching.cpp:1608
Polylogarithms::Li2
gslpp::complex Li2(const double x) const
The dilogarithm with a real argument, .
Definition: Polylogarithms.cpp:22
SUSYMatching::bsll_f1
double bsll_f1(double x)
Definition: SUSYMatching.cpp:3537
SUSYMatching::AmpA1RN
gslpp::matrix< gslpp::complex > AmpA1RN
Definition: SUSYMatching.h:423
SUSYMatching::AmpTEARN
gslpp::matrix< gslpp::complex > AmpTEARN
Definition: SUSYMatching.h:423
SUSYMatching::Leptgzc
std::complex< double > Leptgzc[3][2][2]
Definition: SUSYMatching.h:381
SUSYMatching::VuUN
gslpp::complex VuUN(int b, int k, int j, const std::string)
Definition: SUSYMatching.cpp:1238
SUSYMatching::mcdk2Chi0gT
WilsonCoefficient mcdk2Chi0gT
Definition: SUSYMatching.h:317
QCD::CHARM
Definition: QCD.h:326
SUSYMatching::mySUSY_CKM
gslpp::matrix< gslpp::complex > mySUSY_CKM()
Definition: SUSYMatching.cpp:867
NDR
Definition: OrderScheme.h:21
ModelMatching::CMbsg
virtual std::vector< WilsonCoefficient > & CMbsg()=0
SUSYMatching::mcdbd2ChiChi
WilsonCoefficient mcdbd2ChiChi
Definition: SUSYMatching.h:313
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
SUSYMatching::mcdk2ggT
WilsonCoefficient mcdk2ggT
Definition: SUSYMatching.h:317
SUSYMatching::CRlMU
gslpp::matrix< gslpp::complex > CRlMU
Definition: SUSYMatching.h:398
SUSYMatching::PV
const PVfunctions PV
Definition: SUSYMatching.h:311
SUSYMatching::F3N
double F3N(double x)
Definition: SUSYMatching.cpp:6906
QCD::NEUTRINO_2
Definition: QCD.h:313
SUSYMatching::gminus2mu
virtual gslpp::vector< gslpp::complex > gminus2mu()
Calculates amplitudes for at one-loop from .
Definition: SUSYMatching.cpp:6619
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
SUSYMatching::bsll_D2reg
double bsll_D2reg(double m1, double m2, double m3, double m4)
Definition: SUSYMatching.cpp:3715
gslpp::matrix< gslpp::complex >
Particle::getMass_scale
double getMass_scale() const
A get method to access the scale at which the particle mass is defined.
Definition: Particle.h:133
SUSYMatching::NeutralinoRemixing
void NeutralinoRemixing()
Definition: SUSYMatching.cpp:4028
QCD::ELECTRON
Definition: QCD.h:312
SUSYMatching::mym_su_sq
gslpp::vector< double > mym_su_sq
Sfermion mass-eigenvalue squared.
Definition: SUSYMatching.h:348
SUSY::getMsQhat2
gslpp::matrix< gslpp::complex > getMsQhat2() const
Definition: SUSY.h:312
SUSYMatching::Eps_JCache
gslpp::vector< gslpp::complex > Eps_JCache
Definition: SUSYMatching.h:615
gslpp::complex::abs2
double abs2() const
Definition: gslpp_complex.cpp:86
WilsonTemplate::getScheme
schemes getScheme() const
Definition: WilsonTemplate.h:98
SUSYMatching::mcdbs2HpT
WilsonCoefficient mcdbs2HpT
Definition: SUSYMatching.h:315
PVfunctions::C11
double C11(const double m12, const double m22, const double m32) const
.
Definition: PVfunctions.cpp:603
SUSYMatching::VdUCL_cache
gslpp::complex VdUCL_cache[3][6][2]
Definition: SUSYMatching.h:565
SUSYMatching::XUL
gslpp::complex XUL[6][3][2]
Definition: SUSYMatching.h:515
SUSYMatching::PHRLCache
gslpp::matrix< gslpp::complex > PHRLCache
Definition: SUSYMatching.h:642
SUSYMatching::NRlE
gslpp::matrix< gslpp::complex > NRlE
Definition: SUSYMatching.h:398
SUSYMatching::myRu
gslpp::matrix< gslpp::complex > myRu
Sfermion mixing matrices.
Definition: SUSYMatching.h:353
SUSYMatching::NLqUP
gslpp::matrix< gslpp::complex > NLqUP
Definition: SUSYMatching.h:398
SUSYMatching::mW
double mW
Definition: SUSYMatching.h:475
SUSYMatching::DLL
double DLL(double a, double b, int k)
Definition: SUSYMatching.cpp:365
SUSYMatching::myV
gslpp::matrix< gslpp::complex > myV
Chargino mixing matrices.
Definition: SUSYMatching.h:362
SUSY::v1
double v1() const
Definition: SUSY.cpp:356
SUSYMatching::gamULgamULdag
gslpp::matrix< gslpp::complex > gamULgamULdag
Definition: SUSYMatching.h:512
SUSY::getN
gslpp::matrix< gslpp::complex > getN() const
Gets the rotation matrix for neutralinos.
Definition: SUSY.h:303
SUSYMatching::mcdk2Chi0Chi0T
WilsonCoefficient mcdk2Chi0Chi0T
Definition: SUSYMatching.h:317
SUSYMatching::mcdk2ChiChiT
WilsonCoefficient mcdk2ChiChiT
Definition: SUSYMatching.h:317
SUSYMatching::VdDNL
gslpp::complex VdDNL(int b, int k, int j, int flag)
Definition: SUSYMatching.cpp:1021
SUSYMatching::PHRL
gslpp::complex PHRL(int j, int i)
Definition: SUSYMatching.cpp:1473
SUSYMatching::VuDCR
gslpp::complex VuDCR(int b, int k, int j)
Definition: SUSYMatching.cpp:1164
SUSYMatching::DLLL
double DLLL(double a, int k)
Definition: SUSYMatching.cpp:451
StandardModel::sW2
virtual double sW2(const double Mw_i) const
The square of the sine of the weak mixing angle in the on-shell scheme, denoted as .
Definition: StandardModel.cpp:1026
SUSYMatching::myCKM_cache
gslpp::matrix< gslpp::complex > myCKM_cache
Definition: SUSYMatching.h:663
SUSYMatching::Leptfa1
gslpp::matrix< double > Leptfa1
Definition: SUSYMatching.h:380
SUSYMatching::Bk
double Bk(double x, double y, int k)
Definition: SUSYMatching.cpp:669
SUSYMatching::mcBMll
WilsonCoefficient mcBMll
Definition: SUSYMatching.h:323
SUSYMatching::gamURCKMMU
gslpp::matrix< gslpp::complex > gamURCKMMU
Definition: SUSYMatching.h:511
SUSY::getSaeff
gslpp::complex getSaeff() const
Gets the sine of the effective mixing angle for the CP-even neutral Higgs bosons.
Definition: SUSY.h:204
SUSYMatching::v1
double v1
Definition: SUSYMatching.h:473
SUSYMatching::mcdbs2ChiChi
WilsonCoefficient mcdbs2ChiChi
Definition: SUSYMatching.h:315
SUSYMatching::AmpARC
gslpp::matrix< gslpp::complex > AmpARC
Definition: SUSYMatching.h:423
SUSYMatching::BL
double BL(double a, int k)
Definition: SUSYMatching.cpp:653
SUSYMatching::C7_Lepton
virtual gslpp::vector< gslpp::complex > C7_Lepton(int n)
Calculates and Wilson coefficients for the process .
Definition: SUSYMatching.cpp:7462
SUSYMatching::NRqUP
gslpp::matrix< gslpp::complex > NRqUP
Definition: SUSYMatching.h:398
SUSY::getMGl
double getMGl() const
Gets the gluino mass obtained from FHGetPara().
Definition: SUSY.cpp:366
SUSYMatching::DeltaMd
gslpp::complex DeltaMd(int J, int I)
Definition: SUSYMatching.cpp:755
SUSYMatching::CRlE
gslpp::matrix< gslpp::complex > CRlE
Chargino and Neutralino couplings to sfermions.
Definition: SUSYMatching.h:398
SUSYMatching::TEhat
gslpp::matrix< gslpp::complex > TEhat
Slepton tri-linear coupling matrix.
Definition: SUSYMatching.h:462
SUSYMatching::F3C
double F3C(double x)
Definition: SUSYMatching.cpp:6871
SUSYMatching::bsll_DeltaC9_SUSY
gslpp::complex bsll_DeltaC9_SUSY(int lep_pair)
Definition: SUSYMatching.cpp:4009
SUSYMatching::VdDNR_cache
gslpp::complex VdDNR_cache[3][6][4][2]
Definition: SUSYMatching.h:574
SUSYMatching::CMbsg
virtual std::vector< WilsonCoefficient > & CMbsg()
operator basis:
Definition: SUSYMatching.cpp:3445
WilsonTemplate::getOrder
orders getOrder() const
Definition: WilsonTemplate.h:65
SUSYMatching::It
double It(double a, double b, double c)
Definition: SUSYMatching.cpp:6784
SUSYMatching::mcdbs2ChiChiT
WilsonCoefficient mcdbs2ChiChiT
Definition: SUSYMatching.h:315
SUSY::getRn
gslpp::matrix< gslpp::complex > getRn() const
Gets the rotation matrix for sneutrinos.
Definition: SUSY.h:459
SUSYMatching::mcdd2ChiChi
WilsonCoefficient mcdd2ChiChi
Definition: SUSYMatching.h:319
SUSYMatching::CLL
double CLL(double a, int k)
Definition: SUSYMatching.cpp:588
SUSYMatching::ON
gslpp::matrix< gslpp::complex > ON
Definition: SUSYMatching.h:372
StandardModelMatching
A class for the matching in the Standard Model.
Definition: StandardModelMatching.h:26
SUSYMatching::Comp_VuUN
void Comp_VuUN()
Definition: SUSYMatching.cpp:1204
SUSYMatching::AmpTauALC
gslpp::matrix< gslpp::complex > AmpTauALC
Definition: SUSYMatching.h:423
SUSYMatching::Leptf4
gslpp::matrix< double > Leptf4
Definition: SUSYMatching.h:380
gslpp::complex::conjugate
complex conjugate() const
Definition: gslpp_complex.cpp:288
WilsonCoefficient::setCoeff
void setCoeff(const gslpp::vector< gslpp::complex > &z, orders order_i)
Definition: WilsonCoefficient.h:34
Particle::getMass
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
SUSYMatching::CRlTAU
gslpp::matrix< gslpp::complex > CRlTAU
Definition: SUSYMatching.h:398
SUSYMatching::VuDCR_cache
gslpp::complex VuDCR_cache[3][6][2]
Definition: SUSYMatching.h:582
SUSYMatching::myCKM
gslpp::matrix< gslpp::complex > myCKM
Definition: SUSYMatching.h:333
SUSYMatching::delta_ab
int delta_ab(int a, int b)
Kronecker delta.
Definition: SUSYMatching.cpp:4715
SUSYMatching::Leptfa2
gslpp::matrix< double > Leptfa2
Definition: SUSYMatching.h:380
SUSYMatching::VuDCL
gslpp::complex VuDCL(int b, int k, int j)
Definition: SUSYMatching.cpp:1125
SUSYMatching::mcdd2ggT
WilsonCoefficient mcdd2ggT
Definition: SUSYMatching.h:319
SUSYMatching::CLqUP
gslpp::matrix< gslpp::complex > CLqUP
Definition: SUSYMatching.h:398
SUSYMatching::VdUCL
gslpp::complex VdUCL(int b, int k, int j)
Definition: SUSYMatching.cpp:900
SUSY
A base class for SUSY models.
Definition: SUSY.h:26
SUSYMatching::CL
double CL(double a, double b, int k)
Definition: SUSYMatching.cpp:569
SUSYMatching::DeltaDR
gslpp::complex DeltaDR(int J, int I)
Definition: SUSYMatching.cpp:835
ModelMatching::CMBMll
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
SUSYMatching::Comp_VuDCR
void Comp_VuDCR()
Definition: SUSYMatching.cpp:1131
SUSYMatching::Comp_Eps_J
void Comp_Eps_J()
Definition: SUSYMatching.cpp:763
SUSYMatching::CMdk2
virtual std::vector< WilsonCoefficient > & CMdk2()
,
Definition: SUSYMatching.cpp:2970
SUSYMatching::xuS
gslpp::complex xuS(int S)
Definition: SUSYMatching.cpp:1576
PVfunctions::C0
gslpp::complex C0(const double p2, const double m02, const double m12, const double m22) const
.
Definition: PVfunctions.cpp:469
SUSYMatching::mu2R
double mu2R
Definition: SUSYMatching.h:465
QCD::TOP
Definition: QCD.h:328
SUSYMatching::mcdbs2Chi0gT
WilsonCoefficient mcdbs2Chi0gT
Definition: SUSYMatching.h:315
SUSYMatching::NRlTAU
gslpp::matrix< gslpp::complex > NRlTAU
Definition: SUSYMatching.h:398
SUSYMatching::Comp_VdDNR
void Comp_VdDNR(int flag)
Definition: SUSYMatching.cpp:1031
SUSYMatching::DFunctions
virtual gslpp::vector< gslpp::complex > DFunctions()
Calculates box diagram amplitudes for the process conversion in Nuclei from from .
Definition: SUSYMatching.cpp:6220
__fPS_params::a
double a
Definition: SUSYMatching.cpp:6741
SUSY::getMsDhat2
gslpp::matrix< gslpp::complex > getMsDhat2() const
Definition: SUSY.h:322
SUSYMatching::bsll_f3
double bsll_f3(double x)
Definition: SUSYMatching.cpp:3559
SUSYMatching::AmpTauA1RC
gslpp::matrix< gslpp::complex > AmpTauA1RC
Definition: SUSYMatching.h:423
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
SUSYMatching::mcdd2Hp
WilsonCoefficient mcdd2Hp
Definition: SUSYMatching.h:319
SUSYMatching::DLLp
double DLLp(double a, double b, int k)
Definition: SUSYMatching.cpp:403
SUSYMatching::BHFunctions
virtual gslpp::vector< gslpp::complex > BHFunctions(int n)
Calculates Higgs penguin amplitudes for the process from .
Definition: SUSYMatching.cpp:4720
SUSYMatching::mcdbd2Chi0gT
WilsonCoefficient mcdbd2Chi0gT
Definition: SUSYMatching.h:313
StandardModel::getGF
double getGF() const
A get method to retrieve the Fermi constant .
Definition: StandardModel.h:739
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
SUSYMatching::fPS
double fPS(double x)
Definition: SUSYMatching.cpp:6750
gslpp::complex::i
static const complex & i()
Definition: gslpp_complex.cpp:154
SUSYMatching::Comp_VuDCL
void Comp_VuDCL()
Definition: SUSYMatching.cpp:1098
__fPS_params
Definition: SUSYMatching.cpp:6740
SUSY::getMch
gslpp::vector< double > getMch() const
Gets the chargino masses.
Definition: SUSY.h:263
SUSYMatching::Eps_J
gslpp::complex Eps_J(int J)
Definition: SUSYMatching.cpp:771
SUSYMatching::NRlMU
gslpp::matrix< gslpp::complex > NRlMU
Definition: SUSYMatching.h:398
SUSY::v2
double v2() const
Definition: SUSY.cpp:361
SUSYMatching::mcdk2HpT
WilsonCoefficient mcdk2HpT
Definition: SUSYMatching.h:317
SUSY::getTEhat
gslpp::matrix< gslpp::complex > getTEhat() const
Gets the trilinear-coupling matrix for charged sleptons.
Definition: SUSY.h:432
SUSYMatching::MChi0
gslpp::vector< double > MChi0
Neutralino mass-eigenvalue.
Definition: SUSYMatching.h:368
SUSYMatching::NLqDOWN
gslpp::matrix< gslpp::complex > NLqDOWN
Definition: SUSYMatching.h:398
SUSYMatching::CMgminus2mu
virtual std::vector< WilsonCoefficient > & CMgminus2mu()
Wilson coefficient for at one-loop.
Definition: SUSYMatching.cpp:7656
SUSYMatching::bsll_f7
double bsll_f7(double x)
Definition: SUSYMatching.cpp:3600
SUSYMatching::BFunctions
virtual gslpp::vector< gslpp::complex > BFunctions(int n)
Calculates box diagram amplitudes for the process from from .
Definition: SUSYMatching.cpp:4364
SUSYMatching::Mg
double Mg
Definition: SUSYMatching.h:467
NNLO
Definition: OrderScheme.h:35
SUSYMatching::bsll_DeltaC10_SUSY
gslpp::complex bsll_DeltaC10_SUSY(int lep_pair)
Definition: SUSYMatching.cpp:4016
SUSYMatching::myRn
gslpp::matrix< gslpp::complex > myRn
Definition: SUSYMatching.h:353
SUSYMatching::DeltaMd_cache
gslpp::matrix< gslpp::complex > DeltaMd_cache
Definition: SUSYMatching.h:665
SUSYMatching::VUDHH
gslpp::complex VUDHH(int i, int j)
Definition: SUSYMatching.cpp:1418
SUSYMatching::DL0
double DL0(double a, double b, double c, int k)
Definition: SUSYMatching.cpp:300
SUSY::getM1
gslpp::complex getM1() const
Gets the bino mass.
Definition: SUSY.h:109
SUSYMatching::Comp_VdDNL
void Comp_VdDNL(int flag)
Definition: SUSYMatching.cpp:959
StandardModel::Als
double Als(double mu, orders order=FULLNLO, bool qed_flag=false, bool Nf_thr=true) const
The running QCD coupling in the scheme including QED corrections.
Definition: StandardModel.cpp:602
SUSYMatching::mcdbs2Chi0Chi0T
WilsonCoefficient mcdbs2Chi0Chi0T
Definition: SUSYMatching.h:315
QCD::getQuarks
Particle getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:534
SUSYMatching::sinb
double sinb
Definition: SUSYMatching.h:470
SUSYMatching::bsll_Y_SUSY
gslpp::complex bsll_Y_SUSY(int lep_pair)
Definition: SUSYMatching.cpp:3810
SUSYMatching::CMDLij
virtual std::vector< WilsonCoefficient > & CMDLij(int li_lj)
Wilson coefficient for the process .
Definition: SUSYMatching.cpp:7543
SUSYMatching::tanb
double tanb
Definition: SUSYMatching.h:469
SUSYMatching::downQmassM
gslpp::matrix< gslpp::complex > downQmassM
Definition: SUSYMatching.h:513
WilsonTemplate::setMu
virtual void setMu(double mu)
Definition: WilsonTemplate.h:92
SUSYMatching::AmpA1RC
gslpp::matrix< gslpp::complex > AmpA1RC
Definition: SUSYMatching.h:423
SUSYMatching::Comp_VdUCL
void Comp_VdUCL()
Definition: SUSYMatching.cpp:875
SUSYMatching::xdS
gslpp::complex xdS(int S)
Definition: SUSYMatching.cpp:1544
SUSYMatching::Leptz
gslpp::matrix< double > Leptz
Definition: SUSYMatching.h:380
SUSYMatching::AmpTEARC
gslpp::matrix< gslpp::complex > AmpTEARC
Definition: SUSYMatching.h:423
StandardModel::getVCKM
gslpp::matrix< gslpp::complex > getVCKM() const
A get method to retrieve the CKM matrix.
Definition: StandardModel.h:870
SUSYMatching::bsll_DeltaC7_SUSY
gslpp::complex bsll_DeltaC7_SUSY()
Definition: SUSYMatching.cpp:3763
SUSYMatching::CT_Lepton
virtual gslpp::vector< gslpp::complex > CT_Lepton(int n)
Calculates and Wilson coefficients for the process .
Definition: SUSYMatching.cpp:7532
SUSYMatching::CLlE
gslpp::matrix< gslpp::complex > CLlE
Definition: SUSYMatching.h:398
SUSY::getRd
gslpp::matrix< gslpp::complex > getRd() const
Gets the rotation matrix for down-type squarks.
Definition: SUSY.h:386
SUSYMatching::vmcbsg
std::vector< WilsonCoefficient > vmcbsg
Definition: SUSYMatching.h:329
SUSYMatching::Comp_Lambda0EpsY
void Comp_Lambda0EpsY()
Definition: SUSYMatching.cpp:777
SUSYMatching::Polylogs
const Polylogarithms Polylogs
Definition: SUSYMatching.h:310
SUSYMatching::CdF2dgg
gslpp::vector< gslpp::complex > CdF2dgg(int b, int q, int Dmixingflag)
Definition: SUSYMatching.cpp:1879
SUSYMatching::CMdbd2
virtual std::vector< WilsonCoefficient > & CMdbd2()
,
Definition: SUSYMatching.cpp:2570
SUSYMatching::NRqDOWN
gslpp::matrix< gslpp::complex > NRqDOWN
Definition: SUSYMatching.h:398
gslpp::complex::assign
void assign(const double &real, const double &imag, bool polar)
Definition: gslpp_complex.cpp:173
SUSYMatching::mySUSYMQ
gslpp::vector< double > mySUSYMQ
Definition: SUSYMatching.h:666
SUSYMatching::bsll_f4
double bsll_f4(double x)
Definition: SUSYMatching.cpp:3570
gslpp::vector< double >
A class for constructing and defining operations on real vectors.
Definition: gslpp_vector_double.h:33
SUSYMatching::mcdbs2Chi0Chi0
WilsonCoefficient mcdbs2Chi0Chi0
Definition: SUSYMatching.h:315
SUSYMatching::D0N
double D0N(double x, double y, double z, double t)
Definition: SUSYMatching.cpp:283
SUSYMatching::DeltaDL
gslpp::complex DeltaDL(int J, int I)
Definition: SUSYMatching.cpp:830
SUSY::getTanb
double getTanb() const
Gets .
Definition: SUSY.h:154
SUSYMatching::vmdd2
std::vector< WilsonCoefficient > vmdd2
Definition: SUSYMatching.h:328
S
A class for the form factor in .
Definition: MVllObservables.h:1436
SUSYMatching::mcdd2ChiChiT
WilsonCoefficient mcdd2ChiChiT
Definition: SUSYMatching.h:319
SUSYMatching::VuUNL_cache
gslpp::complex VuUNL_cache[3][6][4]
Definition: SUSYMatching.h:590
SUSYMatching::Leptf3
gslpp::matrix< double > Leptf3
Definition: SUSYMatching.h:380
SUSYMatching::AmpALC
gslpp::matrix< gslpp::complex > AmpALC
Definition: SUSYMatching.h:423
SUSYMatching::Ck
double Ck(double x, double y, double z, int k)
Definition: SUSYMatching.cpp:610
SUSYMatching::AmpTauARC
gslpp::matrix< gslpp::complex > AmpTauARC
Definition: SUSYMatching.h:423
SUSYMatching::bsll_f5
double bsll_f5(double x)
Definition: SUSYMatching.cpp:3581
SUSYMatching::D2LL0
double D2LL0(double a, double b)
Definition: SUSYMatching.cpp:293
SUSYMatching::Comp_mySUSYMQ
void Comp_mySUSYMQ()
Definition: SUSYMatching.cpp:698
SUSYMatching::F4C
double F4C(double x)
Definition: SUSYMatching.cpp:6889
SUSYMatching::F7k
double F7k(double x, int k)
Definition: SUSYMatching.cpp:3385
SUSYMatching::VuUNR_cache
gslpp::complex VuUNR_cache[3][6][4]
Definition: SUSYMatching.h:591
SUSYMatching::bsll_f2
double bsll_f2(double x)
Definition: SUSYMatching.cpp:3548
SUSYMatching::mcdd2gg
WilsonCoefficient mcdd2gg
Definition: SUSYMatching.h:319
SUSYMatching::Comp_VUDHH
void Comp_VUDHH()
Definition: SUSYMatching.cpp:1355
SUSY::getMuH
gslpp::complex getMuH() const
Gets the parameter in the superpotential.
Definition: SUSY.h:145
SUSY::Mq_Q
double Mq_Q(const quark q) const
Definition: SUSY.h:477
SUSYMatching::VdDNL_cache
gslpp::complex VdDNL_cache[3][6][4][2]
Definition: SUSYMatching.h:573
SUSYMatching::AmpTEA1RN
gslpp::matrix< gslpp::complex > AmpTEA1RN
Definition: SUSYMatching.h:423
SUSYMatching::fS
double fS(double x)
Definition: SUSYMatching.cpp:6770
SUSYMatching::EpsPrime
gslpp::complex EpsPrime(int J, int I)
Definition: SUSYMatching.cpp:3374
StandardModel::getMz
double getMz() const
A get method to access the mass of the boson .
Definition: StandardModel.h:721
SUSY::getV
gslpp::matrix< gslpp::complex > getV() const
Gets the rotation matrix for positive charginos.
Definition: SUSY.h:281
SUSYMatching::mySUSY
const SUSY & mySUSY
Definition: SUSYMatching.h:309
SUSYMatching::mcdbs2Chi0g
WilsonCoefficient mcdbs2Chi0g
Definition: SUSYMatching.h:315
SUSYMatching::AmpTEA1RC
gslpp::matrix< gslpp::complex > AmpTEA1RC
Definition: SUSYMatching.h:423
SUSYMatching::mcDLi3j
WilsonCoefficient mcDLi3j
Definition: SUSYMatching.h:321
SUSYMatching::CLlMU
gslpp::matrix< gslpp::complex > CLlMU
Definition: SUSYMatching.h:398
StandardModel::Mw_tree
virtual double Mw_tree() const
The tree-level mass of the boson, .
Definition: StandardModel.cpp:951
SUSY::getMsEhat2
gslpp::matrix< gslpp::complex > getMsEhat2() const
Definition: SUSY.h:414
SUSYMatching::CdF2dHp
gslpp::vector< gslpp::complex > CdF2dHp(int b, int q, int Dmixingflag)
Definition: SUSYMatching.cpp:1662
SUSY::getMse2
gslpp::vector< double > getMse2() const
Gets the charged slepton mass squared.
Definition: SUSY.h:450
StandardModelMatching::CMdd2
virtual std::vector< WilsonCoefficient > & CMdd2()
,
Definition: StandardModelMatching.cpp:1205
SUSYMatching::AmpTauARN
gslpp::matrix< gslpp::complex > AmpTauARN
Definition: SUSYMatching.h:423
__fPS_integ
double __fPS_integ(double x, void *p)
Definition: SUSYMatching.cpp:6744
SUSYMatching.h
SUSY::getRu
gslpp::matrix< gslpp::complex > getRu() const
Gets the rotation matrix for up-type squarks.
Definition: SUSY.h:377
SUSYMatching::mcbsg
WilsonCoefficient mcbsg
Definition: SUSYMatching.h:323
SUSYMatching::gamULCKM
gslpp::matrix< gslpp::complex > gamULCKM
Definition: SUSYMatching.h:511
SUSYMatching::Lambda0EpsYCache
gslpp::matrix< gslpp::complex > Lambda0EpsYCache
Definition: SUSYMatching.h:618
SUSYMatching::CMdbs2
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
Definition: SUSYMatching.cpp:2772
SUSYMatching::myU
gslpp::matrix< gslpp::complex > myU
Definition: SUSYMatching.h:363
SUSYMatching::mcdd2Chi0g
WilsonCoefficient mcdd2Chi0g
Definition: SUSYMatching.h:319
SUSYMatching::Comp_PHLR
void Comp_PHLR()
Definition: SUSYMatching.cpp:1319
QCD::Mrun
double Mrun(const double mu, const double m, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1064
SUSYMatching::SUSYMatching
SUSYMatching(const SUSY &SUSY_i)
Definition: SUSYMatching.cpp:14
QCD::STRANGE
Definition: QCD.h:327
SUSYMatching::mcdbd2Hp
WilsonCoefficient mcdbd2Hp
Definition: SUSYMatching.h:313
SUSYMatching::upQmassM
gslpp::matrix< gslpp::complex > upQmassM
Definition: SUSYMatching.h:513
SUSYMatching::PHLRCache
gslpp::matrix< gslpp::complex > PHLRCache
Definition: SUSYMatching.h:636
SUSYMatching::ZDL
gslpp::complex ZDL[6][3][4]
Definition: SUSYMatching.h:515
SUSYMatching::Lambda0EpsY
gslpp::complex Lambda0EpsY(int J, int I)
Definition: SUSYMatching.cpp:794
SUSYMatching::vmdbd2
std::vector< WilsonCoefficient > vmdbd2
Definition: SUSYMatching.h:325
gslpp::complex::real
const double & real() const
Definition: gslpp_complex.cpp:53
SUSYMatching::vmdk2
std::vector< WilsonCoefficient > vmdk2
Definition: SUSYMatching.h:327
SUSYMatching::NLlTAU
gslpp::matrix< gslpp::complex > NLlTAU
Definition: SUSYMatching.h:398
SUSYMatching::myRl
gslpp::matrix< gslpp::complex > myRl
Definition: SUSYMatching.h:353
SUSY::getMHl
virtual double getMHl() const
Gets the light Higgs mass.
Definition: SUSY.h:213
SUSYMatching::bsll_f8
double bsll_f8(double x)
Definition: SUSYMatching.cpp:3611
SUSYMatching::MHpm
double MHpm
Definition: SUSYMatching.h:468
SUSYMatching::vmdbs2
std::vector< WilsonCoefficient > vmdbs2
Definition: SUSYMatching.h:326
SUSYMatching::DeltaFHL
gslpp::complex DeltaFHL(int j, int i)
Definition: SUSYMatching.cpp:1425
SUSYMatching::VdUCR_cache
gslpp::complex VdUCR_cache[3][6][2][2]
Definition: SUSYMatching.h:566
SUSY::getMsn2
gslpp::vector< double > getMsn2() const
Gets the sneutrino mass squared.
Definition: SUSY.h:441
SUSYMatching::Q_S
double Q_S
Definition: SUSYMatching.h:464
SUSYMatching::VuDCL_cache
gslpp::complex VuDCL_cache[3][6][2]
Definition: SUSYMatching.h:581
SUSYMatching::AmpTauA1LC
gslpp::matrix< gslpp::complex > AmpTauA1LC
Definition: SUSYMatching.h:423
SUSYMatching::Comp_PHRL
void Comp_PHRL()
Definition: SUSYMatching.cpp:1461
SUSYMatching::CP_Lepton
virtual gslpp::vector< gslpp::complex > CP_Lepton(int n)
Calculates and Wilson coefficients for the process .
Definition: SUSYMatching.cpp:7521
SUSY::getQ_SUSY
double getQ_SUSY() const
Gets the scale of the input parameters.
Definition: SUSY.h:163
SUSYMatching::Fa
double Fa(double x, double y)
Definition: SUSYMatching.cpp:6937
SUSYMatching::Als
double Als
Definition: SUSYMatching.h:466
SUSYMatching::CRqDOWN
gslpp::matrix< gslpp::complex > CRqDOWN
Definition: SUSYMatching.h:398
SUSYMatching::PLRk
gslpp::complex PLRk(int j, int i, int k)
Definition: SUSYMatching.cpp:1479
SUSYMatching::AmpTEA1LN
gslpp::matrix< gslpp::complex > AmpTEA1LN
Definition: SUSYMatching.h:423
SUSYMatching::CMmueconv
virtual std::vector< WilsonCoefficient > & CMmueconv()
Wilson coefficient for the process conversion in Nuclei.
Definition: SUSYMatching.cpp:7622
SUSYMatching::mym_se_sq
gslpp::vector< double > mym_se_sq
Definition: SUSYMatching.h:348
SUSYMatching::Leptf1
gslpp::matrix< double > Leptf1
Definition: SUSYMatching.h:380
SUSYMatching::MChi
gslpp::vector< double > MChi
Chargino mass-eigenvalue.
Definition: SUSYMatching.h:358
NLO
Definition: OrderScheme.h:34
SUSYMatching::Comp_VdUCR
void Comp_VdUCR(int flag)
Definition: SUSYMatching.cpp:909
SUSYMatching::CRqUP
gslpp::matrix< gslpp::complex > CRqUP
Definition: SUSYMatching.h:398
SUSYMatching::mcgminus2mu
WilsonCoefficient mcgminus2mu
Definition: SUSYMatching.h:321
SUSYMatching::CalcC7
gslpp::vector< gslpp::complex > CalcC7(int b, int q)
Definition: SUSYMatching.cpp:3407
SUSYMatching::AFunctions
virtual gslpp::vector< gslpp::complex > AFunctions(int n)
Calculates gamma penguin amplitudes for the process from .
Definition: SUSYMatching.cpp:4049
SUSYMatching::XLRS
gslpp::complex XLRS(int J, int I, int S)
Definition: SUSYMatching.cpp:1626
SUSYMatching::gamDLMD
gslpp::matrix< gslpp::complex > gamDLMD
Definition: SUSYMatching.h:511
PVfunctions::B0
gslpp::complex B0(const double mu2, const double p2, const double m02, const double m12) const
.
Definition: PVfunctions.cpp:41
SUSY::IsFlag_h
bool IsFlag_h() const
Definition: SUSY.h:76
SUSYMatching::mcdbd2Chi0Chi0
WilsonCoefficient mcdbd2Chi0Chi0
Definition: SUSYMatching.h:313
SUSYMatching::Comp_DeltaDL
void Comp_DeltaDL()
Definition: SUSYMatching.cpp:807
SUSYMatching::mcdbd2Chi0Chi0T
WilsonCoefficient mcdbd2Chi0Chi0T
Definition: SUSYMatching.h:313
SUSY::getMsd2
gslpp::vector< double > getMsd2() const
Gets the down-type squark mass squared.
Definition: SUSY.h:358
SUSY.h
FULLNNLO
Definition: OrderScheme.h:38
PVfunctions::B1
gslpp::complex B1(const double mu2, const double p2, const double m02, const double m12) const
.
Definition: PVfunctions.cpp:120
SUSYMatching::mcdd2Chi0Chi0
WilsonCoefficient mcdd2Chi0Chi0
Definition: SUSYMatching.h:319
SUSYMatching::CMBMll
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)
operator basis: current current; qcd penguins; magnetic and chromomagnetic penguins; semileptonic
Definition: SUSYMatching.cpp:3480
SUSY::getMneu
gslpp::vector< double > getMneu() const
Gets the neutralino masses.
Definition: SUSY.h:294
SUSYMatching::PGRL
gslpp::complex PGRL(int j, int i)
Definition: SUSYMatching.cpp:1313
SUSYMatching::AmpTauALN
gslpp::matrix< gslpp::complex > AmpTauALN
Definition: SUSYMatching.h:423
SUSYMatching::PRLk
gslpp::complex PRLk(int j, int i, int k)
Definition: SUSYMatching.cpp:1494
SUSY::getCosb
double getCosb() const
Gets .
Definition: SUSY.h:195
SUSYMatching::Leptfzc
std::complex< double > Leptfzc[3][2][2]
Definition: SUSYMatching.h:381
SUSYMatching::C9_Lepton
virtual gslpp::vector< gslpp::complex > C9_Lepton(int n)
Calculates and Wilson coefficients for the process .
Definition: SUSYMatching.cpp:7472
SUSY::getTUhat
gslpp::matrix< gslpp::complex > getTUhat() const
Gets the trilinear-coupling matrix for up-type squarks.
Definition: SUSY.h:331
SUSYMatching::cosb
double cosb
Definition: SUSYMatching.h:471
SUSYMatching::mcmueconv
WilsonCoefficient mcmueconv
Definition: SUSYMatching.h:321
QCD::DOWN
Definition: QCD.h:325
SUSYMatching::CMDLi3j
virtual std::vector< WilsonCoefficient > & CMDLi3j(int li_lj)
Wilson coefficient for the process .
Definition: SUSYMatching.cpp:7566
FULLNLO
Definition: OrderScheme.h:37
StandardModel::getAle
double getAle() const
A get method to retrieve the fine-structure constant .
Definition: StandardModel.h:748
SUSYMatching::VUDHH_cache
gslpp::matrix< gslpp::complex > VUDHH_cache
Definition: SUSYMatching.h:664
SUSYMatching::mcdbs2ggT
WilsonCoefficient mcdbs2ggT
Definition: SUSYMatching.h:315
SUSYMatching::mcdbd2HpT
WilsonCoefficient mcdbd2HpT
Definition: SUSYMatching.h:313
gslpp::vector< gslpp::complex >
SUSYMatching::NLlE
gslpp::matrix< gslpp::complex > NLlE
Definition: SUSYMatching.h:398
SUSYMatching::mcdd2HpT
WilsonCoefficient mcdd2HpT
Definition: SUSYMatching.h:319
QCD::NEUTRINO_1
Definition: QCD.h:311
SUSY::getRl
gslpp::matrix< gslpp::complex > getRl() const
Gets the rotation matrix for charged sleptons.
Definition: SUSY.h:468
SUSY::IsFlag_ch
bool IsFlag_ch() const
Definition: SUSY.h:86
SUSY::getMsu2
gslpp::vector< double > getMsu2() const
Gets the up-type squark mass squared.
Definition: SUSY.h:349
SUSYMatching::DeltaDL_Cache
gslpp::matrix< gslpp::complex > DeltaDL_Cache
Definition: SUSYMatching.h:622
StandardModel::getMuw
double getMuw() const
A get method to retrieve the matching scale around the weak scale.
Definition: StandardModel.h:938
SUSYMatching::v
double v
Definition: SUSYMatching.h:472
SUSYMatching::Dk
double Dk(double x, double y, double z, double t, int k)
Definition: SUSYMatching.cpp:469
QCD::MU
Definition: QCD.h:314
SUSYMatching::mym_sn_sq
gslpp::vector< double > mym_sn_sq
Definition: SUSYMatching.h:348
SUSYMatching::mcdbs2Hp
WilsonCoefficient mcdbs2Hp
Definition: SUSYMatching.h:315
SUSYMatching::gW
double gW
Definition: SUSYMatching.h:475
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310
SUSYMatching::Leptf2
gslpp::matrix< double > Leptf2
Definition: SUSYMatching.h:380
SUSYMatching::mym_sd_sq
gslpp::vector< double > mym_sd_sq
Definition: SUSYMatching.h:348
SUSY::getMHa
double getMHa() const
Gets the pseudo-scalar Higgs mass.
Definition: SUSY.h:231
SUSY::IsFlag_ne
bool IsFlag_ne() const
Definition: SUSY.h:91
StandardModel::getLeptons
Particle getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
Definition: StandardModel.h:712