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

\( | \Delta B = 2 | \) Amplitude Class More...

#include <AmpDB2.h>

Detailed Description

\( | \Delta B = 2 | \) Amplitude Class

Author
HEPfit Collaboration

This class is related to the calculation of the \( B_{d,s}-\bar{B}_{d,s}\) mixing.

Definition at line 36 of file AmpDB2.h.

Public Types

enum  mass_schemes { pole , MSbar , PS , only1overmb , MSbar_partialNNLO , PS_partialNNLO , MSbar_partialN3LO , PS_partialN3LO }
 
enum  quark { d , s }
 
enum  quarks { cc , cu , uu }
 

Public Member Functions

 AmpDB2 (const StandardModel &SM_i, int BMeson_i, bool flag_fixmub=false, bool flag_RI=false)
 Constructor. More...
 
gslpp::complex getGamma21overM21 (orders order, mass_schemes mass_scheme=MSbar)
 The value of \(\frac{\Gamma_{21},M_{21}}\) from Gerlach (2205.07907 and thesis) More...
 
gslpp::complex getGamma21overM21_tradBasis (orders order)
 The value of \(\frac{\Gamma_{21},M_{21}}\) in the traditional basis. More...
 
gslpp::complex getM21 (orders order)
 The value of \(M_{21}\) for \(B_{d,s}\) mesons. More...
 
gslpp::complex getPB ()
 
gslpp::complex getRB (orders order)
 

Protected Member Functions

gslpp::complex Gamma21overM21 (orders order, mass_schemes mass_scheme, int BMeson)
 A method to compute \(\frac{\Gamma_{21},M_{21}}^{bq}\) @detail source: Marvin Gerlach (2205.07907 and thesis) with 1/mb corrections from Lenz (hep-ph/0612167) More...
 
gslpp::complex Gamma21overM21_tradBasis (orders order, quark q)
 A method to compute \(\frac{\Gamma_{21},M_{21}}^{bq}\) in the traditional basis @detail source: Ciuchini (hep-ph/0308029v2) More...
 
gslpp::complex M21_Bd (orders order)
 A method to compute \(M_{21}^{bd}\). More...
 
gslpp::complex M21_Bs (orders order)
 A method to compute \(M_{21}^{bs}\). More...
 
gslpp::complex PBd ()
 
gslpp::complex PBs ()
 
gslpp::complex RBd (orders order)
 A method to compute the ratio of the absolute value of the $B_d$ mixing amplitude over the Standard Model value. More...
 
gslpp::complex RBs (orders order)
 A method to compute the ratio of the absolute value of the $B_s$ mixing amplitude over the Standard Model value. More...
 

Private Member Functions

gslpp::vector< gslpp::complex > c (quark q, orders order)
 Values of DB=2 Wilson coefficients from (hep-ph/0308029v2) transformed to the new basis. More...
 
gslpp::vector< gslpp::complex > c_H (quark q, orders order)
 
gslpp::vector< gslpp::complex > c_H_partial (quark q, int i)
 
void compute_deltas_1overm (quark q)
 
void compute_deltas_1overm_tradBasis (quark q)
 
void compute_g ()
 
void compute_matrixelements (quark q, orders order)
 A method to compute all DB=2 Wilson coefficients (me, me_R, me_Rtilde) More...
 
void compute_partialNNLO ()
 
void compute_pp_s ()
 
void computeCKMandMasses (orders order=NNLO, mass_schemes mass_scheme=MSbar)
 A method to compute CKM elements, quark masses and alpha_s. More...
 
void computeD (orders order)
 
void computeF0 ()
 
void computeF1 ()
 
void computeP ()
 
void computeWilsonCoeffsBuras ()
 
void computeWilsonCoeffsMisiak ()
 
gslpp::complex D (quarks qq, int k)
 
gslpp::complex delta_1overm (quark q)
 Value of 1/mb corrections of \(\Gamma_{21}\) (hep-ph/0612167) More...
 
gslpp::complex delta_1overm_tradBasis (quark q)
 Value of 1/mb corrections of \(\Gamma_{21}\) (hep-ph/0308029v2) More...
 
gslpp::complex deltas_1overm (quarks qq, quark q)
 
gslpp::complex deltas_1overm_tradBasis (quarks qq, quark q)
 
double F (quarks qq, int k, int i, int j)
 
double F0 (quarks qq, int k, int i, int j)
 
double F1 (quarks qq, int k, int i, int j)
 
gslpp::complex g (quarks qq, int i)
 
gslpp::complex gtilde (quarks qq, int i)
 
gslpp::complex H (quarks qq, orders order)
 
gslpp::vector< gslpp::complex > H_allpartial (quarks qq)
 
gslpp::complex H_partial (quarks qq, int i_start, int i_end, int j_start, int j_end, int n)
 
gslpp::complex H_s (quarks qq, orders order)
 
gslpp::vector< gslpp::complex > H_s_allpartial (quarks qq)
 
gslpp::complex H_s_partial (quarks qq, int i_start, int i_end, int j_start, int j_end, int n)
 
int index_deltas (quarks qq, quark q)
 
int index_p (quarks qq, int i, int j, int n)
 
int indexD (quarks qq, int k)
 
int indexF (quarks qq, int k, int i, int j)
 
int indexg (quarks qq, int i)
 
int indexP (quarks qq, int k, int i, int j)
 
double p (quarks qq, int i, int j, int n, bool flag_LOz=false)
 
double P (quarks qq, int k, int i, int j)
 
double p_s (quarks qq, int i, int j, int n, bool flag_LOz=false)
 
void poletoMSbar_pp_s ()
 
void poletoMSbar_pp_s_partialN3LO ()
 
void poletoPS_pp_s ()
 
void poletoPS_pp_s_partialN3LO ()
 
gslpp::vector< gslpp::complex > transformation (gslpp::vector< gslpp::complex > result, orders order)
 

Private Attributes

double a1 = 31./3. - 10./9. * nl
 
double a2
 
double as_4pi
 
double as_4pi_mu1
 
double as_4pi_mu2
 
double b0 = 11. - 2. * nl/3.
 
double b0_2 = b0 * b0
 
double b1 = 102. - 38. * nl/3.
 
int BMeson
 
gslpp::complex C1_LO_1overm
 
gslpp::complex C2_LO_1overm
 
gslpp::complex C_1_SM
 
gslpp::complex C_Buras_LO [8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
 
gslpp::complex C_Buras_NLO [8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
 
gslpp::complex C_Buras_NNLO [8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
 
gslpp::complex C_Misiak_LO [8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
 
gslpp::complex C_Misiak_NLO [8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
 
gslpp::complex C_Misiak_NNLO [8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
 
gslpp::complex cache_deltas_1overm [6] = {0.}
 
gslpp::complex cache_deltas_1overm_tradBasis [6] = {0.}
 
double cache_p [768] = { 0. }
 
double cache_p_LO [576] = {0.}
 
double cache_ps [768] = { 0. }
 
double cache_ps_LO [576] = {0.}
 
gslpp::complex cacheC [8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
 
gslpp::complex cacheD [6] = {0.}
 
double cacheF0 [24] = {0.}
 
double cacheF1 [24] = {0.}
 
gslpp::complex cacheg [12] = {0.}
 
gslpp::complex cachegtilde [12] = {0.}
 
double cacheP [84] = {0.}
 
const double Cl2PI3 = 1.014941606
 
gslpp::matrix< double > coeffsMStoRI
 
double Dilogsigma
 
double Dilogsigma2
 
double Dilogz
 
bool flag_fixmub
 
bool flag_LOz = true
 
bool flag_resumz
 
bool flag_RI
 
double Gf2
 
gslpp::complex K_1
 
gslpp::complex K_2
 
gslpp::complex lambda_c_d
 
gslpp::complex lambda_c_s
 
gslpp::complex lambda_u_d
 
gslpp::complex lambda_u_s
 
const double log12sqrt52 = log(0.5 + sqrt5 / 2.)
 
double log1minus4z
 
double log1minusz
 
const double log2 = log(2)
 
const double log2_2 = log2 * log2
 
const double log2_4 = log2_2 * log2_2
 
double log2sigma
 
double log2z
 
const double log3 = log(3)
 
double logsigma
 
double logx_1
 
double logx_2
 
double logz
 
const double M_PI2 = M_PI * M_PI
 
const double M_PI3 = M_PI2 * M_PI
 
const double M_PI4 = M_PI2 * M_PI2
 
double Mb
 
double MB
 
double Mb2_prefactor
 
double Mb2_prefactor_1overm
 
double Mb_Mb
 
double Mb_pole
 
double Mb_PS
 
double MB_s
 
double Mc
 
double Md
 
gslpp::vector< double > me = gslpp::vector<double>(5, 0.)
 
gslpp::vector< double > me_R = gslpp::vector<double>(5, 0.)
 
gslpp::vector< double > me_Rtilde = gslpp::vector<double>(3, 0.)
 
gslpp::matrix< double > meMStoRI
 
gslpp::vector< double > meoverme0 = gslpp::vector<double>(3, 0.)
 
double Ms
 
double mu_1
 
double mu_1_overm
 
double mu_2
 
double mu_b
 
double mu_f = 2.
 
const StandardModelmySM
 
double nl = 4.
 
double oneminusz2
 
double oneminusz_1overm2
 
double PoletoMS_as1
 
double PoletoMS_as2
 
double PoletoMS_as2_z0
 
double PoletoMS_as2_z1
 
double PoletoMS_as3
 
double PoletoPS_as1
 
double PoletoPS_as2
 
double PoletoPS_as3
 
const double polylog4_12 = 0.517479062
 
double sigma
 
double sqrt1minus4z
 
double sqrt1minus4z_1overm
 
const double sqrt3 = sqrt(3)
 
const double sqrt5 = sqrt(5)
 
double sqrtz
 
const double t_2 = -0.389011713
 
gslpp::complex VcbVcd
 
gslpp::complex VcbVcd2
 
gslpp::complex VcbVcs
 
gslpp::complex VcbVcs2
 
gslpp::complex VtbVtd
 
gslpp::complex VtbVtd2
 
gslpp::complex VtbVts
 
gslpp::complex VtbVts2
 
double x_1
 
double x_2
 
double z
 
double z2
 
double z3
 
double z4
 
double z_1overm
 
double z_1overm2
 
const double zeta2 = gslpp_special_functions::zeta(2)
 
const double zeta3 = gslpp_special_functions::zeta(3)
 
const double zeta4 = gslpp_special_functions::zeta(4)
 
const double zeta5 = gslpp_special_functions::zeta(5)
 

Member Enumeration Documentation

◆ mass_schemes

Enumerator
pole 
MSbar 
PS 
only1overmb 
MSbar_partialNNLO 
PS_partialNNLO 
MSbar_partialN3LO 
PS_partialN3LO 

Definition at line 63 of file AmpDB2.h.

@ MSbar_partialN3LO
Definition: AmpDB2.h:63
@ MSbar
Definition: AmpDB2.h:63
@ PS
Definition: AmpDB2.h:63
@ PS_partialN3LO
Definition: AmpDB2.h:63
@ pole
Definition: AmpDB2.h:63
@ MSbar_partialNNLO
Definition: AmpDB2.h:63
@ only1overmb
Definition: AmpDB2.h:63
@ PS_partialNNLO
Definition: AmpDB2.h:63

◆ quark

Enumerator

Definition at line 64 of file AmpDB2.h.

64{d,s}; /*quark index i used for $B_i$*/
@ d
Definition: AmpDB2.h:64
Test Observable.

◆ quarks

Enumerator
cc 
cu 
uu 

Definition at line 65 of file AmpDB2.h.

65{cc, cu, uu}; /*combinations of u- and c- quarks in diagrams */
@ cc
Definition: AmpDB2.h:65
@ cu
Definition: AmpDB2.h:65
@ uu
Definition: AmpDB2.h:65

Constructor & Destructor Documentation

◆ AmpDB2()

AmpDB2::AmpDB2 ( const StandardModel SM_i,
int  BMeson_i,
bool  flag_fixmub = false,
bool  flag_RI = false 
)

Constructor.

Parameters
[in]SM_ia reference to an object of type StandardModel
[in]BMeson_ian integer to specify the B meson: 0 for Bd and 1 for Bs

Definition at line 13 of file AmpDB2.cpp.

14 : mySM(SM_i), meMStoRI(5, 0.), coeffsMStoRI(3, 0.)
15{
16 BMeson = BMeson_i;
17 this->flag_resumz = true;
19 this->flag_RI = flag_RI;
20 switch (BMeson)
21 {
22 case 0:
24 mySM.initializeBParameter("BBd_subleading");
26 break;
27 case 1:
29 mySM.initializeBParameter("BBs_subleading");
31 break;
32 default:
33 throw std::runtime_error("AmpDB2::AmpDB2(): invalid B meson index");
34 break;
35 }
36
37 // hep-ph/0606197 eq. 4.7 - 4.10
38 double meMStoRI0[5] = {-3. - 5. / 3. + 8. * log2, 0., 0., 0., 0.},
39 meMStoRI1[5] = {0., 61. / 9. + 44. / 9. * log2, -7. / 9. + 28. / 9. * log2, 0., 0.},
40 meMStoRI2[5] = {0., -25. / 9. + 28. / 9. * log2, -29. / 9. + 44. / 9. * log2, 0., 0.},
41 meMStoRI3[5] = {0., 0., 0., -5. / 3. + 13. - 2. / 3. * log2, -3. + 1. + 2. * log2},
42 meMStoRI4[5] = {0., 0., 0., -7. / 2. + 11. / 2. + 2. * log2, -1. / 6. - 1. / 2. - 2. / 3. * log2};
43 meMStoRI.assign(0, meMStoRI0);
44 meMStoRI.assign(1, meMStoRI1);
45 meMStoRI.assign(2, meMStoRI2);
46 meMStoRI.assign(3, meMStoRI3);
47 meMStoRI.assign(4, meMStoRI4);
48 for (int i = 0; i <= 2; i++)
49 {
50 for (int j = 0; j <= 2; j++)
51 {
52 coeffsMStoRI.assign(i, j, meMStoRI(i, j));
53 }
54 }
55}
gslpp::matrix< double > meMStoRI
Definition: AmpDB2.h:210
bool flag_resumz
Definition: AmpDB2.h:207
const StandardModel & mySM
Definition: AmpDB2.h:169
int BMeson
Definition: AmpDB2.h:171
gslpp::matrix< double > coeffsMStoRI
Definition: AmpDB2.h:212
const double log2
Definition: AmpDB2.h:185
bool flag_fixmub
Definition: AmpDB2.h:213
bool flag_RI
Definition: AmpDB2.h:214
@ B_D
Definition: QCD.h:344
@ B_S
Definition: QCD.h:346
void initializeBParameter(std::string name_i) const
A method to initialize B Parameter and the corresponding meson.
Definition: QCD.cpp:211
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:280

Member Function Documentation

◆ c()

gslpp::vector< gslpp::complex > AmpDB2::c ( quark  q,
orders  order 
)
private

Values of DB=2 Wilson coefficients from (hep-ph/0308029v2) transformed to the new basis.

Parameters
[in]quarkindex of the neutral B mesons
[in]orderthe QCD order for the transformations @detail requires computeCKMandMasses() and "D"

Definition at line 875 of file AmpDB2.cpp.

876{
877 gslpp::vector<gslpp::complex> result = gslpp::vector<gslpp::complex>(3, 0.);
878 switch (q)
879 {
880 case d:
881 for (int i = 1; i <= 2; i++)
882 {
883 result.assign(i - 1,
884 VtbVtd2 * D(uu, i) + 2. * VcbVcd * VtbVtd * (D(uu, i) - D(cu, i)) + VcbVcd2 * (D(cc, i) + D(uu, i) - 2. * D(cu, i)));
885 }
886 break;
887 case s:
888 for (int i = 1; i <= 2; i++)
889 {
890 result.assign(i - 1,
891 VtbVts2 * D(uu, i) + 2. * VcbVcs * VtbVts * (D(uu, i) - D(cu, i)) + VcbVcs2 * (D(cc, i) + D(uu, i) - 2. * D(cu, i)));
892 }
893 break;
894 default:
895 throw std::runtime_error("AmpDB2::c(quark q, double mu_2): invalid quark index: ");
896 }
897
898 // transformation to the new basis (hep-ph/0612167 eq. 18 + 21)
899 if (order == LO)
900 {
901 result.assign(0, result(0) - 0.5 * result(1));
902 result.assign(2, -result(1));
903 result.assign(1, 0.);
904 }
905 else if (order == NLO)
906 {
907 // save NLO contribution from transformation of the tradBasis to RI scheme
908 gslpp::vector<gslpp::complex> RI_NLO = gslpp::vector<gslpp::complex>(3, 0.);
909 if (flag_RI)
910 RI_NLO = as_4pi_mu2 * coeffsMStoRI.transpose() * result;
911 double alpha1 = as_4pi_mu2 * 4. / 3. * (12. * log(mu_2 / Mb_pole) + 6.);
912 double alpha2 = as_4pi_mu2 * 4. / 3. * (6. * log(mu_2 / Mb_pole) + 13. / 2.);
913 result.assign(0, -alpha2 / 2. * result(1));
914 result.assign(2, -alpha1 * result(1));
915 if (flag_RI)
916 result += RI_NLO;
917 result.assign(1, 0.);
918 }
919 else
920 {
921 throw std::runtime_error("AmpDB2::c(quark q, orders order): order not implemented");
922 }
923 return result;
924}
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
gslpp::complex VcbVcd2
Definition: AmpDB2.h:319
double Mb_pole
Definition: AmpDB2.h:276
double mu_2
Definition: AmpDB2.h:198
gslpp::complex VcbVcs
Definition: AmpDB2.h:318
double as_4pi_mu2
Definition: AmpDB2.h:258
gslpp::complex VtbVtd
Definition: AmpDB2.h:313
gslpp::complex VcbVcd
Definition: AmpDB2.h:317
gslpp::complex VcbVcs2
Definition: AmpDB2.h:320
@ s
Definition: AmpDB2.h:64
gslpp::complex D(quarks qq, int k)
Definition: AmpDB2.cpp:926
gslpp::complex VtbVtd2
Definition: AmpDB2.h:315
gslpp::complex VtbVts2
Definition: AmpDB2.h:316
gslpp::complex VtbVts
Definition: AmpDB2.h:314

◆ c_H()

gslpp::vector< gslpp::complex > AmpDB2::c_H ( quark  q,
orders  order 
)
private

Definition at line 1188 of file AmpDB2.cpp.

1189{
1190 gslpp::vector<gslpp::complex> result = gslpp::vector<gslpp::complex>(3, 0.);
1191 gslpp::complex lambda_c, lambda_u;
1192 switch (q)
1193 {
1194 case d:
1195 lambda_c = lambda_c_d;
1196 lambda_u = lambda_u_d;
1197 break;
1198 case s:
1199 lambda_c = lambda_c_s;
1200 lambda_u = lambda_u_s;
1201 break;
1202 default:
1203 throw std::runtime_error("AmpDB2::c_H(quark q): invalid quark index: ");
1204 }
1205 if (flag_RI and order == NLO)
1206 {
1207 // LO transformed to the traditional basis
1208 result.assign(0, -lambda_c * lambda_c * H(cc, LO) - 2. * lambda_c * lambda_u * H(cu, LO) - lambda_u * lambda_u * H(uu, LO));
1209 result.assign(2, -lambda_c * lambda_c * H_s(cc, LO) - 2. * lambda_c * lambda_u * H_s(cu, LO) - lambda_u * lambda_u * H_s(uu, LO));
1210 result.assign(0, result(0) - 0.5 * result(2));
1211 result.assign(1, -result(2));
1212 result.assign(2, 0.);
1213 // only NLO change to RI
1214 result = as_4pi_mu2 * coeffsMStoRI.transpose() * result;
1215 // return to tradBasis + NLO
1216 result.assign(0, result(0) - 0.5 * result(1) +
1217 -lambda_c * lambda_c * H(cc, NLO) - 2. * lambda_c * lambda_u * H(cu, NLO) - lambda_u * lambda_u * H(uu, NLO));
1218 result.assign(2, -result(1) +
1219 -lambda_c * lambda_c * H_s(cc, NLO) - 2. * lambda_c * lambda_u * H_s(cu, NLO) - lambda_u * lambda_u * H_s(uu, NLO));
1220 result.assign(1, 0.);
1221 return result;
1222 }
1223 if (flag_RI and order != LO)
1224 throw std::runtime_error("AmpDB2::c_H(quark q, orders order) order for RI not implemented");
1225
1226 result.assign(0, -lambda_c * lambda_c * H(cc, order) - 2. * lambda_c * lambda_u * H(cu, order) - lambda_u * lambda_u * H(uu, order));
1227 result.assign(2, -lambda_c * lambda_c * H_s(cc, order) - 2. * lambda_c * lambda_u * H_s(cu, order) - lambda_u * lambda_u * H_s(uu, order));
1228 return result;
1229}
gslpp::complex lambda_u_d
Definition: AmpDB2.h:375
gslpp::complex H(quarks qq, orders order)
Definition: AmpDB2.cpp:1232
gslpp::complex lambda_c_s
Definition: AmpDB2.h:376
gslpp::complex lambda_c_d
Definition: AmpDB2.h:374
gslpp::complex lambda_u_s
Definition: AmpDB2.h:377
gslpp::complex H_s(quarks qq, orders order)
Definition: AmpDB2.cpp:1248

◆ c_H_partial()

gslpp::vector< gslpp::complex > AmpDB2::c_H_partial ( quark  q,
int  i 
)
private

Definition at line 1265 of file AmpDB2.cpp.

1266{
1267 gslpp::complex lambda_c, lambda_u;
1268 switch (q)
1269 {
1270 case d:
1271 lambda_c = lambda_c_d;
1272 lambda_u = lambda_u_d;
1273 break;
1274 case s:
1275 lambda_c = lambda_c_s;
1276 lambda_u = lambda_u_s;
1277 break;
1278 default:
1279 throw std::runtime_error("AmpDB2::c_H_partial(quark q, int i): invalid quark index: ");
1280 }
1281 gslpp::vector<gslpp::complex> zeros(12, 0.);
1282 switch (i)
1283 {
1284 case 0:
1285 return -lambda_c * lambda_c * H_allpartial(cc) - 2. * lambda_c * lambda_u * H_allpartial(cu) - lambda_u * lambda_u * H_allpartial(uu);
1286 case 1:
1287 return zeros;
1288 case 2:
1289 return -lambda_c * lambda_c * H_s_allpartial(cc) - 2. * lambda_c * lambda_u * H_s_allpartial(cu) - lambda_u * lambda_u * H_s_allpartial(uu);
1290 default:
1291 throw std::runtime_error("AmpDB2::c_H_partial(quark q, int i): invalid index i");
1292 }
1293}
gslpp::vector< gslpp::complex > H_allpartial(quarks qq)
Definition: AmpDB2.cpp:1295
gslpp::vector< gslpp::complex > H_s_allpartial(quarks qq)
Definition: AmpDB2.cpp:1313

◆ compute_deltas_1overm()

void AmpDB2::compute_deltas_1overm ( quark  q)
private

Definition at line 1006 of file AmpDB2.cpp.

1007{
1008 // hep-ph/0612167 eq.24
1009 compute_g();
1010 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 1))
1011 {
1012 cache_deltas_1overm[index_deltas(qq, q)] = 0.;
1013 for (int i = 0; i <= 3; i++)
1014 {
1015 cache_deltas_1overm[index_deltas(qq, q)] += g(qq, i) * me_R(i);
1016 }
1017 for (int i = 0; i <= 2; i++)
1018 {
1019 cache_deltas_1overm[index_deltas(qq, q)] += gtilde(qq, i) * me_Rtilde(i);
1020 }
1021 }
1022 return;
1023}
int index_deltas(quarks qq, quark q)
Definition: AmpDB2.cpp:980
gslpp::vector< double > me_R
Definition: AmpDB2.h:203
gslpp::complex cache_deltas_1overm[6]
Definition: AmpDB2.h:452
quarks
Definition: AmpDB2.h:65
gslpp::complex g(quarks qq, int i)
Definition: AmpDB2.cpp:1063
gslpp::complex gtilde(quarks qq, int i)
Definition: AmpDB2.cpp:1068
void compute_g()
Definition: AmpDB2.cpp:1025
gslpp::vector< double > me_Rtilde
Definition: AmpDB2.h:204

◆ compute_deltas_1overm_tradBasis()

void AmpDB2::compute_deltas_1overm_tradBasis ( quark  q)
private

Definition at line 960 of file AmpDB2.cpp.

961{
962 // hep-ph/0308029v2 eq.20
963 cache_deltas_1overm_tradBasis[index_deltas(cc, q)] = sqrt1minus4z_1overm * ((1 + 2. * z_1overm) * (K_2 * (me_R(2) + 2. * me_R(4)) - 2. * K_1 * (me_R(1) + me_R(2))) - 12. * z_1overm2 / (1. - 4. * z_1overm) * (K_1 * (me_R(2) + 2. * me_R(3)) + 2. * K_2 * me_R(3)));
964 cache_deltas_1overm_tradBasis[index_deltas(cu, q)] = oneminusz_1overm2 * ((1. + 2. * z_1overm) * (K_2 * (me_R(2) + 2. * me_R(4)) - 2. * K_1 * (me_R(1) + me_R(2))) - 6. * z_1overm2 / (1. - z_1overm) * (K_1 * (me_R(2) + 2. * me_R(3)) + 2. * K_2 * me_R(3)));
965 cache_deltas_1overm_tradBasis[index_deltas(uu, q)] = K_2 * (me_R(2) + 2. * me_R(4)) - 2. * K_1 * (me_R(1) + me_R(2));
966 return;
967}
double z_1overm
Definition: AmpDB2.h:262
double oneminusz_1overm2
Definition: AmpDB2.h:264
gslpp::complex K_2
Definition: AmpDB2.h:471
double sqrt1minus4z_1overm
Definition: AmpDB2.h:265
double z_1overm2
Definition: AmpDB2.h:263
gslpp::complex cache_deltas_1overm_tradBasis[6]
Definition: AmpDB2.h:364
gslpp::complex K_1
Definition: AmpDB2.h:470

◆ compute_g()

void AmpDB2::compute_g ( )
private

Definition at line 1025 of file AmpDB2.cpp.

1026{
1027 // hep-ph/0612167
1028 // equation (25)
1029 double cache_z = z_1overm;
1030 double cache_z2 = z_1overm2;
1031 double cache_oneminusz_1overm2 = oneminusz_1overm2;
1032 double cache_sqrt1minus4z = sqrt1minus4z_1overm;
1033 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 2))
1034 {
1035 cacheg[indexg(qq, 0)] = sqrt1minus4z_1overm * (1. + 2. * z_1overm) * K_1;
1036 cacheg[indexg(qq, 1)] = -2. * sqrt1minus4z_1overm * (1. + 2. * z_1overm) * K_1;
1037 cacheg[indexg(qq, 2)] = -2. * (1. - 2. * z_1overm - 2. * z_1overm2) / sqrt1minus4z_1overm * K_1;
1038 cacheg[indexg(qq, 3)] = -24. * z_1overm2 / sqrt1minus4z_1overm * K_1;
1039 cachegtilde[indexg(qq, 0)] = -2. * sqrt1minus4z_1overm * (1. + 2. * z_1overm) * K_2;
1040 cachegtilde[indexg(qq, 1)] = -2. * (1. - 2. * z_1overm - 2. * z_1overm2) / sqrt1minus4z_1overm * K_2;
1041 cachegtilde[indexg(qq, 2)] = -24. * z_1overm2 / sqrt1minus4z_1overm * K_2;
1042 z_1overm = 0.;
1043 z_1overm2 = 0.;
1044 oneminusz_1overm2 = 1.;
1046 }
1047 // equation (26)
1048 z_1overm = cache_z;
1049 z_1overm2 = cache_z2;
1050 oneminusz_1overm2 = cache_oneminusz_1overm2;
1051 sqrt1minus4z_1overm = cache_sqrt1minus4z;
1052 cacheg[indexg(cu, 0)] = oneminusz_1overm2 * (1. + 2. * z_1overm) * K_1;
1053 cacheg[indexg(cu, 1)] = -2. * oneminusz_1overm2 * (1. + 2. * z_1overm) * K_1;
1054 cacheg[indexg(cu, 2)] = -2. * (1. - z_1overm) * (1. + z_1overm + z_1overm2) * K_1;
1055 ;
1056 cacheg[indexg(cu, 3)] = -12. * (1. - z_1overm) * z_1overm2 * K_1;
1057 cachegtilde[indexg(cu, 0)] = -2. * oneminusz_1overm2 * (1. + 2. * z_1overm) * K_2;
1058 cachegtilde[indexg(cu, 1)] = -2. * (1. - z_1overm) * (1. + z_1overm + z_1overm2) * K_2;
1059 cachegtilde[indexg(cu, 2)] = -12. * (1. - z_1overm) * z_1overm2 * K_2;
1060 return;
1061}
gslpp::complex cachegtilde[12]
Definition: AmpDB2.h:461
gslpp::complex cacheg[12]
Definition: AmpDB2.h:460
int indexg(quarks qq, int i)
Definition: AmpDB2.cpp:1073

◆ compute_matrixelements()

void AmpDB2::compute_matrixelements ( quark  q,
orders  order 
)
private

A method to compute all DB=2 Wilson coefficients (me, me_R, me_Rtilde)

Parameters
[in]quarkindex of the neutral B mesons
[in]orderQCD orders used for R_0 @detail requires computeCKMandMasses() before use

Definition at line 774 of file AmpDB2.cpp.

775{
776 double Mq;
777 double Mb_mu2 = mySM.Mrun(mu_2,
780 double MBq2;
781 double KBq;
782 double FBq2;
783 switch (q)
784 {
785 case d:
786 me = mySM.getBBd().getBpars();
787 Mq = mySM.Mrun(mu_2,
790 MBq2 = MB * MB;
792 break;
793 case s:
794 me = mySM.getBBs().getBpars();
795 Mq = mySM.Mrun(mu_2,
798 MBq2 = MB_s * MB_s;
800 break;
801 default:
802 throw std::runtime_error("AmpDB2::compute_matrixelements(quark q): invalid quark index: ");
803 }
804 // pole mass for mbpow like in: hep-ph/0612167 eq. 28
805 // double Mbpow = mySM.Mbar2Mp(mySM.getQuarks(QCD::BOTTOM).getMass());
806 // double Mbpow2 = Mbpow * Mbpow;
807 // KBq = MBq2 / ((Mbpow + Mq) * (Mbpow + Mq));
808
809 // arXiv:1907.01025v2 equation (4)
810 KBq = MBq2 / ((Mb_mu2 + Mq) * (Mb_mu2 + Mq));
811 me(0) *= 8. / 3. * MBq2 * FBq2;
812 me(1) *= -5. / 3. * KBq * MBq2 * FBq2;
813 me(2) *= 1. / 3. * KBq * MBq2 * FBq2;
814 me(3) *= 2. * (KBq + 1. / 6.) * MBq2 * FBq2;
815 me(4) *= 2. / 3. * (KBq + 3. / 2.) * MBq2 * FBq2;
816
817 // old parameterization from hep-ph/0612167 eq. 28 (or hep-ph/0308029 eq.26)
818 /*
819 me_R(0) = me(1) + me(2) + 0.5 * me(0);
820 me_R(1) = Mq/Mb * me(3);
821 me_R(2) = -2./3. * FBq2 * MBq2 * (MBq2 / Mbpow2 - 1.);
822 me_R(3) = 7./6. * FBq2 * MBq2 * (MBq2 / Mbpow2 - 1.);
823 me_R(4) = 0.5 * (me(2) + 0.5 * me(0) + me(1) - 2. * Mq/Mbpow * me(4) + me_R(2));
824 */
825
826 // Gerlach thesis eq.7.5, 7.6
827 switch (q)
828 {
829 case d:
832 break;
833 case s:
836 break;
837 }
838 me_R(2) *= MBq2 * FBq2;
839 me_R(3) *= MBq2 * FBq2;
840 me_R(4) = 0.5 * (me(2) + 0.5 * me(0) + me(1) - 2. * Mq / Mb_mu2 * me(4) + me_R(2));
841
842 me_Rtilde(1) = -me_R(2);
843 me_Rtilde(2) = me_R(3) + 0.5 * me_R(2);
844
845 // subleading matrix elements that are not independent
846 // Gerlach thesis eq. (3.64)
847 double L_2 = 2. * log(mu_2 / Mb_mu2);
848 double as1_me0 = 0., as1_me2 = 0.;
849 if (order == FULLNLO)
850 {
851 as1_me0 = 4. * L_2 + 26. / 3.;
852 as1_me2 = 8. * L_2 + 8.;
853 }
854 me_R(0) = 0.5 * (1. + as1_me0 * as_4pi_mu2) * me(0) + me(1) + (1. + as1_me2 * as_4pi_mu2) * me(2);
855 // arxiv/1907.01025 eq.26
856 me_R(1) = Mq / Mb_mu2 * me(3);
857 me_Rtilde(0) = Mq / Mb_mu2 * me(4);
858
859 // switch matrix elements to RI scheme
860 if (flag_RI)
861 {
862 me_R(0) = 0.5 * me(0) + me(1) + me(2);
863 if (order == FULLNLO)
864 me += -as_4pi_mu2 * meMStoRI * me;
865 }
866
867 // matrix elements needed for the leading term of Gamma21overM21
868 meoverme0(0) = 1.;
869 meoverme0(1) = me(1) / me(0);
870 meoverme0(2) = me(2) / me(0);
871 return;
872}
@ FULLNNLO
Definition: OrderScheme.h:39
@ FULLNLO
Definition: OrderScheme.h:38
gslpp::vector< double > me
Definition: AmpDB2.h:201
double MB_s
Definition: AmpDB2.h:272
double MB
Definition: AmpDB2.h:271
gslpp::vector< double > meoverme0
Definition: AmpDB2.h:202
const gslpp::vector< double > & getBpars() const
A get method for the vector of the bag parameters.
Definition: BParameter.h:176
const double & getDecayconst() const
A get method for the decay constant of the meson.
Definition: Meson.h:360
double getMass_scale() const
A get method to access the scale at which the particle mass is defined.
Definition: Particle.h:133
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
const Meson & getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
Definition: QCD.h:526
const BParameter & getBBd_subleading() const
For getting the subleading bag parameters in process in the meson system.
Definition: QCD.h:651
const double Mrun(const double mu, const double m, const quark q, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1353
@ BOTTOM
Definition: QCD.h:329
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
const BParameter & getBBs_subleading() const
For getting the subleading bag parameters in process in the meson system.
Definition: QCD.h:662
const BParameter & getBBs() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:640
const BParameter & getBBd() const
For getting the bag parameters corresponding to the operator basis in process in the meson system.
Definition: QCD.h:629
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:536

◆ compute_partialNNLO()

void AmpDB2::compute_partialNNLO ( )
private

Definition at line 2562 of file AmpDB2.cpp.

2563{
2564 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 1))
2565 {
2566 for (int i = 1; i <= 6; i++)
2567 {
2568 // not all terms used for n=2
2569 for (int j = i; j <= 8; j++)
2570 {
2571 if (j == 3)
2572 j = 8;
2573 if (i >= 3)
2574 j = 8;
2575 cache_p[index_p(qq, i, j, 2)] = 0.;
2576 cache_ps[index_p(qq, i, j, 2)] = 0.;
2577 }
2578 }
2579 }
2580 for (int i = 0; i < 8; i++)
2581 {
2582 if (i == 6)
2583 i = 7;
2584 C_Misiak_NNLO[i] = 0.;
2585 }
2586 return;
2587}
double cache_p[768]
Definition: AmpDB2.h:400
double cache_ps[768]
Definition: AmpDB2.h:401
int index_p(quarks qq, int i, int j, int n)
Definition: AmpDB2.cpp:1452
gslpp::complex C_Misiak_NNLO[8]
Definition: AmpDB2.h:301

◆ compute_pp_s()

void AmpDB2::compute_pp_s ( )
private

Definition at line 1457 of file AmpDB2.cpp.

1458{
1459 // input didn't change nothing to compute
1460 // double currentInput_compute_pp_s[4] = {z, mu_1, mu_2, mu_b}; // Removed unused variable
1461 // if (lastInput_compute_pp_s == currentInput_compute_pp_s) return;
1462
1463 double cache_logz = logz;
1464 if (!flag_resumz)
1465 {
1466 throw std::runtime_error("AmpDB2::compute_pp_s(): only implemented for resummed z");
1467 }
1468
1469 // remember value of z after setting it to 0 for calculation of uu coefficients
1470 const double cache_z = z;
1471 const double cache_sqrt1minus4z = sqrt1minus4z;
1472 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 2))
1473 {
1474 // Gerlach thesis eq. (6.6)
1475 cache_p[index_p(qq, 1, 1, 0)] = (23. * sqrt1minus4z) / 72. - (43. * sqrt1minus4z * z) / 36.;
1476 cache_p[index_p(qq, 1, 2, 0)] = sqrt1minus4z / 6. - (5. * sqrt1minus4z * z) / 3.;
1477 cache_p[index_p(qq, 2, 2, 0)] = sqrt1minus4z - sqrt1minus4z * z;
1478 cache_ps[index_p(qq, 1, 1, 0)] = (-5. * sqrt1minus4z) / 9. - (10. * sqrt1minus4z * z) / 9.;
1479 cache_ps[index_p(qq, 1, 2, 0)] = (-4. * sqrt1minus4z) / 3. - (8. * sqrt1minus4z * z) / 3.;
1480 cache_ps[index_p(qq, 2, 2, 0)] = sqrt1minus4z + 2. * sqrt1minus4z * z;
1481
1482 cache_p[index_p(qq, 1, 3, 0)] = 4. / 3.;
1483 cache_p[index_p(qq, 1, 4, 0)] = -5. / 36.;
1484 cache_p[index_p(qq, 1, 5, 0)] = (64. * sqrt1minus4z) / 3. - (160. * sqrt1minus4z * z) / 3.;
1485 cache_p[index_p(qq, 1, 6, 0)] = (-20. * sqrt1minus4z) / 9. - (4. * sqrt1minus4z * z) / 9.;
1486 cache_p[index_p(qq, 2, 3, 0)] = 1.;
1487 cache_p[index_p(qq, 2, 4, 0)] = 5. / 6.;
1488 cache_p[index_p(qq, 2, 5, 0)] = 16. * sqrt1minus4z - 40. * sqrt1minus4z * z;
1489 cache_p[index_p(qq, 2, 6, 0)] = (40. * sqrt1minus4z) / 3. + (8. * sqrt1minus4z * z) / 3.;
1490
1491 cache_ps[index_p(qq, 1, 3, 0)] = -8. / 3.;
1492 cache_ps[index_p(qq, 1, 4, 0)] = -2. / 9.;
1493 cache_ps[index_p(qq, 1, 5, 0)] = -128. / 3.;
1494 cache_ps[index_p(qq, 1, 6, 0)] = -32. / 9.;
1495 cache_ps[index_p(qq, 2, 3, 0)] = -2.;
1496 cache_ps[index_p(qq, 2, 4, 0)] = 4. / 3.;
1497 cache_ps[index_p(qq, 2, 5, 0)] = -32.;
1498 cache_ps[index_p(qq, 2, 6, 0)] = 64. / 3.;
1499
1500 // Gerlach thesis eq. (6.9)
1501 z = 0.;
1502 sqrt1minus4z = 1.;
1503 }
1504 z = cache_z;
1505 sqrt1minus4z = cache_sqrt1minus4z;
1506
1507 // Gerlach thesis eq. (6.8)
1508 double n_l = 3.;
1509 double n_v = 1.;
1510 cache_p[index_p(cc, 3, 3, 0)] = 3. * (n_l + n_v) + 2.;
1511 cache_p[index_p(cc, 3, 4, 0)] = 7. / 3.;
1512 cache_p[index_p(cc, 3, 5, 0)] = 60. * (n_l + n_v) + 64.;
1513 cache_p[index_p(cc, 3, 6, 0)] = 112. / 3.;
1514 cache_p[index_p(cc, 4, 4, 0)] = 5. * (n_l + n_v) / 12. + 13. / 72.;
1515 cache_p[index_p(cc, 4, 5, 0)] = 112. / 3.;
1516 cache_p[index_p(cc, 4, 6, 0)] = 25. / 3. * (n_l + n_v) + 52. / 9.;
1517 cache_p[index_p(cc, 5, 5, 0)] = 512. + 408. * n_l + 408. * n_v * sqrt1minus4z - 480. * n_v * sqrt1minus4z * z;
1518 cache_p[index_p(cc, 5, 6, 0)] = 1792. / 3.;
1519 cache_p[index_p(cc, 6, 6, 0)] = 416. / 9. + (170. * n_l) / 3. + (170. * n_v * sqrt1minus4z) / 3. + (124. * n_v * sqrt1minus4z * z) / 3.;
1520
1521 cache_ps[index_p(cc, 3, 3, 0)] = -6. * (n_l + n_v) - 1.;
1522 cache_ps[index_p(cc, 3, 4, 0)] = -8. / 3.;
1523 cache_ps[index_p(cc, 3, 5, 0)] = -120. * (n_l + n_v) - 32.;
1524 cache_ps[index_p(cc, 3, 6, 0)] = -128. / 3.;
1525 cache_ps[index_p(cc, 4, 4, 0)] = 2. / 3. * (n_l + n_v) - 7. / 9.;
1526 cache_ps[index_p(cc, 4, 5, 0)] = -128. / 3.;
1527 cache_ps[index_p(cc, 4, 6, 0)] = 40. / 3. * (n_l + n_v) - 224. / 9.;
1528 cache_ps[index_p(cc, 5, 5, 0)] = -816. * (n_l + n_v) - 256.;
1529 cache_ps[index_p(cc, 5, 6, 0)] = -2048. / 3.;
1530 cache_ps[index_p(cc, 6, 6, 0)] = 272. / 3. * (n_l + n_v) - 1792. / 9.;
1531
1532 // Gerlach thesis eq. (6.9)
1533 for (int i = 3; i <= 6; i++)
1534 {
1535 for (int j = i; j <= 6; j++)
1536 {
1537 cache_p[index_p(uu, i, j, 0)] = cache_p[index_p(cc, i, j, 0)];
1538 cache_ps[index_p(uu, i, j, 0)] = cache_ps[index_p(cc, i, j, 0)];
1539 }
1540 }
1541
1542 // Gerlach thesis eq. (6.10)
1543 for (int i = 1; i <= 6; i++)
1544 {
1545 for (int j = i; j <= 6; j++)
1546 {
1547 cache_p[index_p(cu, i, j, 0)] =
1548 0.5 * (cache_p[index_p(cc, i, j, 0)] + cache_p[index_p(uu, i, j, 0)]);
1549 cache_ps[index_p(cu, i, j, 0)] =
1550 0.5 * (cache_ps[index_p(cc, i, j, 0)] + cache_ps[index_p(uu, i, j, 0)]);
1551 }
1552 }
1553 double L_1 = 2. * log(mu_1 / Mb);
1554 double L_2 = 2. * log(mu_2 / Mb);
1555 double log_some_z = log((2 * sqrt1minus4z) / (1 + sqrt1minus4z));
1556
1557 cache_p[index_p(cc, 1, 1, 1)] = (169. * Dilogsigma) / 27. + (92. * Dilogsigma2) / 27. + (92. * log2sigma) / 27. - (191. * logsigma) / 54. +
1558 (46. * log1minus4z * logsigma) / 27. + (169. * logsigma * log_some_z) / 54. - (92. * logsigma * logz) / 27. +
1559 (1211. * sqrt1minus4z) / 324. + (19. * L_1 * sqrt1minus4z) / 18. + (149. * L_2 * sqrt1minus4z) / 108. -
1560 (8. * log1minus4z * sqrt1minus4z) / 3. + (43. * logz * sqrt1minus4z) / 12. - (5. * logsigma) / (216. * z) +
1561 (5. * logz * sqrt1minus4z) / (216. * z) - (340. * Dilogsigma * z) / 9. - 19. * Dilogsigma2 * z -
1562 19. * log2sigma * z + (371. * logsigma * z) / 27. - (19. * log1minus4z * logsigma * z) / 2. -
1563 (170. * logsigma * log_some_z * z) / 9. + 19. * logsigma * logz * z - (6917. * sqrt1minus4z * z) / 324. -
1564 (23. * L_1 * sqrt1minus4z * z) / 9. - (49. * L_2 * sqrt1minus4z * z) / 54. +
1565 (128. * log1minus4z * sqrt1minus4z * z) / 9. - (1951. * logz * sqrt1minus4z * z) / 108. +
1566 (1364. * Dilogsigma * z2) / 27. + (682. * Dilogsigma2 * z2) / 27. + (682. * log2sigma * z2) / 27. -
1567 (263. * logsigma * z2) / 54. + (341. * log1minus4z * logsigma * z2) / 27. +
1568 (682. * logsigma * log_some_z * z2) / 27. - (682. * logsigma * logz * z2) / 27. -
1569 (295. * sqrt1minus4z * z2) / 54. + (295. * logsigma * z3) / 27. - (5. * (M_PI2)) / 108. + (z * (M_PI2)) / 54.;
1570 cache_p[index_p(cc, 1, 2, 1)] = (92. * Dilogsigma) / 9. + (16. * Dilogsigma2) / 9. + (16. * log2sigma) / 9. - (275. * logsigma) / 36. +
1571 (8. * log1minus4z * logsigma) / 9. + (46. * logsigma * log_some_z) / 9. - (16. * logsigma * logz) / 9. -
1572 (476. * sqrt1minus4z) / 27. - (37. * L_1 * sqrt1minus4z) / 6. + (19. * L_2 * sqrt1minus4z) / 9. +
1573 (27. * logz * sqrt1minus4z) / 4. + (4. * logsigma) / (9. * z) - (4. * logz * sqrt1minus4z) / (9. * z) -
1574 (176. * Dilogsigma * z) / 3. - 28. * Dilogsigma2 * z - 28. * log2sigma * z + (815. * logsigma * z) / 18. -
1575 14. * log1minus4z * logsigma * z - (88. * logsigma * log_some_z * z) / 3. + 28. * logsigma * logz * z +
1576 (917. * sqrt1minus4z * z) / 27. + (41. * L_1 * sqrt1minus4z * z) / 3. + (2. * L_2 * sqrt1minus4z * z) / 9. +
1577 (64. * log1minus4z * sqrt1minus4z * z) / 3. - (392. * logz * sqrt1minus4z * z) / 9. + (688. * Dilogsigma * z2) / 9. +
1578 (344. * Dilogsigma2 * z2) / 9. + (344. * log2sigma * z2) / 9. - (269. * logsigma * z2) / 9. +
1579 (172. * log1minus4z * logsigma * z2) / 9. + (344. * logsigma * log_some_z * z2) / 9. - (344. * logsigma * logz * z2) / 9. -
1580 (91. * sqrt1minus4z * z2) / 9. + (182. * logsigma * z3) / 9. + (5. * (M_PI2)) / 9. - (2. * z * (M_PI2)) / 9.;
1581 cache_p[index_p(cc, 2, 2, 1)] = (4. * Dilogsigma) / 3. + (32. * Dilogsigma2) / 3. + (32. * log2sigma) / 3. - (41. * logsigma) / 6. +
1582 (16. * log1minus4z * logsigma) / 3. + (2. * logsigma * log_some_z) / 3. - (32. * logsigma * logz) / 3. +
1583 (103. * sqrt1minus4z) / 18. - L_1 * sqrt1minus4z + (2. * L_2 * sqrt1minus4z) / 3. -
1584 12. * log1minus4z * sqrt1minus4z + (21. * logz * sqrt1minus4z) / 2. - (11. * logsigma) / (6. * z) +
1585 (11. * logz * sqrt1minus4z) / (6. * z) - 16. * Dilogsigma * z - 12. * Dilogsigma2 * z - 12. * log2sigma * z +
1586 (77. * logsigma * z) / 3. - 6. * log1minus4z * logsigma * z - 8. * logsigma * log_some_z * z + 12. * logsigma * logz * z +
1587 (34. * sqrt1minus4z * z) / 9. + 10. * L_1 * sqrt1minus4z * z - (14. * L_2 * sqrt1minus4z * z) / 3. +
1588 8. * log1minus4z * sqrt1minus4z * z - (73. * logz * sqrt1minus4z * z) / 3. + (80. * Dilogsigma * z2) / 3. +
1589 (40. * Dilogsigma2 * z2) / 3. + (40. * log2sigma * z2) / 3. - (16. * logsigma * z2) / 3. +
1590 (20. * log1minus4z * logsigma * z2) / 3. + (40. * logsigma * log_some_z * z2) / 3. - (40. * logsigma * logz * z2) / 3. +
1591 (16. * sqrt1minus4z * z2) / 3. - (32. * logsigma * z3) / 3. - (5. * (M_PI2)) / 3. + (2. * z * (M_PI2)) / 3.;
1592 cache_ps[index_p(cc, 1, 1, 1)] = (-344. * Dilogsigma) / 27. - (160. * Dilogsigma2) / 27. - (160. * log2sigma) / 27. + (320. * logsigma) / 27. -
1593 (80. * log1minus4z * logsigma) / 27. - (172. * logsigma * log_some_z) / 27. + (160. * logsigma * logz) / 27. -
1594 (10. * sqrt1minus4z) / 81. - (4. * L_1 * sqrt1minus4z) / 9. - (40. * L_2 * sqrt1minus4z) / 27. +
1595 (80. * log1minus4z * sqrt1minus4z) / 9. - 12. * logz * sqrt1minus4z + (2. * logsigma) / (27. * z) -
1596 (2. * logz * sqrt1minus4z) / (27. * z) + (8. * Dilogsigma2 * z) / 9. + (8. * log2sigma * z) / 9. -
1597 (214. * logsigma * z) / 27. + (4. * log1minus4z * logsigma * z) / 9. - (8. * logsigma * logz * z) / 9. -
1598 (1511. * sqrt1minus4z * z) / 81. - (8. * L_1 * sqrt1minus4z * z) / 9. - (80. * L_2 * sqrt1minus4z * z) / 27. +
1599 (160. * log1minus4z * sqrt1minus4z * z) / 9. - (610. * logz * sqrt1minus4z * z) / 27. +
1600 (1376. * Dilogsigma * z2) / 27. + (688. * Dilogsigma2 * z2) / 27. + (688. * log2sigma * z2) / 27. -
1601 (460. * logsigma * z2) / 27. + (344. * log1minus4z * logsigma * z2) / 27. + (688. * logsigma * log_some_z * z2) / 27. -
1602 (688. * logsigma * logz * z2) / 27. - (590. * sqrt1minus4z * z2) / 27. + (1180. * logsigma * z3) / 27. -
1603 (2. * (M_PI2)) / 27. - (4. * z * (M_PI2)) / 27.;
1604 cache_ps[index_p(cc, 1, 2, 1)] = (-160. * Dilogsigma) / 9. - (128. * Dilogsigma2) / 9. - (128. * log2sigma) / 9. + (238. * logsigma) / 9. -
1605 (64. * log1minus4z * logsigma) / 9. - (80. * logsigma * log_some_z) / 9. + (128. * logsigma * logz) / 9. +
1606 (100. * sqrt1minus4z) / 27. + (4. * L_1 * sqrt1minus4z) / 3. - (32. * L_2 * sqrt1minus4z) / 9. +
1607 (64. * log1minus4z * sqrt1minus4z) / 3. - 26. * logz * sqrt1minus4z - (2. * logsigma) / (9. * z) +
1608 (2. * logz * sqrt1minus4z) / (9. * z) - (32. * Dilogsigma2 * z) / 3. - (32. * log2sigma * z) / 3. +
1609 (16. * logsigma * z) / 9. - (16. * log1minus4z * logsigma * z) / 3. + (32. * logsigma * logz * z) / 3. -
1610 (442. * sqrt1minus4z * z) / 27. + (8. * L_1 * sqrt1minus4z * z) / 3. - (64. * L_2 * sqrt1minus4z * z) / 9. +
1611 (128. * log1minus4z * sqrt1minus4z * z) / 3. - (560. * logz * sqrt1minus4z * z) / 9. + (640. * Dilogsigma * z2) / 9. +
1612 (320. * Dilogsigma2 * z2) / 9. + (320. * log2sigma * z2) / 9. - (728. * logsigma * z2) / 9. +
1613 (160. * log1minus4z * logsigma * z2) / 9. + (320. * logsigma * log_some_z * z2) / 9. - (320. * logsigma * logz * z2) / 9. -
1614 (364. * sqrt1minus4z * z2) / 9. + (728. * logsigma * z3) / 9. + (8. * (M_PI2)) / 9. + (16. * z * (M_PI2)) / 9.;
1615 cache_ps[index_p(cc, 2, 2, 1)] = (-32. * Dilogsigma) / 3. + (32. * Dilogsigma2) / 3. + (32. * log2sigma) / 3. - (28. * logsigma) / 3. +
1616 (16. * log1minus4z * logsigma) / 3. - (16. * logsigma * log_some_z) / 3. - (32. * logsigma * logz) / 3. +
1617 (272. * sqrt1minus4z) / 9. + 8. * L_1 * sqrt1minus4z + (8. * L_2 * sqrt1minus4z) / 3. -
1618 16. * log1minus4z * sqrt1minus4z + 12. * logz * sqrt1minus4z - (4. * logsigma) / (3. * z) +
1619 (4. * logz * sqrt1minus4z) / (3. * z) + 32. * Dilogsigma2 * z + 32. * log2sigma * z - (40. * logsigma * z) / 3. +
1620 16. * log1minus4z * logsigma * z - 32. * logsigma * logz * z + (664. * sqrt1minus4z * z) / 9. +
1621 16. * L_1 * sqrt1minus4z * z + (16. * L_2 * sqrt1minus4z * z) / 3. - 32. * log1minus4z * sqrt1minus4z * z +
1622 (104. * logz * sqrt1minus4z * z) / 3. + (128. * Dilogsigma * z2) / 3. + (64. * Dilogsigma2 * z2) / 3. +
1623 (64. * log2sigma * z2) / 3. + (272. * logsigma * z2) / 3. + (32. * log1minus4z * logsigma * z2) / 3. +
1624 (64. * logsigma * log_some_z * z2) / 3. - (64. * logsigma * logz * z2) / 3. + (64. * sqrt1minus4z * z2) / 3. -
1625 (128. * logsigma * z3) / 3. - (8. * (M_PI2)) / 3. - (16. * z * (M_PI2)) / 3.;
1626
1627 cache_p[index_p(uu, 1, 1, 1)] = 299. / 81. + (19. * L_1) / 18. + (149. * L_2) / 108. - (5. * (M_PI2)) / 108.;
1628 cache_p[index_p(uu, 1, 2, 1)] = -452. / 27. - (37. * L_1) / 6. + (19. * L_2) / 9. + (5. * (M_PI2)) / 9.;
1629 cache_p[index_p(uu, 2, 2, 1)] = 37. / 18. - L_1 + (2. * L_2) / 3. - (5. * (M_PI2)) / 3.;
1630 cache_ps[index_p(uu, 1, 1, 1)] = 2. / 81. - (4. * L_1) / 9. - (40. * L_2) / 27. - (2. * (M_PI2)) / 27.;
1631 cache_ps[index_p(uu, 1, 2, 1)] = 88. / 27. + (4. * L_1) / 3. - (32. * L_2) / 9. + (8. * (M_PI2)) / 9.;
1632 cache_ps[index_p(uu, 2, 2, 1)] = 248. / 9. + 8. * L_1 + (8. * L_2) / 3. - (8. * (M_PI2)) / 3.;
1633
1634 // pengFlag terms from P12-36 here in full z dependence
1635 cache_p[index_p(cc, 1, 1, 1)] += (-5. * logsigma) / 324. - (5. * sqrt1minus4z) / 486. -
1636 (5. * L_1 * sqrt1minus4z) / 324. + (5. * logz * sqrt1minus4z) / 324. -
1637 (20. * sqrt1minus4z * z) / 243. - (5. * L_1 * sqrt1minus4z * z) / 162. +
1638 (5. * logz * sqrt1minus4z * z) / 162. + (5. * logsigma * z2) / 27. -
1639 (10. * sqrt1minus4z * z2) / 81. + (20. * logsigma * z3) / 81.;
1640 cache_p[index_p(cc, 1, 2, 1)] += (5. * logsigma) / 27. + (10. * sqrt1minus4z) / 81. + (5. * L_1 * sqrt1minus4z) / 27. -
1641 (5. * logz * sqrt1minus4z) / 27. + (80. * sqrt1minus4z * z) / 81. +
1642 (10. * L_1 * sqrt1minus4z * z) / 27. - (10. * logz * sqrt1minus4z * z) / 27. -
1643 (20. * logsigma * z2) / 9. + (40. * sqrt1minus4z * z2) / 27. -
1644 (80. * logsigma * z3) / 27.;
1645 cache_p[index_p(cc, 2, 2, 1)] += (-5. * logsigma) / 9. - (10. * sqrt1minus4z) / 27. - (5. * L_1 * sqrt1minus4z) / 9. +
1646 (5. * logz * sqrt1minus4z) / 9. - (80. * sqrt1minus4z * z) / 27. -
1647 (10. * L_1 * sqrt1minus4z * z) / 9. + (10. * logz * sqrt1minus4z * z) / 9. +
1648 (20. * logsigma * z2) / 3. - (40. * sqrt1minus4z * z2) / 9. + (80. * logsigma * z3) / 9.;
1649 cache_ps[index_p(cc, 1, 1, 1)] += (-2. * logsigma) / 81. - (4. * sqrt1minus4z) / 243. -
1650 (2. * L_1 * sqrt1minus4z) / 81. + (2. * logz * sqrt1minus4z) / 81. -
1651 (32. * sqrt1minus4z * z) / 243. - (4. * L_1 * sqrt1minus4z * z) / 81. +
1652 (4. * logz * sqrt1minus4z * z) / 81. + (8. * logsigma * z2) / 27. -
1653 (16. * sqrt1minus4z * z2) / 81. + (32. * logsigma * z3) / 81.;
1654 cache_ps[index_p(cc, 1, 2, 1)] += (8. * logsigma) / 27. + (16. * sqrt1minus4z) / 81. + (8. * L_1 * sqrt1minus4z) / 27. -
1655 (8. * logz * sqrt1minus4z) / 27. + (128. * sqrt1minus4z * z) / 81. +
1656 (16. * L_1 * sqrt1minus4z * z) / 27. - (16. * logz * sqrt1minus4z * z) / 27. -
1657 (32. * logsigma * z2) / 9. + (64. * sqrt1minus4z * z2) / 27. -
1658 (128. * logsigma * z3) / 27.;
1659 cache_ps[index_p(cc, 2, 2, 1)] += (-8. * logsigma) / 9. - (16. * sqrt1minus4z) / 27. - (8. * L_1 * sqrt1minus4z) / 9. +
1660 (8. * logz * sqrt1minus4z) / 9. - (128. * sqrt1minus4z * z) / 27. -
1661 (16. * L_1 * sqrt1minus4z * z) / 9. + (16. * logz * sqrt1minus4z * z) / 9. +
1662 (32. * logsigma * z2) / 3. - (64. * sqrt1minus4z * z2) / 9. + (128. * logsigma * z3) / 9.;
1663
1664 cache_p[index_p(uu, 1, 1, 1)] += -5. / 486. - (5. * L_1) / 324.;
1665 cache_p[index_p(uu, 1, 2, 1)] += 10. / 81. + (5. * L_1) / 27.;
1666 cache_p[index_p(uu, 2, 2, 1)] += -10. / 27. - (5. * L_1) / 9.;
1667 cache_ps[index_p(uu, 1, 1, 1)] += -4. / 243. - (2. * L_1) / 81.;
1668 cache_ps[index_p(uu, 1, 2, 1)] += 16. / 81. + (8. * L_1) / 27.;
1669 cache_ps[index_p(uu, 2, 2, 1)] += -16. / 27. - (8. * L_1) / 9.;
1670
1671 // Corrections from LO coefficients when resummation logz
1672 double z_replace = -6. * 4. / 3. * logz * z;
1673 cache_p[index_p(cc, 1, 1, 1)] += (-11. / 6. + 43. / 6. * z) / sqrt1minus4z * z_replace;
1674 cache_p[index_p(cc, 1, 2, 1)] += (-2. + 10. * z) / sqrt1minus4z * z_replace;
1675 cache_p[index_p(cc, 2, 2, 1)] += (-3. + 6. * z) / sqrt1minus4z * z_replace;
1676 cache_ps[index_p(cc, 1, 1, 1)] += (20. / 3. * z) / sqrt1minus4z * z_replace;
1677 cache_ps[index_p(cc, 1, 2, 1)] += (16. * z) / sqrt1minus4z * z_replace;
1678 cache_ps[index_p(cc, 2, 2, 1)] += (-12. * z) / sqrt1minus4z * z_replace;
1679
1680 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 2))
1681 {
1682 // equation (6.14)
1683 cache_p[index_p(qq, 1, 3, 1)] = (320. / 9. - 4. * L_1) * z + 47. / 18. * L_1 + 56. / 9. * L_2 - 5. / (18. * sqrt3) * M_PI + 1523. / 108.;
1684 cache_p[index_p(qq, 1, 4, 1)] = (59. / 3. * L_1 + 5. / 9. * M_PI2 + 4565. / 108.) * z - 281. / 108. * L_1 + L_2 / 54. + 5. / 18. * M_PI2 - 25. / (108. * sqrt3) * M_PI - 712. / 81.;
1685 cache_p[index_p(qq, 1, 5, 1)] = z * (-136. * L_1 - 192. * L_2 - 768. * logz - 16408. / 9.) + 376. / 9. * L_1 + 896. / 9. * L_2 - 40. / (9. * sqrt3) * M_PI + 318.;
1686 cache_p[index_p(qq, 1, 6, 1)] = z * (764. / 3. * L_1 + 8. * L_2 + 32. * logz + 8. / 9. * M_PI2 + 22850. / 27.) - 1259. / 27. * L_1 + 8. / 27. * L_2 + 40. / 9. * M_PI2 - 55. / (27. * sqrt3) * M_PI - 4243. / 27.;
1687 cache_p[index_p(qq, 2, 3, 1)] = (24. * L_1 + 170. / 3.) * z - 47. / 3. * L_1 + 14. / 3. * L_2 + 5. / (3. * sqrt3) * M_PI - 677. / 18.;
1688 cache_p[index_p(qq, 2, 4, 1)] = (26. * L_1 - 10. / 3. * M_PI2 + 1429. / 18.) * z - 35. / 9. * L_1 - L_2 / 9. - 5. / 3. * M_PI2 + 25. / (18. * sqrt3) * M_PI - 88. / 27.;
1689 cache_p[index_p(qq, 2, 5, 1)] = z * (816. * L_1 - 144. * L_2 - 576. * logz + 3656. / 3.) - 752. / 3. * L_1 + 224. / 3. * L_2 + 80. / (3. * sqrt3) * M_PI - 580.;
1690 cache_p[index_p(qq, 2, 6, 1)] = z * (128. * L_1 - 48. * L_2 - 192. * logz - 16. / 3. * M_PI2 + 6140. / 9.) - 290. / 9. * L_1 - 16. / 9. * L_2 - 80. / 3. * M_PI2 + 110. / (9. * sqrt3) * M_PI - 442. / 9.;
1691
1692 cache_ps[index_p(qq, 1, 3, 1)] = -4. / 3. * L_1 - 64. / 9. * L_2 - 1720. / 9. * z - 4. / (9. * sqrt3) * M_PI - 130. / 27.;
1693 cache_ps[index_p(qq, 1, 4, 1)] = 2. * L_1 - 16. / 27. * L_2 + (80. / 27. + 8. / 9. * M_PI2) * z + 4. / 9. * M_PI2 - 10. / (27. * sqrt3) * M_PI + 404. / 81.;
1694 cache_ps[index_p(qq, 1, 5, 1)] = -64. / 3. * L_1 - 1024. / 9. * L_2 - 27952. / 9. * z - 64. / (9. * sqrt3) * M_PI - 2128. / 9.;
1695 cache_ps[index_p(qq, 1, 6, 1)] = 24. * L_1 - 256. / 27. * L_2 + (128. / 9. * M_PI2 - 520. / 27.) * z - 64. / 9. * M_PI2 - 88. / (27. * sqrt3) * M_PI + 2824. / 27.;
1696 cache_ps[index_p(qq, 2, 3, 1)] = 8. * L_1 - 16. / 3. * L_2 - 448. / 3. * z + 8. / (3. * sqrt3) * M_PI + 116. / 9.;
1697 cache_ps[index_p(qq, 2, 4, 1)] = 32. / 9. * L_2 + (488. / 9. - 16. / 3. * M_PI2) * z - 8. / 3. * M_PI2 + 20. / (9. * sqrt3) * M_PI + 272. / 27.;
1698 cache_ps[index_p(qq, 2, 5, 1)] = 128. * L_1 - 256. / 3. * L_2 - 6304. / 3. * z + 128. / (3. * sqrt3) * M_PI + 32. / 3.;
1699 cache_ps[index_p(qq, 2, 6, 1)] = 48. * L_1 + 512. / 9. * L_2 + (7520. / 9. - 256. / 3. * M_PI2) * z - 128. / 3. * M_PI2 + 176. / (9. * sqrt3) * M_PI + 1840. / 9.;
1700
1701 // Gerlach thesis eq. (6.13) and (6.15)
1702 z = 0.;
1703 }
1704 z = cache_z;
1705 // Gerlach thesis eq. (6.15)
1706 cache_p[index_p(uu, 1, 4, 1)] += 5. / 9. * z;
1707 cache_p[index_p(uu, 1, 6, 1)] += 50. / 9. * z;
1708 cache_p[index_p(uu, 2, 4, 1)] += -10. / 3. * z;
1709 cache_p[index_p(uu, 2, 6, 1)] += -100. / 3. * z;
1710
1711 cache_ps[index_p(uu, 1, 4, 1)] += 8. / 9. * z;
1712 cache_ps[index_p(uu, 1, 6, 1)] += 80. / 9. * z;
1713 cache_ps[index_p(uu, 2, 4, 1)] += -16. / 3. * z;
1714 cache_ps[index_p(uu, 2, 6, 1)] += -160. / 3. * z;
1715
1716 // Corrections from LO coefficients when resummation logz
1717 cache_p[index_p(cc, 1, 5, 1)] += -96. * z_replace;
1718 cache_p[index_p(cc, 1, 6, 1)] += 4. * z_replace;
1719 cache_p[index_p(cc, 2, 5, 1)] += -72. * z_replace;
1720 cache_p[index_p(cc, 2, 6, 1)] += -24. * z_replace;
1721
1722 // Gerlach thesis eq. (6.13) and (6.16)
1723 for (int i = 1; i <= 2; i++)
1724 {
1725 for (int j = i; j <= 6; j++)
1726 {
1727 cache_p[index_p(cu, i, j, 1)] =
1728 0.5 * (cache_p[index_p(cc, i, j, 1)] + cache_p[index_p(uu, i, j, 1)]);
1729 cache_ps[index_p(cu, i, j, 1)] =
1730 0.5 * (cache_ps[index_p(cc, i, j, 1)] + cache_ps[index_p(uu, i, j, 1)]);
1731 }
1732 }
1733
1734 cache_p[index_p(cu, 1, 1, 1)] = (15. * log1minusz + 2407. * z + 894. * L_2 * z - 1065. * log1minusz * z + 1014. * log1minusz * logz * z - 1539. * log1minusz * z4 * z +
1735 1539. * logz * z4 * z - 36. * L_1 * oneminusz2 * z * (-19. + 4. * z) - 9255. * z2 - 1188. * L_2 * z2 + 5679. * log1minusz * z2 - 3738. * logz * z2 -
1736 2970. * log1minusz * logz * z2 + 10008. * z3 - 306. * L_2 * z3 - 9762. * log1minusz * z3 + 7794. * logz * z3 + 3060. * log1minusz * logz * z3 -
1737 12. * Dilogz * z * (-169. + 495. * z - 510. * z2 + 184. * z3) - 3160. * z4 + 600. * L_2 * z4 + 6672. * log1minusz * z4 - 6876. * logz * z4 -
1738 1104. * log1minusz * logz * z4 - 30. * z * (M_PI2) + 6. * z2 * (M_PI2) + 24. * z3 * (M_PI2)) /
1739 (648. * z);
1740 cache_p[index_p(cu, 1, 2, 1)] = -1. / 108. * (48. * log1minusz + 1856. * z - 228. * L_2 * z - 627. * log1minusz * z - 276. * log1minusz * logz * z + 378. * log1minusz * z4 * z - 378. * logz * z4 * z - 18. * L_1 * oneminusz2 * z * (-37. + 4. * z) - 3588. * z2 + 216. * L_2 * z2 + 72. * log1minusz * z2 + 588. * logz * z2 + 972. * log1minusz * logz * z2 + 1143. * z3 + 252. * L_2 * z3 + 1923. * log1minusz * z3 - 2421. * logz * z3 - 792. * log1minusz * logz * z3 + 24. * Dilogz * z * (-23. + 81. * z - 66. * z2 + 8. * z3) + 589. * z4 - 240. * L_2 * z4 - 1794. * log1minusz * z4 + 1746. * logz * z4 + 96. * log1minusz * logz * z4 - 60. * z * (M_PI2) + 12. * z2 * (M_PI2) + 48. * z3 * (M_PI2)) / z;
1741 cache_p[index_p(cu, 2, 2, 1)] = (70. + 12. * L_2 - 210. * log1minusz + 6. * log1minusz * logz + (33. * log1minusz) / z - 3. * z - 54. * L_2 * z + 225. * log1minusz * z - 210. * logz * z +
1742 54. * log1minusz * logz * z + 18. * L_1 * oneminusz2 * (-1. + 4. * z) - 360. * z2 + 72. * L_2 * z2 + 21. * log1minusz * z2 + 153. * logz * z2 +
1743 36. * log1minusz * logz * z2 + 293. * z3 - 30. * L_2 * z3 - 42. * log1minusz * z3 - 126. * logz * z3 - 96. * log1minusz * logz * z3 -
1744 12. * Dilogz * (-1. - 9. * z - 6. * z2 + 16. * z3) - 27. * log1minusz * z4 + 27. * logz * z4 - 30. * (M_PI2) + 6. * z * (M_PI2) + 24. * z2 * (M_PI2)) /
1745 18.;
1746 cache_ps[index_p(cu, 1, 1, 1)] = -1. / 162. * (12. * log1minusz + 8. * z + 240. * L_2 * z - 978. * log1minusz * z + 516. * log1minusz * logz * z + 774. * log1minusz * z4 * z - 774. * logz * z4 * z + 72. * L_1 * oneminusz2 * z * (1. + 2. * z) + 1461. * z2 - 1674. * log1minusz * z2 + 516. * logz * z2 - 36. * log1minusz * logz * z2 - 3654. * z3 - 720. * L_2 * z3 + 7008. * log1minusz * z3 - 5796. * logz * z3 - 1584. * log1minusz * logz * z3 + 24. * Dilogz * z * (43. - 3. * z - 132. * z2 + 92. * z3) + 2185. * z4 + 480. * L_2 * z4 - 5142. * log1minusz * z4 + 5346. * logz * z4 + 1104. * log1minusz * logz * z4 + 12. * z * (M_PI2) + 12. * z2 * (M_PI2)-24. * z3 * (M_PI2)) / z;
1747 cache_ps[index_p(cu, 1, 2, 1)] = (6. * log1minusz + 94. * z - 96. * L_2 * z + 402. * log1minusz * z - 120. * log1minusz * logz * z - 180. * log1minusz * z4 * z +
1748 180. * logz * z4 * z + 36. * L_1 * oneminusz2 * z * (1. + 2. * z) - 363. * z2 + 216. * log1minusz * z2 - 120. * logz * z2 -
1749 72. * log1minusz * logz * z2 + 792. * z3 + 288. * L_2 * z3 - 1842. * log1minusz * z3 + 1638. * logz * z3 +
1750 288. * log1minusz * logz * z3 - 48. * Dilogz * z * (5. + 3. * z - 12. * z2 + 4. * z3) - 523. * z4 - 192. * L_2 * z4 +
1751 1398. * log1minusz * z4 - 1350. * logz * z4 - 96. * log1minusz * logz * z4 + 24. * z * (M_PI2) + 24. * z2 * (M_PI2)-48. * z3 * (M_PI2)) /
1752 (27. * z);
1753 cache_ps[index_p(cu, 2, 2, 1)] = (4. * (12. * oneminusz2 * (1. + 2. * z) + 18. * L_1 * oneminusz2 * (1. + 2. * z) - 12. * L_2 * oneminusz2 * (1. + 2. * z) +
1754 18. * (1. + L_2) * oneminusz2 * (1. + 2. * z) - 6. * (2. * Dilogz + log1minusz * logz) * (-1. + z) * (1. + 2. * z) * (-1. + 4. * z) - (3. * log1minusz * oneminusz2 * (1. + z) * (-1. + 13. * z + 3. * z2)) / z +
1755 7. * (-1. + z) * (-5. - 8. * z + 19. * z2) + 3. * logz * z * (-2. + 3. * z - 18. * z2 + 3. * z3) +
1756 6. * (-1. + z) * (1. + 2. * z) * (M_PI2))) /
1757 9.;
1758
1759 // pengFlag terms from P12-36 here in full z dependence
1760 cache_p[index_p(cu, 1, 1, 1)] += (5. * (-2. - 3. * L_1 + 3. * logz - 12. * z - 2. * sqrt1minus4z * (1. + 2. * z) -
1761 3. * L_1 * sqrt1minus4z * (1. + 2. * z) - 3. * logsigma * sqrt1minus4z * (1. + 2. * z))) /
1762 1944.;
1763 cache_p[index_p(cu, 1, 2, 1)] += (5. * (2. + 3. * L_1 - 3. * logz + 12. * z + 2. * sqrt1minus4z * (1. + 2. * z) +
1764 3. * L_1 * sqrt1minus4z * (1. + 2. * z) + 3. * logsigma * sqrt1minus4z * (1. + 2. * z))) /
1765 162.;
1766 cache_p[index_p(cu, 2, 2, 1)] += (5. * (-2. - 3. * L_1 + 3. * logz - 12. * z - 2. * sqrt1minus4z * (1. + 2. * z) -
1767 3. * L_1 * sqrt1minus4z * (1. + 2. * z) - 3. * logsigma * sqrt1minus4z * (1. + 2. * z))) /
1768 54.;
1769 cache_ps[index_p(cu, 1, 1, 1)] += (-2. - 3. * L_1 + 3. * logz - 12. * z - 2. * sqrt1minus4z * (1. + 2. * z) -
1770 3. * L_1 * sqrt1minus4z * (1. + 2. * z) - 3. * logsigma * sqrt1minus4z * (1. + 2. * z)) /
1771 243.;
1772 cache_ps[index_p(cu, 1, 2, 1)] += (4. * (2. + 3. * L_1 - 3. * logz + 12. * z + 2. * sqrt1minus4z * (1. + 2. * z) +
1773 3. * L_1 * sqrt1minus4z * (1. + 2. * z) + 3. * logsigma * sqrt1minus4z * (1. + 2. * z))) /
1774 81.;
1775 cache_ps[index_p(cu, 2, 2, 1)] += (4. * (-2. - 3. * L_1 + 3. * logz - 12. * z - 2. * sqrt1minus4z * (1. + 2. * z) -
1776 3. * L_1 * sqrt1minus4z * (1. + 2. * z) - 3. * logsigma * sqrt1minus4z * (1. + 2. * z))) /
1777 27.;
1778
1779 // Corrections from LO coefficients when resummation logz
1780 cache_p[index_p(cu, 1, 1, 1)] += (-11. / 12. + 7. / 4. * z + 5. / 6. * z2) * z_replace;
1781 cache_p[index_p(cu, 1, 2, 1)] += (-1. + 3. * z - 2. * z2) * z_replace;
1782 cache_p[index_p(cu, 2, 2, 1)] += (-3. / 2. + 3. / 2. * z2) * z_replace;
1783 cache_ps[index_p(cu, 1, 1, 1)] += (10. / 3. * z - 10. / 3. * z2) * z_replace;
1784 cache_ps[index_p(cu, 1, 2, 1)] += (8. * z - 8. * z2) * z_replace;
1785 cache_ps[index_p(cu, 2, 2, 1)] += (-6. * z + 6. * z2) * z_replace;
1786
1787 // Gerlach thesis eq. (6.18)
1788 cache_p[index_p(cc, 3, 3, 1)] = -154. / 9. * L_1 + 184. / 3. * L_2 + 90. * z - 5. / 3. * M_PI2 + 5. / (3. * sqrt3) * M_PI + 1390. / 27.;
1789 cache_p[index_p(cc, 3, 4, 1)] = -811. / 54. * L_1 + 74. / 9. * L_2 - 10. / 3. * z - 10. / 9. * M_PI2 + 70. / (9. * sqrt3) * M_PI - 27991. / 324.;
1790 cache_p[index_p(cc, 3, 5, 1)] = -4928. / 9. * L_1 + 3872. / 3. * L_2 + 1800. * z - 160. / 3. * M_PI2 + 160. / (3. * sqrt3) * M_PI + 16880. / 27.;
1791 cache_p[index_p(cc, 3, 6, 1)] = (144. * L_1 + 440. / 3.) * z - 12932. / 27. * L_1 + 1184. / 9. * L_2 - 160. / 9. * M_PI2 + 670. / (9. * sqrt3) * M_PI - 131410. / 81.;
1792 cache_p[index_p(cc, 4, 4, 1)] = 181. / 162. * L_1 + 127. / 108. * L_2 + (323. / 36. - 5. / 3. * M_PI2) * z - 335. / 108. * M_PI2 + 575. / (108. * sqrt3) * M_PI + 779. / 486.;
1793 cache_p[index_p(cc, 4, 5, 1)] = (576. * L_1 + 3836. / 3.) * z - 14912. / 27. * L_1 + 1184. / 9. * L_2 - 160. / 9. * M_PI2 + 1120. / (9. * sqrt3) * M_PI - 127990. / 81.;
1794 cache_p[index_p(cc, 4, 6, 1)] = (60. * L_1 - 100. / 3. * M_PI2 + 2455. / 9.) * z - 8759. / 81. * L_1 + 1088. / 27. * L_2 - 1600. / 27. * M_PI2 + 2665. / (27. * sqrt3) * M_PI - 50083. / 243.;
1795 cache_p[index_p(cc, 5, 5, 1)] = z * (-2592. * L_2 - 10368. * logz - 33120.) - 39424. / 9. * L_1 + 26944. / 3. * L_2 - 1280. / 3. * M_PI2 + 1280. / (3. * sqrt3) * M_PI + 347104. / 27.;
1796 cache_p[index_p(cc, 5, 6, 1)] = (7200. * L_1 + 74000. / 3.) * z - 240608. / 27. * L_1 + 18944. / 9. * L_2 - 2560. / 9. * M_PI2 + 10720. / (9. * sqrt3) * M_PI - 2253568. / 81.;
1797 cache_p[index_p(cc, 6, 6, 1)] = z * (-48. * L_1 - 144. * L_2 - 576. * logz - 248. / 3. * M_PI2 + 12290. / 9.) - 59632. / 81. * L_1 + 8848. / 27. * L_2 - 10640. / 27. * M_PI2 + 12320. / (27. * sqrt3) * M_PI - 662144. / 243.;
1798
1799 cache_ps[index_p(cc, 3, 3, 1)] = 176. / 9. * L_1 - 200. / 3. * L_2 - 432. * z - 8. / 3. * M_PI2 + 8. / (3. * sqrt3) * M_PI - 620. / 27.;
1800 cache_ps[index_p(cc, 3, 4, 1)] = 268. / 27. * L_1 - 64. / 9. * L_2 - 16. / 3. * z - 16. / 9. * M_PI2 + 112. / (9. * sqrt3) * M_PI + 3506. / 81.;
1801 cache_ps[index_p(cc, 3, 5, 1)] = 5632. / 9. * L_1 - 4096. / 3. * L_2 - 8640. * z - 256. / 3. * M_PI2 + 256. / (3. * sqrt3) * M_PI + 9728. / 27.;
1802 cache_ps[index_p(cc, 3, 6, 1)] = 9184. / 27. * L_1 - 1024. / 9. * L_2 - 160. / 3. * z - 256. / 9. * M_PI2 + 1072. / (9. * sqrt3) * M_PI + 88688. / 81.;
1803 cache_ps[index_p(cc, 4, 4, 1)] = 1028. / 81. * L_1 + 136. / 27. * L_2 - 8. / 3. * M_PI2 * z + 230. / 9. * z - 134. / 27. * M_PI2 + 230. / (27. * sqrt3) * M_PI + 6214. / 243.;
1804 cache_ps[index_p(cc, 4, 5, 1)] = 9472. / 27. * L_1 - 1024. / 9. * L_2 + 608. / 3. * z - 256. / 9. * M_PI2 + 1792. / (9. * sqrt3) + 64784. / 81.;
1805 cache_ps[index_p(cc, 4, 6, 1)] = 10792. / 81. * L_1 + 2048. / 27. * L_2 - 160. / 3. * M_PI2 * z + 3568. / 9. * z - 2560. / 27. * M_PI2 + 4264. / (27. * sqrt3) * M_PI + 123080. / 243.;
1806 cache_ps[index_p(cc, 5, 5, 1)] = 45056. / 9. * L_1 - 28160. / 3. * L_2 - 58752. * z - 2048. / 3. * M_PI2 - 2048. / (3. * sqrt3) * M_PI - 349184. / 27.;
1807 cache_ps[index_p(cc, 5, 6, 1)] = 167680. / 27. * L_1 - 16384. / 9. * L_2 + 6080. / 3. * z - 4096. / 9. * M_PI2 + 17152. / (9. * sqrt3) * M_PI + 1502720. / 81.;
1808 cache_ps[index_p(cc, 6, 6, 1)] = 75392. / 81. * L_1 + 11776. / 27. * L_2 - 1088. / 3. * M_PI2 * z + 23696. / 9. * z - 17024. / 27. * M_PI2 + 19712. / (27. * sqrt3) * M_PI + 717184. / 243.;
1809
1810 // Corrections from LO coefficients when resummation logz
1811 cache_p[index_p(cc, 5, 5, 1)] += -1296. * n_v * z_replace;
1812 cache_p[index_p(cc, 6, 6, 1)] += -72. * n_v * z_replace;
1813
1814 // Gerlach thesis eq. (6.17)
1815 for (int i = 3; i <= 6; i++)
1816 {
1817 for (int j = i; j <= 6; j++)
1818 {
1819 cache_p[index_p(cu, i, j, 1)] = cache_p[index_p(cc, i, j, 1)];
1820 cache_p[index_p(uu, i, j, 1)] = cache_p[index_p(cc, i, j, 1)];
1821 cache_ps[index_p(cu, i, j, 1)] = cache_ps[index_p(cc, i, j, 1)];
1822 cache_ps[index_p(uu, i, j, 1)] = cache_ps[index_p(cc, i, j, 1)];
1823 }
1824 }
1825
1826 // Gerlach thesis eq. (6.19)
1827 cache_p[index_p(cc, 1, 8, 1)] = 5. / 18. * sqrt1minus4z + 5. / 9. * z * sqrt1minus4z;
1828 cache_p[index_p(cc, 2, 8, 1)] = -5. / 3. * sqrt1minus4z - 10. / 3. * z * sqrt1minus4z;
1829 cache_ps[index_p(cc, 1, 8, 1)] = 4. / 9. * sqrt1minus4z + 8. / 9. * z * sqrt1minus4z;
1830 cache_ps[index_p(cc, 2, 8, 1)] = -8. / 3. * sqrt1minus4z - 16. / 3. * z * sqrt1minus4z;
1831 cache_p[index_p(uu, 1, 8, 1)] = 5. / 18.;
1832 cache_p[index_p(uu, 2, 8, 1)] = -5. / 3.;
1833 cache_ps[index_p(uu, 1, 8, 1)] = 4. / 9.;
1834 cache_ps[index_p(uu, 2, 8, 1)] = -8. / 3.;
1835
1836 // Gerlach thesis eq. (6.27)
1837 for (int i = 1; i <= 2; i++)
1838 {
1839 cache_p[index_p(cu, i, 8, 1)] = 0.5 * (cache_p[index_p(cc, i, 8, 1)] + cache_p[index_p(uu, i, 8, 1)]);
1840 cache_ps[index_p(cu, i, 8, 1)] = 0.5 * (cache_ps[index_p(cc, i, 8, 1)] + cache_ps[index_p(uu, i, 8, 1)]);
1841 }
1842
1843 // Gerlach thesis eq. (6.21)
1844 cache_p[index_p(cc, 3, 8, 1)] = -32. / 3.;
1845 cache_p[index_p(cc, 4, 8, 1)] = (-139. - 30. * sqrt1minus4z - 60. * sqrt1minus4z * z) / 18.;
1846 cache_p[index_p(cc, 5, 8, 1)] = -512. / 3.;
1847 cache_p[index_p(cc, 6, 8, 1)] = (-1684. - 300. * sqrt1minus4z - 600. * sqrt1minus4z * z) / 18.;
1848 cache_ps[index_p(cc, 3, 8, 1)] = 64. / 3.;
1849 cache_ps[index_p(cc, 4, 8, 1)] = (4. * (1. - 6. * sqrt1minus4z - 12. * sqrt1minus4z * z)) / 9.;
1850 cache_ps[index_p(cc, 5, 8, 1)] = 1024. / 3.;
1851 cache_ps[index_p(cc, 6, 8, 1)] = (4 * (124. - 60. * sqrt1minus4z - 120. * sqrt1minus4z * z)) / 9.;
1852
1853 // Gerlach thesis eq. (6.20)
1854 for (int i = 3; i <= 6; i++)
1855 {
1856 cache_p[index_p(cu, i, 8, 1)] = cache_p[index_p(cc, i, 8, 1)];
1857 cache_p[index_p(uu, i, 8, 1)] = cache_p[index_p(cc, i, 8, 1)];
1858 cache_ps[index_p(cu, i, 8, 1)] = cache_ps[index_p(cc, i, 8, 1)];
1859 cache_ps[index_p(uu, i, 8, 1)] = cache_ps[index_p(cc, i, 8, 1)];
1860 }
1861
1862 double L_12 = L_1 * L_1;
1863 double L_22 = L_2 * L_2;
1864
1865 gslpp::complex log1M1OverSqrtz = log(abs(1. - 1. / sqrtz));
1866 if (1. / sqrtz > 1)
1867 log1M1OverSqrtz += M_PI * complex::i();
1868 gslpp::complex logM1OverSqrtz = log(abs(-1. / sqrtz)) + M_PI * complex::i();
1869 gslpp::complex logM1OverSqrtz2 = logM1OverSqrtz * logM1OverSqrtz;
1870
1871 // LO in z
1872 cache_p[index_p(cc, 1, 1, 2)] = (814589597. / 4199040. + (1320817. * L_1) / 17496. + (3211. * L_12) / 324. + (259603. * L_2) / 11664. + (12911. * L_1 * L_2) / 972. - (311. * L_22) / 216. + (56. * Cl2PI3 * sqrt3) / 729. -
1873 ((5. * complex::i()) / 3888.) * log3 * log3 * sqrt3 + (855371. * sqrtz) / 180000. + (22. * log2z * sqrtz) / 9. + (88. * logM1OverSqrtz2 * sqrtz) / 9. + (88. * logM1OverSqrtz * logz * sqrtz) / 9. -
1874 ((5. * -1.) / 486.) * sqrt3 * t_2 - (22. * log2z) / (9. * z) - (88. * logM1OverSqrtz2) / (9. * z) - (88. * logM1OverSqrtz * logz) / (9. * z) + (22. * log2z) / (9. * sqrtz) +
1875 (88. * logM1OverSqrtz2) / (9. * sqrtz) + (88. * logM1OverSqrtz * logz) / (9. * sqrtz) - (3547371902315179. * z) / 3455518320000. - (721919. * L_1 * z) / 1944. - (2347. * L_12 * z) / 54. +
1876 (1891. * L_2 * z) / 81. - (337. * L_1 * L_2 * z) / 9. + (187. * L_22 * z) / 18. - (88. * logM1OverSqrtz2 * z) / 9. - (4823. * logz * z) / 9. - (1348. * L_1 * logz * z) / 9. - (88. * L_2 * logz * z) / 3. -
1877 (88. * logM1OverSqrtz * logz * z) / 9. - (28333. * zeta3) / 486. + (128581. * z * zeta3) / 216. - (5. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 180. * z) * (M_PI)) / 17496. +
1878 ((-684288. + 684288. * sqrtz - (216641. + 87480. * L_1 - 432. * L_2 + 146016. * log12sqrt52 + 5112. * log2 - (50. * complex::i()) * sqrt3 + 158184. * sqrt5 - 684288. * sqrtz) * z +
1879 18. * (197453. + 2232. * L_1 + 912. * L_2 - 9792. * log12sqrt52 - 26508. * log2 + 576. * logz + 9744. * sqrt5) * z2) *
1880 (M_PI2)) /
1881 (69984. * z) +
1882 (23. * (M_PI4)) / 4860. - (13637. * z * (M_PI4)) / 116640.)
1883 .real();
1884 cache_p[index_p(cc, 1, 2, 2)] = (-95740679. / 349920. - (1026907. * L_1) / 5832. - (1751. * L_12) / 54. - (619. * L_2) / 972. + (166. * L_1 * L_2) / 81. - L_22 / 18. - (224. * Cl2PI3 * sqrt3) / 243. + ((5. * complex::i()) / 324.) * log3 * log3 * sqrt3 +
1885 (2895091. * sqrtz) / 60000. + (8. * log2z * sqrtz) / 3. + (32. * logM1OverSqrtz2 * sqrtz) / 3. + (32. * logM1OverSqrtz * logz * sqrtz) / 3. + ((10. * -1.) / 81.) * sqrt3 * t_2 - (8. * log2z) / (3. * z) -
1886 (32. * logM1OverSqrtz2) / (3. * z) - (32. * logM1OverSqrtz * logz) / (3. * z) + (8. * log2z) / (3. * sqrtz) + (32. * logM1OverSqrtz2) / (3. * sqrtz) +
1887 (32. * logM1OverSqrtz * logz) / (3. * sqrtz) + (2370097879. * z) / 1944000. + (117443. * L_1 * z) / 162. + (1193. * L_12 * z) / 9. + (6350. * L_2 * z) / 27. + (64. * L_1 * L_2 * z) / 3. + (34. * L_22 * z) / 3. -
1888 (32. * logM1OverSqrtz2 * z) / 3. + 124. * logz * z + (256. * L_1 * logz * z) / 3. - 32. * L_2 * logz * z - (32. * logM1OverSqrtz * logz * z) / 3. - (10573. * zeta3) / 324. + (85027. * z * zeta3) / 90. +
1889 (5. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 180. * z) * (M_PI)) / 1458. -
1890 ((622080. - 622080. * sqrtz - 5. * (497221. + 116640. * L_1 - 864. * L_2 - 39744. * log12sqrt52 + 85824. * log2 - (100. * complex::i()) * sqrt3 - 43056. * sqrt5 + 124416. * sqrtz) * z +
1891 72. * (64865. + 3960. * L_1 + 2280. * L_2 + 3168. * log12sqrt52 + 35070. * log2 + 1440. * logz - 3288. * sqrt5) * z2) *
1892 (M_PI2)) /
1893 (58320. * z) -
1894 (799. * (M_PI4)) / 810. + (20833. * z * (M_PI4)) / 4860.)
1895 .real();
1896 cache_p[index_p(cc, 2, 2, 2)] = (74041. / 14580. + (106199. * L_1) / 972. + (239. * L_12) / 18. - (5117. * L_2) / 81. - (202. * L_1 * L_2) / 27. - (19. * L_22) / 3. + (224. * Cl2PI3 * sqrt3) / 81. - ((5. * complex::i()) / 108.) * log3 * log3 * sqrt3 -
1897 (1052759. * sqrtz) / 10000. + 4. * log2z * sqrtz + 16. * logM1OverSqrtz2 * sqrtz + 16. * logM1OverSqrtz * logz * sqrtz - ((10. * -1.) / 27.) * sqrt3 * t_2 - (4. * log2z) / z -
1898 (16. * logM1OverSqrtz2) / z - (16. * logM1OverSqrtz * logz) / z + (4. * log2z) / sqrtz + (16. * logM1OverSqrtz2) / sqrtz + (16. * logM1OverSqrtz * logz) / sqrtz -
1899 (69930883. * z) / 101250. - (16463. * L_1 * z) / 54. - (122. * L_12 * z) / 3. - (109. * L_2 * z) / 18. - 22. * L_1 * L_2 * z + 17. * L_22 * z - 16. * logM1OverSqrtz2 * z - 496. * logz * z - 88. * L_1 * logz * z -
1900 48. * L_2 * logz * z - 16. * logM1OverSqrtz * logz * z - (3157. * zeta3) / 54. + (2521. * z * zeta3) / 15. - (5. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 180. * z) * (M_PI)) / 486. +
1901 (-177247. / 3888. - (4. * log12sqrt52) / 9. + (148. * log2) / 27. + ((25. * complex::i()) / 972.) * sqrt3 - (13. * sqrt5) / 27. + 16. * sqrtz - 16. / z + 16. / sqrtz + (5369. * z) / 108. - (16. * log12sqrt52 * z) / 15. -
1902 (178. * log2 * z) / 9. + (16. * logz * z) / 3. + (28. * sqrt5 * z) / 45. + L_1 * (-15. + (26. * z) / 3.) + (2. * L_2 * (1. + 38. * z)) / 9.) *
1903 (M_PI2) +
1904 (971. * (M_PI4)) / 540. + (5203. * z * (M_PI4)) / 3240.)
1905 .real();
1906
1907 cache_ps[index_p(cc, 1, 1, 2)] = (-67489177. / 262440. - (77617. * L_1) / 2187. - (902. * L_12) / 243. -
1908 (5504. * L_2) / 729. - (3064. * L_1 * L_2) / 243. + (260. * L_22) / 27. +
1909 (104. * Cl2PI3 * sqrt3) / 729. - (complex::i() / 486.) * log3 * log3 * sqrt3 +
1910 (166687. * sqrtz) / 6000. - ((4. * -1.) / 243.) * sqrt3 * t_2 -
1911 (27341897029. * z) / 29160000. - (97999. * L_1 * z) / 243. - (9272. * L_2 * z) / 81. -
1912 (9272. * logz * z) / 27. + (28528. * zeta3) / 243. + (29. * z * zeta3) / 3. -
1913 (sqrt3 * (20. + 30. * L_1 + 3. * log3 + 180. * z) * (M_PI)) / 2187. -
1914 ((44209. - 37152. * log12sqrt52 + 126216. * log2 - (10. * complex::i()) * sqrt3 -
1915 40248. * sqrt5 + 127854. * z - 197208. * log2 * z + 10368. * logz * z +
1916 37152. * sqrt5 * z + 17496. * L_1 * (1. + 2. * z) + 1728. * L_2 * (1. + 2. * z)) *
1917 (M_PI2)) /
1918 8748. +
1919 (449. * (M_PI4)) / 1215. - (27529. * z * (M_PI4)) / 14580.)
1920 .real();
1921 cache_ps[index_p(cc, 1, 2, 2)] = (-1336127. / 2187. - (28733. * L_1) / 729. + (44. * L_12) / 81. - (2176. * L_2) / 243. -
1922 (1856. * L_1 * L_2) / 81. + (208. * L_22) / 9. - (416. * Cl2PI3 * sqrt3) / 243. +
1923 ((2. * complex::i()) / 81.) * log3 * log3 * sqrt3 + (8773. * sqrtz) / 100. + ((16. * -1.) / 81.) * sqrt3 * t_2 +
1924 (1672496939. * z) / 4860000. - (23372. * L_1 * z) / 81. - (5248. * L_2 * z) / 27. -
1925 (5248. * logz * z) / 9. + (13934. * zeta3) / 81. - 244. * z * zeta3 +
1926 (4. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 180. * z) * (M_PI)) / 729. +
1927 ((39995. + 8640. * log12sqrt52 - 29232. * log2 - (20. * complex::i()) * sqrt3 + 9360. * sqrt5 +
1928 58284. * z + 11232. * log2 * z + 20736. * logz * z - 8640. * sqrt5 * z +
1929 23328. * L_1 * (1. + 2. * z) + 3456. * L_2 * (1. + 2. * z)) *
1930 (M_PI2)) /
1931 1458. +
1932 (226. * (M_PI4)) / 405. + (5692. * z * (M_PI4)) / 1215.)
1933 .real();
1934 cache_ps[index_p(cc, 2, 2, 2)] = (27476329. / 58320. + (40370. * L_1) / 243. + (604. * L_12) / 27. + (6928. * L_2) / 81. +
1935 (1064. * L_1 * L_2) / 27. - (52. * L_22) / 3. + (416. * Cl2PI3 * sqrt3) / 81. -
1936 ((2. * complex::i()) / 27.) * log3 * log3 * sqrt3 - (26319. * sqrtz) / 250. - ((16. * -1.) / 27.) * sqrt3 * t_2 +
1937 (287805209. * z) / 81000. + (18836. * L_1 * z) / 27. + (928. * L_2 * z) / 9. + (928. * logz * z) / 3. -
1938 (4388. * zeta3) / 27. - 600. * z * zeta3 -
1939 (4. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 180. * z) * (M_PI)) / 243. -
1940 ((41279. - 1728. * log12sqrt52 + 11808. * log2 - (20. * complex::i()) * sqrt3 - 1872. * sqrt5 +
1941 144684. * z - 14688. * log2 * z + 20736. * logz * z + 1728. * sqrt5 * z +
1942 11664. * L_1 * (1. + 2. * z) + 3456. * L_2 * (1. + 2. * z)) *
1943 (M_PI2)) /
1944 486. +
1945 (398. * (M_PI4)) / 135. + (7991. * z * (M_PI4)) / 405.)
1946 .real();
1947
1948 cache_p[index_p(uu, 1, 1, 2)] = (814589597. / 4199040. + (1320817. * L_1) / 17496. + (3211. * L_12) / 324. +
1949 (259603. * L_2) / 11664. + (12911. * L_1 * L_2) / 972. - (311. * L_22) / 216. +
1950 (56. * Cl2PI3 * sqrt3) / 729. - ((5. * complex::i()) / 3888.) * log3 * log3 * sqrt3 +
1951 (855371. * sqrtz) / 180000. - ((5. * -1.) / 486.) * sqrt3 * t_2 +
1952 (5298817581707. * z) / 1151839440000. + (5. * L_1 * z) / 81. - (50. * logz * z) / 9. -
1953 (28333. * zeta3) / 486. - (5. * (20. + 30. * L_1 + 3. * log3) * sqrt3 * (M_PI)) / 17496. -
1954 ((216641. + 87480. * L_1 - 432. * L_2 + 146016. * log12sqrt52 + 5112. * log2 -
1955 (50. * complex::i()) * sqrt3 + 158184. * sqrt5) *
1956 (M_PI2)) /
1957 69984. +
1958 (23. * (M_PI4)) / 4860.)
1959 .real();
1960 cache_p[index_p(uu, 1, 2, 2)] = (-95740679. / 349920. - (1026907. * L_1) / 5832. - (1751. * L_12) / 54. - (619. * L_2) / 972. +
1961 (166. * L_1 * L_2) / 81. - L_22 / 18. - (224. * Cl2PI3 * sqrt3) / 243. +
1962 ((5. * complex::i()) / 324.) * log3 * log3 * sqrt3 + (2895091. * sqrtz) / 60000. +
1963 ((10. * -1.) / 81.) * sqrt3 * t_2 - (55644107. * z) / 648000. - (20. * L_1 * z) / 27. +
1964 (8. * logz * z) / 3. - (10573. * zeta3) / 324. +
1965 (5. * (20. + 30. * L_1 + 3. * log3) * sqrt3 * (M_PI)) / 1458. +
1966 ((497221. + 116640. * L_1 - 864. * L_2 - 39744. * log12sqrt52 + 85824. * log2 -
1967 (100. * complex::i()) * sqrt3 - 43056. * sqrt5) *
1968 (M_PI2)) /
1969 11664. -
1970 (799. * (M_PI4)) / 810.)
1971 .real();
1972 cache_p[index_p(uu, 2, 2, 2)] = (74041. / 14580. + (106199. * L_1) / 972. + (239. * L_12) / 18. - (5117. * L_2) / 81. -
1973 (202. * L_1 * L_2) / 27. - (19. * L_22) / 3. + (224. * Cl2PI3 * sqrt3) / 81. -
1974 ((5. * complex::i()) / 108.) * log3 * log3 * sqrt3 - (1052759. * sqrtz) / 10000. -
1975 ((10. * -1.) / 27.) * sqrt3 * t_2 + (9532631. * z) / 135000. + (20. * L_1 * z) / 9. - 32. * logz * z -
1976 (3157. * zeta3) / 54. - (5. * (20. + 30. * L_1 + 3. * log3) * sqrt3 * (M_PI)) / 486. -
1977 ((177247. + 58320. * L_1 - 864. * L_2 + 1728. * log12sqrt52 - 21312. * log2 -
1978 (100. * complex::i()) * sqrt3 + 1872. * sqrt5) *
1979 (M_PI2)) /
1980 3888. +
1981 (971. * (M_PI4)) / 540.)
1982 .real();
1983 cache_ps[index_p(uu, 1, 1, 2)] = (-67489177. / 262440. - (77617. * L_1) / 2187. - (902. * L_12) / 243. - (5504. * L_2) / 729. -
1984 (3064. * L_1 * L_2) / 243. + (260. * L_22) / 27. + (104. * Cl2PI3 * sqrt3) / 729. -
1985 (complex::i() / 486.) * log3 * log3 * sqrt3 + (166687. * sqrtz) / 6000. - ((4. * -1.) / 243.) * sqrt3 * t_2 -
1986 (261095543. * z) / 9720000. + (8. * L_1 * z) / 81. + (28528. * zeta3) / 243. -
1987 ((20. + 30. * L_1 + 3. * log3) * sqrt3 * (M_PI)) / 2187. -
1988 ((44209. + 17496. * L_1 + 1728. * L_2 - 37152. * log12sqrt52 + 126216. * log2 -
1989 (10. * complex::i()) * sqrt3 - 40248. * sqrt5) *
1990 (M_PI2)) /
1991 8748. +
1992 (449. * (M_PI4)) / 1215.)
1993 .real();
1994 cache_ps[index_p(uu, 1, 2, 2)] = (-1336127. / 2187. - (28733. * L_1) / 729. + (44. * L_12) / 81. - (2176. * L_2) / 243. -
1995 (1856. * L_1 * L_2) / 81. + (208. * L_22) / 9. - (416. * Cl2PI3 * sqrt3) / 243. +
1996 ((2. * complex::i()) / 81.) * log3 * log3 * sqrt3 + (8773. * sqrtz) / 100. + ((16. * -1.) / 81.) * sqrt3 * t_2 -
1997 (117168887. * z) / 1620000. - (32. * L_1 * z) / 27. + (13934. * zeta3) / 81. +
1998 (4. * (20. + 30. * L_1 + 3. * log3) * sqrt3 * (M_PI)) / 729. +
1999 ((39995. + 23328. * L_1 + 3456. * L_2 + 8640. * log12sqrt52 - 29232. * log2 -
2000 (20. * complex::i()) * sqrt3 + 9360. * sqrt5) *
2001 (M_PI2)) /
2002 1458. +
2003 (226. * (M_PI4)) / 405.)
2004 .real();
2005 cache_ps[index_p(uu, 2, 2, 2)] = (27476329. / 58320. + (40370. * L_1) / 243. + (604. * L_12) / 27. + (6928. * L_2) / 81. +
2006 (1064. * L_1 * L_2) / 27. - (52. * L_22) / 3. + (416. * Cl2PI3 * sqrt3) / 81. -
2007 ((2. * complex::i()) / 27.) * log3 * log3 * sqrt3 - (26319. * sqrtz) / 250. - ((16. * -1.) / 27.) * sqrt3 * t_2 +
2008 (4778443. * z) / 27000. + (32. * L_1 * z) / 9. - (4388. * zeta3) / 27. -
2009 (4. * (20. + 30. * L_1 + 3. * log3) * sqrt3 * (M_PI)) / 243. -
2010 ((41279. + 11664. * L_1 + 3456. * L_2 - 1728. * log12sqrt52 + 11808. * log2 -
2011 (20. * complex::i()) * sqrt3 - 1872. * sqrt5) *
2012 (M_PI2)) /
2013 486. +
2014 (398. * (M_PI4)) / 135.)
2015 .real();
2016
2017 // Corrections from LO and NLO coefficients (incl. pengFlag)
2018 // resummation of logz
2019 cache_p[index_p(cc, 1, 1, 2)] += (-2. * (1661. + 1113. * log2z + 132. * M_PI2) * z + logz * (-30. + (39727. + 12132. * L_1 + 2376. * L_2 - 12. * M_PI2) * z)) / 81.;
2020 cache_p[index_p(cc, 1, 2, 2)] += (-8. * ((151 + 147. * log2z + 12. * M_PI2) * z + 2 * logz * (-12. + (448. + 144. * L_1 - 54. * L_2 - 3. * M_PI2) * z))) / 27.;
2021 cache_p[index_p(cc, 2, 2, 2)] += (-4. * (66. * logz - 2. * logz * (518. + 99. * L_1 + 54. * L_2 - 6. * M_PI2) * z + (151. + 21. * log2z + 12. * M_PI2) * z)) / 9.;
2022 cache_ps[index_p(cc, 1, 1, 2)] += (8. * logz * (4. + (507. + 172. * logz + 4. * M_PI2) * z)) / 27.;
2023 cache_ps[index_p(cc, 1, 2, 2)] += (32. * logz * (-1. + 4. * (12. + 5. * logz - M_PI2) * z)) / 9.;
2024 cache_ps[index_p(cc, 2, 2, 2)] += (32. * logz * (-2. + (-9. + 4. * logz + 4. * M_PI2) * z)) / 3.;
2025
2026 // resummation affecting arguments of logs and Dilogs
2027 cache_p[index_p(cc, 1, 1, 2)] += 2. / 81. * logz * (15. + 1615. * z + 1014. * z * logz);
2028 cache_p[index_p(cc, 1, 2, 2)] += 4. / 27. * logz * (-48. + 973. * z + 276. * z * logz);
2029 cache_p[index_p(cc, 2, 2, 2)] += 8. / 9. * logz * (33. + 4. * z + 6. * z * logz);
2030 cache_ps[index_p(cc, 1, 1, 2)] += -32. / 27. * logz + 5216. / 27. * logz * z - 1376. / 27. * log2z * z;
2031 cache_ps[index_p(cc, 1, 2, 2)] += 32. / 9. * logz + 3712. / 9. * logz * z - 640. / 9. * log2z * z;
2032 cache_ps[index_p(cc, 2, 2, 2)] += 64. / 3. * logz - 640. / 3. * logz * z - 128. / 3. * log2z * z;
2033
2034 double L_b = 2. * log(mu_b / Mb);
2035
2036 // Transforming mb in NLO coefficients from Pole scheme to MSbar
2037 cache_p[index_p(cc, 1, 1, 2)] += (8. * (4. + 3. * L_b) * (-196. + 675. * z)) / 243.;
2038 cache_p[index_p(cc, 1, 2, 2)] += (-44. * (4. + 3. * L_b) * (-19. + 108. * z)) / 81.;
2039 cache_p[index_p(cc, 2, 2, 2)] += (-16. * (4. + 3. * L_b) * (-4. + 27. * z)) / 27.;
2040 cache_ps[index_p(cc, 1, 1, 2)] += (1264. * (4. + 3. * L_b)) / 243.;
2041 cache_ps[index_p(cc, 1, 2, 2)] += (416. * (4. + 3. * L_b)) / 81.;
2042 cache_ps[index_p(cc, 2, 2, 2)] += (-704. * (4. + 3. * L_b)) / 27.;
2043
2044 cache_p[index_p(uu, 1, 1, 2)] += (-1568. * (4. + 3. * L_1)) / 243.;
2045 cache_p[index_p(uu, 1, 2, 2)] += (836. * (4. + 3. * L_1)) / 81.;
2046 cache_p[index_p(uu, 2, 2, 2)] += (64. * (4. + 3. * L_1)) / 27.;
2047 cache_ps[index_p(uu, 1, 1, 2)] += (1264. * (4. + 3. * L_b)) / 243.;
2048 cache_ps[index_p(uu, 1, 2, 2)] += (416. * (4. + 3. * L_b)) / 81.;
2049 cache_ps[index_p(uu, 2, 2, 2)] += (-704. * (4. + 3. * L_b)) / 27.;
2050
2051 // Gerlach thesis eq. (6.27)
2052 for (int i = 1; i <= 2; i++)
2053 {
2054 for (int j = i; j <= 2; j++)
2055 {
2056 cache_p[index_p(cu, i, j, 2)] = 0.5 * (cache_p[index_p(cc, i, j, 2)] + cache_p[index_p(uu, i, j, 2)]);
2057 cache_ps[index_p(cu, i, j, 2)] = 0.5 * (cache_ps[index_p(cc, i, j, 2)] + cache_ps[index_p(uu, i, j, 2)]);
2058 }
2059 }
2060
2061 // LO in z
2062 cache_p[index_p(cu, 1, 1, 2)] = (814589597. / 4199040. + (56. * Cl2PI3) / (243. * sqrt3) + (1320817. * L_1) / 17496. + (3211. * L_12) / 324. +
2063 (259603. * L_2) / 11664. + (12911. * L_1 * L_2) / 972. - (311. * L_22) / 216. - (((5. * complex::i()) / 1296.) * log3 * log3) / sqrt3 +
2064 (855371. * sqrtz) / 180000. + (11. * log2z * sqrtz) / 9. + (44. * logM1OverSqrtz2 * sqrtz) / 9. +
2065 (44. * logM1OverSqrtz * logz * sqrtz) / 9. - (((5. * -1.) / 162.) * t_2) / sqrt3 - (11. * log2z) / (9. * z) -
2066 (44. * logM1OverSqrtz2) / (9. * z) - (44. * logM1OverSqrtz * logz) / (9. * z) + (11. * log2z) / (9. * sqrtz) +
2067 (44. * logM1OverSqrtz2) / (9. * sqrtz) + (44. * logM1OverSqrtz * logz) / (9. * sqrtz) -
2068 (1765737724785029. * z) / 3455518320000. - (721799. * L_1 * z) / 3888. - (2347. * L_12 * z) / 108. + (1891. * L_2 * z) / 162. -
2069 (337. * L_1 * L_2 * z) / 18. + (187. * L_22 * z) / 36. - (44. * logM1OverSqrtz2 * z) / 9. - (4873. * logz * z) / 18. -
2070 (674. * L_1 * logz * z) / 9. - (44. * L_2 * logz * z) / 3. - (44. * logM1OverSqrtz * logz * z) / 9. - (28333. * zeta3) / 486. +
2071 (128581. * z * zeta3) / 432. - (5. * (3. * sqrt3 * log3 + 30. * L_1 * sqrt3 + 10. * sqrt3 * (2. + 9. * z)) * (M_PI)) / 17496. +
2072 ((-342144. + 342144. * sqrtz + (-216641. + (50. * complex::i()) * sqrt3 - 87480. * L_1 + 432. * L_2 - 5112. * log2 - 158184. * sqrt5 + 342144. * sqrtz) * z + 9. * (197453. + 2232. * L_1 + 912. * L_2 - 26508. * log2 + 576. * logz + 9744. * sqrt5) * z2 - 864. * z * (169. + 102. * z) * log12sqrt52) * (M_PI2)) / (69984. * z) +
2073 (23. * (M_PI4)) / 4860. - (13637. * z * (M_PI4)) / 233280.)
2074 .real();
2075 cache_p[index_p(cu, 1, 2, 2)] = (-95740679. / 349920. - (1026907. * L_1) / 5832. - (1751. * L_12) / 54. - (619. * L_2) / 972. + (166. * L_1 * L_2) / 81. - L_22 / 18. -
2076 (224. * Cl2PI3 * sqrt3) / 243. + ((5. * complex::i()) / 324.) * log3 * log3 * sqrt3 + (2895091. * sqrtz) / 60000. + (4. * log2z * sqrtz) / 3. +
2077 (16. * logM1OverSqrtz2 * sqrtz) / 3. + (16. * logM1OverSqrtz * logz * sqrtz) / 3. + ((10. * -1.) / 81.) * sqrt3 * t_2 -
2078 (4. * log2z) / (3. * z) - (16. * logM1OverSqrtz2) / (3. * z) - (16. * logM1OverSqrtz * logz) / (3. * z) +
2079 (4. * log2z) / (3. * sqrtz) + (16. * logM1OverSqrtz2) / (3. * sqrtz) +
2080 (16. * logM1OverSqrtz * logz) / (3. * sqrtz) + (1101582779. * z) / 1944000. + (117323. * L_1 * z) / 324. +
2081 (1193. * L_12 * z) / 18. + (3175. * L_2 * z) / 27. + (32. * L_1 * L_2 * z) / 3. + (17. * L_22 * z) / 3. - (16. * logM1OverSqrtz2 * z) / 3. +
2082 (190. * logz * z) / 3. + (128. * L_1 * logz * z) / 3. - 16. * L_2 * logz * z - (16. * logM1OverSqrtz * logz * z) / 3. -
2083 (10573. * zeta3) / 324. + (85027. * z * zeta3) / 180. + (5. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 90. * z) * (M_PI)) / 1458. -
2084 ((311040. - 311040. * sqrtz - 5. * (497221. + 116640. * L_1 - 864. * L_2 - 39744. * log12sqrt52 + 85824. * log2 - (100. * complex::i()) * sqrt3 - 43056. * sqrt5 + 62208. * sqrtz) * z +
2085 36. * (64865. + 3960. * L_1 + 2280. * L_2 + 3168. * log12sqrt52 + 35070. * log2 + 1440. * logz - 3288. * sqrt5) * z2) *
2086 (M_PI2)) /
2087 (58320. * z) -
2088 (799. * (M_PI4)) / 810. + (20833. * z * (M_PI4)) / 9720.)
2089 .real();
2090 cache_p[index_p(cu, 2, 2, 2)] = (74041. / 14580. + (106199. * L_1) / 972. + (239. * L_12) / 18. - (5117. * L_2) / 81. - (202. * L_1 * L_2) / 27. - (19. * L_22) / 3. +
2091 (224. * Cl2PI3 * sqrt3) / 81. - ((5. * complex::i()) / 108.) * log3 * log3 * sqrt3 - (1052759. * sqrtz) / 10000. + 2. * log2z * sqrtz +
2092 8. * logM1OverSqrtz2 * sqrtz + 8. * logM1OverSqrtz * logz * sqrtz - ((10. * -1.) / 27.) * sqrt3 * t_2 - (2. * log2z) / z -
2093 (8. * logM1OverSqrtz2) / z - (8. * logM1OverSqrtz * logz) / z + (2. * log2z) / sqrtz +
2094 (8. * logM1OverSqrtz2) / sqrtz + (8. * logM1OverSqrtz * logz) / sqrtz - (251125639. * z) / 810000. -
2095 (16343. * L_1 * z) / 108. - (61. * L_12 * z) / 3. - (109. * L_2 * z) / 36. - 11. * L_1 * L_2 * z + (17. * L_22 * z) / 2. -
2096 8. * logM1OverSqrtz2 * z - 264. * logz * z - 44. * L_1 * logz * z - 24. * L_2 * logz * z - 8. * logM1OverSqrtz * logz * z -
2097 (3157. * zeta3) / 54. + (2521. * z * zeta3) / 30. - (5. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 90. * z) * (M_PI)) / 486. +
2098 (-177247. / 3888. - (4. * log12sqrt52) / 9. + (148. * log2) / 27. + ((25. * complex::i()) / 972.) * sqrt3 - (13. * sqrt5) / 27. +
2099 8. * sqrtz - 8. / z + 8. / sqrtz + (5369. * z) / 216. - (8. * log12sqrt52 * z) / 15. - (89. * log2 * z) / 9. +
2100 (8. * logz * z) / 3. + (14. * sqrt5 * z) / 45. + L_1 * (-15. + (13. * z) / 3.) + (2. * L_2 * (1. + 19. * z)) / 9.) *
2101 (M_PI2) +
2102 (971. * (M_PI4)) / 540. + (5203. * z * (M_PI4)) / 6480.)
2103 .real();
2104 cache_ps[index_p(cu, 1, 1, 2)] = (-67489177. / 262440. + (104. * Cl2PI3) / (243. * sqrt3) - (77617. * L_1) / 2187. -
2105 (902. * L_12) / 243. - (5504. * L_2) / 729. - (3064. * L_1 * L_2) / 243. + (260. * L_22) / 27. -
2106 ((complex::i() / 162.) * log3 * log3) / sqrt3 + (166687. * sqrtz) / 6000. - (((4. * -1.) / 81.) * t_2) / sqrt3 -
2107 (14062591829. * z) / 29160000. - (97975. * L_1 * z) / 486. - (4636. * L_2 * z) / 81. -
2108 (4636. * logz * z) / 27. + (28528. * zeta3) / 243. + (29. * z * zeta3) / 6. -
2109 ((3. * sqrt3 * log3 + 30. * L_1 * sqrt3 + 10. * sqrt3 * (2. + 9. * z)) * (M_PI)) / 2187. +
2110 ((-44209. + (10. * complex::i()) * sqrt3 - 1728. * L_2 - 163368. * log2 + 40248. * sqrt5 - 63927. * z -
2111 1728. * L_2 * z + 98604. * log2 * z - 5184. * logz * z - 18576. * sqrt5 * z - 17496. * L_1 * (1. + z) +
2112 37152. * (log12sqrt52 + log2)) *
2113 (M_PI2)) /
2114 8748. +
2115 (449. * (M_PI4)) / 1215. -
2116 (27529. * z * (M_PI4)) / 29160.)
2117 .real();
2118 cache_ps[index_p(cu, 1, 2, 2)] = (-1336127. / 2187. - (28733. * L_1) / 729. + (44. * L_12) / 81. - (2176. * L_2) / 243. - (1856. * L_1 * L_2) / 81. +
2119 (208. * L_22) / 9. - (416. * Cl2PI3 * sqrt3) / 243. + ((2. * complex::i()) / 81.) * log3 * log3 * sqrt3 +
2120 (8773. * sqrtz) / 100. + ((16. * -1.) / 81.) * sqrt3 * t_2 + (660495139. * z) / 4860000. -
2121 (11734. * L_1 * z) / 81. - (2624. * L_2 * z) / 27. - (2624. * logz * z) / 9. + (13934. * zeta3) / 81. -
2122 122. * z * zeta3 + (4. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 90. * z) * (M_PI)) / 729. +
2123 ((39995. + 8640. * log12sqrt52 - 29232. * log2 - (20. * complex::i()) * sqrt3 + 9360. * sqrt5 + 29142. * z +
2124 5616. * log2 * z + 10368. * logz * z - 4320. * sqrt5 * z + 23328. * L_1 * (1. + z) +
2125 3456. * L_2 * (1. + z)) *
2126 (M_PI2)) /
2127 1458. +
2128 (226. * (M_PI4)) / 405. + (2846. * z * (M_PI4)) / 1215.)
2129 .real();
2130 cache_ps[index_p(cu, 2, 2, 2)] = (27476329. / 58320. + (40370. * L_1) / 243. + (604. * L_12) / 27. + (6928. * L_2) / 81. +
2131 (1064. * L_1 * L_2) / 27. - (52. * L_22) / 3. + (416. * Cl2PI3 * sqrt3) / 81. -
2132 ((2. * complex::i()) / 27.) * log3 * log3 * sqrt3 - (26319. * sqrtz) / 250. - ((16. * -1.) / 27.) * sqrt3 * t_2 +
2133 (151070269. * z) / 81000. + (9466. * L_1 * z) / 27. + (464. * L_2 * z) / 9. + (464. * logz * z) / 3. -
2134 (4388. * zeta3) / 27. - 300. * z * zeta3 - (4. * sqrt3 * (20. + 30. * L_1 + 3. * log3 + 90. * z) * (M_PI)) / 243. - ((41279. - 1728. * log12sqrt52 + 11808. * log2 - (20. * complex::i()) * sqrt3 - 1872. * sqrt5 + 72342. * z - 7344. * log2 * z + 10368. * logz * z + 864. * sqrt5 * z + 11664. * L_1 * (1. + z) + 3456. * L_2 * (1. + z)) * (M_PI2)) / 486. + (398. * (M_PI4)) / 135. + (7991. * z * (M_PI4)) / 810.)
2135 .real();
2136
2137 // Corrections from LO and NLO coefficients (incl. pengFlag)
2138 // resummation logz in NLO coefficients
2139 cache_p[index_p(cu, 1, 1, 2)] += ((logz * (33433. + 12132. * L_1 + 2376. * L_2 - 12. * M_PI2) - 22. * (151. + 9. * log2z + 12. * M_PI2)) * z) / 162.;
2140 cache_p[index_p(cu, 1, 2, 2)] += (-2. * (302. + 18. * log2z + logz * (1663. + 576. * L_1 - 216. * L_2 - 12. * M_PI2) + 24. * M_PI2) * z) / 27.;
2141 cache_p[index_p(cu, 2, 2, 2)] += (2. * (-151. - 9. * log2z + 2. * logz * (296. + 99. * L_1 + 54. * L_2 - 6. * M_PI2) - 12. * M_PI2) * z) / 9.;
2142 cache_ps[index_p(cu, 1, 1, 2)] += (4. * logz * (3473. + 12. * M_PI2) * z) / 81.;
2143 cache_ps[index_p(cu, 1, 2, 2)] += (-64. * logz * (-124. + 3. * M_PI2) * z) / 27.;
2144 cache_ps[index_p(cu, 2, 2, 2)] += (16. * logz * (-91. + 12. * M_PI2) * z) / 9.;
2145
2146 // resummation affecting arguments of logs and Dilogs
2147 cache_p[index_p(cu, 1, 1, 2)] += 4762. / 81. * logz * z;
2148 cache_p[index_p(cu, 1, 2, 2)] += 1688. / 27. * logz * z;
2149 cache_p[index_p(cu, 2, 2, 2)] += 904. / 9. * logz * z;
2150 cache_ps[index_p(cu, 1, 1, 2)] += 16. / 81. * logz * z;
2151 cache_ps[index_p(cu, 1, 2, 2)] += -64. / 27. * logz * z;
2152 cache_ps[index_p(cu, 2, 2, 2)] += 64. / 9. * logz * z;
2153
2154 // Transforming mb in NLO coefficients from Pole scheme to MSbar
2155 cache_p[index_p(cu, 1, 1, 2)] += (4. * (4. + 3. * L_b) * (-392. + 675. * z)) / 243.;
2156 cache_p[index_p(cu, 1, 2, 2)] += (-44. * (4. + 3. * L_b) * (-19. + 54. * z)) / 81.;
2157 cache_p[index_p(cu, 2, 2, 2)] += (-8. * (4. + 3. * L_b) * (-8. + 27. * z)) / 27.;
2158 cache_ps[index_p(cu, 1, 1, 2)] += (1264. * (4. + 3. * L_b)) / 243.;
2159 cache_ps[index_p(cu, 1, 2, 2)] += (416. * (4. + 3. * L_b)) / 81.;
2160 cache_ps[index_p(cu, 2, 2, 2)] += (-704. * (4. + 3. * L_b)) / 27.;
2161
2162 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 2))
2163 {
2164 // Gerlach thesis eq. (6.28)
2165 cache_p[index_p(qq, 1, 8, 2)] = 208. / 81. * L_1 - L_2 / 27. + (2615. / 54. - 10. / 9. * M_PI2) * z - 5. / 9. * M_PI2 + 25. / (54. * sqrt3) * M_PI - 115. / 486.;
2166 cache_p[index_p(qq, 2, 8, 2)] = -11. / 27. * L_1 + 2. / 9. * L_2 + (20. / 3. * M_PI2 - 833. / 9.) * z + 10. / 3. * M_PI2 - 25. / (9. * sqrt3) * M_PI - 3125. / 81.;
2167 cache_ps[index_p(qq, 1, 8, 2)] = 448. / 81. * L_1 + 32. / 27. * L_2 + (1192. / 27. - 16. / 9. * M_PI2) * z - 8. / 9. * M_PI2 + 20. / (27. * sqrt3) * M_PI + 3580. / 243.;
2168 cache_ps[index_p(qq, 2, 8, 2)] = -248. / 27. * L_1 - 64. / 9. * L_2 + (32. / 3. * M_PI2 - 1088. / 9.) * z + 16. / 3. * M_PI2 - 40. / (9. * sqrt3) * M_PI - 4568. / 81.;
2169
2170 // equation (6.30)
2171 cache_p[index_p(qq, 3, 8, 2)] = -85. / 27. * L_1 - 448. / 9. * L_2 - 196. / 3. * z + 25. / 6. * M_PI2 - 107. / (18. * sqrt3) * M_PI - 17201. / 81.;
2172 cache_p[index_p(qq, 4, 8, 2)] = -3269. / 162. * L_1 - 427. / 27. * L_2 + (20. / 3. * M_PI2 - 404. / 3.) * z + 169. / 12. * M_PI2 - 514. / (27. * sqrt3) * M_PI - 43016. / 243.;
2173 cache_p[index_p(qq, 5, 8, 2)] = 5120. / 27. * L_1 - 7168. / 9. * L_2 - 760. / 3. * z + 770. / 9. * M_PI2 - 28. / (9. * sqrt3) * M_PI - 430238. / 81.;
2174 cache_p[index_p(qq, 6, 8, 2)] = -8962. / 81. * L_1 - 6976. / 27. * L_2 + (200. / 3. * M_PI2 - 4222. / 3.) * z + 3761. / 27. * M_PI2 - 3220. / (27. * sqrt3) * M_PI - 474656. / 243.;
2175 cache_ps[index_p(qq, 3, 8, 2)] = 440. / 27. * L_1 + 512. / 9. * L_2 + 608. / 3. * z - 596. / 27. * M_PI2 - 52. / (9. * sqrt3) * M_PI + 22504. / 81.;
2176 cache_ps[index_p(qq, 4, 8, 2)] = -4804. / 81. * L_1 - 160. / 27. * L_2 + (32. / 3. * M_PI2 - 128. / 3.) * z + 1090. / 81. * M_PI2 - 1120. / (27. * sqrt3) * M_PI - 46988. / 243.;
2177 cache_ps[index_p(qq, 5, 8, 2)] = 17408. / 27. * L_1 + 8192. / 9. * L_2 + 11456. / 3. * z - 8912. / 27. * M_PI2 - 1984. / (9. * sqrt3) * M_PI + 420304. / 81.;
2178 cache_ps[index_p(qq, 6, 8, 2)] = -28624. / 81. * L_1 + 2048. / 27. * L_2 + (320. / 3. * M_PI2 - 160. / 3.) * z + 5608. / 81. * M_PI2 - 8416. / (27. * sqrt3) * M_PI - 423440. / 243.;
2179
2180 // Gerlach thesis eq. (6.31) and (6.29)
2181 z = 0.;
2182 }
2183 z = cache_z;
2184
2185 // Gerlach thesis eq. (6.29)
2186 cache_p[index_p(uu, 1, 8, 2)] += -10. / 9. * z;
2187 cache_p[index_p(uu, 2, 8, 2)] += 20. / 3. * z;
2188 cache_ps[index_p(uu, 1, 8, 2)] += -16. / 9. * z;
2189 cache_ps[index_p(uu, 1, 8, 2)] += 32. / 3. * z;
2190
2191 // Gerlach thesis eq. (6.31)
2192 cache_p[index_p(uu, 3, 8, 2)] += -196. / 3. * z;
2193 cache_p[index_p(uu, 4, 8, 2)] += (-404. / 3. + 20. / 3. * M_PI2) * z;
2194 cache_p[index_p(uu, 5, 8, 2)] += -760. / 3. * z;
2195 cache_p[index_p(uu, 6, 8, 2)] += (-4222. / 3. + 200. / 3. * M_PI2) * z;
2196 cache_ps[index_p(uu, 3, 8, 2)] += 608. / 3. * z;
2197 cache_ps[index_p(uu, 4, 8, 2)] += (-128. / 3. + 32. / 3. * M_PI2) * z;
2198 cache_ps[index_p(uu, 5, 8, 2)] += 11456. / 3. * z;
2199 cache_ps[index_p(uu, 6, 8, 2)] += (-160. / 3. + 320. / 3. * M_PI2) * z;
2200
2201 // as in Gerlach thesis eq. (6.20)
2202 for (int i = 1; i <= 6; i++)
2203 {
2204 cache_p[index_p(cu, i, 8, 2)] =
2205 0.5 * (cache_p[index_p(cc, i, 8, 2)] + cache_p[index_p(uu, i, 8, 2)]);
2206 cache_ps[index_p(cu, i, 8, 2)] =
2207 0.5 * (cache_ps[index_p(cc, i, 8, 2)] + cache_ps[index_p(uu, i, 8, 2)]);
2208 }
2209
2210 // Gerlach thesis eq. (6.32)
2211 cache_p[index_p(cc, 8, 8, 2)] = -13. / 18.;
2212 cache_p[index_p(cu, 8, 8, 2)] = -13. / 18.;
2213 cache_p[index_p(uu, 8, 8, 2)] = -13. / 18.;
2214 cache_ps[index_p(cc, 8, 8, 2)] = -68. / 9.;
2215 cache_ps[index_p(cu, 8, 8, 2)] = -68. / 9.;
2216 cache_ps[index_p(uu, 8, 8, 2)] = -68. / 9.;
2217
2218 // compute flag_LOz terms
2219 for (int i = 0; i < 576; i++)
2220 {
2221 cache_p_LO[i] = cache_p[i];
2222 cache_ps_LO[i] = cache_ps[i];
2223 }
2224
2225 cache_p_LO[index_p(cc, 1, 1, 0)] = 23. / 72. - 11. / 6. * z;
2226 cache_p_LO[index_p(cc, 1, 2, 0)] = 1. / 6. - 2. * z;
2227 cache_p_LO[index_p(cc, 2, 2, 0)] = 1. - 3. * z;
2228 cache_ps_LO[index_p(cc, 1, 1, 0)] = -5. / 9.;
2229 cache_ps_LO[index_p(cc, 1, 2, 0)] = -4. / 3.;
2230 cache_ps_LO[index_p(cc, 2, 2, 0)] = 1.;
2231
2232 cache_p_LO[index_p(cc, 1, 5, 0)] = 64. / 3. - 96. * z;
2233 cache_p_LO[index_p(cc, 1, 6, 0)] = 4. * z - 20. / 9.;
2234 cache_p_LO[index_p(cc, 2, 5, 0)] = 16. - 72. * z;
2235 cache_p_LO[index_p(cc, 2, 6, 0)] = 40. / 3. - 24. * z;
2236
2237 cache_p_LO[index_p(cc, 5, 5, 0)] = -1296. * n_v * z + 408. * (n_l + n_v) + 512.;
2238 cache_p_LO[index_p(cc, 6, 6, 0)] = -72. * n_v * z + 170. / 3. * (n_l + n_v) + 416. / 9.;
2239
2240 for (int i = 3; i <= 6; i++)
2241 {
2242 for (int j = i; j <= 6; j++)
2243 {
2244 cache_p_LO[index_p(uu, i, j, 0)] = cache_p_LO[index_p(cc, i, j, 0)];
2245 cache_ps_LO[index_p(uu, i, j, 0)] = cache_ps_LO[index_p(cc, i, j, 0)];
2246 }
2247 }
2248
2249 // Gerlach thesis eq. (6.10)
2250 for (int i = 1; i <= 6; i++)
2251 {
2252 for (int j = i; j <= 6; j++)
2253 {
2254 cache_p_LO[index_p(cu, i, j, 0)] =
2255 0.5 * (cache_p_LO[index_p(cc, i, j, 0)] + cache_p_LO[index_p(uu, i, j, 0)]);
2256 cache_ps_LO[index_p(cu, i, j, 0)] =
2257 0.5 * (cache_ps_LO[index_p(cc, i, j, 0)] + cache_ps_LO[index_p(uu, i, j, 0)]);
2258 }
2259 }
2260
2261 cache_p_LO[index_p(cc, 1, 1, 1)] = (1196. + 342. * L_1 + 447. * L_2 - 15. * (M_PI2)) / 324. + (z * (-4113. - 1008. * L_1 - 792. * L_2 - 3168. * logz + 4. * (M_PI2))) / 216.;
2262 cache_p_LO[index_p(cc, 1, 2, 1)] = (z * (1179. + 468. * L_1 - 72. * L_2 - 288. * logz - 4. * (M_PI2))) / 18. + (-452. - (333. * L_1) / 2. + 57. * L_2 + 15. * (M_PI2)) / 27.;
2263 cache_p_LO[index_p(cc, 2, 2, 1)] = (37. - 18. * L_1 + 12. * L_2 - 30. * (M_PI2)) / 18. + (z * (135. + 72. * L_1 - 36. * L_2 - 144. * logz + 4. * (M_PI2))) / 6.;
2264 cache_ps_LO[index_p(cc, 1, 1, 1)] = z * (-385. / 9. - (4. * (M_PI2)) / 27.) - (2. * (-1. + 18. * L_1 + 60. * L_2 + 3. * (M_PI2))) / 81.;
2265 cache_ps_LO[index_p(cc, 1, 2, 1)] = (16. * z * (-42. + (M_PI2))) / 9. + (8. * (11. + (9. * L_1) / 2. - 12. * L_2 + 3. * (M_PI2))) / 27.;
2266 cache_ps_LO[index_p(cc, 2, 2, 1)] = z * (44. - (16. * (M_PI2)) / 3.) - (8. * (-31. - 9. * L_1 - 3. * L_2 + 3. * (M_PI2))) / 9.;
2267
2268 cache_p_LO[index_p(cc, 1, 1, 1)] += -5. / 486. - (5. * L_1) / 324. - (5. * z) / 54.;
2269 cache_p_LO[index_p(cc, 1, 2, 1)] += 10. / 81. + (5. * L_1) / 27. + (10. * z) / 9.;
2270 cache_p_LO[index_p(cc, 2, 2, 1)] += -10. / 27. - (5. * L_1) / 9. - (10. * z) / 3.;
2271 cache_ps_LO[index_p(cc, 1, 1, 1)] += -4. / 243. - (2. * L_1) / 81. - (4. * z) / 27.;
2272 cache_ps_LO[index_p(cc, 1, 2, 1)] += 16. / 81. + (8. * L_1) / 27. + (16. * z) / 9.;
2273 cache_ps_LO[index_p(cc, 2, 2, 1)] += -16. / 27. - (8. * L_1) / 9. - (16. * z) / 3.;
2274
2275 cache_p_LO[index_p(cc, 1, 1, 1)] += -11. / 6. * z_replace;
2276 cache_p_LO[index_p(cc, 1, 2, 1)] += -2. * z_replace;
2277 cache_p_LO[index_p(cc, 2, 2, 1)] += -3. * z_replace;
2278
2279 // Gerlach thesis eq. (6.13) and (6.16)
2280 for (int i = 1; i <= 2; i++)
2281 {
2282 for (int j = i; j <= 2; j++)
2283 {
2284 cache_p_LO[index_p(cu, i, j, 1)] =
2285 0.5 * (cache_p_LO[index_p(cc, i, j, 1)] + cache_p_LO[index_p(uu, i, j, 1)]);
2286 cache_ps_LO[index_p(cu, i, j, 1)] =
2287 0.5 * (cache_ps_LO[index_p(cc, i, j, 1)] + cache_ps_LO[index_p(uu, i, j, 1)]);
2288 }
2289 }
2290
2291 // Gerlach thesis eq. (6.19)
2292 cache_p_LO[index_p(cc, 1, 8, 1)] = 5. / 18.;
2293 cache_p_LO[index_p(cc, 2, 8, 1)] = -5. / 3.;
2294 cache_ps_LO[index_p(cc, 1, 8, 1)] = 4. / 9.;
2295 cache_ps_LO[index_p(cc, 2, 8, 1)] = -8. / 3.;
2296
2297 // Gerlach thesis eq. (6.21)
2298 cache_p_LO[index_p(cc, 3, 8, 1)] = -32. / 3.;
2299 cache_p_LO[index_p(cc, 4, 8, 1)] = -169. / 18.;
2300 cache_p_LO[index_p(cc, 5, 8, 1)] = -512. / 3.;
2301 cache_p_LO[index_p(cc, 6, 8, 1)] = -992. / 9.;
2302 cache_ps_LO[index_p(cc, 3, 8, 1)] = 64. / 3.;
2303 cache_ps_LO[index_p(cc, 4, 8, 1)] = -20. / 9.;
2304 cache_ps_LO[index_p(cc, 5, 8, 1)] = 1024. / 3.;
2305 cache_ps_LO[index_p(cc, 6, 8, 1)] = 256. / 9.;
2306
2307 // Gerlach thesis eq. (6.20)
2308 for (int i = 1; i <= 6; i++)
2309 {
2310 cache_p_LO[index_p(cu, i, 8, 1)] = cache_p_LO[index_p(cc, i, 8, 1)];
2311 cache_p_LO[index_p(uu, i, 8, 1)] = cache_p_LO[index_p(cc, i, 8, 1)];
2312 cache_ps_LO[index_p(cu, i, 8, 1)] = cache_ps_LO[index_p(cc, i, 8, 1)];
2313 cache_ps_LO[index_p(uu, i, 8, 1)] = cache_ps_LO[index_p(cc, i, 8, 1)];
2314 }
2315
2316 logz = cache_logz;
2317 //lastInput_compute_pp_s[0] = z;
2318 //lastInput_compute_pp_s[1] = mu_1;
2319 //lastInput_compute_pp_s[2] = mu_2;
2320 //lastInput_compute_pp_s[3] = mu_b;
2321 return;
2322}
double z4
Definition: AmpDB2.h:239
double z
Definition: AmpDB2.h:236
double log1minusz
Definition: AmpDB2.h:243
double sqrtz
Definition: AmpDB2.h:240
const double sqrt5
Definition: AmpDB2.h:190
double log1minus4z
Definition: AmpDB2.h:244
double Dilogz
Definition: AmpDB2.h:254
double z2
Definition: AmpDB2.h:237
double logsigma
Definition: AmpDB2.h:248
double sqrt1minus4z
Definition: AmpDB2.h:246
const double sqrt3
Definition: AmpDB2.h:189
double mu_b
Definition: AmpDB2.h:199
double logz
Definition: AmpDB2.h:241
double z3
Definition: AmpDB2.h:238
double Dilogsigma2
Definition: AmpDB2.h:256
double Mb
Definition: AmpDB2.h:270
double Dilogsigma
Definition: AmpDB2.h:255
const double log3
Definition: AmpDB2.h:188
const double Cl2PI3
Definition: AmpDB2.h:193
double cache_ps_LO[576]
Definition: AmpDB2.h:405
const double t_2
Definition: AmpDB2.h:192
const double M_PI4
Definition: AmpDB2.h:180
double log2z
Definition: AmpDB2.h:242
const double log12sqrt52
Definition: AmpDB2.h:191
double oneminusz2
Definition: AmpDB2.h:245
double mu_1
Definition: AmpDB2.h:196
const double zeta3
Definition: AmpDB2.h:182
const double M_PI2
Definition: AmpDB2.h:178
double cache_p_LO[576]
Definition: AmpDB2.h:404
double log2sigma
Definition: AmpDB2.h:249

◆ computeCKMandMasses()

void AmpDB2::computeCKMandMasses ( orders  order = NNLO,
mass_schemes  mass_scheme = MSbar 
)
private

A method to compute CKM elements, quark masses and alpha_s.

Parameters
[in]orderNNLO, use NLO only for tradBasis
[in]mass_schemethe scheme for the bottom quark mass

Definition at line 317 of file AmpDB2.cpp.

318{
319 if (order != NLO and order != NNLO)
320 throw(std::runtime_error("computeCKMandMasses() order not present"));
321
330 lambda_c_d = VcbVcd.conjugate();
331 lambda_u_d = mySM.getCKM().computelamu_d().conjugate();
332 lambda_c_s = VcbVcs.conjugate();
333 lambda_u_s = mySM.getCKM().computelamu_s().conjugate();
334
335 // pole mass of bottom quark
337
338 // DB=1 matching scales (arxiv: 2205.07907 Results. or Gerlach thesis eq. 7.7) varied by "getMub()" or fixed to 4.2
339 mu_1 = mySM.getMub();
340 // mass scale mu_b=mu_c
341 mu_b = mu_1;
342 if (flag_fixmub)
343 mu_b = 4.2;
344 // mu_1_overm = Mb_pole; // Gerlach thesis
346
347 // DB=2 matching scale mu_2
348 mu_2 = mySM.getBBs().getMu();
349
350 // MSbar bottom quark mass Mb(Mb)
352
353 // MSbar bottom quark mass Mb(mu_b)
354 double Mb_mub = mySM.Mrun(mu_b,
357
358 // MSbar charm quark mass Mc(Mc)
359 double Mc_Mc = mySM.getQuarks(QCD::CHARM).getMass();
360
361 // MSbar charm quark mass Mc(mu_b)
362 double Mc_mub = mySM.Mrun(mu_b,
365
366 // strong coupling constant divided by 4*Pi
367 as_4pi_mu1 = mySM.Als(mu_1, FULLNNNLO, true, true) / (4. * M_PI);
368 as_4pi_mu2 = mySM.Als(mu_2, FULLNNNLO, true, true) / (4. * M_PI);
369 as_4pi = mySM.Als(Mb_Mb, FULLNNNLO, true, true) / (4. * M_PI);
370
371 // resummed z always in MSbar
372 z = Mc_mub * Mc_mub / (Mb_mub * Mb_mub);
373 sqrtz = sqrt(z);
374
375 // PS mass of bottom quark: NNLO evaluation from hep-ph/9804241v2 eq. (25)
376 PoletoMS_as2 = 307. / 32. + M_PI2 / 3. + M_PI2 / 9. * log2 - 1. / 6. * zeta3 - (71. / 144. + M_PI2 / 18.) * nl + 4. / 3. * M_PI2 / 8. * sqrtz - z;
377 Mb_PS = Mb_Mb * (1. + 16. / 3. * as_4pi * (1. - mu_f / Mb_Mb) + 16. * as_4pi * as_4pi * (PoletoMS_as2 - mu_f / (3. * Mb_Mb) * (a1 - b0 * (2. * log(mu_f / Mb_Mb) - 2.))));
378
379 // adapt "Mb2_prefactor" to the used mass scheme; Mb, Mc, always in MSbar
380 // explained in Gerlach thesis chapter 7.0 and arxiv:2205.07907 Results.
381 if (order == NNLO)
382 {
383 Mb = Mb_mub; // if Mb changes independently of mub it has to be added to currentInput_compute_pp_s
384 Mc = Mc_mub;
385 this->flag_resumz = true;
386 switch (mass_scheme)
387 {
388 case pole:
390 break;
393 case MSbar:
394 Mb2_prefactor = Mb_mub * Mb_mub;
395 break;
396 case PS_partialNNLO:
397 case PS_partialN3LO:
398 case PS:
400 break;
401 case only1overmb:
402 Mb2_prefactor = 0.;
403 break;
404 default:
405 throw(std::runtime_error("mass_scheme not implemented"));
406 }
407 }
409 if (mass_scheme == only1overmb)
411
412 // adapt to MSbar mass scheme for the traditional basis
413 if (order == NLO)
414 {
415 Mb2_prefactor = Mb_mub * Mb_mub;
416 Mb = Mb_pole;
417 x_1 = mu_1 / Mb;
418 x_2 = mu_2 / Mb;
419 logx_1 = log(x_1);
420 logx_2 = log(x_2);
421 double Mc = Mc_mub;
422 if (!flag_resumz)
423 Mc = Mc_Mc;
424 z = Mc * Mc / (Mb_mub * Mb_mub);
425 }
426
427 Gf2 = mySM.getGF() * mySM.getGF();
430
431 z2 = z * z;
432 logz = log(z);
433 log2z = logz * logz;
434 oneminusz2 = (1. - z) * (1. - z);
435 sqrt1minus4z = sqrt(1. - 4. * z);
436
437 // calculate "z" values for 1/m_b contributions
438 // z_1overm = Mc_Mc * Mc_Mc / (Mb_Mb * Mb_Mb); //hep-ph/0612167 eq. 27
439 // MSbar charm quark mass Mb(Mb)
440 // double Mc_Mb = mySM.Mrun(mySM.getQuarks(QCD::BOTTOM).getMass_scale(),
441 // mySM.getQuarks(QCD::CHARM).getMass_scale(),
442 // mySM.getQuarks(QCD::CHARM).getMass(), FULLNNLO);
443 // z_1overm = Mc_Mb * Mc_Mb / (Mb_Mb * Mb_Mb); //arxiv:1910.00970 eq. 11
444 // if z for the 1/m_b contributions shall be varied with "mu_b"
445 z_1overm = Mc_mub * Mc_mub / (Mb_mub * Mb_mub);
446
448 oneminusz_1overm2 = (1. - z_1overm) * (1. - z_1overm);
449 sqrt1minus4z_1overm = sqrt(1. - 4. * z_1overm);
450
451 z3 = z2 * z;
452 z4 = z3 * z;
453
454 log1minusz = log(1. - z);
455 log1minus4z = log(1. - 4. * z);
456
457 sigma = (1. - sqrt1minus4z) / (1. + sqrt1minus4z);
458 logsigma = log(sigma);
460
461 Dilogz = gslpp_special_functions::dilog(z);
462 Dilogsigma = gslpp_special_functions::dilog(sigma);
463 Dilogsigma2 = gslpp_special_functions::dilog(sigma * sigma);
464 return;
465}
@ FULLNNNLO
Definition: OrderScheme.h:40
@ NNLO
Definition: OrderScheme.h:36
double mu_f
Definition: AmpDB2.h:280
double Mb2_prefactor
Definition: AmpDB2.h:273
double Mc
Definition: AmpDB2.h:269
double sigma
Definition: AmpDB2.h:247
double Mb2_prefactor_1overm
Definition: AmpDB2.h:274
double mu_1_overm
Definition: AmpDB2.h:197
double a1
Definition: AmpDB2.h:282
double b0
Definition: AmpDB2.h:285
double PoletoMS_as2
Definition: AmpDB2.h:418
double as_4pi
Definition: AmpDB2.h:259
double logx_2
Definition: AmpDB2.h:253
double Mb_PS
Definition: AmpDB2.h:277
double Gf2
Definition: AmpDB2.h:235
double logx_1
Definition: AmpDB2.h:252
double x_1
Definition: AmpDB2.h:250
double x_2
Definition: AmpDB2.h:251
double Mb_Mb
Definition: AmpDB2.h:275
double as_4pi_mu1
Definition: AmpDB2.h:257
double nl
Definition: AmpDB2.h:281
const double & getMu() const
A get method for the scale of the bag parameters.
Definition: BParameter.h:204
const gslpp::complex computelamt_s() const
The product of the CKM elements .
Definition: CKM.cpp:174
const gslpp::complex computelamu_s() const
The product of the CKM elements .
Definition: CKM.cpp:184
const gslpp::complex computelamc_s() const
The product of the CKM elements .
Definition: CKM.cpp:179
const gslpp::complex computelamu_d() const
The product of the CKM elements .
Definition: CKM.cpp:168
const gslpp::complex computelamc_d() const
The product of the CKM elements .
Definition: CKM.cpp:163
const gslpp::complex computelamt_d() const
The product of the CKM elements .
Definition: CKM.cpp:158
@ CHARM
Definition: QCD.h:326
const double getMub() const
A get method to access the threshold between five- and four-flavour theory in GeV.
Definition: QCD.h:582
const double Mbar2Mp(const double mbar, const quark q, const orders order=FULLNNLO) const
Converts the mass to the pole mass.
Definition: QCD.cpp:1552
const CKM & getCKM() const
A get method to retrieve the member object of type CKM.
const double getGF() const
A get method to retrieve the Fermi constant .
const double Als(const double mu, const orders order, const bool Nf_thr, const bool qed_flag) const
The running QCD coupling in the scheme including QED corrections.

◆ computeD()

void AmpDB2::computeD ( orders  order)
private

Definition at line 640 of file AmpDB2.cpp.

641{
642 if (order == FULLNLO)
643 {
644 // qq = uu and cc
645 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 2))
646 {
647 for (int k = 1; k <= 2; k++)
648 {
649 gslpp::complex result = 0.;
650 for (int i = 1; i <= 2; i++)
651 {
652 for (int j = 1; j <= 2; j++)
653 {
654 result += C_Buras_LO[i - 1] * C_Buras_LO[j - 1] * F(qq, k, i, j) + (C_Buras_NLO[i - 1] * C_Buras_LO[j - 1] + C_Buras_LO[i - 1] * C_Buras_NLO[j - 1]) * F0(qq, k, i, j);
655 }
656 }
657 result += +as_4pi_mu1 * C_Buras_LO[2 - 1] * C_Buras_LO[2 - 1] * P(qq, k, 2, 2) + 2. * as_4pi_mu1 * C_Buras_LO[2 - 1] * C_Buras_LO[8 - 1] * P(qq, k, 2, 8);
658 for (int i = 1; i <= 2; i++)
659 {
660 for (int r = 3; r <= 6; r++)
661 {
662 result += 2. * C_Buras_LO[i - 1] * C_Buras_LO[r - 1] * P(qq, k, i, r);
663 }
664 }
665 cacheD[indexD(qq, k)] = result;
666 }
667 }
668 // qq = cu
669 for (int k = 1; k <= 2; k++)
670 {
671 gslpp::complex result = 0.;
672 for (int i = 1; i <= 2; i++)
673 {
674 for (int j = 1; j <= 2; j++)
675 {
676 result += C_Buras_LO[i - 1] * C_Buras_LO[j - 1] * F(cu, k, i, j) + (C_Buras_NLO[i - 1] * C_Buras_LO[j - 1] + C_Buras_LO[i - 1] * C_Buras_NLO[j - 1]) * F0(cu, k, i, j);
677 }
678 }
679 result += +as_4pi_mu1 * C_Buras_LO[2 - 1] * C_Buras_LO[2 - 1] * P(cu, k, 2, 2) + as_4pi_mu1 * C_Buras_LO[2 - 1] * C_Buras_LO[8 - 1] * (P(cc, k, 2, 8) + P(uu, k, 2, 8));
680 for (int i = 1; i <= 2; i++)
681 {
682 for (int r = 3; r <= 6; r++)
683 {
684 result += C_Buras_LO[i - 1] * C_Buras_LO[r - 1] * (P(cc, k, i, r) + P(uu, k, i, r));
685 }
686 }
687 cacheD[indexD(cu, k)] = result;
688 }
689 }
690 else if (order == LO)
691 {
692 // qq = uu and cc
693 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 2))
694 {
695 for (int k = 1; k <= 2; k++)
696 {
697 gslpp::complex result = 0.;
698 for (int i = 1; i <= 2; i++)
699 {
700 for (int j = 1; j <= 2; j++)
701 {
702 result += C_Buras_LO[i - 1] * C_Buras_LO[j - 1] * F0(qq, k, i, j);
703 }
704 }
705 for (int i = 1; i <= 2; i++)
706 {
707 for (int r = 3; r <= 6; r++)
708 {
709 result += 2. * C_Buras_LO[i - 1] * C_Buras_LO[r - 1] * P(qq, k, i, r);
710 }
711 }
712 cacheD[indexD(qq, k)] = result;
713 }
714 }
715 // qq = cu
716 for (int k = 1; k <= 2; k++)
717 {
718 gslpp::complex result = 0.;
719 for (int i = 1; i <= 2; i++)
720 {
721 for (int j = 1; j <= 2; j++)
722 {
723 result += C_Buras_LO[i - 1] * C_Buras_LO[j - 1] * F0(cu, k, i, j);
724 }
725 }
726 for (int i = 1; i <= 2; i++)
727 {
728 for (int r = 3; r <= 6; r++)
729 {
730 result += C_Buras_LO[i - 1] * C_Buras_LO[r - 1] * (P(cc, k, i, r) + P(uu, k, i, r));
731 }
732 }
733 cacheD[indexD(cu, k)] = result;
734 }
735 }
736 else
737 {
738 throw std::runtime_error("AmpDB2::computeD(orders order): order not implemented");
739 }
740 return;
741}
double F(quarks qq, int k, int i, int j)
Definition: AmpDB2.cpp:753
double F0(quarks qq, int k, int i, int j)
Definition: AmpDB2.cpp:743
double P(quarks qq, int k, int i, int j)
Definition: AmpDB2.cpp:758
gslpp::complex C_Buras_LO[8]
Definition: AmpDB2.h:302
gslpp::complex cacheD[6]
Definition: AmpDB2.h:332
int indexD(quarks qq, int k)
Definition: AmpDB2.cpp:932
gslpp::complex C_Buras_NLO[8]
Definition: AmpDB2.h:303

◆ computeF0()

void AmpDB2::computeF0 ( )
private

Definition at line 490 of file AmpDB2.cpp.

491{
492 cacheF0[indexF(cu, 1, 1, 1)] = 1.5 * (2. - 3. * z + z3);
493 cacheF0[indexF(cu, 1, 1, 2)] = 0.5 * (2. - 3. * z + z3);
494 cacheF0[indexF(cu, 1, 2, 2)] = 0.5 * oneminusz2 * (1. - z);
495 cacheF0[indexF(cu, 2, 1, 1)] = 3. * oneminusz2 * (1. + 2. * z);
496 cacheF0[indexF(cu, 2, 1, 2)] = oneminusz2 * (1. + 2. * z);
497 cacheF0[indexF(cu, 2, 2, 2)] = -oneminusz2 * (1. + 2. * z);
498 cacheF0[indexF(cc, 1, 1, 1)] = 3. * sqrt1minus4z * (1. - z);
499 cacheF0[indexF(cc, 1, 1, 2)] = sqrt1minus4z * (1. - z);
500 cacheF0[indexF(cc, 1, 2, 2)] = 0.5 * sqrt1minus4z * sqrt1minus4z * sqrt1minus4z;
501 cacheF0[indexF(cc, 2, 1, 1)] = 3. * sqrt1minus4z * (1. + 2. * z);
502 cacheF0[indexF(cc, 2, 1, 2)] = sqrt1minus4z * (1. + 2. * z);
503 cacheF0[indexF(cc, 2, 2, 2)] = -sqrt1minus4z * (1. + 2. * z);
504 cacheF0[indexF(uu, 1, 1, 1)] = 3.;
505 cacheF0[indexF(uu, 1, 1, 2)] = 1.;
506 cacheF0[indexF(uu, 1, 2, 2)] = 0.5;
507 cacheF0[indexF(uu, 2, 1, 1)] = 3.;
508 cacheF0[indexF(uu, 2, 1, 2)] = 1.;
509 cacheF0[indexF(uu, 2, 2, 2)] = -1.;
510 for (int k = 1; k < 3; k++)
511 {
512 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 1))
513 {
514 cacheF0[indexF(qq, k, 2, 1)] = cacheF0[indexF(qq, k, 1, 2)];
515 }
516 }
517 return;
518}
int indexF(quarks qq, int k, int i, int j)
Definition: AmpDB2.cpp:764
double cacheF0[24]
Definition: AmpDB2.h:329

◆ computeF1()

void AmpDB2::computeF1 ( )
private

Definition at line 523 of file AmpDB2.cpp.

524{
525 double log_muM = 2. * log(mu_b / Mb_pole);
526 cacheF1[indexF(cu, 1, 1, 1)] = 109. / 6. - 37. * z + 1.5 * z2 + 52. / 3. * z3 + 2. * oneminusz2 * (5. + z) * logx_2 - 4. * oneminusz2 * (5. + 7. * z) * log1minusz -
527 2. * z * (10. + 14. * z - 15. * z2) * logz + 8. * (2. - 3. * z + z3) * log1minusz * logz + 16. * (2. - 3. * z + z3) * Dilogz + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cu, 1, 1, 1) - 8. * z * logz * 1.5 * (-3. + 3. * z2));
528 cacheF1[indexF(cu, 2, 1, 1)] = -4. / 3. * (10. - 33. * z + 54. * z2 - 31. * z3) - 8. * oneminusz2 * (4. + 14. * z - 3. * z2) * log1minusz +
529 8. * z * (2. - 23. * z + 21. * z2 - 3. * z3) * logz -
530 16. * oneminusz2 * (1. + 2. * z) * (2. * logx_2 - log1minusz * logz - 2. * Dilogz) + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cu, 2, 1, 1) - 8. * z * logz * 3. * 6. * (z - 1.) * z);
531 cacheF1[indexF(cu, 1, 1, 2)] = 1. * ((-502. + 912. * z - 387. * z2 - 23. * z3) / 36. - oneminusz2 * (17. + 4. * z) * logx_1 + 2. / 3. * oneminusz2 * (5. + z) * logx_2 -
532 oneminusz2 / (12. * z) * (2. + 33. * z + 94. * z2) * log1minusz - z / 12. * (80. + 69. * z - 126. * z2) * logz +
533 8. / 3. * (2. - 3. * z + z3) * (log1minusz * logz + 2. * Dilogz)) +
534 flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cu, 1, 1, 2) - 8. * z * logz * 0.5 * (-3. + 3. * z2));
535 cacheF1[indexF(cu, 2, 1, 2)] = 1. * ((-130. + 93. * z + 144. * z2 - 107. * z3) / 9. - 2. / 3. * oneminusz2 / z * (1. + 15. * z + 47. * z2 - 12. * z3) * log1minusz +
536 2. / 3. * z * (8. - 93. * z + 87. * z2 - 12. * z3) * logz -
537 8. / 3. * oneminusz2 * (1. + 2. * z) * (3. * logx_1 + 4. * logx_2 - 2. * log1minusz * logz - 4. * Dilogz)) +
538 flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cu, 2, 1, 2) - 8. * z * logz * 6. * (z - 1.) * z);
539 cacheF1[indexF(cu, 1, 2, 2)] = -M_PI2 / 3. * (1. - 5. * z + 4. * z2) + (-136. - 159. * z + 738. * z2 - 443. * z3) / 18. - 2 * oneminusz2 * (5. + 4. * z) * logx_1 +
540 2. / 3. * oneminusz2 * (4. - z) * logx_2 + oneminusz2 / (6. * z) * (7. + 32. * z2 + 3. * z3) * log1minusz -
541 z / 6. * (62. + 39. * z - 30. * z2 + 3. * z3) * logz + (5. - 3. * z - 18. * z2 + 16. * z3) / 3. * (log1minusz * logz + 2. * Dilogz) + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cu, 1, 2, 2) - 8. * z * logz * -1.5 * oneminusz2);
542 cacheF1[indexF(cu, 2, 2, 2)] = 8. / 3. * M_PI2 * (1. + z - 2. * z2) - 28. / 9. * (5. + 3. * z - 27. * z2 + 19. * z3) - 16. * oneminusz2 * (1. + 2. * z) * logx_1 +
543 32. / 3. * oneminusz2 * (1. + 2. * z) * logx_2 - 4. / 3. * oneminusz2 / z * (1. - 12. * z - 16. * z2 - 3. * z3) * log1minusz +
544 4. / 3. * z * (2. - 3. * z + 18. * z2 - 3. * z3) * logz + 8. / 3. * (1. - 3. * z - 6. * z2 + 8. * z3) * (log1minusz * logz + 2. * Dilogz) + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cu, 2, 2, 2) - 8. * z * logz * -6. * (z - 1.) * z);
545
546 cacheF1[indexF(cc, 1, 1, 1)] = sqrt1minus4z * (109. - 226. * z + 168. * z2) / 6. - (52. - 104. * z - 16. * z2 + 56. * z3) * logsigma +
547 2. * (5. - 8. * z) * sqrt1minus4z * logx_2 - 12. * sqrt1minus4z * (3. - 2. * z) * log1minus4z + 4. * (13. - 10. * z) * sqrt1minus4z * logz +
548 16. * (1. - 3. * z + 2. * z2) * (3. * log2sigma + 2. * logsigma * log1minus4z - 3. * logsigma * logz + 4. * Dilogsigma + 2. * Dilogsigma2) + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cc, 1, 1, 1) - 8. * z * logz * 3. * (6. * z - 3.) / sqrt1minus4z);
549 cacheF1[indexF(cc, 2, 1, 1)] = -8. / 3. * sqrt1minus4z * (5. - 23. * z - 42. * z2) - 16. * (4. - 2. * z - 7. * z2 + 14. * z3) * logsigma - 32. * sqrt1minus4z * (1. + 2. * z) * logx_2 -
550 48. * sqrt1minus4z * (1. + 2. * z) * log1minus4z + 64. * sqrt1minus4z * (1. + 2. * z) * logz +
551 16. * (1. - 4. * z2) * (3. * log2sigma + 2. * logsigma * log1minus4z - 3. * logsigma * logz + 4. * Dilogsigma + 2. * Dilogsigma2) + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cc, 2, 1, 1) - 8. * z * logz * 3. * -12. * z / sqrt1minus4z);
552 cacheF1[indexF(cc, 1, 1, 2)] = -sqrt1minus4z * (127. - 199. * z - 75. * z2) / 9. + (2. - 259. * z + 662. * z2 - 76. * z3 - 200. * z4) * logsigma / (12. * z) -
553 (17. - 26. * z) * sqrt1minus4z * logx_1 + 2. / 3. * (5. - 8. * z) * sqrt1minus4z * logx_2 - 4. * sqrt1minus4z * (3. - 2. * z) * log1minus4z -
554 sqrt1minus4z * (2. - 255. * z + 316. * z2) * logz / (12. * z) +
555 16. / 3. * (1. - 3. * z + 2. * z2) * (3. * log2sigma + 2. * logsigma * log1minus4z - 3. * logsigma * logz + 4. * Dilogsigma + 2. * Dilogsigma2) + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cc, 1, 1, 2) - 8. * z * logz * (6. * z - 3.) / sqrt1minus4z);
556 cacheF1[indexF(cc, 2, 1, 2)] = -2. * sqrt1minus4z * (68. + 49. * z - 150. * z2) / 9. + 2. / 3. * (1. - 35. * z + 4. * z2 + 76. * z3 - 100. * z4) * logsigma / z +
557 (16. - 64. * z2) * log2sigma - 8. * sqrt1minus4z * (1. + 2. * z) * logx_1 - 32. / 3. * sqrt1minus4z * (1. + 2. * z) * logx_2 -
558 16. * sqrt1minus4z * (1. + 2. * z) * log1minus4z - 2. / 3. * sqrt1minus4z * (1. - 33. * z - 76. * z2) * logz / z +
559 16. / 3. * (1. - 4. * z2) * (2. * logsigma * log1minus4z - 3. * logsigma * logz + 4. * Dilogsigma + 2. * Dilogsigma2) + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cc, 2, 1, 2) - 8. * z * logz * -12. * z / sqrt1minus4z);
560 cacheF1[indexF(cc, 1, 2, 2)] = -M_PI2 / 3. * (1. - 10. * z) - sqrt1minus4z * (115. + 632. * z + 96. * z2) / 18. - (7. + 13. * z - 194. * z2 + 304. * z3 - 64. * z4) * logsigma / (6. * z) -
561 2. * sqrt1minus4z * (5. - 2. * z) * logx_1 + 4. / 3. * (2. - 5. * z) * sqrt1minus4z * logx_2 - 4. * (1. - 6. * z) * sqrt1minus4z * log1minus4z +
562 (13. - 54. * z + 8. * z2) * logsigma * log1minus4z / 3. + sqrt1minus4z * (7. + 27. * z - 250. * z2) * logz / (6. * z) +
563 (7. - 32. * z + 4. * z2) * (log2sigma - logsigma * logz) + 4. / 3. * (5. - 12. * z + 4. * z2) * Dilogsigma + 4. / 3. * (4. - 21. * z + 2. * z2) * Dilogsigma2 + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cc, 1, 2, 2) - 8. * z * logz * 0.5 * -6. * sqrt1minus4z);
564 cacheF1[indexF(cc, 2, 2, 2)] = 8. / 3. * M_PI2 * (1. + 2. * z) - 8. / 9. * sqrt1minus4z * (19. + 53. * z + 24. * z2) + 4. / 3. * (1. + 7. * z + 10. * z2 - 68. * z3 + 32. * z4) * logsigma / z -
565 8. * (1. + 2. * z) * (1. + 2. * z) * log2sigma - 16. * sqrt1minus4z * (1. + 2. * z) * logx_1 + 32. / 3. * sqrt1minus4z * (1. + 2. * z) * logx_2 +
566 16. * sqrt1minus4z * (1. + 2. * z) * log1minus4z - 8. / 3. * (1. + 6. * z + 8. * z2) * logsigma * log1minus4z -
567 4. / 3. * sqrt1minus4z * (1. + 9. * z + 26. * z2) * logz / z + 8. * (1. + 2. * z) * (1. + 2. * z) * logsigma * logz +
568 32. / 3. * (1. - 4. * z2) * Dilogsigma - 32. / 3. * (1. + 3. * z + 2. * z2) * Dilogsigma2 + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(cc, 2, 2, 2) - 8. * z * logz * 12. * z / sqrt1minus4z);
569
570 cacheF1[indexF(uu, 1, 1, 1)] = 109. / 6. + 10. * logx_2 + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(uu, 1, 1, 1));
571 cacheF1[indexF(uu, 2, 1, 1)] = -40. / 3. - 32. * logx_2 + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(uu, 2, 1, 1));
572 cacheF1[indexF(uu, 1, 1, 2)] = -127. / 9. + 4. / 12. - 17. * logx_1 + 10. / 3. * logx_2 + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(uu, 1, 1, 2));
573 cacheF1[indexF(uu, 2, 1, 2)] = -(136. + 12.) / 9. - 8. * logx_1 - 32. / 3. * logx_2 + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(uu, 2, 1, 2));
574 cacheF1[indexF(uu, 1, 2, 2)] = -M_PI2 / 3. - (115. + 42.) / 18. - 10. * logx_1 + 8. / 3. * logx_2 + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(uu, 1, 2, 2));
575 cacheF1[indexF(uu, 2, 2, 2)] = 8. * M_PI2 / 3. - 8. / 9. * (19. - 3.) - 16. * logx_1 + 32. / 3. * logx_2 + flag_resumz * ((32. / 3. + 8. * log_muM) * F0(uu, 2, 2, 2));
576
577 for (int k = 1; k < 3; k++)
578 {
579 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 1))
580 {
581 cacheF1[indexF(qq, k, 2, 1)] = cacheF1[indexF(qq, k, 1, 2)];
582 }
583 }
584 return;
585}
double cacheF1[24]
Definition: AmpDB2.h:330

◆ computeP()

void AmpDB2::computeP ( )
private

Definition at line 588 of file AmpDB2.cpp.

589{
590 cacheP[indexP(cu, 1, 2, 2)] = -1. / 27. + 2. / 9. * z - logx_1 / 9. - sqrt1minus4z * (1. + 2. * z) * (2. + 3. * logsigma + 6. * logx_1) / 54. + logz / 18.;
591 cacheP[indexP(cu, 2, 2, 2)] = 8. / 27. + 16. / 9. * z + 8. / 9. * logx_1 + 4. / 27. * sqrt1minus4z * (1. + 2. * z) * (2. + 3. * logsigma + 6. * logx_1) - 4. * logz / 9.;
592 cacheP[indexP(cc, 1, 2, 2)] = -2. / 27. * sqrt1minus4z * (1. + 8. * z + 12. * z2) - logsigma / 9. + 4. / 3. * z2 * logsigma + 16. / 9. * z3 * logsigma -
593 sqrt1minus4z * (1. + 2. * z) * (2. * logx_1 - logz) / 9.;
594 cacheP[indexP(cc, 2, 2, 2)] = 16. / 27. * sqrt1minus4z * (1. + 8. * z + 12. * z2) + 8. / 9. * logsigma - 32. / 3. * z2 * logsigma - 128. / 9. * z3 * logsigma +
595 8. / 9. * sqrt1minus4z * (1. + 2. * z) * (2. * logx_1 - logz);
596 cacheP[indexP(uu, 1, 2, 2)] = -2. / 27. - 2. / 9. * logx_1;
597 cacheP[indexP(uu, 2, 2, 2)] = 16. / 27. + 16. / 9. * logx_1;
598
599 cacheP[indexP(cc, 1, 1, 3)] = 3. * sqrt1minus4z * (1. - z);
600 cacheP[indexP(cc, 2, 1, 3)] = 3. * sqrt1minus4z * (1. + 2. * z);
601 cacheP[indexP(cc, 1, 2, 3)] = sqrt1minus4z * (1. - z);
602 cacheP[indexP(cc, 2, 2, 3)] = sqrt1minus4z * (1. + 2. * z);
603 cacheP[indexP(cc, 1, 1, 4)] = sqrt1minus4z * (1. - z);
604 cacheP[indexP(cc, 2, 1, 4)] = sqrt1minus4z * (1. + 2. * z);
605 cacheP[indexP(cc, 1, 2, 4)] = 0.5 * sqrt1minus4z * sqrt1minus4z * sqrt1minus4z;
606 cacheP[indexP(cc, 2, 2, 4)] = -sqrt1minus4z * (1. + 2. * z);
607 cacheP[indexP(cc, 1, 1, 5)] = 9. * z * sqrt1minus4z;
608 cacheP[indexP(cc, 2, 1, 5)] = 0.;
609 cacheP[indexP(cc, 1, 2, 5)] = 3. * z * sqrt1minus4z;
610 cacheP[indexP(cc, 2, 2, 5)] = 0.;
611 cacheP[indexP(cc, 1, 1, 6)] = 3. * z * sqrt1minus4z;
612 cacheP[indexP(cc, 2, 1, 6)] = 0.;
613 cacheP[indexP(cc, 1, 2, 6)] = 3. * z * sqrt1minus4z;
614 cacheP[indexP(cc, 2, 2, 6)] = 0.;
615 cacheP[indexP(cc, 1, 2, 8)] = -1. / 6. * sqrt1minus4z * (1. + 2. * z);
616 cacheP[indexP(cc, 2, 2, 8)] = 4. / 3. * sqrt1minus4z * (1. + 2. * z);
617
618 cacheP[indexP(uu, 1, 1, 3)] = 3.;
619 cacheP[indexP(uu, 2, 1, 3)] = 3.;
620 cacheP[indexP(uu, 1, 2, 3)] = 1.;
621 cacheP[indexP(uu, 2, 2, 3)] = 1.;
622 cacheP[indexP(uu, 1, 1, 4)] = 1.;
623 cacheP[indexP(uu, 2, 1, 4)] = 1.;
624 cacheP[indexP(uu, 1, 2, 4)] = 0.5;
625 cacheP[indexP(uu, 2, 2, 4)] = -1.;
626 cacheP[indexP(uu, 1, 1, 5)] = 0.;
627 cacheP[indexP(uu, 2, 1, 5)] = 0.;
628 cacheP[indexP(uu, 1, 2, 5)] = 0.;
629 cacheP[indexP(uu, 2, 2, 5)] = 0.;
630 cacheP[indexP(uu, 1, 1, 6)] = 0.;
631 cacheP[indexP(uu, 2, 1, 6)] = 0.;
632 cacheP[indexP(uu, 1, 2, 6)] = 0.;
633 cacheP[indexP(uu, 2, 2, 6)] = 0.;
634 cacheP[indexP(uu, 1, 2, 8)] = -1. / 6.;
635 cacheP[indexP(uu, 2, 2, 8)] = 4. / 3.;
636 return;
637}
double cacheP[84]
Definition: AmpDB2.h:331
int indexP(quarks qq, int k, int i, int j)
Definition: AmpDB2.cpp:769

◆ computeWilsonCoeffsBuras()

void AmpDB2::computeWilsonCoeffsBuras ( )
private

Definition at line 467 of file AmpDB2.cpp.

468{
469 // NNLO DB=1 Wilson coefficients
470 gslpp::vector<gslpp::complex> **WilsonCoeffsBuras = mySM.getFlavour().ComputeCoeffsgamma_Buras(mu_1);
471 for (int i = 0; i < 8; i++)
472 {
473 if (i == 6)
474 i = 7;
475 C_Buras_LO[i] = (*(WilsonCoeffsBuras[LO]))(i);
476 C_Buras_NLO[i] = (*(WilsonCoeffsBuras[NLO]))(i);
477 C_Buras_NNLO[i] = (*(WilsonCoeffsBuras[NNLO]))(i);
478 }
479
480 // LO DB=1 Wilson coefficients for 1/mb corrections
481 gslpp::vector<gslpp::complex> **WilsonCoeffs_1overm = mySM.getFlavour().ComputeCoeffsgamma_Buras(mu_1_overm);
482 C1_LO_1overm = (*(WilsonCoeffs_1overm[LO]))(0);
483 C2_LO_1overm = (*(WilsonCoeffs_1overm[LO]))(1);
486 return;
487}
gslpp::complex C1_LO_1overm
Definition: AmpDB2.h:467
gslpp::complex C_Buras_NNLO[8]
Definition: AmpDB2.h:304
gslpp::complex C2_LO_1overm
Definition: AmpDB2.h:468
gslpp::vector< gslpp::complex > ** ComputeCoeffsgamma_Buras(double mu, bool noSM=false, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:184
const Flavour & getFlavour() const

◆ computeWilsonCoeffsMisiak()

void AmpDB2::computeWilsonCoeffsMisiak ( )
private

Definition at line 1173 of file AmpDB2.cpp.

1174{
1175 // NLO DB=1 Wilson coefficients C_i, i=1-6,8
1176 gslpp::vector<gslpp::complex> **WilsonCoeffsMisiak = mySM.getFlavour().ComputeCoeffsgamma(mu_1);
1177 for (int i = 0; i < 8; i++)
1178 {
1179 if (i == 6)
1180 i = 7;
1181 C_Misiak_LO[i] = (*(WilsonCoeffsMisiak[LO]))(i);
1182 C_Misiak_NLO[i] = (*(WilsonCoeffsMisiak[NLO]))(i);
1183 C_Misiak_NNLO[i] = (*(WilsonCoeffsMisiak[NNLO]))(i);
1184 }
1185}
gslpp::complex C_Misiak_NLO[8]
Definition: AmpDB2.h:300
gslpp::complex C_Misiak_LO[8]
Definition: AmpDB2.h:299
gslpp::vector< gslpp::complex > ** ComputeCoeffsgamma(double mu, bool noSM=false, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:179

◆ D()

gslpp::complex AmpDB2::D ( quarks  qq,
int  k 
)
private

Definition at line 926 of file AmpDB2.cpp.

927{
928 return cacheD[indexD(qq, k)];
929}

◆ delta_1overm()

gslpp::complex AmpDB2::delta_1overm ( quark  q)
private

Value of 1/mb corrections of \(\Gamma_{21}\) (hep-ph/0612167)

Parameters
[in]quarkindex of the neutral B mesons @detail requires compute_matrixelements() and Wilson coefficients in Buras basis

Definition at line 985 of file AmpDB2.cpp.

986{
987 // hep-ph/0612167 equation (10)
988 gslpp::complex lambda_c, lambda_u;
989 switch (q)
990 {
991 case d:
992 lambda_c = lambda_c_d;
993 lambda_u = lambda_u_d;
994 break;
995 case s:
996 lambda_c = lambda_c_s;
997 lambda_u = lambda_u_s;
998 break;
999 default:
1000 throw std::runtime_error("AmpDB2::delta_1overm(quark q): invalid quark index: ");
1001 }
1003 return -(lambda_c * lambda_c * deltas_1overm(cc, q) + 2. * lambda_c * lambda_u * deltas_1overm(cu, q) + lambda_u * lambda_u * deltas_1overm(uu, q)).conjugate();
1004}
gslpp::complex deltas_1overm(quarks qq, quark q)
Definition: AmpDB2.cpp:974
void compute_deltas_1overm(quark q)
Definition: AmpDB2.cpp:1006

◆ delta_1overm_tradBasis()

gslpp::complex AmpDB2::delta_1overm_tradBasis ( quark  q)
private

Value of 1/mb corrections of \(\Gamma_{21}\) (hep-ph/0308029v2)

Parameters
[in]quarkindex of the neutral B mesons @detail requires computeCKMandMasses() before use

Definition at line 945 of file AmpDB2.cpp.

946{
947 // hep-ph/0308029: equation 18
949 switch (q)
950 {
951 case d:
953 case s:
955 default:
956 throw std::runtime_error("AmpDB2::delta_1overm_tradBasis(quark q): invalid quark index: ");
957 }
958}
gslpp::complex deltas_1overm_tradBasis(quarks qq, quark q)
Definition: AmpDB2.cpp:969
void compute_deltas_1overm_tradBasis(quark q)
Definition: AmpDB2.cpp:960

◆ deltas_1overm()

gslpp::complex AmpDB2::deltas_1overm ( quarks  qq,
quark  q 
)
private

Definition at line 974 of file AmpDB2.cpp.

975{
976 return cache_deltas_1overm[index_deltas(qq, q)];
977}

◆ deltas_1overm_tradBasis()

gslpp::complex AmpDB2::deltas_1overm_tradBasis ( quarks  qq,
quark  q 
)
private

Definition at line 969 of file AmpDB2.cpp.

970{
972}

◆ F()

double AmpDB2::F ( quarks  qq,
int  k,
int  i,
int  j 
)
private

Definition at line 753 of file AmpDB2.cpp.

754{
755 return F0(qq, k, i, j) + as_4pi_mu1 * F1(qq, k, i, j);
756}
double F1(quarks qq, int k, int i, int j)
Definition: AmpDB2.cpp:748

◆ F0()

double AmpDB2::F0 ( quarks  qq,
int  k,
int  i,
int  j 
)
private

Definition at line 743 of file AmpDB2.cpp.

744{
745 return cacheF0[indexF(qq, k, i, j)];
746}

◆ F1()

double AmpDB2::F1 ( quarks  qq,
int  k,
int  i,
int  j 
)
private

Definition at line 748 of file AmpDB2.cpp.

749{
750 return cacheF1[indexF(qq, k, i, j)];
751}

◆ g()

gslpp::complex AmpDB2::g ( quarks  qq,
int  i 
)
private

Definition at line 1063 of file AmpDB2.cpp.

1064{
1065 return cacheg[indexg(qq, i)];
1066}

◆ Gamma21overM21()

gslpp::complex AmpDB2::Gamma21overM21 ( orders  order,
mass_schemes  mass_scheme,
int  BMeson 
)
protected

A method to compute \(\frac{\Gamma_{21},M_{21}}^{bq}\) @detail source: Marvin Gerlach (2205.07907 and thesis) with 1/mb corrections from Lenz (hep-ph/0612167)

Parameters
[in]orderthe QCD order of the computation
[in]mass_schemethe scheme for the bottom quark mass
[in]BMesonthe B meson index (0 for Bd and 1 for Bs)
Returns
\(\frac{\Gamma_{21},M_{21}}^{bq}\)

Definition at line 1082 of file AmpDB2.cpp.

1083{
1084 computeCKMandMasses(NNLO, mass_scheme);
1085
1086 // calculate M_21_q / <O_1>
1087 gslpp::complex M21overme0;
1088 double MBq;
1089 quark q;
1090 switch (BMeson)
1091 {
1092 case 0:
1093 q = d;
1094 // calculate DB=2 matrix elements for usage of "me" and "delta_1overm_(quark)"
1096 M21overme0 = M21_Bd(FULLNLO) * HCUT / me(0);
1097 MBq = MB;
1098 break;
1099 case 1:
1100 q = s;
1101 // calculate DB=2 matrix elements for usage of "me" and "delta_1overm_(quark)"
1103 M21overme0 = M21_Bs(FULLNLO) * HCUT / me(0);
1104 MBq = MB_s;
1105 break;
1106 default:
1107 throw std::runtime_error("AmpDB2::Gamma21overM21(orders order, int BMeson): invalid B meson index: ");
1108 }
1109
1110 // calculate DB=1 Wilson coefficients
1112
1113 // calculate DB=2 coefficients in pole scheme for usage of "c_H()"
1114 compute_pp_s();
1115
1116 // switch to another scheme if needed
1117 if (mass_scheme == MSbar)
1118 {
1120 }
1121 else if (mass_scheme == PS)
1122 {
1123 poletoPS_pp_s();
1124 }
1125 else if (mass_scheme == pole or mass_scheme == only1overmb)
1126 {
1127 }
1128 else if (mass_scheme == MSbar_partialNNLO)
1129 {
1132 }
1133 else if (mass_scheme == PS_partialNNLO)
1134 {
1136 poletoPS_pp_s();
1137 }
1138 else if (mass_scheme == MSbar_partialN3LO)
1139 {
1141 }
1142 else if (mass_scheme == PS_partialN3LO)
1143 {
1145 }
1146 else
1147 {
1148 std::cerr << "WARNING: mass_scheme might no be implemented.\n";
1149 }
1150
1151 /* partial contribution without 1overm
1152 gslpp::vector<gslpp::complex> Gamma21overM21_partial = Mb2_prefactor * (c_H_partial(q, 0) + c_H_partial(q, 1) * me(1)/me(0) + c_H_partial(q, 2) * me(2)/me(0)).conjugate()
1153 * Gf2 / (24 * M_PI * MBq) / M21overme0; */
1154
1155 // Gerlach thesis eq. 6.1 divided by M_21
1156 gslpp::complex Gamma21overM21 = 0.;
1157 if (flag_RI)
1158 {
1159 Gamma21overM21 = Mb2_prefactor * (c_H(q, LO) * meoverme0).conjugate();
1160 // compute_matrixelements(q, LO); //minimal difference
1161 Gamma21overM21 += Mb2_prefactor * (c_H(q, NLO) * meoverme0).conjugate();
1162 }
1163 else
1164 {
1165 Gamma21overM21 = Mb2_prefactor * (c_H(q, order) * meoverme0).conjugate();
1166 }
1167 computeWilsonCoeffsBuras(); /*calculate DB=1 Wilson coefficients in the basis for "delta_1overm" */
1169 Gamma21overM21 *= Gf2 / (24. * M_PI * MBq) / M21overme0;
1170 return Gamma21overM21;
1171}
gslpp::vector< gslpp::complex > c_H(quark q, orders order)
Definition: AmpDB2.cpp:1188
void computeCKMandMasses(orders order=NNLO, mass_schemes mass_scheme=MSbar)
A method to compute CKM elements, quark masses and alpha_s.
Definition: AmpDB2.cpp:317
void poletoPS_pp_s()
Definition: AmpDB2.cpp:2372
gslpp::complex M21_Bd(orders order)
A method to compute .
Definition: AmpDB2.cpp:163
void compute_pp_s()
Definition: AmpDB2.cpp:1457
void compute_partialNNLO()
Definition: AmpDB2.cpp:2562
gslpp::complex delta_1overm(quark q)
Value of 1/mb corrections of (hep-ph/0612167)
Definition: AmpDB2.cpp:985
gslpp::complex M21_Bs(orders order)
A method to compute .
Definition: AmpDB2.cpp:209
void poletoMSbar_pp_s_partialN3LO()
Definition: AmpDB2.cpp:2426
void poletoPS_pp_s_partialN3LO()
Definition: AmpDB2.cpp:2502
quark
Definition: AmpDB2.h:64
gslpp::complex Gamma21overM21(orders order, mass_schemes mass_scheme, int BMeson)
A method to compute @detail source: Marvin Gerlach (2205.07907 and thesis) with 1/mb corrections fro...
Definition: AmpDB2.cpp:1082
void computeWilsonCoeffsBuras()
Definition: AmpDB2.cpp:467
void compute_matrixelements(quark q, orders order)
A method to compute all DB=2 Wilson coefficients (me, me_R, me_Rtilde)
Definition: AmpDB2.cpp:774
void computeWilsonCoeffsMisiak()
Definition: AmpDB2.cpp:1173
void poletoMSbar_pp_s()
Definition: AmpDB2.cpp:2324

◆ Gamma21overM21_tradBasis()

gslpp::complex AmpDB2::Gamma21overM21_tradBasis ( orders  order,
quark  q 
)
protected

A method to compute \(\frac{\Gamma_{21},M_{21}}^{bq}\) in the traditional basis @detail source: Ciuchini (hep-ph/0308029v2)

Parameters
[in]orderthe QCD order of the computation
[in]BMesonthe B meson index (0 for Bd and 1 for Bs)
Returns
\(\frac{\Gamma_{21},M_{21}}^{bq}\)

Definition at line 256 of file AmpDB2.cpp.

257{
259 // calculate DB=2 matrix elements for usage of "me" and "delta_1overm_tradBasis(quark)"
261
262 // calculate M_21_q / <O_1>
263 gslpp::complex M21overme0;
264 double MBq;
265 switch (q)
266 {
267 case d:
268 M21overme0 = M21_Bd(FULLNLO) * HCUT / me(0);
269 MBq = MB;
270 break;
271 case s:
272 M21overme0 = M21_Bs(FULLNLO) * HCUT / me(0);
273 MBq = MB_s;
274 break;
275 default:
276 throw std::runtime_error("AmpDB2::Gamma21overM21_tradBasis(orders order, quark q): invalid quark index: ");
277 }
278
279 // calculate DB=1 Wilson coefficients
281
282 // calculate DB=2 coefficients for usage of "c(quark)"
283 computeF0();
284 computeF1();
285 computeP();
286
287 // staying in the old basis: hep-ph/0308029v2: eq. 16 divided by M_21
288 /*
289 computeD(order);
290 gslpp::complex Gamma21overM21 = -Gf2 / (24 * M_PI * MBq) / M21overme0 *
291 (Mb2_prefactor * (c(q)(0) + c(q)(1) * me(1)/me(0) + c(q)(2) * me(2)/me(0)) +
292 Mb2_prefactor_1overm * delta_1overm_tradBasis(q)/me(0));
293 */
294
295 // switching to the new basis
296 gslpp::complex Gamma21overM21;
297 switch (order)
298 {
299 case FULLNLO:
302 computeD(LO);
304 Gamma21overM21 *= -Gf2 / (24. * M_PI * MBq) / M21overme0;
305 break;
306 case LO:
307 computeD(LO);
308 Gamma21overM21 = -Gf2 / (24. * M_PI * MBq) / M21overme0 *
310 break;
311 default:
312 throw std::runtime_error("AmpDB2::Gamma21overM21_tradBasis(orders order, quark q): order not implemented");
313 }
314 return Gamma21overM21;
315}
void computeF0()
Definition: AmpDB2.cpp:490
void computeD(orders order)
Definition: AmpDB2.cpp:640
void computeP()
Definition: AmpDB2.cpp:588
void computeF1()
Definition: AmpDB2.cpp:523
gslpp::vector< gslpp::complex > c(quark q, orders order)
Values of DB=2 Wilson coefficients from (hep-ph/0308029v2) transformed to the new basis.
Definition: AmpDB2.cpp:875

◆ getGamma21overM21()

gslpp::complex AmpDB2::getGamma21overM21 ( orders  order,
mass_schemes  mass_scheme = MSbar 
)
inline

The value of \(\frac{\Gamma_{21},M_{21}}\) from Gerlach (2205.07907 and thesis)

Parameters
[in]orderthe QCD order of the computation
[in]mass_schemethe scheme for the bottom quark mass
Returns
\(\frac{\Gamma_{21},M_{21}}\)

Definition at line 91 of file AmpDB2.h.

92 {
93 return Gamma21overM21(order, mass_scheme, BMeson);
94 }

◆ getGamma21overM21_tradBasis()

gslpp::complex AmpDB2::getGamma21overM21_tradBasis ( orders  order)
inline

The value of \(\frac{\Gamma_{21},M_{21}}\) in the traditional basis.

Parameters
[in]orderthe QCD order of the computation
[in]mass_schemethe scheme for the bottom quark mass
Returns
\(\frac{\Gamma_{21},M_{21}}\)

Definition at line 73 of file AmpDB2.h.

74 {
75 if (BMeson == 0)
76 {
77 return Gamma21overM21_tradBasis(order, d);
78 }
79 else
80 {
81 return Gamma21overM21_tradBasis(order, s);
82 }
83 }
gslpp::complex Gamma21overM21_tradBasis(orders order, quark q)
A method to compute in the traditional basis @detail source: Ciuchini (hep-ph/0308029v2)
Definition: AmpDB2.cpp:256

◆ getM21()

gslpp::complex AmpDB2::getM21 ( orders  order)
inline

The value of \(M_{21}\) for \(B_{d,s}\) mesons.

Parameters
[in]orderthe QCD order of the computation
Returns
\(M_{21}\)

Definition at line 51 of file AmpDB2.h.

52 {
53 if (BMeson == 0)
54 {
55 return M21_Bd(order);
56 }
57 else
58 {
59 return M21_Bs(order);
60 }
61 }

◆ getPB()

gslpp::complex AmpDB2::getPB ( )
inline

Definition at line 96 of file AmpDB2.h.

97 {
98 if (BMeson == 0)
99 {
100 return PBd();
101 }
102 else
103 {
104 return PBs();
105 }
106 }
gslpp::complex PBd()
Definition: AmpDB2.cpp:2589
gslpp::complex PBs()
Definition: AmpDB2.cpp:2614

◆ getRB()

gslpp::complex AmpDB2::getRB ( orders  order)
inline

Definition at line 107 of file AmpDB2.h.

108 {
109 if (BMeson == 0)
110 {
111 return RBd(order);
112 }
113 else
114 {
115 return RBs(order);
116 }
117 }
gslpp::complex RBs(orders order)
A method to compute the ratio of the absolute value of the $B_s$ mixing amplitude over the Standard M...
Definition: AmpDB2.cpp:57
gslpp::complex RBd(orders order)
A method to compute the ratio of the absolute value of the $B_d$ mixing amplitude over the Standard M...
Definition: AmpDB2.cpp:110

◆ gtilde()

gslpp::complex AmpDB2::gtilde ( quarks  qq,
int  i 
)
private

Definition at line 1068 of file AmpDB2.cpp.

1069{
1070 return cachegtilde[indexg(qq, i)];
1071}

◆ H()

gslpp::complex AmpDB2::H ( quarks  qq,
orders  order 
)
private

Definition at line 1232 of file AmpDB2.cpp.

1233{
1234 if (order == LO)
1235 return H_partial(qq, 1, 8, 1, 8, 0);
1236 if (order == NLO)
1237 return H_partial(qq, 1, 8, 1, 8, 1);
1238 if (order == NNLO)
1239 return H_partial(qq, 1, 8, 1, 8, 2);
1240 if (order == FULLNLO)
1241 return H_partial(qq, 1, 8, 1, 8, 0) + H_partial(qq, 1, 8, 1, 8, 1);
1242 if (order == FULLNNLO)
1243 return H_partial(qq, 1, 8, 1, 8, 0) + H_partial(qq, 1, 8, 1, 8, 1) + H_partial(qq, 1, 8, 1, 8, 2);
1244 if (order == FULLNNNLO)
1245 return H_partial(qq, 1, 8, 1, 8, 0) + H_partial(qq, 1, 8, 1, 8, 1) + H_partial(qq, 1, 8, 1, 8, 2) + H_partial(qq, 1, 8, 1, 8, 3);
1246 throw std::runtime_error("AmpDB2::H(quarks qq, orders order) order not implemented");
1247}
gslpp::complex H_partial(quarks qq, int i_start, int i_end, int j_start, int j_end, int n)
Definition: AmpDB2.cpp:1331

◆ H_allpartial()

gslpp::vector< gslpp::complex > AmpDB2::H_allpartial ( quarks  qq)
private

Definition at line 1295 of file AmpDB2.cpp.

1296{
1297 gslpp::vector<gslpp::complex> result(12, 0.);
1298 result.assign(0, H_partial(qq, 1, 2, 1, 2, 0));
1299 result.assign(1, H_partial(qq, 1, 2, 1, 2, 1));
1300 result.assign(2, H_partial(qq, 1, 2, 1, 2, 2));
1301 result.assign(3, H_partial(qq, 1, 2, 3, 6, 0));
1302 result.assign(4, H_partial(qq, 1, 2, 3, 6, 1));
1303 result.assign(5, H_partial(qq, 3, 6, 3, 6, 0));
1304 result.assign(6, H_partial(qq, 3, 6, 3, 6, 1));
1305 result.assign(7, H_partial(qq, 1, 2, 8, 8, 1));
1306 result.assign(8, H_partial(qq, 1, 2, 8, 8, 2));
1307 result.assign(9, H_partial(qq, 3, 6, 8, 8, 1));
1308 result.assign(10, H_partial(qq, 3, 6, 8, 8, 2));
1309 result.assign(11, H_partial(qq, 8, 8, 8, 8, 2));
1310 return result;
1311}

◆ H_partial()

gslpp::complex AmpDB2::H_partial ( quarks  qq,
int  i_start,
int  i_end,
int  j_start,
int  j_end,
int  n 
)
private

Definition at line 1331 of file AmpDB2.cpp.

1332{
1333 gslpp::complex result = 0.;
1334 for (int i = i_start; i <= i_end; i++)
1335 {
1336 if (i == 7)
1337 i++;
1338 for (int j = j_start; j <= j_end; j++)
1339 {
1340 if (j == 7)
1341 j++;
1342 if (j < i)
1343 continue;
1344 if (n == 0)
1345 {
1346 result += C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p(qq, i, j, 0);
1347 }
1348 else if (n == 1)
1349 {
1350 if (j == 1 or j == 2 or j == 8)
1351 {
1352 result += as_4pi_mu1 * C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p(qq, i, j, 1) + (C_Misiak_NLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NLO[j - 1]) * p(qq, i, j, 0);
1353 }
1354 else if (3 <= j and j <= 6)
1355 {
1356 result += as_4pi_mu1 * C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p(qq, i, j, 1) + (C_Misiak_NLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NLO[j - 1]) * p(qq, i, j, 0, flag_LOz);
1357 }
1358 }
1359 else if (n == 2)
1360 {
1361 if (j == 1 or j == 2 or j == 8)
1362 {
1363 result += as_4pi_mu1 * as_4pi_mu1 * C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p(qq, i, j, 2) + as_4pi_mu1 * (C_Misiak_NLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NLO[j - 1]) * p(qq, i, j, 1, flag_LOz) + (C_Misiak_NNLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_NLO[i - 1] * C_Misiak_NLO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NNLO[j - 1]) * p(qq, i, j, 0, flag_LOz);
1364 }
1365 }
1366 else if (n == 3)
1367 {
1368 result += as_4pi_mu1 * as_4pi_mu1 * as_4pi_mu1 * C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p(qq, i, j, 3) + as_4pi_mu1 * as_4pi_mu1 * (C_Misiak_NLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NLO[j - 1]) * p(qq, i, j, 2) + as_4pi_mu1 * (C_Misiak_NNLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_NLO[i - 1] * C_Misiak_NLO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NNLO[j - 1]) * p(qq, i, j, 1) + (C_Misiak_NNLO[i - 1] * C_Misiak_NLO[j - 1] + C_Misiak_NLO[i - 1] * C_Misiak_NNLO[j - 1]) * p(qq, i, j, 0);
1369 }
1370 else
1371 {
1372 throw(std::runtime_error("AmpDB2::H_partial order not implemented"));
1373 }
1374 }
1375 }
1376 return result;
1377}
double p(quarks qq, int i, int j, int n, bool flag_LOz=false)
Definition: AmpDB2.cpp:1427
bool flag_LOz
Definition: AmpDB2.h:403

◆ H_s()

gslpp::complex AmpDB2::H_s ( quarks  qq,
orders  order 
)
private

Definition at line 1248 of file AmpDB2.cpp.

1249{
1250 if (order == LO)
1251 return H_s_partial(qq, 1, 8, 1, 8, 0);
1252 if (order == NLO)
1253 return H_s_partial(qq, 1, 8, 1, 8, 1);
1254 if (order == NNLO)
1255 return H_s_partial(qq, 1, 8, 1, 8, 2);
1256 if (order == FULLNLO)
1257 return H_s_partial(qq, 1, 8, 1, 8, 0) + H_s_partial(qq, 1, 8, 1, 8, 1);
1258 if (order == FULLNNLO)
1259 return H_s_partial(qq, 1, 8, 1, 8, 0) + H_s_partial(qq, 1, 8, 1, 8, 1) + H_s_partial(qq, 1, 8, 1, 8, 2);
1260 if (order == FULLNNNLO)
1261 return H_s_partial(qq, 1, 8, 1, 8, 0) + H_s_partial(qq, 1, 8, 1, 8, 1) + H_s_partial(qq, 1, 8, 1, 8, 2) + H_s_partial(qq, 1, 8, 1, 8, 3);
1262 throw std::runtime_error("AmpDB2::H_s(quarks qq, orders order) order not implemented");
1263}
gslpp::complex H_s_partial(quarks qq, int i_start, int i_end, int j_start, int j_end, int n)
Definition: AmpDB2.cpp:1379

◆ H_s_allpartial()

gslpp::vector< gslpp::complex > AmpDB2::H_s_allpartial ( quarks  qq)
private

Definition at line 1313 of file AmpDB2.cpp.

1314{
1315 gslpp::vector<gslpp::complex> result(12, 0.);
1316 result.assign(0, H_s_partial(qq, 1, 2, 1, 2, 0));
1317 result.assign(1, H_s_partial(qq, 1, 2, 1, 2, 1));
1318 result.assign(2, H_s_partial(qq, 1, 2, 1, 2, 2));
1319 result.assign(3, H_s_partial(qq, 1, 2, 3, 6, 0));
1320 result.assign(4, H_s_partial(qq, 1, 2, 3, 6, 1));
1321 result.assign(5, H_s_partial(qq, 3, 6, 3, 6, 0));
1322 result.assign(6, H_s_partial(qq, 3, 6, 3, 6, 1));
1323 result.assign(7, H_s_partial(qq, 1, 2, 8, 8, 1));
1324 result.assign(8, H_s_partial(qq, 1, 2, 8, 8, 2));
1325 result.assign(9, H_s_partial(qq, 3, 6, 8, 8, 1));
1326 result.assign(10, H_s_partial(qq, 3, 6, 8, 8, 2));
1327 result.assign(11, H_s_partial(qq, 8, 8, 8, 8, 2));
1328 return result;
1329}

◆ H_s_partial()

gslpp::complex AmpDB2::H_s_partial ( quarks  qq,
int  i_start,
int  i_end,
int  j_start,
int  j_end,
int  n 
)
private

Definition at line 1379 of file AmpDB2.cpp.

1380{
1381 gslpp::complex result = 0.;
1382 for (int i = i_start; i <= i_end; i++)
1383 {
1384 if (i == 7)
1385 i++;
1386 for (int j = j_start; j <= j_end; j++)
1387 {
1388 if (j == 7)
1389 j++;
1390 if (j < i)
1391 continue;
1392 if (n == 0)
1393 {
1394 result += C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p_s(qq, i, j, 0);
1395 }
1396 else if (n == 1)
1397 {
1398 if (j == 1 or j == 2 or j == 8)
1399 {
1400 result += as_4pi_mu1 * C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p_s(qq, i, j, 1) + (C_Misiak_NLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NLO[j - 1]) * p_s(qq, i, j, 0);
1401 }
1402 else if (3 <= j and j <= 6)
1403 {
1404 result += as_4pi_mu1 * C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p_s(qq, i, j, 1) + (C_Misiak_NLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NLO[j - 1]) * p_s(qq, i, j, 0, flag_LOz);
1405 }
1406 }
1407 else if (n == 2)
1408 {
1409 if (j == 1 or j == 2 or j == 8)
1410 {
1411 result += as_4pi_mu1 * as_4pi_mu1 * C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p_s(qq, i, j, 2) + as_4pi_mu1 * (C_Misiak_NLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NLO[j - 1]) * p_s(qq, i, j, 1, flag_LOz) + (C_Misiak_NNLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_NLO[i - 1] * C_Misiak_NLO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NNLO[j - 1]) * p_s(qq, i, j, 0, flag_LOz);
1412 }
1413 }
1414 else if (n == 3)
1415 {
1416 result += as_4pi_mu1 * as_4pi_mu1 * as_4pi_mu1 * C_Misiak_LO[i - 1] * C_Misiak_LO[j - 1] * p_s(qq, i, j, 3) + as_4pi_mu1 * as_4pi_mu1 * (C_Misiak_NLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NLO[j - 1]) * p_s(qq, i, j, 2) + as_4pi_mu1 * (C_Misiak_NNLO[i - 1] * C_Misiak_LO[j - 1] + C_Misiak_NLO[i - 1] * C_Misiak_NLO[j - 1] + C_Misiak_LO[i - 1] * C_Misiak_NNLO[j - 1]) * p_s(qq, i, j, 1) + (C_Misiak_NNLO[i - 1] * C_Misiak_NLO[j - 1] + C_Misiak_NLO[i - 1] * C_Misiak_NNLO[j - 1]) * p_s(qq, i, j, 0);
1417 }
1418 else
1419 {
1420 throw(std::runtime_error("AmpDB2::H_s_partial order not implemented"));
1421 }
1422 }
1423 }
1424 return result;
1425}
double p_s(quarks qq, int i, int j, int n, bool flag_LOz=false)
Definition: AmpDB2.cpp:1439

◆ index_deltas()

int AmpDB2::index_deltas ( quarks  qq,
quark  q 
)
private

Definition at line 980 of file AmpDB2.cpp.

981{
982 return qq * 2 + q;
983}

◆ index_p()

int AmpDB2::index_p ( quarks  qq,
int  i,
int  j,
int  n 
)
private

Definition at line 1452 of file AmpDB2.cpp.

1453{
1454 return n * 192 + qq * 64 + (i - 1) * 8 + (j - 1);
1455}

◆ indexD()

int AmpDB2::indexD ( quarks  qq,
int  k 
)
private

Definition at line 932 of file AmpDB2.cpp.

933{
934 if (k != 1 and k != 2)
935 {
936 throw std::runtime_error("AmpDB2::indexD(quarks qq, int k): invalid k");
937 }
938 return qq * 2 + (k - 1);
939}

◆ indexF()

int AmpDB2::indexF ( quarks  qq,
int  k,
int  i,
int  j 
)
private

Definition at line 764 of file AmpDB2.cpp.

765{
766 return qq * 8 + (k - 1) * 4 + (i - 1) * 2 + (j - 1);
767}

◆ indexg()

int AmpDB2::indexg ( quarks  qq,
int  i 
)
private

Definition at line 1073 of file AmpDB2.cpp.

1074{
1075 return qq * 4 + i;
1076}

◆ indexP()

int AmpDB2::indexP ( quarks  qq,
int  k,
int  i,
int  j 
)
private

Definition at line 769 of file AmpDB2.cpp.

770{
771 return qq * 28 + (k - 1) * 14 + (i - 1) * 7 + (j - 2);
772}

◆ M21_Bd()

gslpp::complex AmpDB2::M21_Bd ( orders  order)
protected

A method to compute \(M_{21}^{bd}\).

Parameters
[in]orderthe QCD order of the computation
Returns
\(M_{21}^{bd}\)

Definition at line 163 of file AmpDB2.cpp.

164{
166 throw std::runtime_error("DmBd::computeThValue(): requires cofficient of order not computed");
167
168 gslpp::vector<gslpp::complex> **allcoeff = mySM.getFlavour().ComputeCoeffBd(
169 mySM.getBBd().getMu(),
170 mySM.getBBd().getScheme());
171
172 gslpp::vector<double> me(mySM.getBBd().getBpars());
173 double MBd = mySM.getMesons(QCD::B_D).getMass();
174 double Mb = mySM.Mrun(mySM.getBBd().getMu(),
177 double Md = mySM.Mrun(mySM.getBBd().getMu(),
180 double KBd = MBd / (Mb + Md) * MBd / (Mb + Md);
181 double Fb = mySM.getMesons(QCD::B_D).getDecayconst();
182 me(0) *= 1. / 3. * MBd * Fb * Fb;
183 me(1) *= -5. / 24. * KBd * MBd * Fb * Fb;
184 me(2) *= 1. / 24. * KBd * MBd * Fb * Fb;
185 me(3) *= 1. / 4. * KBd * MBd * Fb * Fb;
186 me(4) *= 1. / 12. * KBd * MBd * Fb * Fb;
187
188#if SUSYFIT_DEBUG & 1
189 std::cout << "Bd: me(0) = " << me(0) << std::endl;
190#endif
191#if SUSYFIT_DEBUG & 2
192 std::cout << "coefficient Bd: " << (*(allcoeff[LO]) + *(allcoeff[NLO]))(0) << std::endl;
193 std::cout << "M: " << me << std::endl;
194 std::cout << "mu : " << mySM.getBBd().getMu() << ", mut: " << mySM.getMut() << ", scheme: " << mySM.getBBd().getScheme() << ", B par.: " << mySM.getBBd().getBpars()(0) << std::endl;
195 std::cout << "U (mut): " << (mySM.getFlavour().getHDF2().getUDF2().Df2Evol(mySM.getBBd().getMu(), mySM.getMut(), LO)(0, 0) + mySM.getFlavour().getHDF2().getUDF2().Df2Evol(mySM.getBBd().getMu(), mySM.getMut(), NLO)(0, 0)) << std::endl;
196#endif
197
198 switch (order)
199 {
200 case FULLNLO:
201 return ((*(allcoeff[LO]) + *(allcoeff[NLO])) * me / HCUT);
202 case LO:
203 return ((*(allcoeff[LO])) * me / HCUT);
204 default:
205 throw std::runtime_error("AmpDB2::AmpBd(): order not implemented");
206 }
207}
double Md
Definition: AmpDB2.h:267
schemes getScheme() const
A get method for the scheme of the bag parameters.
Definition: BParameter.h:222
gslpp::matrix< double > & Df2Evol(double mu, double M, orders order, schemes scheme=NDR)
Definition: EvolDF2.cpp:148
gslpp::vector< gslpp::complex > ** ComputeCoeffBd(double mu, schemes scheme=NDR, bool SM=false) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:101
HeffDF2 & getHDF2() const
The member that returns an object of the class HeffDF2.
Definition: Flavour.cpp:81
EvolDF2 & getUDF2() const
Definition: HeffDF2.h:120
WilsonCoefficient getCoeffBd() const
Definition: HeffDF2.h:100
const double getMut() const
A get method to access the threshold between six- and five-flavour theory in GeV.
Definition: QCD.h:573
orders getOrder() const
orders getHighest(orders order)
returns the highest order in QCD without the prefix FULL
Definition: OrderScheme.cpp:10

◆ M21_Bs()

gslpp::complex AmpDB2::M21_Bs ( orders  order)
protected

A method to compute \(M_{21}^{bs}\).

Parameters
[in]orderthe QCD order of the computation
Returns
\(M_{21}^{bs}\)

Definition at line 209 of file AmpDB2.cpp.

210{
212 throw std::runtime_error("DmBd::computeThValue(): requires cofficient of order not computed");
213
214 // Wilson coefficients in same mass scale and scheme as B parameters
215 gslpp::vector<gslpp::complex> **allcoeff = mySM.getFlavour().ComputeCoeffBs(
216 mySM.getBBs().getMu(),
217 mySM.getBBs().getScheme());
218
219 gslpp::vector<double> me(mySM.getBBs().getBpars());
220 double MBs = mySM.getMesons(QCD::B_S).getMass();
221 double Mb = mySM.Mrun(mySM.getBBs().getMu(),
224 double Ms = mySM.Mrun(mySM.getBBs().getMu(),
227 double KBs = MBs / (Mb + Ms) * MBs / (Mb + Ms);
228 double Fbs = mySM.getMesons(QCD::B_S).getDecayconst();
229
230 // matrix elements as in hep-ph/9604387v2 with KBs independent terms in 4 and 5
231 // differ by factor of 2 to arXiv:1602.03560v2 etc.
232 me(0) *= 1. / 3. * MBs * Fbs * Fbs;
233 me(1) *= -5. / 24. * KBs * MBs * Fbs * Fbs;
234 me(2) *= 1. / 24. * KBs * MBs * Fbs * Fbs;
235 me(3) *= 1. / 4. * KBs * MBs * Fbs * Fbs;
236 me(4) *= 1. / 12. * KBs * MBs * Fbs * Fbs;
237#if SUSYFIT_DEBUG & 1
238 std::cout << "Bs: me(0) = " << me(0) << std::endl;
239#endif
240
241 switch (order)
242 {
243 case FULLNLO:
244 return ((*(allcoeff[LO]) + *(allcoeff[NLO])) * me / HCUT);
245 case LO:
246 return ((*(allcoeff[LO])) * me / HCUT);
247 default:
248 throw std::runtime_error("AmpDB2::AmpBs(): order not implemented");
249 }
250}
double Ms
Definition: AmpDB2.h:268
gslpp::vector< gslpp::complex > ** ComputeCoeffBs(double mu, schemes scheme=NDR, bool SM=false) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:106
WilsonCoefficient getCoeffBs() const
Definition: HeffDF2.h:104

◆ p()

double AmpDB2::p ( quarks  qq,
int  i,
int  j,
int  n,
bool  flag_LOz = false 
)
private

Definition at line 1427 of file AmpDB2.cpp.

1428{
1429 if (n < 0 or n >= 768)
1430 throw(std::runtime_error("AmpDB2::p(quarks qq, int i, int j, int n, bool flag_LOz) out of index"));
1431 if (flag_LOz)
1432 {
1433 if (n >= 576)
1434 throw(std::runtime_error("AmpDB2::p(quarks qq, int i, int j, int n, bool flag_LOz) out of index"));
1435 return cache_p_LO[index_p(qq, i, j, n)];
1436 }
1437 return cache_p[index_p(qq, i, j, n)];
1438}

◆ P()

double AmpDB2::P ( quarks  qq,
int  k,
int  i,
int  j 
)
private

Definition at line 758 of file AmpDB2.cpp.

759{
760 return cacheP[indexP(qq, k, i, j)];
761}

◆ p_s()

double AmpDB2::p_s ( quarks  qq,
int  i,
int  j,
int  n,
bool  flag_LOz = false 
)
private

Definition at line 1439 of file AmpDB2.cpp.

1440{
1441 if (n < 0 or n >= 768)
1442 throw(std::runtime_error("AmpDB2::p_s(quarks qq, int i, int j, int n, bool flag_LOz) out of index"));
1443 if (flag_LOz)
1444 {
1445 if (n >= 576)
1446 throw(std::runtime_error("AmpDB2::p_s(quarks qq, int i, int j, int n, bool flag_LOz) out of index"));
1447 return cache_ps_LO[index_p(qq, i, j, n)];
1448 }
1449 return cache_ps[index_p(qq, i, j, n)];
1450}

◆ PBd()

gslpp::complex AmpDB2::PBd ( )
protected

Definition at line 2589 of file AmpDB2.cpp.

2590{
2592 double Mw = mySM.Mw();
2593 double kappa = -2. * M_PI * mbpole * mbpole /
2594 (3. * Mw * Mw * mySM.getFlavour().getHDF2().getUDF2().etabS0(mySM.getBBd().getMu()));
2595
2596 double n[13] = {0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.};
2597
2598 n[0] = 0.1797;
2599 n[1] = 0.1391;
2600 n[5] = 1.0116;
2601 n[6] = 0.0455;
2602 n[8] = -0.0714;
2603 n[10] = -0.3331;
2604
2605 double B1 = mySM.getBBd().getBpars()(0);
2606 double B2 = mySM.getBBd().getBpars()(1);
2607
2608 gslpp::complex PBd = -2. * kappa / mySM.getCBd() *
2609 (gslpp::complex(1, 2. * mySM.getPhiBd(), true) * (n[0] + (n[5] * B2 + n[10]) / B1) - gslpp::complex(1. / mySM.getCKM().computeRt(), mySM.getCKM().computeBeta() + 2. * mySM.getPhiBd(), true) * (n[1] + (n[6] * B2 + n[11]) / B1) + gslpp::complex(1. / mySM.getCKM().computeRt() / mySM.getCKM().computeRt(), 2. * (mySM.getCKM().computeBeta() + mySM.getPhiBd()), true) * (n[2] + (n[7] * B2 + n[12]) / B1));
2610
2611 return PBd;
2612}
const double computeBeta() const
The CKM angle .
Definition: CKM.cpp:120
const double computeRt() const
.
Definition: CKM.cpp:190
double etabS0(double mu) const
Buras et al, hep-ph/9512380.
Definition: EvolDF2.cpp:419
An observable class for the -boson mass.
Definition: Mw.h:22
virtual const double getCBd() const
The ratio of the absolute value of the $B_d$ mixing amplitude over the Standard Model value.
virtual const double getPhiBd() const
Half the relative phase of the $B_d$ mixing amplitude w.r.t. the Standard Model one.
virtual const double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .

◆ PBs()

gslpp::complex AmpDB2::PBs ( )
protected

Definition at line 2614 of file AmpDB2.cpp.

2615{
2617
2618 double Mw = mySM.Mw();
2619 double kappa = -2. * M_PI * mbpole * mbpole /
2620 (3. * Mw * Mw * mySM.getFlavour().getHDF2().getUDF2().etabS0(mySM.getBBs().getMu()));
2621
2622 double n[13] = {0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.};
2623
2624 n[0] = 0.1797;
2625 n[1] = 0.1391;
2626 n[5] = 1.0116;
2627 n[6] = 0.0455;
2628 n[8] = -0.0714;
2629 n[10] = -0.3331;
2630
2631 double B1 = mySM.getBBs().getBpars()(0);
2632 double B2 = mySM.getBBs().getBpars()(1);
2633
2634 gslpp::complex PBs = -2. * kappa / mySM.getCBs() *
2635 (gslpp::complex(1, 2. * mySM.getPhiBs(), true) * (n[0] + (n[5] * B2 + n[10]) / B1) - gslpp::complex(1. / mySM.getCKM().computeRts(), -mySM.getCKM().computeBetas() + 2. * mySM.getPhiBs(), true) * (n[1] + (n[6] * B2 + n[11]) / B1) + gslpp::complex(1. / mySM.getCKM().computeRts() / mySM.getCKM().computeRts(), 2. * (-mySM.getCKM().computeBetas() + mySM.getPhiBs()), true) * (n[2] + (n[7] * B2 + n[12]) / B1));
2636
2637 return PBs;
2638}
const double computeBetas() const
The CKM angle .
Definition: CKM.cpp:135
const double computeRts() const
.
Definition: CKM.cpp:194
virtual const double getPhiBs() const
Half the relative phase of the $B_s$ mixing amplitude w.r.t. the Standard Model one.
virtual const double getCBs() const
The ratio of the absolute value of the $B_s$ mixing amplitude over the Standard Model value.

◆ poletoMSbar_pp_s()

void AmpDB2::poletoMSbar_pp_s ( )
private

Definition at line 2324 of file AmpDB2.cpp.

2325{
2326 // arxiv:2106.05979 eq. (33)
2327 double log_mub_Mb = 2. * log(mu_b / Mb);
2328 PoletoMS_as1 = 4. / 3. + log_mub_Mb;
2329 PoletoMS_as2_z0 = (307. / 32. + M_PI2 / 3. + M_PI2 / 9. * log2 - 1. / 6. * zeta3 - (71. / 144. + M_PI2 / 18.) * nl + log_mub_Mb * (493. / 72. - nl * 13. / 36. + log_mub_Mb * (43. / 24. - nl / 12.)));
2330 PoletoMS_as2_z1 = 4. / 3. * M_PI2 / 8. * Mc / Mb - z;
2331 // a_s(mu_b) to a_s(mu_1)
2332 double beta0 = 23. / 3.;
2333 double log_mu1_mub = 2. * log(mu_1 / mu_b);
2334 double as_running1 = beta0 * log_mu1_mub;
2335 bool flag_LOz = true;
2336 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 1))
2337 {
2338 for (int i = 1; i <= 6; i++)
2339 {
2340 // not all terms used for n=2
2341 for (int j = i; j <= 8; j++)
2342 {
2343 if (j == 3)
2344 j = 8;
2345 if (i >= 3)
2346 j = 8;
2347 cache_p[index_p(qq, i, j, 2)] += 8. * PoletoMS_as1 * p(qq, i, j, 1, flag_LOz) + (32. * PoletoMS_as2_z0 + 16. * PoletoMS_as1 * PoletoMS_as1 + 8. * PoletoMS_as1 * as_running1) * p(qq, i, j, 0, flag_LOz) + 16. * 2. * PoletoMS_as2_z1 * p(uu, i, j, 0, flag_LOz);
2348 cache_ps[index_p(qq, i, j, 2)] += 8. * PoletoMS_as1 * p_s(qq, i, j, 1, flag_LOz) + (32. * PoletoMS_as2_z0 + 16. * PoletoMS_as1 * PoletoMS_as1 + 8. * PoletoMS_as1 * as_running1) * p_s(qq, i, j, 0, flag_LOz) + 16. * 2. * PoletoMS_as2_z1 * p_s(uu, i, j, 0, flag_LOz);
2349 cache_p_LO[index_p(qq, i, j, 2)] = cache_p[index_p(qq, i, j, 2)];
2350 cache_ps_LO[index_p(qq, i, j, 2)] = cache_ps[index_p(qq, i, j, 2)];
2351 }
2352 for (int j = i; j <= 8; j++)
2353 {
2354 cache_p_LO[index_p(qq, i, j, 1)] += 8. * PoletoMS_as1 * p(qq, i, j, 0, flag_LOz);
2355 cache_ps_LO[index_p(qq, i, j, 1)] += 8. * PoletoMS_as1 * p_s(qq, i, j, 0, flag_LOz);
2356 if (j == 1 or j == 2 or j == 8)
2357 {
2358 cache_p[index_p(qq, i, j, 1)] += 8. * PoletoMS_as1 * p(qq, i, j, 0);
2359 cache_ps[index_p(qq, i, j, 1)] += 8. * PoletoMS_as1 * p_s(qq, i, j, 0);
2360 }
2361 else if (3 <= j and j <= 6)
2362 {
2363 cache_p[index_p(qq, i, j, 1)] += 8. * PoletoMS_as1 * p(qq, i, j, 0, flag_LOz);
2364 cache_ps[index_p(qq, i, j, 1)] += 8. * PoletoMS_as1 * p_s(qq, i, j, 0, flag_LOz);
2365 }
2366 }
2367 }
2368 }
2369 return;
2370}
double PoletoMS_as1
Definition: AmpDB2.h:417
double PoletoMS_as2_z0
Definition: AmpDB2.h:420
double PoletoMS_as2_z1
Definition: AmpDB2.h:421

◆ poletoMSbar_pp_s_partialN3LO()

void AmpDB2::poletoMSbar_pp_s_partialN3LO ( )
private

Definition at line 2426 of file AmpDB2.cpp.

2427{
2428 // arxiv:2106.05979 eq. (33)
2429 double log_mub_Mb = 2. * log(mu_b / Mb);
2430 double log_mub_Mb_2 = log_mub_Mb * log_mub_Mb;
2431 double log_mub_Mb_3 = log_mub_Mb_2 * log_mub_Mb;
2432 double nl2 = nl * nl;
2433 double Dilogsqrtz = gslpp_special_functions::dilog(sqrtz);
2434 double Dilogminussqrtz = gslpp_special_functions::dilog(-sqrtz);
2435 double oneminussqrtz2 = (1. - sqrtz) * (1. - sqrtz);
2436 double log1minussqrtz = log(1. - sqrtz);
2437 double log1plussqrtz = log(1. + sqrtz);
2438 double sqrtz3 = sqrtz * sqrtz * sqrtz;
2439 double log_mub_Mc = 2. * log(mu_b / Mc);
2440 PoletoMS_as1 = 4. / 3. + log_mub_Mb;
2441 PoletoMS_as2 = (307. / 32. + M_PI2 / 3. + M_PI2 / 9. * log2 - 1. / 6. * zeta3 - (71. / 144. + M_PI2 / 18.) * nl + log_mub_Mb * (493. / 72. - nl * 13. / 36. + log_mub_Mb * (43. / 24. - nl / 12.))) + 4. / 3. * M_PI2 / 8. * sqrtz - z;
2442 PoletoMS_as3 = (8481925. / 93312. + (2. * Dilogminussqrtz) / 9. + (2. * Dilogsqrtz) / 9. - (55. * log2_4) / 162. + (652841. * M_PI2) / 38880. - (575. * log2 * M_PI2) / 162. - (22. * log2_2 * M_PI2) / 81. - (695. * M_PI4) / 7776. + (137. * nl) / 216. - (M_PI2 * nl) / 27. +
2443 (log_mub_Mb_3 * (1591. - 160. * nl + 4. * nl2)) / 432. + (log_mub_Mb_2 * (19315. - 2206. * nl + 52. * nl2)) / 864. - (220. * polylog4_12) / 27. + 22.968067156 * sqrtz + (2. * Dilogminussqrtz * sqrtz) / 9. - (2. * Dilogsqrtz * sqrtz) / 9. - 0.982666666 * nl * sqrtz +
2444 1.022111111 * sqrtz3 + (2. * Dilogminussqrtz * sqrtz3) / 9. - (2. * Dilogsqrtz * sqrtz3) / 9. + (M_PI2 * sqrtz3) / 9. + 4.014666667 * z - 0.300333333 * nl * z - (log_mub_Mc * sqrtz * (3. * log1minussqrtz * logz - 3. * log1plussqrtz * logz - 3. * M_PI2 + 24. * sqrtz + 6. * logz * sqrtz + 6. * log2z * sqrtz3 - 12. * log1minussqrtz * logz * sqrtz3 - 12. * log1plussqrtz * logz * sqrtz3 + 4. * M_PI2 * sqrtz3 + 9. * log1minussqrtz * logz * z - 9. * log1plussqrtz * logz * z - 9. * M_PI2 * z - 6. * Dilogminussqrtz * (1. + 4. * sqrtz3 + 3. * z) + Dilogsqrtz * (6. - 24. * sqrtz3 + 18. * z))) / 18. + 0.0493333333 * zeta2 + (2. * Dilogminussqrtz * zeta2) / 9. + (2. * Dilogsqrtz * zeta2) / 9. - (log2z * zeta2) / 18. - (M_PI2 * zeta2) / 27. +
2445 (log_mub_Mb * (12. * Dilogminussqrtz + 12. * Dilogsqrtz + 118.990000008 * sqrtz + 6. * Dilogminussqrtz * sqrtz - 6. * Dilogsqrtz * sqrtz + 3. * M_PI2 * sqrtz - 9.624000006 * nl * sqrtz + 13.037999994 * sqrtz3 - 6. * Dilogminussqrtz * sqrtz3 +
2446 6. * Dilogsqrtz * sqrtz3 - 3. * M_PI2 * sqrtz3 - 1.206 * nl * sqrtz3 - 38.372000004 * z + 3.96 * nl * z - 3. * logz * (-1. + z) * (log1minussqrtz * (2. - sqrtz + 2. * z) + log1plussqrtz * (2. + sqrtz + 2. * z)) - 12. * Dilogminussqrtz * zeta2 -
2447 12. * Dilogsqrtz * zeta2 + 3. * log2z * zeta2 + 2. * M_PI2 * zeta2)) /
2448 18. +
2449 (logz * (log1minussqrtz * oneminussqrtz2 * (1. + sqrtz + z) + 1. * (sqrtz * (-76.2645000015 + 4.9559999985 * nl - 13.544000001 * sqrtz + 0.1544999985 * z) +
2450 log1plussqrtz * (1. + sqrtz + sqrtz3 + zeta2)))) /
2451 9. +
2452 (nl * (-246643. + 288. * log2_4 + 36. * (-967. - 88. * log2 + 16. * log2_2) * M_PI2 + 732. * M_PI4 + 6912. * polylog4_12 - 78084. * zeta3)) / 23328. + (58. * zeta3) / 27. - (1439. * M_PI2 * zeta3) / 432. +
2453 (nl2 * (2353. + 936. * M_PI2 + 3024. * zeta3)) / 23328. + (log_mub_Mb * (177305. + 10656. * (3. + log2) * zeta2 + 4. * nl2 * (89. + 72. * zeta2) - 4824. * zeta3 - 2. * nl * (72. * (49. + 4. * log2) * zeta2 + 7. * (1447. + 144. * zeta3)))) / 2592. + (1975. * zeta5) / 216.) /
2454 M_PI3;
2455 // a_s(mu_b) to a_s(mu_1)
2456 double beta0 = 23. / 3.;
2457 double beta1 = 51. / 8. - 19. / 24. * 5.;
2458 double log_mu1_mub = 2. * log(mu_1 / mu_b);
2459 double as_running1 = beta0 * log_mu1_mub;
2460 double as_running2 = -beta0 * beta0 * log_mu1_mub * log_mu1_mub + beta1 * log_mu1_mub;
2461
2462 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 1))
2463 {
2464 for (int i = 1; i <= 8; i++)
2465 {
2466 if (i == 7)
2467 i++;
2468 for (int j = i; j <= 8; j++)
2469 {
2470 if (j == 7)
2471 j++;
2472 if (j < i)
2473 continue;
2474 cache_p[index_p(qq, i, j, 3)] = 8. * PoletoMS_as1 * p(qq, i, j, 2) + (32. * PoletoMS_as2 + 16. * PoletoMS_as1 * PoletoMS_as1 + 8. * PoletoMS_as1 * as_running1) * p(qq, i, j, 1) + (128. * (PoletoMS_as3 + PoletoMS_as1 * PoletoMS_as2) + 8. * PoletoMS_as1 * as_running2 + 32. * PoletoMS_as2 * as_running1) * p(qq, i, j, 0);
2475 cache_ps[index_p(qq, i, j, 3)] = 8. * PoletoMS_as1 * p_s(qq, i, j, 2) + (32. * PoletoMS_as2 + 16. * PoletoMS_as1 * PoletoMS_as1 + 8. * PoletoMS_as1 * as_running1) * p_s(qq, i, j, 1) + (128. * (PoletoMS_as3 + PoletoMS_as1 * PoletoMS_as2) + 8. * PoletoMS_as1 * as_running2 + 32. * PoletoMS_as2 * as_running1) * p_s(qq, i, j, 0);
2476 if (j >= 3 and j <= 6)
2477 {
2478 cache_p[index_p(qq, i, j, 2)] = 0.;
2479 cache_ps[index_p(qq, i, j, 2)] = 0.;
2480 }
2481 cache_p[index_p(qq, i, j, 2)] += 8. * PoletoMS_as1 * p(qq, i, j, 1) + (32. * PoletoMS_as2 + 16. * PoletoMS_as1 * PoletoMS_as1 +
2482 8. * PoletoMS_as1 * as_running1) *
2483 p(qq, i, j, 0);
2484 cache_ps[index_p(qq, i, j, 2)] += 8. * PoletoMS_as1 * p_s(qq, i, j, 1) + (32. * PoletoMS_as2 + 16. * PoletoMS_as1 * PoletoMS_as1 +
2485 8. * PoletoMS_as1 * as_running1) *
2486 p_s(qq, i, j, 0);
2487 cache_p_LO[index_p(qq, i, j, 2)] = cache_p[index_p(qq, i, j, 2)];
2488 cache_ps_LO[index_p(qq, i, j, 2)] = cache_ps[index_p(qq, i, j, 2)];
2489
2490 cache_p[index_p(qq, i, j, 1)] += 8. * PoletoMS_as1 * p(qq, i, j, 0);
2491 cache_ps[index_p(qq, i, j, 1)] += 8. * PoletoMS_as1 * p_s(qq, i, j, 0);
2492 cache_p_LO[index_p(qq, i, j, 1)] = cache_p[index_p(qq, i, j, 1)];
2493 cache_ps_LO[index_p(qq, i, j, 1)] = cache_ps[index_p(qq, i, j, 1)];
2494 cache_p_LO[index_p(qq, i, j, 0)] = cache_p[index_p(qq, i, j, 0)];
2495 cache_ps_LO[index_p(qq, i, j, 0)] = cache_ps[index_p(qq, i, j, 0)];
2496 }
2497 }
2498 }
2499 return;
2500}
const double zeta2
Definition: AmpDB2.h:181
const double log2_2
Definition: AmpDB2.h:186
double PoletoMS_as3
Definition: AmpDB2.h:419
const double log2_4
Definition: AmpDB2.h:187
const double M_PI3
Definition: AmpDB2.h:179
const double polylog4_12
Definition: AmpDB2.h:194
const double zeta5
Definition: AmpDB2.h:184

◆ poletoPS_pp_s()

void AmpDB2::poletoPS_pp_s ( )
private

Definition at line 2372 of file AmpDB2.cpp.

2373{
2374 // analog to arxiv:2106.05979 eq. (33) for PS mass
2375 double log_mu1_Mb = 2. * log(mu_1 / Mb);
2376 double log_mub_Mb = 2. * log(mu_b / Mb);
2377 // hep-ph/9804241v2 eq. (21)
2378 PoletoPS_as1 = 4. / 3. * mu_f / Mb;
2379 PoletoPS_as2 = 4. / 3. * mu_f / (Mb * 4.) * (a1 - b0 * (2. * log(mu_f / Mb) - 2.));
2380 bool flag_LOz = true;
2381 double beta0 = 23. / 3.;
2382 double as_running1 = beta0 * log_mu1_Mb; // a_s(Mb) to a_s(mu_1)
2383 PoletoMS_as1 = 4. / 3. + log_mub_Mb;
2384 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 1))
2385 {
2386 for (int i = 1; i <= 6; i++)
2387 {
2388 // not all terms used for n=2
2389 for (int j = i; j <= 8; j++)
2390 {
2391 if (j == 3)
2392 j = 8;
2393 if (i >= 3)
2394 j = 8;
2395 cache_p[index_p(qq, i, j, 2)] += 8. * PoletoPS_as1 * p(qq, i, j, 1, flag_LOz) + (32. * PoletoPS_as2 + 16. * PoletoPS_as1 * PoletoPS_as1 +
2396 8. * PoletoPS_as1 * as_running1 -
2397 8. * PoletoPS_as1 * 4. * (-PoletoPS_as1 + PoletoMS_as1) // internal Mb_PS to Mb(mu_b)
2398 ) * p(qq, i, j, 0, flag_LOz);
2399 cache_ps[index_p(qq, i, j, 2)] += 8. * PoletoPS_as1 * p_s(qq, i, j, 1, flag_LOz) + (32. * PoletoPS_as2 + 16. * PoletoPS_as1 * PoletoPS_as1 +
2400 8. * PoletoPS_as1 * as_running1 -
2401 8. * PoletoPS_as1 * 4. * (-PoletoPS_as1 + PoletoMS_as1)) *
2402 p_s(qq, i, j, 0, flag_LOz);
2403 cache_p_LO[index_p(qq, i, j, 2)] = cache_p[index_p(qq, i, j, 2)];
2404 cache_ps_LO[index_p(qq, i, j, 2)] = cache_ps[index_p(qq, i, j, 2)];
2405 }
2406 for (int j = i; j <= 8; j++)
2407 {
2408 cache_p_LO[index_p(qq, i, j, 1)] += 8. * PoletoPS_as1 * p(qq, i, j, 0, flag_LOz);
2409 cache_ps_LO[index_p(qq, i, j, 1)] += 8. * PoletoPS_as1 * p_s(qq, i, j, 0, flag_LOz);
2410 if (j == 1 or j == 2 or j == 8)
2411 {
2412 cache_p[index_p(qq, i, j, 1)] += 8. * PoletoPS_as1 * p(qq, i, j, 0);
2413 cache_ps[index_p(qq, i, j, 1)] += 8. * PoletoPS_as1 * p_s(qq, i, j, 0);
2414 }
2415 else if (3 <= j and j <= 6)
2416 {
2417 cache_p[index_p(qq, i, j, 1)] += 8. * PoletoPS_as1 * p(qq, i, j, 0, flag_LOz);
2418 cache_ps[index_p(qq, i, j, 1)] += 8. * PoletoPS_as1 * p_s(qq, i, j, 0, flag_LOz);
2419 }
2420 }
2421 }
2422 }
2423 return;
2424}
double PoletoPS_as1
Definition: AmpDB2.h:427
double PoletoPS_as2
Definition: AmpDB2.h:428

◆ poletoPS_pp_s_partialN3LO()

void AmpDB2::poletoPS_pp_s_partialN3LO ( )
private

Definition at line 2502 of file AmpDB2.cpp.

2503{
2504 // analog to arxiv:2106.05979 eq. (33) for PS mass
2505 double log_mu1_Mb = 2. * log(mu_1 / Mb);
2506 double log_mub_Mb = 2. * log(mu_b / Mb);
2507 // hep-ph/9804241v2 eq. (21)
2508 double log_muf_Mb = 2. * log(mu_f / Mb);
2509 PoletoPS_as1 = 4. / 3. * mu_f / Mb;
2510 double PoletoPS_as1_2 = PoletoPS_as1 * PoletoPS_as1;
2511 PoletoPS_as2 = 4. / 3. * mu_f / (Mb * 4.) * (a1 - b0 * (log_muf_Mb - 2.));
2512 PoletoPS_as3 = 4. / 3. * mu_f / (Mb * 16.) * (a2 - (2. * a1 * b0 + b1) * (log_muf_Mb - 2.) + b0_2 * (log_muf_Mb * log_muf_Mb - 4. * log_muf_Mb + 8.));
2513 PoletoMS_as1 = 4. / 3. + log_mub_Mb;
2514 PoletoMS_as2 = (307. / 32. + M_PI2 / 3. + M_PI2 / 9. * log2 - 1. / 6. * zeta3 - (71. / 144. + M_PI2 / 18.) * nl + log_mub_Mb * (493. / 72. - nl * 13. / 36. + log_mub_Mb * (43. / 24. - nl / 12.))) + 4. / 3. * M_PI2 / 8. * sqrtz - z;
2515 double beta0 = 23. / 3.;
2516 double beta1 = 51. / 8. - 19. / 24. * 5.;
2517 double as_running1 = beta0 * log_mu1_Mb;
2518 double as_running1_mub = beta0 * 2. * log(mu_1 / mu_b);
2519 double as_running2 = -beta0 * beta0 * log_mu1_Mb * log_mu1_Mb + beta1 * log_mu1_Mb;
2520 for (quarks qq = cc; qq <= uu; qq = quarks(qq + 1))
2521 {
2522 for (int i = 1; i <= 8; i++)
2523 {
2524 if (i == 7)
2525 i++;
2526 for (int j = i; j <= 8; j++)
2527 {
2528 if (j == 7)
2529 j++;
2530 if (j < i)
2531 continue;
2532 cache_p[index_p(qq, i, j, 3)] = 8. * PoletoPS_as1 * p(qq, i, j, 2) + (32. * PoletoPS_as2 + 16. * PoletoPS_as1_2 + 8. * PoletoPS_as1 * as_running1 - 8. * PoletoPS_as1 * 4. * (-PoletoPS_as1 + PoletoMS_as1)) * p(qq, i, j, 1) + (128. * (PoletoPS_as3 + PoletoPS_as1 * PoletoPS_as2) - (-PoletoPS_as1 + PoletoMS_as1) * (128. * (PoletoPS_as1_2 + PoletoPS_as2) + 32. * PoletoPS_as1 * (as_running1 + as_running1_mub)) - (-PoletoPS_as2 + PoletoMS_as2) * 128. * PoletoPS_as1 + (32. * PoletoPS_as1_2 + 64. * PoletoPS_as2) * as_running1 + 8. * PoletoPS_as1 * as_running2) * p(qq, i, j, 0);
2533 cache_ps[index_p(qq, i, j, 3)] = 8. * PoletoPS_as1 * p_s(qq, i, j, 2) + (32. * PoletoPS_as2 + 16. * PoletoPS_as1_2 + 8. * PoletoPS_as1 * as_running1 - 8. * PoletoPS_as1 * 4. * (-PoletoPS_as1 + PoletoMS_as1)) * p_s(qq, i, j, 1) + (128. * (PoletoPS_as3 + PoletoPS_as1 * PoletoPS_as2) - (-PoletoPS_as1 + PoletoMS_as1) * (128. * (PoletoPS_as1_2 + PoletoPS_as2) + 32. * PoletoPS_as1 * (as_running1 + as_running1_mub)) - (-PoletoPS_as2 + PoletoMS_as2) * 128. * PoletoPS_as1 + (32. * PoletoPS_as1_2 + 64. * PoletoPS_as2) * as_running1 + 8. * PoletoPS_as1 * as_running2) * p_s(qq, i, j, 0);
2534 if (j >= 3 and j <= 6)
2535 {
2536 cache_p[index_p(qq, i, j, 2)] = 0.;
2537 cache_ps[index_p(qq, i, j, 2)] = 0.;
2538 }
2539 cache_p[index_p(qq, i, j, 2)] += 8. * PoletoPS_as1 * p(qq, i, j, 1) + (32. * PoletoPS_as2 + 16. * PoletoPS_as1_2 +
2540 8. * PoletoPS_as1 * as_running1 -
2541 8. * PoletoPS_as1 * 4. * (-PoletoPS_as1 + PoletoMS_as1)) *
2542 p(qq, i, j, 0);
2543 cache_ps[index_p(qq, i, j, 2)] += 8. * PoletoPS_as1 * p_s(qq, i, j, 1) + (32. * PoletoPS_as2 + 16. * PoletoPS_as1_2 +
2544 8. * PoletoPS_as1 * as_running1 -
2545 8. * PoletoPS_as1 * 4. * (-PoletoPS_as1 + PoletoMS_as1)) *
2546 p_s(qq, i, j, 0);
2547 cache_p_LO[index_p(qq, i, j, 2)] = cache_p[index_p(qq, i, j, 2)];
2548 cache_ps_LO[index_p(qq, i, j, 2)] = cache_ps[index_p(qq, i, j, 2)];
2549
2550 cache_p[index_p(qq, i, j, 1)] += 8. * PoletoPS_as1 * p(qq, i, j, 0);
2551 cache_ps[index_p(qq, i, j, 1)] += 8. * PoletoPS_as1 * p_s(qq, i, j, 0);
2552 cache_p_LO[index_p(qq, i, j, 1)] = cache_p[index_p(qq, i, j, 1)];
2553 cache_ps_LO[index_p(qq, i, j, 1)] = cache_ps[index_p(qq, i, j, 1)];
2554 cache_p_LO[index_p(qq, i, j, 0)] = cache_p[index_p(qq, i, j, 0)];
2555 cache_ps_LO[index_p(qq, i, j, 0)] = cache_ps[index_p(qq, i, j, 0)];
2556 }
2557 }
2558 }
2559 return;
2560}
double b0_2
Definition: AmpDB2.h:286
double PoletoPS_as3
Definition: AmpDB2.h:429
double b1
Definition: AmpDB2.h:287
double a2
Definition: AmpDB2.h:283

◆ RBd()

gslpp::complex AmpDB2::RBd ( orders  order)
protected

A method to compute the ratio of the absolute value of the $B_d$ mixing amplitude over the Standard Model value.

Parameters
[in]orderthe QCD order of the computation
Returns
\(\vert (M_{21}^{bd})_\mathrm{full}/(M_{21}^{bd})_\mathrm{SM}\vert\)

Definition at line 110 of file AmpDB2.cpp.

111{
114 throw std::runtime_error("DmBd::computeThValue(): requires cofficient of order not computed");
115
116 gslpp::vector<gslpp::complex> **allcoeff_SM = mySM.getFlavour().ComputeCoeffBd(
117 mySM.getBBd().getMu(),
118 mySM.getBBd().getScheme(), true);
119
120 C_1_SM = ((*(allcoeff_SM[LO]))(0) + (*(allcoeff_SM[NLO]))(0));
121
122 gslpp::vector<gslpp::complex> **allcoeff = mySM.getFlavour().ComputeCoeffBd(
123 mySM.getBBd().getMu(),
124 mySM.getBBd().getScheme());
125
126 gslpp::vector<double> me(mySM.getBBd().getBpars());
127 double MBd = mySM.getMesons(QCD::B_D).getMass();
128 double Mb = mySM.Mrun(mySM.getBBd().getMu(),
131 double Md = mySM.Mrun(mySM.getBBd().getMu(),
134 double KBd = MBd / (Mb + Md) * MBd / (Mb + Md);
135 double Fbd = mySM.getMesons(QCD::B_D).getDecayconst();
136 me(0) *= 1. / 3. * MBd * Fbd * Fbd;
137 me(1) *= -5. / 24. * KBd * MBd * Fbd * Fbd;
138 me(2) *= 1. / 24. * KBd * MBd * Fbd * Fbd;
139 me(3) *= 1. / 4. * KBd * MBd * Fbd * Fbd;
140 me(4) *= 1. / 12. * KBd * MBd * Fbd * Fbd;
141
142 /*std::cout << "low scale :" << std::endl << std::endl;
143 std::cout << "C1_SM :" << C_1_SM << std::endl << std::endl;
144
145 std::cout << "C1 :" << ((*(allcoeff[LO]))(0) + (*(allcoeff[NLO]))(0)) << std::endl;
146 std::cout << "C2 :" << ((*(allcoeff[LO]))(1) + (*(allcoeff[NLO]))(1)) << std::endl;
147 std::cout << "C3 :" << ((*(allcoeff[LO]))(2) + (*(allcoeff[NLO]))(2)) << std::endl;
148 std::cout << "C4 :" << ((*(allcoeff[LO]))(3) + (*(allcoeff[NLO]))(3)) << std::endl;
149 std::cout << "C5 :" << ((*(allcoeff[LO]))(4) + (*(allcoeff[NLO]))(4)) << std::endl << std::endl;*/
150
151 switch (order)
152 {
153 case FULLNLO:
154 return (*(allcoeff[LO]) + *(allcoeff[NLO])) * me /
155 (C_1_SM * me(0));
156 case LO:
157 return ((*(allcoeff[LO])) * me / ((*(allcoeff_SM[LO]))(0) * me(0)));
158 default:
159 throw std::runtime_error("RBd::RBd(): order not implemented");
160 }
161}
gslpp::complex C_1_SM
Definition: AmpDB2.h:173

◆ RBs()

gslpp::complex AmpDB2::RBs ( orders  order)
protected

A method to compute the ratio of the absolute value of the $B_s$ mixing amplitude over the Standard Model value.

Parameters
[in]orderthe QCD order of the computation
Returns
\(\vert (M_{21}^{bs})_\mathrm{full}/(M_{21}^{bs})_\mathrm{SM}\vert\)

Definition at line 57 of file AmpDB2.cpp.

58{
61 throw std::runtime_error("DmBd::computeThValue(): requires cofficient of order not computed");
62
63 gslpp::vector<gslpp::complex> **allcoeff_SM = mySM.getFlavour().ComputeCoeffBs(
64 mySM.getBBs().getMu(),
65 mySM.getBBs().getScheme(), true);
66
67 C_1_SM = ((*(allcoeff_SM[LO]))(0) + (*(allcoeff_SM[NLO]))(0));
68
69 gslpp::vector<gslpp::complex> **allcoeff = mySM.getFlavour().ComputeCoeffBs(
70 mySM.getBBs().getMu(),
72
73 gslpp::vector<double> me(mySM.getBBs().getBpars());
74 double MBs = mySM.getMesons(QCD::B_S).getMass();
75 double Mb = mySM.Mrun(mySM.getBBs().getMu(),
78 double Ms = mySM.Mrun(mySM.getBBs().getMu(),
81 double KBs = MBs / (Mb + Ms) * MBs / (Mb + Ms);
82 double Fbs = mySM.getMesons(QCD::B_S).getDecayconst();
83 me(0) *= 1. / 3. * MBs * Fbs * Fbs;
84 me(1) *= -5. / 24. * KBs * MBs * Fbs * Fbs;
85 me(2) *= 1. / 24. * KBs * MBs * Fbs * Fbs;
86 me(3) *= 1. / 4. * KBs * MBs * Fbs * Fbs;
87 me(4) *= 1. / 12. * KBs * MBs * Fbs * Fbs;
88
89 /*std::cout << "low scale :" << std::endl << std::endl;
90 std::cout << "C1_SM :" << C_1_SM << std::endl << std::endl;
91
92 std::cout << "C1 :" << ((*(allcoeff[LO]))(0) + (*(allcoeff[NLO]))(0)) << std::endl;
93 std::cout << "C2 :" << ((*(allcoeff[LO]))(1) + (*(allcoeff[NLO]))(1)) << std::endl;
94 std::cout << "C3 :" << ((*(allcoeff[LO]))(2) + (*(allcoeff[NLO]))(2)) << std::endl;
95 std::cout << "C4 :" << ((*(allcoeff[LO]))(3) + (*(allcoeff[NLO]))(3)) << std::endl;
96 std::cout << "C5 :" << ((*(allcoeff[LO]))(4) + (*(allcoeff[NLO]))(4)) << std::endl << std::endl;*/
97
98 switch (order)
99 {
100 case FULLNLO:
101 return (*(allcoeff[LO]) + *(allcoeff[NLO])) * me /
102 (C_1_SM * me(0));
103 case LO:
104 return ((*(allcoeff[LO])) * me /(*(allcoeff_SM[LO]))(0) * me(0));
105 default:
106 throw std::runtime_error("RBs::RBs(): order not implemented");
107 }
108}

◆ transformation()

gslpp::vector< gslpp::complex > AmpDB2::transformation ( gslpp::vector< gslpp::complex >  result,
orders  order 
)
private

Member Data Documentation

◆ a1

double AmpDB2::a1 = 31./3. - 10./9. * nl
private

Definition at line 282 of file AmpDB2.h.

◆ a2

double AmpDB2::a2
private
Initial value:
= (4343./162. + 6.*M_PI2 - M_PI4/4. + 22./3. * zeta3) * 3. * 3. - (1798./81. + 56./3. * zeta3) * 3. * 0.5 * nl
- (55./3. - 16. * zeta3) * 4./3. * 0.5 * nl + 400./81. * 0.25 * nl * nl

Definition at line 283 of file AmpDB2.h.

◆ as_4pi

double AmpDB2::as_4pi
private

Definition at line 259 of file AmpDB2.h.

◆ as_4pi_mu1

double AmpDB2::as_4pi_mu1
private

Definition at line 257 of file AmpDB2.h.

◆ as_4pi_mu2

double AmpDB2::as_4pi_mu2
private

Definition at line 258 of file AmpDB2.h.

◆ b0

double AmpDB2::b0 = 11. - 2. * nl/3.
private

Definition at line 285 of file AmpDB2.h.

◆ b0_2

double AmpDB2::b0_2 = b0 * b0
private

Definition at line 286 of file AmpDB2.h.

◆ b1

double AmpDB2::b1 = 102. - 38. * nl/3.
private

Definition at line 287 of file AmpDB2.h.

◆ BMeson

int AmpDB2::BMeson
private

B meson index (0 for Bd and 1 for Bs)

Definition at line 171 of file AmpDB2.h.

◆ C1_LO_1overm

gslpp::complex AmpDB2::C1_LO_1overm
private

Definition at line 467 of file AmpDB2.h.

◆ C2_LO_1overm

gslpp::complex AmpDB2::C2_LO_1overm
private

Definition at line 468 of file AmpDB2.h.

◆ C_1_SM

gslpp::complex AmpDB2::C_1_SM
private

Wilson coeffients H_{eff}^{DF2} \(C_1\)

Definition at line 173 of file AmpDB2.h.

◆ C_Buras_LO

gslpp::complex AmpDB2::C_Buras_LO[8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
private

Definition at line 302 of file AmpDB2.h.

◆ C_Buras_NLO

gslpp::complex AmpDB2::C_Buras_NLO[8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
private

Definition at line 303 of file AmpDB2.h.

◆ C_Buras_NNLO

gslpp::complex AmpDB2::C_Buras_NNLO[8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
private

Definition at line 304 of file AmpDB2.h.

◆ C_Misiak_LO

gslpp::complex AmpDB2::C_Misiak_LO[8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
private

Definition at line 299 of file AmpDB2.h.

◆ C_Misiak_NLO

gslpp::complex AmpDB2::C_Misiak_NLO[8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
private

Definition at line 300 of file AmpDB2.h.

◆ C_Misiak_NNLO

gslpp::complex AmpDB2::C_Misiak_NNLO[8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
private

Definition at line 301 of file AmpDB2.h.

◆ cache_deltas_1overm

gslpp::complex AmpDB2::cache_deltas_1overm[6] = {0.}
private

Definition at line 452 of file AmpDB2.h.

◆ cache_deltas_1overm_tradBasis

gslpp::complex AmpDB2::cache_deltas_1overm_tradBasis[6] = {0.}
private

Definition at line 364 of file AmpDB2.h.

◆ cache_p

double AmpDB2::cache_p[768] = { 0. }
private

Definition at line 400 of file AmpDB2.h.

◆ cache_p_LO

double AmpDB2::cache_p_LO[576] = {0.}
private

Definition at line 404 of file AmpDB2.h.

◆ cache_ps

double AmpDB2::cache_ps[768] = { 0. }
private

Definition at line 401 of file AmpDB2.h.

◆ cache_ps_LO

double AmpDB2::cache_ps_LO[576] = {0.}
private

Definition at line 405 of file AmpDB2.h.

◆ cacheC

gslpp::complex AmpDB2::cacheC[8] = { 0., 0., 0., 0., 0., 0., NAN, 0.}
private

Definition at line 298 of file AmpDB2.h.

◆ cacheD

gslpp::complex AmpDB2::cacheD[6] = {0.}
private

Definition at line 332 of file AmpDB2.h.

◆ cacheF0

double AmpDB2::cacheF0[24] = {0.}
private

Definition at line 329 of file AmpDB2.h.

◆ cacheF1

double AmpDB2::cacheF1[24] = {0.}
private

Definition at line 330 of file AmpDB2.h.

◆ cacheg

gslpp::complex AmpDB2::cacheg[12] = {0.}
private

Definition at line 460 of file AmpDB2.h.

◆ cachegtilde

gslpp::complex AmpDB2::cachegtilde[12] = {0.}
private

Definition at line 461 of file AmpDB2.h.

◆ cacheP

double AmpDB2::cacheP[84] = {0.}
private

Definition at line 331 of file AmpDB2.h.

◆ Cl2PI3

const double AmpDB2::Cl2PI3 = 1.014941606
private

Definition at line 193 of file AmpDB2.h.

◆ coeffsMStoRI

gslpp::matrix<double> AmpDB2::coeffsMStoRI
private

Definition at line 212 of file AmpDB2.h.

◆ Dilogsigma

double AmpDB2::Dilogsigma
private

Definition at line 255 of file AmpDB2.h.

◆ Dilogsigma2

double AmpDB2::Dilogsigma2
private

Definition at line 256 of file AmpDB2.h.

◆ Dilogz

double AmpDB2::Dilogz
private

Definition at line 254 of file AmpDB2.h.

◆ flag_fixmub

bool AmpDB2::flag_fixmub
private

Definition at line 213 of file AmpDB2.h.

◆ flag_LOz

bool AmpDB2::flag_LOz = true
private

Definition at line 403 of file AmpDB2.h.

◆ flag_resumz

bool AmpDB2::flag_resumz
private

Definition at line 207 of file AmpDB2.h.

◆ flag_RI

bool AmpDB2::flag_RI
private

Definition at line 214 of file AmpDB2.h.

◆ Gf2

double AmpDB2::Gf2
private

Definition at line 235 of file AmpDB2.h.

◆ K_1

gslpp::complex AmpDB2::K_1
private

Definition at line 470 of file AmpDB2.h.

◆ K_2

gslpp::complex AmpDB2::K_2
private

Definition at line 471 of file AmpDB2.h.

◆ lambda_c_d

gslpp::complex AmpDB2::lambda_c_d
private

Definition at line 374 of file AmpDB2.h.

◆ lambda_c_s

gslpp::complex AmpDB2::lambda_c_s
private

Definition at line 376 of file AmpDB2.h.

◆ lambda_u_d

gslpp::complex AmpDB2::lambda_u_d
private

Definition at line 375 of file AmpDB2.h.

◆ lambda_u_s

gslpp::complex AmpDB2::lambda_u_s
private

Definition at line 377 of file AmpDB2.h.

◆ log12sqrt52

const double AmpDB2::log12sqrt52 = log(0.5 + sqrt5 / 2.)
private

Definition at line 191 of file AmpDB2.h.

◆ log1minus4z

double AmpDB2::log1minus4z
private

Definition at line 244 of file AmpDB2.h.

◆ log1minusz

double AmpDB2::log1minusz
private

Definition at line 243 of file AmpDB2.h.

◆ log2

const double AmpDB2::log2 = log(2)
private

Definition at line 185 of file AmpDB2.h.

◆ log2_2

const double AmpDB2::log2_2 = log2 * log2
private

Definition at line 186 of file AmpDB2.h.

◆ log2_4

const double AmpDB2::log2_4 = log2_2 * log2_2
private

Definition at line 187 of file AmpDB2.h.

◆ log2sigma

double AmpDB2::log2sigma
private

Definition at line 249 of file AmpDB2.h.

◆ log2z

double AmpDB2::log2z
private

Definition at line 242 of file AmpDB2.h.

◆ log3

const double AmpDB2::log3 = log(3)
private

Definition at line 188 of file AmpDB2.h.

◆ logsigma

double AmpDB2::logsigma
private

Definition at line 248 of file AmpDB2.h.

◆ logx_1

double AmpDB2::logx_1
private

Definition at line 252 of file AmpDB2.h.

◆ logx_2

double AmpDB2::logx_2
private

Definition at line 253 of file AmpDB2.h.

◆ logz

double AmpDB2::logz
private

Definition at line 241 of file AmpDB2.h.

◆ M_PI2

const double AmpDB2::M_PI2 = M_PI * M_PI
private

Definition at line 178 of file AmpDB2.h.

◆ M_PI3

const double AmpDB2::M_PI3 = M_PI2 * M_PI
private

Definition at line 179 of file AmpDB2.h.

◆ M_PI4

const double AmpDB2::M_PI4 = M_PI2 * M_PI2
private

Definition at line 180 of file AmpDB2.h.

◆ Mb

double AmpDB2::Mb
private

Definition at line 270 of file AmpDB2.h.

◆ MB

double AmpDB2::MB
private

Definition at line 271 of file AmpDB2.h.

◆ Mb2_prefactor

double AmpDB2::Mb2_prefactor
private

Definition at line 273 of file AmpDB2.h.

◆ Mb2_prefactor_1overm

double AmpDB2::Mb2_prefactor_1overm
private

Definition at line 274 of file AmpDB2.h.

◆ Mb_Mb

double AmpDB2::Mb_Mb
private

Definition at line 275 of file AmpDB2.h.

◆ Mb_pole

double AmpDB2::Mb_pole
private

Definition at line 276 of file AmpDB2.h.

◆ Mb_PS

double AmpDB2::Mb_PS
private

Definition at line 277 of file AmpDB2.h.

◆ MB_s

double AmpDB2::MB_s
private

Definition at line 272 of file AmpDB2.h.

◆ Mc

double AmpDB2::Mc
private

Definition at line 269 of file AmpDB2.h.

◆ Md

double AmpDB2::Md
private

Definition at line 267 of file AmpDB2.h.

◆ me

gslpp::vector<double> AmpDB2::me = gslpp::vector<double>(5, 0.)
private

Definition at line 201 of file AmpDB2.h.

◆ me_R

gslpp::vector<double> AmpDB2::me_R = gslpp::vector<double>(5, 0.)
private

Definition at line 203 of file AmpDB2.h.

◆ me_Rtilde

gslpp::vector<double> AmpDB2::me_Rtilde = gslpp::vector<double>(3, 0.)
private

Definition at line 204 of file AmpDB2.h.

◆ meMStoRI

gslpp::matrix<double> AmpDB2::meMStoRI
private

Definition at line 210 of file AmpDB2.h.

◆ meoverme0

gslpp::vector<double> AmpDB2::meoverme0 = gslpp::vector<double>(3, 0.)
private

Definition at line 202 of file AmpDB2.h.

◆ Ms

double AmpDB2::Ms
private

Definition at line 268 of file AmpDB2.h.

◆ mu_1

double AmpDB2::mu_1
private

Definition at line 196 of file AmpDB2.h.

◆ mu_1_overm

double AmpDB2::mu_1_overm
private

Definition at line 197 of file AmpDB2.h.

◆ mu_2

double AmpDB2::mu_2
private

Definition at line 198 of file AmpDB2.h.

◆ mu_b

double AmpDB2::mu_b
private

Definition at line 199 of file AmpDB2.h.

◆ mu_f

double AmpDB2::mu_f = 2.
private

Definition at line 280 of file AmpDB2.h.

◆ mySM

const StandardModel& AmpDB2::mySM
private

Model type

Definition at line 169 of file AmpDB2.h.

◆ nl

double AmpDB2::nl = 4.
private

Definition at line 281 of file AmpDB2.h.

◆ oneminusz2

double AmpDB2::oneminusz2
private

Definition at line 245 of file AmpDB2.h.

◆ oneminusz_1overm2

double AmpDB2::oneminusz_1overm2
private

Definition at line 264 of file AmpDB2.h.

◆ PoletoMS_as1

double AmpDB2::PoletoMS_as1
private

Definition at line 417 of file AmpDB2.h.

◆ PoletoMS_as2

double AmpDB2::PoletoMS_as2
private

Definition at line 418 of file AmpDB2.h.

◆ PoletoMS_as2_z0

double AmpDB2::PoletoMS_as2_z0
private

Definition at line 420 of file AmpDB2.h.

◆ PoletoMS_as2_z1

double AmpDB2::PoletoMS_as2_z1
private

Definition at line 421 of file AmpDB2.h.

◆ PoletoMS_as3

double AmpDB2::PoletoMS_as3
private

Definition at line 419 of file AmpDB2.h.

◆ PoletoPS_as1

double AmpDB2::PoletoPS_as1
private

Definition at line 427 of file AmpDB2.h.

◆ PoletoPS_as2

double AmpDB2::PoletoPS_as2
private

Definition at line 428 of file AmpDB2.h.

◆ PoletoPS_as3

double AmpDB2::PoletoPS_as3
private

Definition at line 429 of file AmpDB2.h.

◆ polylog4_12

const double AmpDB2::polylog4_12 = 0.517479062
private

Definition at line 194 of file AmpDB2.h.

◆ sigma

double AmpDB2::sigma
private

Definition at line 247 of file AmpDB2.h.

◆ sqrt1minus4z

double AmpDB2::sqrt1minus4z
private

Definition at line 246 of file AmpDB2.h.

◆ sqrt1minus4z_1overm

double AmpDB2::sqrt1minus4z_1overm
private

Definition at line 265 of file AmpDB2.h.

◆ sqrt3

const double AmpDB2::sqrt3 = sqrt(3)
private

Definition at line 189 of file AmpDB2.h.

◆ sqrt5

const double AmpDB2::sqrt5 = sqrt(5)
private

Definition at line 190 of file AmpDB2.h.

◆ sqrtz

double AmpDB2::sqrtz
private

Definition at line 240 of file AmpDB2.h.

◆ t_2

const double AmpDB2::t_2 = -0.389011713
private

Definition at line 192 of file AmpDB2.h.

◆ VcbVcd

gslpp::complex AmpDB2::VcbVcd
private

Definition at line 317 of file AmpDB2.h.

◆ VcbVcd2

gslpp::complex AmpDB2::VcbVcd2
private

Definition at line 319 of file AmpDB2.h.

◆ VcbVcs

gslpp::complex AmpDB2::VcbVcs
private

Definition at line 318 of file AmpDB2.h.

◆ VcbVcs2

gslpp::complex AmpDB2::VcbVcs2
private

Definition at line 320 of file AmpDB2.h.

◆ VtbVtd

gslpp::complex AmpDB2::VtbVtd
private

Definition at line 313 of file AmpDB2.h.

◆ VtbVtd2

gslpp::complex AmpDB2::VtbVtd2
private

Definition at line 315 of file AmpDB2.h.

◆ VtbVts

gslpp::complex AmpDB2::VtbVts
private

Definition at line 314 of file AmpDB2.h.

◆ VtbVts2

gslpp::complex AmpDB2::VtbVts2
private

Definition at line 316 of file AmpDB2.h.

◆ x_1

double AmpDB2::x_1
private

Definition at line 250 of file AmpDB2.h.

◆ x_2

double AmpDB2::x_2
private

Definition at line 251 of file AmpDB2.h.

◆ z

double AmpDB2::z
private

Definition at line 236 of file AmpDB2.h.

◆ z2

double AmpDB2::z2
private

Definition at line 237 of file AmpDB2.h.

◆ z3

double AmpDB2::z3
private

Definition at line 238 of file AmpDB2.h.

◆ z4

double AmpDB2::z4
private

Definition at line 239 of file AmpDB2.h.

◆ z_1overm

double AmpDB2::z_1overm
private

Definition at line 262 of file AmpDB2.h.

◆ z_1overm2

double AmpDB2::z_1overm2
private

Definition at line 263 of file AmpDB2.h.

◆ zeta2

const double AmpDB2::zeta2 = gslpp_special_functions::zeta(2)
private

Definition at line 181 of file AmpDB2.h.

◆ zeta3

const double AmpDB2::zeta3 = gslpp_special_functions::zeta(3)
private

Definition at line 182 of file AmpDB2.h.

◆ zeta4

const double AmpDB2::zeta4 = gslpp_special_functions::zeta(4)
private

Definition at line 183 of file AmpDB2.h.

◆ zeta5

const double AmpDB2::zeta5 = gslpp_special_functions::zeta(5)
private

Definition at line 184 of file AmpDB2.h.


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