10#include <gsl/gsl_integration.h>
11#include <gsl/gsl_sf_dilog.h>
21mculeptonnu(5,
NDR,
LO),
44 final_result = (ratio_sq*(-2 + 3*ratio_sq) - 2*(-1 + ratio_sq)*sqrt(-1 + 4*ratio_sq)*
45 (M_PI/2 - atan(sqrt(-1 + 4*ratio_sq))) - 2*(-1 + ratio_sq)*sqrt(-1 + 4*ratio_sq)*
46 atan((-1 + 2*ratio_sq)/sqrt(-1 + 4*ratio_sq)) + (-1 + 3*ratio_sq)*log(ratio_sq))
47 /(2.*ratio_sq*ratio_sq*ratio_sq);
49 else if(ratio_sq==0.25){
50 final_result=-10 + 4*log(16);
52 else if(0.001<ratio_sq and ratio_sq<0.25){
54 double arccoth_ratio = 0.5 * log(((-1 + 2*ratio_sq)/sqrt(1 - 4*ratio_sq) + 1.0) / ((-1 + 2*ratio_sq)/sqrt(1 - 4*ratio_sq) - 1.0));
56 final_result = (2*arccoth_ratio + 2*sqrt(1 -
57 4*ratio_sq)*(ratio_sq*(-2 + 3*ratio_sq) - log(ratio_sq)) +
58 ratio_sq*(10*atanh((1 + sqrt(1 - 4*ratio_sq) - pow(ratio_sq,2))/(2 +
59 (-2 + ratio_sq)*ratio_sq)) + log((1 + sqrt(1 - 4*ratio_sq) -
60 2*ratio_sq)/8.) + 6*sqrt(1 - 4*ratio_sq)*log(ratio_sq) +
61 ratio_sq*log((16*pow(ratio_sq,8))/pow(1 + sqrt(1 - 4*ratio_sq) - 2*(2
62 + sqrt(1 - 4*ratio_sq) - ratio_sq)*ratio_sq,4)) + 2*log(1 + sqrt(1 -
63 4*ratio_sq) + 2*ratio_sq*(-2 - sqrt(1 - 4*ratio_sq) +
64 ratio_sq))))/(4.*sqrt(1 - 4*ratio_sq)*pow(ratio_sq,3));
67 final_result = (-7.0 / 6.0 - log(ratio_sq)) + 0.25*ratio_sq*(-13 - 12*log(ratio_sq));
79 final_result = ((-2 + 6*ratio_sq)*(M_PI/2 - atan(sqrt(-1 + 4*ratio_sq))) + (-2 +
80 6*ratio_sq)*atan((-1 + 2*ratio_sq)/sqrt(-1 + 4*ratio_sq)) + sqrt(-1
81 + 4*ratio_sq)*(-(ratio_sq*(2 + ratio_sq)) + (-1 +
82 ratio_sq)*log(ratio_sq)))/(2.*pow(ratio_sq,3)*sqrt(-1 + 4*ratio_sq));
84 else if(ratio_sq==0.25){
85 final_result= -34 + 24*log(4);
87 else if(0.001<ratio_sq and ratio_sq<0.25){
89 final_result = -0.5*(ratio_sq*(2 + ratio_sq) - (-1 + ratio_sq)*log(ratio_sq) +
90 (3*ratio_sq*log((2*ratio_sq)/(1 + sqrt(1 - 4*ratio_sq) - 2*ratio_sq))
91 + log((-2*ratio_sq)/(-1 + sqrt(1 - 4*ratio_sq) + 2*ratio_sq)))/sqrt(1
92 - 4*ratio_sq))/pow(ratio_sq,3);
95 final_result = ((11 + 6*log(ratio_sq))/6. + (ratio_sq*(89 + 60*log(ratio_sq)))/12.);
109 throw std::runtime_error(
"The implemented F3oneloopgm2 only works for values of the ratio"
110 " below one. Add a table interpolation if you need higher values"
113 else if(ratio_sq==1.){
116 else if(0.001<ratio_sq and ratio_sq<1.){
118 final_result = ((-2 + ratio_sq)*ratio_sq + 2*(-1 + ratio_sq)*log(1 - ratio_sq))/(2.*ratio_sq*ratio_sq*ratio_sq);
121 final_result = (-(1/6) - ratio_sq/12);
157 double mHp2 =
myGTHDM.getMyGTHDMCache()->mHp2;
160 gslpp::complex yl1 =
myGTHDM.getMyGTHDMCache()->yl1;
161 gslpp::complex yl2 =
myGTHDM.getMyGTHDMCache()->yl2;
162 gslpp::complex yl3 =
myGTHDM.getMyGTHDMCache()->yl3;
163 gslpp::complex
sl =
myGTHDM.getMyGTHDMCache()->sl;
186 double rmu_hSM, rmu_h, rmu_H, rmu_A, rmu_Hp;
187 double part_hSM, part_h, part_H, part_A, part_Hp;
190 throw std::runtime_error(
"The implemented approximation for g-2_\\mu only works for Higgs masses above 10 GeV.");
194 throw std::runtime_error(
"(g-2) is only available in the A2HDM.");
197 if (!
myGTHDM.getCPconservationflag()) {
199 throw std::runtime_error(
"(g-2) is only available in the CP-conserving limit.");
207 rmu_Hp =
mMU *
mMU / mHp2;
217 gminus2muLO =
GF *
mMU *
mMU / (4.0 * M_PI * M_PI * sqrt(2.0)) * (-part_hSM + part_h + part_H + part_A + part_Hp);
228 double integ = (2.0 * x * (1.0 - x) - 1.0) * log(x * (1.0 - x) / params.
a) / (x * (1.0 - x) - params.
a);
234 double integ = log(x * (1.0 - x) / params.
a) / (x * (1.0 - x) - params.
a);
243 gsl_integration_glfixed_table * w
244 = gsl_integration_glfixed_table_alloc(100);
248 F.params =
reinterpret_cast<void *
> (¶ms);
250 result = gsl_integration_glfixed(&F, 0, 1, w);
252 gsl_integration_glfixed_table_free(w);
262 gsl_integration_glfixed_table * w
263 = gsl_integration_glfixed_table_alloc(100);
267 F.params =
reinterpret_cast<void *
> (¶ms);
269 result = gsl_integration_glfixed(&F, 0, 1, w);
271 gsl_integration_glfixed_table_free(w);
277 gslpp::complex result;
281 result = gslpp::complex::i() * sqrt(-x);
287 gslpp::complex result;
289 result = pow(basis, exp);
291 result = pow(-basis, exp)*(cos(M_PI * exp) + gslpp::complex::i() * sin(M_PI * exp));
298 gslpp::complex result;
300 result = log(argument.abs()) + gslpp::complex::i() * argument.arg();
375 gslpp::complex rsqc = ratio_sq;
378 if (ratio_sq == 0.25) {
379 final_result = -2 * ratio_sq;
382 if (ratio_sq < 0.001) {
383 final_result = -(1 / 6.)*(ratio_sq * (12 + M_PI * M_PI - 12 * ratio_sq - 9 * ratio_sq * ratio_sq +
384 2 * M_PI * M_PI * ratio_sq * ratio_sq + 6 * (1 + 2 * ratio_sq + 3 * ratio_sq * ratio_sq) * log(ratio_sq) +
385 (3 + 6 * ratio_sq * ratio_sq) * log(ratio_sq) * log(ratio_sq)));
387 final_result = ((rsqc * ((pow(M_PI, 2) - 12 * sqrt(1 - 4 * rsqc) - 6 * sqrt(1 - 4 * rsqc) * log(rsqc) +
388 3 * pow(log((-2 * rsqc) / (-1 + sqrt(1 - 4 * rsqc) + 2 * rsqc)), 2) -
389 2 * rsqc * (pow(M_PI, 2) + 6 * pow(log(1 - sqrt(1 - 4 * rsqc)), 2) -
390 6 * pow(log(1 + sqrt(1 - 4 * rsqc)), 2) +
391 2 * arctanh(sqrt(1 - 4 * rsqc)) * log(4096 * pow(rsqc, 6)) +
392 3 * pow(log((-2 * rsqc) / (-1 + sqrt(1 - 4 * rsqc) + 2 * rsqc)), 2))) / 6. +
393 (2 - 4 * rsqc) *
PolyLog.
Li2(-0.5 * (1 + sqrt(1 - 4 * rsqc) - 2 * rsqc) / rsqc))) / sqrt(1 - 4 * rsqc)).real();
399 return (final_result);
404 gslpp::complex rsqc = ratio_sq;
407 if (ratio_sq == 0.25) {
408 final_result = log(2);
411 if (ratio_sq < 0.001) {
412 final_result = (ratio_sq * (pow(M_PI, 2) + 3 * pow(log(ratio_sq), 2))) / 6. + (pow(ratio_sq, 2)*(-6 + pow(M_PI, 2)
413 + 6 * log(ratio_sq) + 3 * pow(log(ratio_sq), 2))) / 3. + (pow(ratio_sq, 3)*(-11 + 2 * pow(M_PI, 2)
414 + 14 * log(ratio_sq) + 6 * pow(log(ratio_sq), 2))) / 2.;
416 final_result = ((rsqc * (-
PolyLog.
Li2(-0.5 * (1 + sqrt(1 - 4 * rsqc) - 2 * rsqc) / rsqc) +
417 PolyLog.
Li2((-1 + sqrt(1 - 4 * rsqc) + 2 * rsqc) / (2. * rsqc)))) / sqrt(1 - 4 * rsqc)).real();
423 return (final_result);
428 gslpp::complex rsqc = ratio_sq;
431 if (ratio_sq == 0.25) {
432 final_result = (1 - log(4)) / 4;
435 if (ratio_sq < 0.001) {
436 final_result = (ratio_sq * (2 + log(ratio_sq))) / 2. + (pow(ratio_sq, 2)*(-pow(M_PI, 2) - 3 * pow(log(ratio_sq), 2))) / 6.
437 + (pow(ratio_sq, 3)*(6 - pow(M_PI, 2) - 6 * log(ratio_sq) - 3 * pow(log(ratio_sq), 2))) / 3.;
439 final_result = ((rsqc * (6 + 3 * log(rsqc) + (rsqc * (pow(M_PI, 2) + 6 * arctanh(sqrt(1 - 4 * rsqc)) * log((-2 * rsqc) / (-1 + sqrt(1 - 4 * rsqc)
440 + 2 * rsqc)) + 12 *
PolyLog.
Li2(-0.5 * (1 + sqrt(1 - 4 * rsqc) - 2 * rsqc) / rsqc))) / sqrt(1 - 4 * rsqc))) / 6.).real();
446 return (final_result);
451 gslpp::complex rsqc = ratio_sq;
454 if (ratio_sq == 0.25) {
455 final_result = 19. / 16;
458 if (ratio_sq < 0.001) {
459 final_result = (ratio_sq * (2 + log(ratio_sq))) / 2. + (pow(ratio_sq, 3)*(-51 + pow(M_PI, 2) + 51 * log(ratio_sq) + 3 * pow(log(ratio_sq), 2))) / 3.
460 + (pow(ratio_sq, 2)*(180 + 17 * pow(M_PI, 2) + 90 * log(ratio_sq) + 51 * pow(log(ratio_sq), 2))) / 12.;
462 final_result = ((rsqc * (12 * sqrt(1 - 4 * rsqc)*(1 + 15 * rsqc) + pow(M_PI, 2) * rsqc * (-17 + 30 * rsqc) + 6 * sqrt(1 - 4 * rsqc) * log(rsqc)
463 + 3 * rsqc * ((17 - 30 * rsqc) * log(1 + sqrt(1 - 4 * rsqc)) * log((1 + sqrt(1 - 4 * rsqc)) / pow(rsqc, 2)) + 30 * sqrt(1 - 4 * rsqc) * log(rsqc)
464 + (-17 + 30 * rsqc)*(8 * arctanh(sqrt(1 - 4 * rsqc)) * log(2) + log(1 - sqrt(1 - 4 * rsqc))*(3 * log(1 - sqrt(1 - 4 * rsqc))
465 - 2 * log((1 + sqrt(1 - 4 * rsqc)) * rsqc)))) + 12 * rsqc * (-17 + 30 * rsqc) *
PolyLog.
Li2(-0.5 * (1 + sqrt(1 - 4 * rsqc) - 2 * rsqc) / rsqc))) / (12. * sqrt(1 - 4 * rsqc))).real();
471 return (final_result);
551 double Vtb2 = (
myGTHDM.getVCKM()(2, 2)).abs2();
567 gslpp::complex yu1 =
myGTHDM.getMyGTHDMCache()->yu1;
568 double yu1R = yu1.real();
569 double yu1I = yu1.imag();
570 gslpp::complex yu2 =
myGTHDM.getMyGTHDMCache()->yu2;
571 double yu2R = yu2.real();
572 double yu2I = yu2.imag();
573 gslpp::complex yu3 =
myGTHDM.getMyGTHDMCache()->yu3;
574 double yu3R = yu3.real();
575 double yu3I = yu3.imag();
577 gslpp::complex yd1 =
myGTHDM.getMyGTHDMCache()->yd1;
578 double yd1R = yd1.real();
579 double yd1I = yd1.imag();
580 gslpp::complex yd2 =
myGTHDM.getMyGTHDMCache()->yd2;
581 double yd2R = yd2.real();
582 double yd2I = yd2.imag();
583 gslpp::complex yd3 =
myGTHDM.getMyGTHDMCache()->yd3;
584 double yd3R = yd3.real();
585 double yd3I = yd3.imag();
587 gslpp::complex yl1 =
myGTHDM.getMyGTHDMCache()->yl1;
588 double yl1R = yl1.real();
589 double yl1I = yl1.imag();
590 gslpp::complex yl2 =
myGTHDM.getMyGTHDMCache()->yl2;
591 double yl2R = yl2.real();
592 double yl2I = yl2.imag();
593 gslpp::complex yl3 =
myGTHDM.getMyGTHDMCache()->yl3;
594 double yl3R = yl3.real();
595 double yl3I = yl3.imag();
624 gslpp::complex
su =
myGTHDM.getMyGTHDMCache()->su;
625 gslpp::complex
sd =
myGTHDM.getMyGTHDMCache()->sd;
626 gslpp::complex
sl =
myGTHDM.getMyGTHDMCache()->sl;
639 double mHp2 =
myGTHDM.getMyGTHDMCache()->mHp2;
642 double R11 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(0,0);
643 double R12 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(0,1);
644 double R13 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(0,2);
645 double R21 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(1,0);
646 double R22 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(1,1);
647 double R23 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(1,2);
648 double R31 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(2,0);
649 double R32 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(2,1);
650 double R33 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(2,2);
654 double Relambda7 =
myGTHDM.getRelambda7();
655 double Imlambda7 =
myGTHDM.getImlambda7();
662 lambdaHph = R11 *
lambda3 + R12 * Relambda7 - R13*Imlambda7;
663 lambdaHpH = R21 *
lambda3 + R22 * Relambda7 - R23*Imlambda7;
664 lambdaHpA = R31 *
lambda3 + R32 * Relambda7 - R33*Imlambda7;
676 double rsqt_h = mt * mt /
mH1_2;
677 double rsqt_H = mt * mt /
mH2_2;
678 double rsqt_A = mt * mt /
mH3_2;
679 double rsqt_Hp = mt * mt / mHp2;
680 double rsqt_W = mt * mt / (
Mw *
Mw);
682 double rsqb_h = mb * mb /
mH1_2;
683 double rsqb_H = mb * mb /
mH2_2;
684 double rsqb_A = mb * mb /
mH3_2;
685 double rsqb_Hp = mb * mb / mHp2;
686 double rsqb_W = mb * mb / (
Mw *
Mw);
689 double rsqtau_h = mTAU * mTAU /
mH1_2;
690 double rsqtau_H = mTAU * mTAU /
mH2_2;
691 double rsqtau_A = mTAU * mTAU /
mH3_2;
692 double rsqtau_Hp = mTAU * mTAU / mHp2;
693 double rsqtau_W = mTAU * mTAU / (
Mw *
Mw);
696 double rsqHp_h = mHp2 /
mH1_2;
697 double rsqHp_H = mHp2 /
mH2_2;
698 double rsqHp_A = mHp2 /
mH3_2;
699 double rsqHp_W = mHp2 / (
Mw*
Mw);
702 double rsqh_Hp =
mH1_2 / mHp2;
703 double rsqH_Hp =
mH2_2 / mHp2;
704 double rsqA_Hp =
mH3_2 / mHp2;
713 double rsqW_Hp =
Mw *
Mw / mHp2;
717 double intgl_x2_1mx_G_rsq_tHp_bHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G(rsqt_Hp,rsqb_Hp);
718 double intgl_x2_1mx_G_rsq_tW_bW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G(rsqt_W,rsqb_W);
720 double intgl_x2_1px_G_rsq_tHp_bHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1px_G(rsqt_Hp,rsqb_Hp);
721 double intgl_x2_1px_G_rsq_tW_bW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1px_G(rsqt_W,rsqb_W);
723 double intgl_x_1mx2_G_rsq_tHp_bHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x_1mx2_G(rsqt_Hp,rsqb_Hp);
724 double intgl_x_1mx2_G_rsq_tW_bW =
myGTHDM.getMyGTHDMCache()->ip_integral_x_1mx2_G(rsqt_W,rsqb_W);
726 double intgl_x_1mx_1px_G_rsq_tHp_bHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x_1mx_1px_G(rsqt_Hp,rsqb_Hp);
727 double intgl_x_1mx_1px_G_rsq_tW_bW =
myGTHDM.getMyGTHDMCache()->ip_integral_x_1mx_1px_G(rsqt_W,rsqb_W);
729 double intgl_x_1mx2_G_variable_set_0_rsq_tauHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x_1mx2_G_variable_set_0(rsqtau_Hp);
730 double intgl_x_1mx2_G_variable_set_0_rsq_tauW =
myGTHDM.getMyGTHDMCache()->ip_integral_x_1mx2_G_variable_set_0(rsqtau_W);
733 double intgl_x2_1mx_G_rsq_WHp_hHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G(rsqW_Hp,rsqh_Hp);
734 double intgl_x2_1mx_G_variable_set_1_rsq_hW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G_variable_set_1(rsqh_W);
735 double intgl_x2_G_rsq_WHp_hHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_G(rsqW_Hp,rsqh_Hp);
736 double intgl_x2_G_variable_set_1_rsq_hW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_G_variable_set_1(rsqh_W);
738 double intgl_x2_1mx_G_rsq_HpW_hW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G(rsqHp_W,rsqh_W);
739 double intgl_x2_1mx_G_variable_set_1_rsq_hHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G_variable_set_1(rsqh_Hp);
743 double intgl_x2_1mx_G_rsq_WHp_HHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G(rsqW_Hp,rsqH_Hp);
744 double intgl_x2_1mx_G_variable_set_1_rsq_HW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G_variable_set_1(rsqH_W);
745 double intgl_x2_G_rsq_WHp_HHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_G(rsqW_Hp,rsqH_Hp);
746 double intgl_x2_G_variable_set_1_rsq_HW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_G_variable_set_1(rsqH_W);
748 double intgl_x2_1mx_G_rsq_HpW_HW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G(rsqHp_W,rsqH_W);
749 double intgl_x2_1mx_G_variable_set_1_rsq_HHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G_variable_set_1(rsqH_Hp);
753 double intgl_x2_1mx_G_rsq_WHp_AHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G(rsqW_Hp,rsqA_Hp);
754 double intgl_x2_1mx_G_variable_set_1_rsq_AW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G_variable_set_1(rsqA_W);
755 double intgl_x2_G_rsq_WHp_AHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_G(rsqW_Hp,rsqA_Hp);
756 double intgl_x2_G_variable_set_1_rsq_AW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_G_variable_set_1(rsqA_W);
758 double intgl_x2_1mx_G_rsq_HpW_AW =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G(rsqHp_W,rsqA_W);
759 double intgl_x2_1mx_G_variable_set_1_rsq_AHp =
myGTHDM.getMyGTHDMCache()->ip_integral_x2_1mx_G_variable_set_1(rsqA_Hp);
765 double a1_const = (Ale *
mMU *
mMU / (4 * M_PI * M_PI * M_PI * vev * vev));
787 a1_total = -a1_SM + a1_h + a1_H + a1_A;
809 double a2_const = (Ale *
mMU *
mMU / (8 * M_PI * M_PI * M_PI));
821 a2_total = -a2_SM + a2_h + a2_H + a2_A;
826 double a3_const = (Ale *
mMU *
mMU / (8 * M_PI * M_PI * M_PI * vev * vev));
838 a3_total = -a3_SM + a3_h + a3_H + a3_A;
841 double a4_const = (Ale *
mMU *
mMU / (32 * M_PI * M_PI * M_PI * vev * vev * sW2 * (mHp2 -
Mw *
Mw)));
849 a4_Hp_tb = a4_const * Nc * Vtb2 * (Qu * (
sd * (
sl.conjugate())).real()*mb*mb)*(intgl_x2_1mx_G_rsq_tHp_bHp - intgl_x2_1mx_G_rsq_tW_bW) ;
850 a4_Hp_tt = a4_const * Nc * Vtb2 * (Qu * (
su * (
sl.conjugate())).real()*mt*mt)*(intgl_x2_1px_G_rsq_tHp_bHp - intgl_x2_1px_G_rsq_tW_bW) ;
852 a4_Hp_bb = a4_const * Nc * Vtb2 * (Qd * (
sd * (
sl.conjugate())).real()*mb*mb)*(intgl_x_1mx2_G_rsq_tHp_bHp - intgl_x_1mx2_G_rsq_tW_bW) ;
853 a4_Hp_bt = a4_const * Nc * Vtb2 * (Qd * (
su * (
sl.conjugate())).real()*mt*mt)*(intgl_x_1mx_1px_G_rsq_tHp_bHp - intgl_x_1mx_1px_G_rsq_tW_bW) ;
855 a4_Hp_tau = a4_const * (-1 * (
sl * (
sl.conjugate())).real()*mTAU*mTAU)*(intgl_x_1mx2_G_variable_set_0_rsq_tauHp - intgl_x_1mx2_G_variable_set_0_rsq_tauW) ;
857 a4_total = a4_Hp_tb + a4_Hp_tt + a4_Hp_bb + a4_Hp_bt + a4_Hp_tau;
862 gslpp::complex img_i = gslpp::complex::i();
863 double a5_const = (Ale *
mMU *
mMU / (64 * M_PI * M_PI * M_PI * vev * vev * sW2 * (mHp2 -
Mw *
Mw)));
869 a5_h = a5_const*(
sl.conjugate()*R11*(R12 - img_i*R13)).real()*((mHp2+
Mw*
Mw-
mH1_2)*(intgl_x2_1mx_G_rsq_WHp_hHp -
870 intgl_x2_1mx_G_variable_set_1_rsq_hW) - 4*
Mw*
Mw*(intgl_x2_G_rsq_WHp_hHp - intgl_x2_G_variable_set_1_rsq_hW) );
872 a5_H = a5_const*(
sl.conjugate()*R21*(R22 - img_i*R23)).real()*((mHp2+
Mw*
Mw-
mH2_2)*(intgl_x2_1mx_G_rsq_WHp_HHp -
873 intgl_x2_1mx_G_variable_set_1_rsq_HW) - 4*
Mw*
Mw*(intgl_x2_G_rsq_WHp_HHp - intgl_x2_G_variable_set_1_rsq_HW) );
875 a5_A = a5_const*(
sl.conjugate()*R31*(R32 - img_i*R33)).real()*((mHp2+
Mw*
Mw-
mH3_2)*(intgl_x2_1mx_G_rsq_WHp_AHp -
876 intgl_x2_1mx_G_variable_set_1_rsq_AW) - 4*
Mw*
Mw*(intgl_x2_G_rsq_WHp_AHp - intgl_x2_G_variable_set_1_rsq_AW) );
878 a5_total = a5_h + a5_H + a5_A;
884 double a6_const = (Ale *
mMU *
mMU / (64 * M_PI * M_PI * M_PI * sW2 * (mHp2 -
Mw *
Mw)));
891 a6_h = a6_const * (
sl.conjugate()*(R12 - img_i*R13)).real() * lambdaHph *
892 (- intgl_x2_1mx_G_variable_set_1_rsq_hHp + intgl_x2_1mx_G_rsq_HpW_hW);
894 a6_H = a6_const * (
sl.conjugate()*(R22 - img_i*R23)).real() * lambdaHpH *
895 (- intgl_x2_1mx_G_variable_set_1_rsq_HHp + intgl_x2_1mx_G_rsq_HpW_HW);
897 a6_A = a6_const * (
sl.conjugate()*(R32 - img_i*R33)).real() * lambdaHpA *
898 (- intgl_x2_1mx_G_variable_set_1_rsq_AHp + intgl_x2_1mx_G_rsq_HpW_AW);
900 a6_total = a6_h + a6_H + a6_A;
903 double gminus2muNLO = a1_total + a2_total + a3_total + a4_total + a5_total + a6_total;
929 vmcgminus2mu = StandardModelMatching::CMgminus2mu();
952 std::stringstream out;
954 throw std::runtime_error(
"GeneralTHDMMatching::CMgminus2mu(): order " + out.str() +
" not implemented.\nOnly leading order (LO) or next-to-leading order (NLO) are allowed.");
958 return (vmcgminus2mu);
970 double xt = x_t(Mut);
973 gslpp::complex co =
GF / 4. / M_PI * MW *
myGTHDM.getCKM().computelamt_s();
975 double mHp2 =
myGTHDM.getmHp2();
976 double xHW = mHp2 / (MW * MW);
977 double xtH = xt / xHW;
981 double SWH = xtH * ((2.0 * xHW - 8.0) * log(xtH) / ((1.0 - xHW)*(1.0 - xtH)*(1.0 - xtH)) + 6.0 * xHW * log(xt) / ((1.0 - xHW)*(1.0 - xt)*(1.0 - xt))-(8.0 - 2.0 * xt) / ((1.0 - xt)*(1.0 - xtH))) *
su*
su;
982 double SHH = xtH * ((1.0 + xtH) / ((1.0 - xtH)*(1.0 - xtH)) + 2.0 * xtH * log(xtH) / ((1.0 - xtH)*(1.0 - xtH)*(1.0 - xtH))) *
su *
su *
su*
su;
983 double C1bsSRR = 4.0 * mb * mb * xt * xtH *
sd *
su / (mHp2 * (xtH - 1.0)*(xtH - 1.0)*(xtH - 1.0))
984 * (
sd *
su * (2.0 * (xtH - 1.0)-(xtH + 1.0) * log(xtH))
985 + (2.0 * xt * xt * (xtH - 1.0)*(xtH - 1.0)*(xtH - 1.0) * log(xt) / (xt - 1.0)
986 + 2.0 * xt * (xtH - 1.0)*((xt - xtH)*(xtH - 1.0)+(xtH - xt * xtH) * log(xtH))) / ((xt - 1.0)*(xt - xtH) * xtH));
998 std::stringstream out;
1000 throw std::runtime_error(
"GeneralTHDMMatching::CMdbs2(): order " + out.str() +
"not implemented");
1014 std::stringstream out;
1016 throw std::runtime_error(
"GeneralTHDMMatching::CMdbs2(): order " + out.str() +
"not implemented");
1069 double C10 =
su.abs2() * xt * xt / 8 * (1 / (xHp - xt) + xHp / ((xHp - xt)*(xHp - xt))*(log(xt) - log(xHp)));
1075 gslpp::complex CSboxU = xt / (8 * (xHp - xt))*(
sl *
su.conjugate()*(xt / (xt - 1) * log(xt)
1076 - xHp / (xHp - 1) * log(xHp))
1077 +
su *
sl.conjugate()*(1 - (xHp - xt * xt) / ((xHp - xt)*(xt - 1)) * log(xt)
1078 - (xHp * (xt - 1)) / ((xHp - xt)*(xHp - 1)) * log(xHp)) + 2 *
sd *
sl.conjugate()*(log(xt) - log(xHp)));
1086 gslpp::complex CPboxU = -xt / (8 * (xHp - xt))*(-
sl *
su.conjugate()*(xt / (xt - 1) * log(xt) - xHp / (xHp - 1) * log(xHp))
1087 +
su *
sl.conjugate()*(1 - (xHp - xt * xt) / ((xHp - xt)*(xt - 1)) * log(xt)
1088 - (xHp * (xt - 1)) / ((xHp - xt)*(xHp - 1)) * log(xHp)) + 2 *
sd *
sl.conjugate()*(log(xt) - log(xHp)));
1098 gslpp::complex CPZF = (xt / (4 * (xHp - xt)*(xHp - xt)))*(
sd *
su.conjugate()*(-((xt + xHp) / 2)
1099 + ((xt * xHp) / (xHp - xt))*(log(xHp) - log(xt))) +
1100 su.abs2()*(1 / (6 * (xHp - xt)))*((xHp * xHp - 8 * xHp * xt - 17 * xt * xt) / 6
1101 + ((xt * xt * (3 * xHp + xt)) / (xHp - xt))*(log(xHp) - log(xt))))
1102 + sW2 * (xt / (6 * (xHp - xt)*(xHp - xt)))*(
sd *
su.conjugate()*((5 * xt - 3 * xHp) / 2
1103 + ((xHp * (2 * xHp - 3 * xt)) / (xHp - xt))*(log(xHp) - log(xt))) -
1104 su.abs2()*(1 / (6 * (xHp - xt)))*(((4 * xHp * xHp * xHp - 12 * xHp * xHp * xHp * xt + 9 * xHp * xt * xt + 3 * xt * xt * xt) / (xHp - xt))* (log(xHp) - log(xt))
1105 - (17 * xHp * xHp - 64 * xHp * xt + 71.0 * xt * xt) / 6));
1109 gslpp::complex CPGBF =
su.abs2()*(1 - sW2)*(xt * xt / (4 * (xHp - xt)*(xHp - xt)))*
1110 (xHp * (log(xHp) - log(xt)) + xt - xHp);
1114 gslpp::complex CPZU = CPZF + CPGBF;
1123 double f1 = (1.0 / (2.0 * (xHp - xt)))*(-xHp + xt + xHp * log(xHp) -
1131 double f2 = (1.0 / (2.0 * (xHp - xt)))*(xt - ((xHp * xt) / (xHp - xt))*(log(xHp) - log(xt)));
1139 double f3 = (1.0 / (2.0 * (xHp - xt)))*
1140 (xHp - (xHp * xHp * log(xHp)) / (xHp - xt) + (xt * (2 * xHp - xt) * log(xt)) /
1150 double f4 = (1.0 / (4 * (xHp - xt)*(xHp - xt)))*((xt * (3.0 * xHp - xt)) / 2.0 -
1151 ((xHp * xHp * xt) / (xHp - xt))*(log(xHp) - log(xt)));
1159 double f5 = (1.0 / (4 * (xHp - xt)*(xHp - xt)))*((xt * (xHp - 3.0 * xt)) / 2.0 -
1160 ((xHp * xt * (xHp - 2.0 * xt)) / (xHp - xt))*(log(xHp) - log(xt)));
1168 double f6 = (1.0 / (2.0 * (xHp - xt)))*
1169 ((xt * (xt * xt - 3.0 * xHp * xt + 9 * xHp - 5 * xt - 2.0)) / (4 * (xt - 1.0)*(xt - 1.0)) +
1170 ((xHp * (xHp * xt - 3.0 * xHp + 2.0 * xt)) / (2.0 * (xHp - 1.0)*(xHp - xt))) *
1171 log(xHp) + ((xHp * xHp * (-2.0 * xt * xt * xt + 6 * xt * xt - 9 * xt + 2.0) +
1172 3.0 * xHp * xt * xt * (xt * xt - 2.0 * xt + 3.0) - xt * xt * (2.0 * xt * xt * xt - 3.0 * xt * xt +
1173 3.0 * xt + 1.0)) / (2.0 * (xt - 1.0)*(xt - 1.0)*(xt - 1.0)*(xHp - xt))) * log(xt));
1182 double f7 = (1.0 / (2.0 * (xHp - xt)))*
1183 (((xt * xt + xt - 8)*(xHp - xt)) / (4 * (xt - 1.0)*(xt - 1.0)) -
1184 ((xHp * (xHp + 2.0)) / (2.0 * (xHp - 1.0))) * log(xHp) +
1185 ((xHp * (xt * xt * xt - 3.0 * xt * xt + 3.0 * xt + 2.0) + 3.0 * (xt - 2.0) * xt * xt) /
1186 (2.0 * (xt - 1.0)*(xt - 1.0)*(xt - 1.0))) * log(xt));
1193 double f8 = (1.0 / (4 * (xHp - xt)))*((xt * log(xt)) / (xt - 1.0) -
1194 (xHp * log(xHp)) / (xHp - 1.0));
1203 double f9 = (1.0 / (8 * (xHp - xt)))*(xHp / (xHp - 1.0) +
1204 (xt * xt * log(xt)) / ((xt - 1.0)*(xHp - xt)) -
1205 ((xHp * (xHp * xt + xHp - 2.0 * xt)) / ((xHp - 1.0)*(xHp - 1.0)*(xHp - xt))) *
1212 double f10 = (1.0 / (8 * (xHp - xt)))*
1213 ((xHp - xt) / ((xHp - 1.0)*(xt - 1.0)) + ((xt * (xt - 2.0)) / (xt - 1.0)*(xt - 1.0)) *
1214 log(xt) - ((xHp * (xHp - 2.0)) / (xHp - 1.0)*(xHp - 1.0)) * log(xHp));
1222 gslpp::complex
g0 = (1.0 / (4.0 * (xHp - xt)))*((
sd *
su.conjugate()*(xt / (xHp - xt)*(log(xHp) - log(xt)) - 1.0))
1223 +
su.abs2()*(xt * xt / (2.0 * (xHp - xt)*(xHp - xt))*(log(xHp) - log(xt)) + (xHp - 3.0 * xt) / (4.0 * (xHp - xt))));
1230 gslpp::complex
g1a = -(3.0 / 4.0) +
sd *
su.conjugate()*(xt / (xHp - xt))*(1.0 - (xHp / (xHp - xt))*(log(xHp) - log(xt)))
1231 +
su.abs2()*(xt / (2.0 * (xHp - xt)*(xHp - xt)))*((xHp + xt) / 2.0 - ((xHp * xt) / (xHp - xt))*(log(xHp) - log(xt)));
1239 gslpp::complex
g2a =
sd *
sd *
su.conjugate() *
f1(xHp, xt) +
sd *
su.conjugate() *
su.conjugate() *
f2(xHp, xt) +
sd *
su.abs2() *
f3(xHp, xt)
1240 +
su *
su.abs2() *
f4(xHp, xt) -
su.conjugate() *
su.abs2() *
f5(xHp, xt) +
su *
f6(xHp, xt) -
su.conjugate() *
f7(xHp, xt) +
sd *
f1(xHp, xt);
1248 gslpp::complex
g3a =
sd *
sd *
su.conjugate() *
f1(xHp, xt) -
sd *
su.conjugate() *
su.conjugate() *
f2(xHp, xt)
1249 +
sd *
su.abs2() *
f3(xHp, xt) +
su *
su.abs2() *
f4(xHp, xt) +
su.conjugate() *
su.abs2() *
f5(xHp, xt)
1250 +
su *
f6(xHp, xt) +
su.conjugate() *
f7(xHp, xt) +
sd *
f1(xHp, xt);
1260gslpp::complex
GeneralTHDMMatching::CphiU(
double xHp,
double xt,
double vev,
double xphi,
double mu,
double Ri1,
double Ri2,
double Ri3,
double mHi_2,
double lambda3,
double Relambda7,
double Imlambda7, gslpp::complex su, gslpp::complex sd) {
1261 gslpp::complex i = gslpp::complex::i();
1262 gslpp::complex
CphiU = xt * ((1 / (2 * xphi))*(
su -
sd)*(1 +
su.conjugate() *
sd)*
1263 (Ri2 + i * Ri3) * mu + (vev * vev / mHi_2) *
lambdaHHphi(
lambda3, Relambda7, Imlambda7, Ri1, Ri2, Ri3) *
g0(xHp, xt,
su,
sd) + Ri1 * ((1 / (2.0 * xphi)) *
g1a(xHp, xt,
su,
sd)) + Ri2 * (1 / (2.0 * xphi) *
g2a(xHp, xt,
su,
sd)) + i * Ri3 * (1 / (2.0 * xphi)) *
g3a(xHp, xt,
su,
sd));
1275 gslpp::complex i = gslpp::complex::i();
1278 double Muw =
myGTHDM.getMuw();
1280 double mHp2 =
myGTHDM.getmHp2();
1288 double ml =
myGTHDM.getLeptons(lepton).getMass();
1293 double xt = (Mt_muw * Mt_muw) / (MW * MW);
1294 double xHp = (mHp2) / (MW * MW);
1297 double mHl =
myGTHDM.getMHl();
1298 double mH1_2 = mHl*mHl;
1310 double Imlambda7 =
myGTHDM.getMyGTHDMCache()->Imlambda7;
1311 double Relambda7 =
myGTHDM.getMyGTHDMCache()->Relambda7;
1314 double R11 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(0,0);
1315 double R12 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(0,1);
1316 double R13 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(0,2);
1317 double R21 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(1,0);
1318 double R22 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(1,1);
1319 double R23 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(1,2);
1320 double R31 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(2,0);
1321 double R32 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(2,1);
1322 double R33 =
myGTHDM.getMyGTHDMCache()->Rij_GTHDM(2,2);
1336 double xphi1 =
mH1_2 / (MW * MW);
1337 double xphi2 =
mH2_2 / (MW * MW);
1338 double xphi3 =
mH3_2 / (MW * MW);
1342 gslpp::complex yl1 = R11 + (R12 + i * R13) *
sl;
1343 gslpp::complex yl2 = R21 + (R22 + i * R23) *
sl;
1344 gslpp::complex yl3 = R31 + (R32 + i * R33) *
sl;
1348 gslpp::complex CPZU =
CPZUBll(xt, xHp, sW2,
su,
sd);
1350 gslpp::complex CSphi1U = yl1.real() *
CphiU(xHp, xt, vev, xphi1, mu, R11, R12, R13,
mH1_2,
lambda3, Relambda7, Imlambda7,
su,
sd);
1351 gslpp::complex CSphi2U = yl2.real() *
CphiU(xHp, xt, vev, xphi2, mu, R21, R22, R23,
mH2_2,
lambda3, Relambda7, Imlambda7,
su,
sd);
1352 gslpp::complex CSphi3U = yl3.real() *
CphiU(xHp, xt, vev, xphi3, mu, R31, R32, R33,
mH3_2,
lambda3, Relambda7, Imlambda7,
su,
sd);
1354 gslpp::complex CPphi1U = i * yl1.imag() *
CphiU(xHp, xt, vev, xphi1, mu, R11, R12, R13,
mH1_2,
lambda3, Relambda7, Imlambda7,
su,
sd);
1355 gslpp::complex CPphi2U = i * yl2.imag() *
CphiU(xHp, xt, vev, xphi2, mu, R21, R22, R23,
mH2_2,
lambda3, Relambda7, Imlambda7,
su,
sd);
1356 gslpp::complex CPphi3U = i * yl3.imag() *
CphiU(xHp, xt, vev, xphi3, mu, R31, R32, R33,
mH3_2,
lambda3, Relambda7, Imlambda7,
su,
sd);
1361 gslpp::complex CSphiU = CSboxU + CSphi1U + CSphi2U + CSphi3U;
1362 gslpp::complex CPphiU = CPboxU + CPZU + CPphi1U + CPphi2U + CPphi3U;
1371 std::stringstream out;
1373 throw std::runtime_error(
"GeneralTHDMMatching::CMBMll(): scheme " + out.str() +
"not implemented");
1386 std::stringstream out;
1388 throw std::runtime_error(
"GeneralTHDMMatching::CMBMll(): order " + out.str() +
"not implemeted");
1390 vmcBMll.push_back(
mcBMll);
1401 if (!
myGTHDM.getATHDMflag()) {
1402 throw std::runtime_error(
"CMdiujleptonknu is only available in the ATHDM at the moment.");
1407 double Muw =
myGTHDM.getMuw();
1413 if (i == 0 && j == 0) {
1417 }
else if (i == 1 && j == 0) {
1421 }
else if (i == 2 && j == 0) {
1425 }
else if (i == 2 && j == 1) {
1429 }
else if (i == 0 && j == 1) {
1433 }
else if (i == 1 && j == 1) {
1438 throw std::runtime_error(
"GeneralTHDMMatching::CMuleptonnu(): doesn't include that meson");
1440 double mP =
myGTHDM.getMesons(mymeson).getMass();
1441 gslpp::complex zetad =
myGTHDM.getNd_11();
1442 gslpp::complex zetal =
myGTHDM.getNl_11();
1443 gslpp::complex zetau =
myGTHDM.getNu_11();
1444 double mHp2 =
myGTHDM.getmHp2();
1447 vmculeptonnu = StandardModelMatching::CMdiujleptonknu(i, j, k);
1455 mculeptonnu.
setCoeff(0, -4. *
GF *
myCKM(j, i).conjugate() / sqrt(2.)*(mP * mP * zetal.conjugate()*(md * zetad + mu * zetau) / mHp2 / (md + mu)),
LO);
1458 std::stringstream out;
1460 throw std::runtime_error(
"GeneralTHDMMatching::CMdiujleptonknu(): order " + out.str() +
"not implemented");
1463 return (vmculeptonnu);
1471 if (!
myGTHDM.getATHDMflag()) {
1472 throw std::runtime_error(
"bsgamma is only available in the ATHDM at the moment.");
1476 double Muw =
myGTHDM.getMuw();
1478 double Mut =
myGTHDM.getMut();
1481 double mHp =
myGTHDM.getmHp();
1483 gslpp::complex sigmau =
myGTHDM.getNu_11();
1484 gslpp::complex sigmad =
myGTHDM.getNd_11();
1486 gslpp::complex co = 1.;
1491 for (
int j = 0; j < 8; j++) {
1495 for (
int j = 0; j < 8; j++) {
1499 for (
int j = 0; j < 8; j++) {
1504 std::stringstream out;
1506 throw std::runtime_error(
"THDMMatching::CMbsg(): order " + out.str() +
"not implemented");
1509 vmcbsg.push_back(
mcbsg);
1518 if (
su.abs() == sigmau.abs() &&
su.arg() == sigmau.arg() &&
1519 sd.abs() == sigmad.abs() &&
sd.arg() == sigmad.arg() &&
1531 std::stringstream out;
1533 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1543 double x = mt * mt / mhp / mhp;
1551 double xm3 = xm2*xm;
1552 double xm4 = xm3*xm;
1553 double xm6 = xm4*xm2;
1554 double xm8 = xm4*xm4;
1555 double xo = 1. - 1. / x;
1557 double xo4 = xo * xo2*xo;
1558 double xo6 = xo4*xo2;
1559 double xo8 = xo4*xo4;
1562 double Lx3 = Lx2*Lx;
1563 double Li2 = gsl_sf_dilog(1. - 1. / x);
1565 double abssu =
su.abs();
1566 double abssu2 = abssu*abssu;
1567 gslpp::complex susd =
su.conjugate() *
sd;
1569 double lstmu = 2. * log(mu / mt);
1571 double n70ct = -((7. - 5. * x - 8. * x2) / (36. * xm3) + (2. * x - 3. * x2) * Lx / (6. * xm4)) * x / 2.;
1572 double n70fr = ((3. * x - 5. * x2) / (6. * xm2) + (2. * x - 3. * x2) * Lx / (3. * xm3)) / 2.;
1574 double n80ct = -((2. + 5. * x - x2) / (12. * xm3) + (x * Lx) / (2. * xm4)) * x / 2.;
1575 double n80fr = ((3. * x - x2) / (2. * xm2) + (x * Lx) / xm3) / 2.;
1577 double n41ct = (-16. * x + 29. * x2 - 7. * x3) / (36. * xm3) + (-2. * x + 3. * x2) * Lx / (6. * xm4);
1579 double n71ct = (797. * x - 5436. * x2 + 7569. * x3 - 1202. * x4) / (486. * xm4) +
1580 (36. * x2 - 74. * x3 + 16. * x4) *
Li2 / (9. * xm4) +
1581 ((7. * x - 463. * x2 + 807. * x3 - 63. * x4) * Lx) / (81. * xm3 * xm2);
1582 double cd71ct = (-31. * x - 18. * x2 + 135. * x3 - 14. * x4) / (27. * xm4) + (-28. * x2 + 46. * x3 + 6. * x4) * Lx / (9. * xm3 * xm2);
1583 double n71fr = (28. * x - 52. * x2 + 8. * x3) / (3. * xm3) + (-48. * x + 112. * x2 - 32. * x3) *
Li2 / (9. * xm3) +
1584 (66. * x - 128. * x2 + 14. * x3) * Lx / (9. * xm4);
1585 double cd71fr = (42. * x - 94. * x2 + 16. * x3) / (9. * xm3) + (32. * x - 56. * x2 - 12. * x3) * Lx / (9. * xm4);
1587 double n81ct = (1130. * x - 18153. * x2 + 7650. * x3 - 4451. * x4) / (1296. * xm4) +
1588 (30. * x2 - 17. * x3 + 13. * x4) *
Li2 / (6. * xm4) +
1589 (-2. * x - 2155. * x2 + 321. * x3 - 468. * x4) * Lx / (216. * xm3 * xm2);
1590 double cd81ct = (-38. * x - 261. * x2 + 18. * x3 - 7. * x4) / (36. * xm4) + (-31. * x2 - 17. * x3) * Lx / (6. * xm3 * xm2);
1591 double n81fr = (143. * x - 44. * x2 + 29. * x3) / (8. * xm3) + (-36. * x + 25. * x2 - 17. * x3) *
Li2 / (6. * xm3) +
1592 (165. * x - 7. * x2 + 34. * x3) * Lx / (12. * xm4);
1593 double cd81fr = (81. * x - 16. * x2 + 7. * x3) / (6. * xm3) + (19. * x + 17. * x2) * Lx / (3. * xm4);
1595 double n32ct = (10. * x4 + 30. * x2 - 20. * x) / (27. * xm4) *
Li2 +
1596 (30. * x3 - 66. * x2 - 56. * x) / (81. * xm4) * Lx + (6. * x3 - 187. * x2 + 213. * x) / (-81. * xm3);
1597 double cd32ct = (-30. * x2 + 20. * x) / (27. * xm4) * Lx + (-35. * x3 + 145. * x2 - 80. * x) / (-81. * xm3);
1599 double n42ct = (515. * x4 - 906. * x3 + 99. * x2 + 182. * x) / (54. * xm4) *
Li2 +
1600 (1030. * x4 - 2763. * x3 - 15. * x2 + 980. * x) / (-108. * xm3 * xm2) * Lx +
1601 (-29467. * x4 + 68142. * x3 - 6717. * x2 - 18134. * x) / (1944. * xm4);
1602 double cd42ct = (-375. * x3 - 95. * x2 + 182. * x) / (-54. * xm3 * xm2) * Lx +
1603 (133. * x4 - 108. * x3 + 4023. * x2 - 2320. * x) / (324. * xm4);
1605 double cd72ct = -(x * (67930. * x4 - 470095. * x3 + 1358478. * x2 - 700243. * x + 54970.)) / (-2187. * xm3 * xm2) +
1606 (x * (10422. * x4 - 84390. * x3 + 322801. * x2 - 146588. * x + 1435.)) / (729. * xm6) * Lx +
1607 (2. * x2 * (260. * x3 - 1515. * x2 + 3757. * x - 1446.)) / (-27. * xm3 * xm2) *
Li2;
1608 double ce72ct = (x * (-518. * x4 + 3665. * x3 - 17397. * x2 + 3767. * x + 1843.)) / (-162. * xm3 * xm2) +
1609 (x2 * (-63. * x3 + 532. * x2 + 2089. * x - 1118.)) / (27. * xm6) * Lx;
1610 double cd72fr = -(x * (3790. * x3 - 22511. * x2 + 53614. * x - 21069.)) / (81. * xm4) -
1611 (2. * x * (-1266. * x3 + 7642. * x2 - 21467. * x + 8179.)) / (-81. * xm3 * xm2) * Lx +
1612 (8. * x * (139. * x3 - 612. * x2 + 1103. * x - 342.)) / (27. * xm4) *
Li2;
1613 double ce72fr = -(x * (284. * x3 - 1435. * x2 + 4304. * x - 1425.)) / (27. * xm4) -
1614 (2. * x * (63. * x3 - 397. * x2 - 970. * x + 440.)) / (-27. * xm3 * xm2) * Lx;
1616 double cd82ct = -(x * (522347. * x4 - 2423255. * x3 + 2706021. * x2 - 5930609. * x + 148856)) / (-11664. * xm3 * xm2) +
1617 (x * (51948. * x4 - 233781. * x3 + 48634. * x2 - 698693. * x + 2452.)) / (1944. * xm6) * Lx +
1618 (x2 * (481. * x3 - 1950. * x2 + 1523. * x - 2550.)) / (-18. * xm3 * xm2) *
Li2;
1619 double ce82ct = (x * (-259. * x4 + 1117. * x3 + 2925. * x2 + 28411. * x + 2366.)) / (-216. * xm3 * xm2) -
1620 (x2 * (139. * x2 + 2938. * x + 2683.)) / (36. * xm6) * Lx;
1621 double cd82fr = -(x * (1463. * x3 - 5794. * x2 + 5543. * x - 15036.)) / (27. * xm4) -
1622 (x * (-1887. * x3 + 7115. * x2 + 2519. * x + 19901.)) / (-54. * xm3 * xm2) * Lx -
1623 (x * (-629. * x3 + 2178. * x2 - 1729. * x + 2196.)) / (18. * xm4) *
Li2;
1624 double ce82fr = -(x * (259. * x3 - 947. * x2 - 251. * x - 5973.)) / (36. * xm4)-
1625 (x * (139. * x2 + 2134. * x + 1183.)) / (-18. * xm3 * xm2) * Lx;
1629 n72ct = -274.2 / x5 - 72.13 * Lx / x5 + 24.41 / x4 - 168.3 * Lx / x4 + 79.15 / x3 -
1630 103.8 * Lx / x3 + 47.09 / x2 - 38.12 * Lx / x2 + 15.35 / x - 8.753 * Lx / x + 3.970;
1632 n72ct = 1.283 + 0.7158 * xo + 0.4119 * xo2 + 0.2629 * xo * xo2 + 0.1825 * xo4 +
1633 0.1347 * xo * xo4 + 0.1040 * xo6 + 0.0831 * xo * xo6 + 0.06804 * xo8 +
1634 0.05688 * xo * xo8 + 0.04833 * xo2 * xo8 + 0.04163 * xo * xo2 * xo8 + 0.03625 * xo4 * xo8 +
1635 0.03188 * xo * xo4 * xo8 + 0.02827 * xo6 * xo8 + 0.02525 * xo * xo6 * xo8 + 0.02269 * xo8 * xo8;
1636 else if (mhp < 520.)
1637 n72ct = 1.283 - 0.7158 * xm - 0.3039 * xm2 - 0.1549 * xm3 - 0.08625 * xm4 -
1638 0.05020 * xm3 * xm2 - 0.02970 * xm6 - 0.01740 * xm3 * xm4 - 0.009752 * xm8 -
1639 0.004877 * xm3 * xm6 - 0.001721 * xm2 * xm8 + 0.0003378 * xm3 * xm8 + 0.001679 * xm4 * xm8 +
1640 0.002542 * xm * xm4 * xm8 + 0.003083 * xm6 * xm8 + 0.003404 * xm * xm6 * xm8 + 0.003574 * xm8 * xm8;
1641 else n72ct = -823.0 * x5 + 42.30 * x5 * Lx3 - 412.4 * x5 * Lx2 - 3362 * x5 * Lx -
1642 1492 * x4 - 23.26 * x4 * Lx3 - 541.4 * x4 * Lx2 - 2540 * x4 * Lx -
1643 1158 * x3 - 34.50 * x3 * Lx3 - 348.2 * x3 * Lx2 - 1292 * x3 * Lx -
1644 480.9 * x2 - 20.73 * x2 * Lx3 - 112.4 * x2 * Lx2 - 396.1 * x2 * Lx -
1645 8.278 * x + 0.9225 * x * Lx2 + 4.317 * x*Lx;
1649 n72fr = -(194.3 / x5 + 101.1 * Lx / x5 - 24.97 / x4 + 168.4 * Lx / x4 - 78.90 / x3 +
1650 106.2 * Lx / x3 - 49.32 / x2 + 38.43 * Lx / x2 - 12.91 / x + 9.757 * Lx / x + 8.088);
1652 n72fr = -(12.82 - 1.663 * xo - 0.8852 * xo2 - 0.4827 * xo * xo2 - 0.2976 * xo4 -
1653 0.2021 * xo * xo4 - 0.1470 * xo6 - 0.1125 * xo * xo6 - 0.08931 * xo8 -
1654 0.07291 * xo * xo8 - 0.06083 * xo2 * xo8 - 0.05164 * xo * xo2 * xo8 - 0.04446 * xo4 * xo8 -
1655 0.03873 * xo * xo4 * xo8 - 0.03407 * xo6 * xo8 - 0.03023 * xo * xo6 * xo8 - 0.02702 * xo8 * xo8);
1656 else if (mhp < 400.)
1657 n72fr = -(12.82 + 1.663 * xm + 0.7780 * xm2 + 0.3755 * xm3 + 0.1581 * xm4 +
1658 0.03021 * xm3 * xm2 - 0.04868 * xm6 - 0.09864 * xm3 * xm4 - 0.1306 * xm8 -
1659 0.1510 * xm3 * xm6 - 0.1637 * xm2 * xm8 - 0.1712 * xm3 * xm8 - 0.1751 * xm4 * xm8 -
1660 0.1766 * xm * xm4 * xm8 - 0.1763 * xm6 * xm8 - 0.1748 * xm * xm6 * xm8 - 0.1724 * xm8 * xm8);
1661 else n72fr = -(2828 * x5 - 66.63 * x5 * Lx3 + 469.4 * x5 * Lx2 + 1986 * x5 * Lx +
1662 1480 * x4 + 36.08 * x4 * Lx3 + 323.2 * x4 * Lx2 + 169.9 * x4 * Lx +
1663 166.7 * x3 + 19.73 * x3 * Lx3 - 46.61 * x3 * Lx2 - 826.2 * x3 * Lx -
1664 524.1 * x2 - 8.889 * x2 * Lx3 - 195.7 * x2 * Lx2 - 870.3 * x2 * Lx -
1665 572.2 * x - 20.94 * x * Lx3 - 123.5 * x * Lx2 - 453.5 * x * Lx);
1669 n82ct = 826.2 / x5 - 300.7 * Lx / x5 + 96.35 / x4 + 91.89 * Lx / x4 - 66.39 / x3 +
1670 78.58 * Lx / x3 - 39.76 / x2 + 20.02 * Lx / x2 - 5.214 / x + 2.278;
1672 n82ct = 1.188 + 0.4078 * xo + 0.2002 * xo2 + 0.1190 * xo * xo2 + 0.07861 * xo4 +
1673 0.05531 * xo * xo4 + 0.04061 * xo6 + 0.03075 * xo * xo6 + 0.02386 * xo8 +
1674 0.01888 * xo * xo8 + 0.01520 * xo2 * xo8 + 0.01241 * xo * xo2 * xo8 + 0.01026 * xo4 * xo8 +
1675 0.008575 * xo * xo4 * xo8 + 0.007238 * xo6 * xo8 + 0.006164 * xo * xo6 * xo8 + 0.005290 * xo8 * xo8;
1676 else if (mhp < 600.)
1677 n82ct = 1.188 - 0.4078 * xm - 0.2076 * xm2 - 0.1265 * xm3 - 0.08570 * xm4 -
1678 0.06204 * xm3 * xm2 - 0.04689 * xm6 - 0.03652 * xm3 * xm4 - 0.02907 * xm8 -
1679 0.02354 * xm3 * xm6 - 0.01933 * xm2 * xm8 - 0.01605 * xm3 * xm8 - 0.01345 * xm4 * xm8 -
1680 0.01137 * xm * xm4 * xm8 - 0.009678 * xm6 * xm8 - 0.008293 * xm * xm6 * xm8 - 0.007148 * xm8 * xm8;
1681 else n82ct = -19606 * x5 - 226.7 * x5 * Lx3 - 5251 * x5 * Lx2 - 26090 * x5 * Lx -
1682 9016 * x4 - 143.4 * x4 * Lx3 - 2244 * x4 * Lx2 - 10102 * x4 * Lx -
1683 3357 * x3 - 66.32 * x3 * Lx3 - 779.6 * x3 * Lx2 - 3077 * x3 * Lx -
1684 805.5 * x2 - 22.98 * x2 * Lx3 - 169.1 * x2 * Lx2 - 602.7 * x2 * Lx +
1685 0.7437 * x + 0.6908 * x * Lx2 + 3.238 * x*Lx;
1689 n82fr = -(-1003 / x5 + 476.9 * Lx / x5 - 205.7 / x4 - 71.62 * Lx / x4 + 62.26 / x3 -
1690 110.7 * Lx / x3 + 63.74 / x2 - 35.42 * Lx / x2 + 10.89 / x - 3.174);
1692 n82fr = -(-0.6110 - 1.095 * xo - 0.4463 * xo2 - 0.2568 * xo * xo2 - 0.1698 * xo4 -
1693 0.1197 * xo * xo4 - 0.08761 * xo6 - 0.06595 * xo * xo6 - 0.05079 * xo8 -
1694 0.03987 * xo * xo8 - 0.03182 * xo2 * xo8 - 0.02577 * xo * xo2 * xo8 - 0.02114 * xo4 * xo8 -
1695 0.01754 * xo * xo4 * xo8 - 0.01471 * xo6 * xo8 - 0.01244 * xo * xo6 * xo8 - 0.01062 * xo8 * xo8);
1696 else if (mhp < 520.)
1697 n82fr = -(-0.6110 + 1.095 * xm + 0.6492 * xm2 + 0.4596 * xm3 + 0.3569 * xm4 +
1698 0.2910 * xm3 * xm2 + 0.2438 * xm6 + 0.2075 * xm3 * xm4 + 0.1785 * xm8 +
1699 0.1546 * xm3 * xm6 + 0.1347 * xm2 * xm8 + 0.1177 * xm3 * xm8 + 0.1032 * xm4 * xm8 +
1700 0.09073 * xm * xm4 * xm8 + 0.07987 * xm6 * xm8 + 0.07040 * xm * xm6 * xm8 + 0.06210 * xm8 * xm8);
1701 else n82fr = -(-15961 * x5 + 1003 * x5 * Lx3 - 2627 * x5 * Lx2 - 29962 * x5 * Lx -
1702 11683 * x4 + 54.66 * x4 * Lx3 - 2777 * x4 * Lx2 - 17770 * x4 * Lx -
1703 6481 * x3 - 40.68 * x3 * Lx3 - 1439 * x3 * Lx2 - 7906 * x3 * Lx -
1704 2943 * x2 - 31.83 * x2 * Lx3 - 612.6 * x2 * Lx2 - 2770 * x2 * Lx -
1705 929.8 * x - 19.80 * x * Lx3 - 174.7 * x * Lx2 - 658.4 * x * Lx);
1714 CWbsgArrayNNLO[6] = -(n72ct + cd72ct * lstmu + ce72ct * lstmu * lstmu) * abssu2
1715 + (n72fr + cd72fr * lstmu + ce72fr * lstmu * lstmu) * susd
1717 CWbsgArrayNNLO[7] = -(n82ct + cd82ct * lstmu + ce82ct * lstmu * lstmu) * abssu2
1718 + (n82fr + cd82fr * lstmu + ce82fr * lstmu * lstmu) * susd
1729 std::stringstream out;
1731 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
1757 std::stringstream out;
1759 throw std::runtime_error(
"order" + out.str() +
"not implemeted");
const GeneralTHDM & myGTHDM
double __fS2_integrand(double x, void *p)
double __fPS2_integrand(double x, void *p)
double gscalar2(double r)
double gpseudoscalar2(double r)
WilsonCoefficient mculeptonnu
virtual gslpp::complex neglog(gslpp::complex argument)
Calculates the log of a negative number.
virtual double f2(double xHp, double xt)
virtual gslpp::complex g3a(double xHp, double xt, gslpp::complex su, gslpp::complex sd)
virtual double f10(double xHp, double xt)
const GeneralTHDM & myGTHDM
virtual gslpp::complex lambdaHHphi(double lambda3, double Relambda7, double Imlambda7, double Ri1, double Ri2, double Ri3)
gslpp::complex CWbsgArrayLO[8]
virtual std::vector< WilsonCoefficient > & CMbsg()
operator basis: current current; qcd penguins; magnetic and chromomagnetic penguins; semileptonic
double F3oneloopgm2(const double ratio_sq)
Loop at one loop from 1502.04199. The complete loop function is \int_0^1 dx \frac{x^2(1-x)}{ratio_sq...
WilsonCoefficient mcgminus2mu
double F1oneloopgm2(const double ratio_sq)
Loop at one loop from 1502.04199. The complete loop function is \int_0^1 dx \frac{x^2(2-x)}{ratio_sq...
const Polylogarithms PolyLog
virtual double f8(double xHp, double xt)
virtual double f7(double xHp, double xt)
virtual std::vector< WilsonCoefficient > & CMdiujleptonknu(int i, int j, int k)
void updateGTHDMParameters()
virtual gslpp::complex CphiU(double xHp, double xt, double vev, double xphi, double mu, double Ri1, double Ri2, double Ri3, double mHi_2, double lambda3, double Relambda7, double Imlambda7, gslpp::complex su, gslpp::complex sd)
virtual std::vector< WilsonCoefficient > & CMdbs2()
Calculates the function of Eq. (68) of 1607.06292.
virtual double C10Bll(double xt, double xHp, gslpp::complex su)
virtual gslpp::complex g1a(double xHp, double xt, gslpp::complex su, gslpp::complex sd)
virtual double f1(double xHp, double xt)
gslpp::complex setWCbsg(int i, gslpp::complex sigmau, gslpp::complex sigmad, double mt, double mhp, double mu, orders order)
double F2twoloopgm2(const double ratio_sq)
Loop at two loops (Barr-Zee) from 1502.04199. The complete loop function is \frac{1}{2}*\int_0^1 dx ...
virtual gslpp::complex negpow(double basis, double exp)
Calculates the power root of a negative number.
virtual double gminus2muLO()
Calculates amplitudes for at one loop from 1502.04199, before was used.
virtual double f3(double xHp, double xt)
GeneralTHDMMatching(const GeneralTHDM &GeneralTHDM_i)
gslpp::matrix< gslpp::complex > myCKM
double F1twoloopgm2(const double ratio_sq)
Loop at two loops (Barr-Zee) from 1502.04199. The complete loop function is \frac{ratio_sq}{2}*\int_...
double F3twoloopgm2(const double ratio_sq)
Loop at two loops (Barr-Zee) from 1502.04199. The complete loop function is \frac{1}{2}*\int_0^1 dx ...
virtual gslpp::complex g0(double xHp, double xt, gslpp::complex su, gslpp::complex sd)
virtual double f6(double xHp, double xt)
double F2oneloopgm2(const double ratio_sq)
Loop at one loop from 1502.04199. The complete loop function is \int_0^1 dx \frac{-x^3}{ratio_sq*x^2...
gslpp::complex CWbsgArrayNNLO[8]
virtual double f9(double xHp, double xt)
gslpp::complex CWbsgArrayNLO[8]
virtual gslpp::complex CPboxBll(double xt, double xHp, gslpp::complex su, gslpp::complex sd, gslpp::complex sl)
virtual double f4(double xHp, double xt)
virtual double gminus2muNLO()
Calculates amplitudes for at approximate two-loop from .
virtual gslpp::complex CSboxBll(double xt, double xHp, gslpp::complex su, gslpp::complex sd, gslpp::complex sl)
virtual std::vector< WilsonCoefficient > & CMgminus2mu()
Wilson coefficient for .
virtual double f5(double xHp, double xt)
double F1tildetwoloopgm2(const double ratio_sq)
Loop at two loops (Barr-Zee) from 1502.04199. The complete loop function is \frac{ratio_sq}{2}*\int_...
virtual gslpp::complex g2a(double xHp, double xt, gslpp::complex su, gslpp::complex sd)
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)
virtual gslpp::complex CPZUBll(double xt, double xHp, double sW2, gslpp::complex su, gslpp::complex sd)
virtual gslpp::complex negsquareroot(double x)
Calculates amplitudes for at approximate two-loop from .
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficient > & CMbsg()=0
An observable class for the -boson mass.
gslpp::complex Li2(const double x) const
The dilogarithm with a real argument, .
meson
An enum type for mesons.
lepton
An enum type for leptons.
A class for the matching in the Standard Model.
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
void setCoeff(const gslpp::vector< gslpp::complex > &z, orders order_i)
schemes getScheme() const
virtual void setMu(double mu)
An observable class for the quartic Higgs potential coupling .
The mass of the SM Higgs.
The mass of the SM Higgs.
orders
An enum type for orders in QCD.