a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
THDMWMatching.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 
9 #include "THDMWMatching.h"
10 #include "THDMW.h"
11 #include <gsl/gsl_integration.h>
12 #include <gsl/gsl_sf_dilog.h>
13 #include "THDMWcache.h"
14 #include <stdexcept>
15 
17 
18  StandardModelMatching(THDMW_i),
19  myTHDMW(THDMW_i),
20  myCKM(3, 3, 0.),
21  mcBMll(13, NDR, NLO),
22  mcbsg(8, NDR, NNLO),
23  mcdbs2(5, NDR, NLO)
24 {
25 }
26 
27 
28 
29 
30 
31 std::vector<WilsonCoefficient>& THDMWMatching::CMBMll(QCD::lepton lepton)
32 {
33  //From 1504.00839 Note that in this paper the Effective Hamiltonian has a typo and a factor 1/sw^2 it's missing
34  double Mut = myTHDMW.getMut();
35  double Muw = myTHDMW.getMuw();
36  double MW = myTHDMW.Mw();
37  double xt = x_t(Mut);
38  double mhsq = myTHDMW.getMyTHDMWCache()->mhsq;
39  double xh = mhsq/pow(MW,2);
40  double sW2 = myTHDMW.sW2();
41  double mSp2 =myTHDMW.getMyTHDMWCache()->mSpsq;
42  double xS = mSp2/pow(MW,2);
43  double nu1 = myTHDMW.getTHDMW_nu1();
44  gslpp::complex etaU = myTHDMW.getTHDMW_etaU();
45  gslpp::complex etaD = myTHDMW.getTHDMW_etaD();
46 
47  double mb=myTHDMW.getQuarks(QCD::BOTTOM).getMass();
48 
49  double ml=myTHDMW.getLeptons(lepton).getMass();
50 
51 
52 
53  vmcBMll = StandardModelMatching::CMBMll(lepton);
54  switch (mcbsg.getScheme()) {
55  case NDR:
56 
57  break;
58  default:
59  std::stringstream out;
60  out << mcBMll.getScheme();
61  throw std::runtime_error("THDMWMatching::CMBMll(): scheme " + out.str() + "not implemented");
62  }
63  mcBMll.setMu(Muw);
64 
65  switch (mcBMll.getOrder()) {
66  case NNLO:
67  case NLO:
68  case LO:
69  mcBMll.setCoeff(9 , C10NP(xt, xS, etaU)/(sW2), LO);
70  mcBMll.setCoeff(10 , CSNP(nu1, xh, xt, xS, etaU, etaD)*mb*ml/(MW*MW*sW2), LO);
71  mcBMll.setCoeff(11 , CPNP(xt, xS, etaU, etaD)*(mb*ml)/(MW*MW*sW2), LO);
72  break;
73  default:
74  std::stringstream out;
75  out << mcBMll.getOrder();
76  throw std::runtime_error("THDMWMatching::CMBMll(): order " + out.str() + "not implemented");
77  }
78  vmcBMll.push_back(mcBMll);
79  return (vmcBMll);
80 }
81 
82 
83 gslpp::complex THDMWMatching::C10NP(double xt, double xS , gslpp::complex etaU) {
84 
85  gslpp::complex C10 = etaU.abs2()*(pow(xt,2)/6)*(1/(xS-xt)+(xS/pow(xS-xt,2))*(log(xt)-log(xS)));
86  return C10;
87  }
88 
89 gslpp::complex THDMWMatching::CSNP(double nu1, double xh,double xt, double xS, gslpp::complex etaU, gslpp::complex etaD) {
90  double mhsq= myTHDMW.getMyTHDMWCache()->mhsq;
91  double vev= myTHDMW.v();
92 
93  gslpp::complex CS =(pow(vev,2)*xt*nu1/(mhsq*6*(xS-xt)))*(etaD*etaU.conjugate()*(xt*(log(xS)-log(xt))/(xS-xt)-1)+
94  etaU.abs2()*(pow(xt,2)*(log(xS)-log(xt))/(2*pow(xS-xt,2))+(xS-3*xt)/(4*(xS-xt))))+
95  (2*xt/(3*xh))*(etaD*etaU.conjugate()*xt*(1-xS*(log(xS)-log(xt))/(xS-xt))/(xS-xt)+
96  etaU.abs2()*(xt/(2*pow(xS-xt,2)))*((xS+xt)/2-xS*xt*(log(xS)-log(xt))/(xS-xt)));
97  return CS;
98  }
99 
101  double sW2 = myTHDMW.sW2();
102  gslpp::complex CP =(xt/(3*pow(xS-xt,2)))*(etaD*etaU.conjugate()*(-(xt+xS)/2+xt*xS*(log(xS)-log(xt))/(xS-xt))+
103  (etaU.abs2()/(6*(xS-xt)))*((pow(xS,2)-8*xS*xt-17*pow(xt,2))/6+pow(xt,2)*(3*xS+xt)*(log(xS)-log(xt))/(xS-xt)))+
104  (2*sW2*xt/(9*pow(xS-xt,2)))*(etaD*etaU.conjugate()*((5*xt-3*xS)/2+xS*(2*xS-3*xt)*(log(xS)-log(xt))/(xS-xt))
105  +(etaU.abs2()/(6*(xS-xt)))*((17*pow(xS,2)-64*xS*xt+71*pow(xt,2))/6)
106  -(4*pow(xS,3)-12*pow(xS,2)*xt+9*xS*pow(xt,2)+3*pow(xt,3))*(log(xS)-log(xt))/(xS-xt))
107  +etaU.abs2()*(1-sW2)*pow(xt,2)*(xS*(log(xS)-log(xt))+xt-xS)/(3*pow(xS-xt,2));
108  return CP;
109  }
110 
111 
112 //For including the contribution to DelB_s we'll use the result of 1504.00839.
113 //The prediction of SM in this paper is the same than HEPfit except for lambdat_s which is conjugated (There are no additional factors)
114 //Note that in 1504.00839 what is computed is the decay of a B\bar_s^0 to a B_s^0 but usually the matrix elements are define for the conjugated elements.
115 //We should take the complex conjugate in order to be consistent with the HEPfit calculations.
116 
117 
118 std::vector<WilsonCoefficient>& THDMWMatching::CMdbs2() {
119 
120  double Mut = myTHDMW.getMut();
121  double Muc = myTHDMW.getMuc();
122  double Mub = myTHDMW.getMub();
123  double xt = x_t(Mut);//ratio mass of the top square at the scale of its mass over mass of the W square. Why not Mw scale???
124  double xc= x_c(Muc);
125  double mb =myTHDMW.Mrun(Mub, myTHDMW.getQuarks(QCD::BOTTOM).getMass_scale(),
126  myTHDMW.getQuarks(QCD::BOTTOM).getMass(), FULLNNLO);
127  double mSp2=myTHDMW.getMyTHDMWCache()->mSpsq;
128  double MW=myTHDMW.Mw();
129  double xb=pow(mb,2)/(MW*MW);
130 
131  double xS=mSp2/(MW*MW);
132  gslpp::complex etaU = myTHDMW.getTHDMW_etaU();
133  gslpp::complex etaD = myTHDMW.getTHDMW_etaD();
134  double GF=myTHDMW.getGF();
135  double co = GF / 4. / M_PI * MW;
136 
137 
139  mcdbs2.setMu(Mut);
140 
141  switch (mcdbs2.getOrder()) {
142  case NNLO:
143  case NLO:
144  case LO:
145  mcdbs2.setCoeff(0, co * co * CNPVLL(xc, xb, xt, xS, etaU, etaD).conjugate(), LO);
146  break;
147  default:
148  std::stringstream out;
149  out << mcdbs2.getOrder();
150  throw std::runtime_error("THDMMatching::CMdbs2(): order " + out.str() + "not implemented");
151  }
152 
153  vmcds.push_back(mcdbs2);
154  //The following are the primed coefficients.
155  mcdbs2.setMu(Mut);
156 
157  switch (mcdbs2.getOrder()) {
158  case NNLO:
159  case NLO:
160  case LO:
161  mcdbs2.setCoeff(1, co * co * CNPSRR1(xc, xb, xt, xS, etaU, etaD).conjugate()+4*co * co * CNPSRR2(xc, xb, xt, xS, etaU, etaD).conjugate(), LO);
162  mcdbs2.setCoeff(2, 8*co * co * CNPSRR2(xc, xb, xt, xS, etaU, etaD).conjugate(), LO);
163  //OSRR2=4*O2+8*O3 -> From Buras basis to SUSY basis
164  break;
165  default:
166  std::stringstream out;
167  out << mcdbs2.getOrder();
168  throw std::runtime_error("THDMMatching::CMdbs2(): order " + out.str() + "not implemented");
169  }
170 
171  vmcds.push_back(mcdbs2);
172 
173  return(vmcds);
174 }
175 //
176 //std::vector<WilsonCoefficient>& THDMWMatching::CMdbsp2() {
177 //
178 // double Mut = myTHDMW.getMut();
179 // double Muc = myTHDMW.getMuc();
180 // double Mub = myTHDMW.getMub();
181 // double xt = x_t(Mut);//ratio mass of the top square at the scale of its mass over mass of the W square. Why not Mw scale???
182 // double xc= x_c(Muc);
183 // double mb =myTHDMW.Mrun(Mub, myTHDMW.getQuarks(QCD::BOTTOM).getMass_scale(),
184 // myTHDMW.getQuarks(QCD::BOTTOM).getMass(), FULLNNLO);
185 // double mSp2=myTHDMW.getMyTHDMWCache()->mSpsq;
186 // double MW=myTHDMW.Mw();
187 // double xb=pow(mb,2)/(MW*MW);
188 //
189 // double xS=mSp2/(MW*MW);
190 // gslpp::complex etaU = myTHDMW.getTHDMW_etaU();
191 // gslpp::complex etaD = myTHDMW.getTHDMW_etaD();
192 // double GF=myTHDMW.getGF();
193 // double co = GF / 4. / M_PI * MW;
194 //
195 // vmcdsp = StandardModelMatching::CMdbs2();
196 // mcdbs2.setMu(Mut);
197 //
198 // switch (mcdbsp2.getOrder()) {
199 // case NNLO:
200 // case NLO:
201 // case LO:
202 // mcdbsp2.setCoeff(1, co * co * CNPSRR1(xc, xb, xt, xS, etaU, etaD).conjugate()+4*co * co * CNPSRR2(xc, xb, xt, xS, etaU, etaD).conjugate(), LO);
203 // mcdbsp2.setCoeff(2, 8*co * co * CNPSRR2(xc, xb, xt, xS, etaU, etaD).conjugate(), LO);
204 // //OSRR2=4*O2+8*O3 -> From Buras basis to SUSY basis
205 // break;
206 // default:
207 // std::stringstream out;
208 // out << mcdbsp2.getOrder();
209 // throw std::runtime_error("THDMMatching::CMdbs2(): order " + out.str() + "not implemented");
210 // }
211 //
212 // vmcds.push_back(mcdbs2);
213 // return(vmcdsp);
214 //}
215 
216 
217 
218 
219 
220 
221 
222 double THDMWMatching::CNPVLLctEtadEtasu(double xc, double xb, double xt, double xS){
223  return (-2*xb*xc*xt*(-1 - pow(xS,2) + xt + xS*xt))/(3.*(-1 + xS)*(-xS + xc*(1 + xS))*(xS - xt)*(-1 + xt)) +
224  (2*xb*xc*xt*log(xc))/(3.*(-(xS*xt) + xc*(2*xt + xS*(1 + 2*xt)))) +
225  (2*xb*xc*xt*(-2*pow(xS,2) + xt + xS*xt)*log(xS))/(3.*pow(-1 + xS,2)*(-2*xc + xS)*pow(xS - xt,2)) +
226  (2*xb*xc*xt*(xS + (-2 + xt)*xt)*log(xt))/(3.*pow(xS - xt,2)*pow(-1 + xt,2)*(-xc + xt));
227  }
228 
229 double THDMWMatching::CNPVLLctEtau4(double xc, double xb, double xt, double xS){
230  return (11*xc*pow(xt,2)*(-18*xS*pow(xS - xt,2) + xb*(5*pow(xS,2) - 22*xS*xt + 5*pow(xt,2))))/(324.*pow(xS - xt,3)*(-(xS*xt) + xc*(2*xS + 3*xt))) -
231  (11*xc*xS*xt*(xb*xS*(xS - 3*xt) - 3*pow(xS - xt,2)*xt)*log(xS))/(54.*(4*xc - xS)*pow(xS - xt,4)) +
232  (11*xc*pow(xt,2)*(xb*xS*(xS - 3*xt) - 3*pow(xS - xt,2)*xt)*log(xt))/(54.*(3*xc - xt)*pow(xS - xt,4));
233  }
234 
235 double THDMWMatching::CNPVLLctEtau2(double xc, double xb, double xt, double xS){
236  return -((f10(xt,xS) + f11(xt,xS) + f12(xt,xS))*f9(xc,xb,xt,xS)) +
237  f1(xc,xt,xS)*(f2(xb,xt,xS) + f3(xb,xt,xS) + f4(xb,xt,xS))*log(xS) +
238  f5(xc,xt,xS)*(f6(xb,xt,xS) + f7(xb,xt,xS) + f8(xb,xt))*log(xt);
239  }
240 
241 gslpp::complex THDMWMatching::CNPVLLct(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
242  return etaD*etaU.conjugate()*CNPVLLctEtadEtasu(xc ,xb ,xt , xS)+pow(etaU.abs2(),2)*CNPVLLctEtau4(xc ,xb ,xt , xS) +
243  etaU.abs2()*CNPVLLctEtau2(xc ,xb ,xt , xS);
244  }
245 
246 double THDMWMatching::CNPVLLttEtadEtasu(double xc, double xb, double xt, double xS){
247  return (2*xb*xt*(pow(xS,2)*(1 + xt) - xS*pow(1 + xt,2) + xt*(3 - 3*xt + 2*pow(xt,2))))/(3.*(-1 + xS)*pow(xS - xt,2)*pow(-1 + xt,2)) +
248  (4*xb*pow(xt,2)*(-pow(xS,2) + xt)*log(xS))/(3.*pow(-1 + xS,2)*pow(xS - xt,3)) +
249  (4*xb*pow(xt,2)*(-pow(xS,2) + xt + 2*xS*xt - 3*pow(xt,2) + pow(xt,3))*log(xt))/(3.*pow(xS - xt,3)*pow(-1 + xt,3));
250  }
251 
252 double THDMWMatching::CNPVLLttEtau4(double xc, double xb, double xt, double xS){
253  return (-11*pow(xt,2)*(-9*pow(xS - xt,2)*(xS + xt) + xb*(5*pow(xS,2) - 22*xS*xt + 5*pow(xt,2))))/(162.*pow(xS - xt,4)) + (11*pow(xt,2)*(-6*xS*pow(xS - xt,2)*xt +
254  xb*(pow(xS,3) - 3*pow(xS,2)*xt - 3*xS*pow(xt,2) + pow(xt,3)))*log(xS))/(54.*pow(xS - xt,5)) -
255  (11*pow(xt,2)*(-6*xS*pow(xS - xt,2)*xt +
256  xb*(pow(xS,3) - 3*pow(xS,2)*xt - 3*xS*pow(xt,2) + pow(xt,3)))*log(xt))/(54.*pow(xS - xt,5));
257  }
258 
259 double THDMWMatching::CNPVLLttEtau2(double xc, double xb, double xt, double xS){
260  return f24(xt,xS)*(f30(xb,xt,xS) + f31(xb,xt,xS)) +
261  f13(xt,xS)*(f14(xb,xt,xS) + f15(xb,xt,xS) + f16(xb,xt,xS))*log(xS) -
262  f17(xt,xS)*(f22(xb,xt,xS) + f23(xb,xt,xS))*log(xt);
263  }
264 
265 gslpp::complex THDMWMatching::CNPVLLtt(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
266  return etaD*etaU.conjugate()*CNPVLLttEtadEtasu(xc ,xb ,xt , xS)+pow(etaU.abs2(),2)*CNPVLLttEtau4(xc ,xb ,xt , xS) +
267  etaU.abs2()*CNPVLLttEtau2(xc ,xb ,xt , xS);
268  }
269 
270 double THDMWMatching::CNPVLLccEtadEtasu(double xc, double xb, double xS){
271  return (-2*xb*xc)/(3.*(-xS + 2*xc*(1 + xS)));
272  }
273 
274 double THDMWMatching::CNPVLLccEtau2(double xc, double xb, double xS){
275  return (-4*xb*xc)/(9.*(-xS + 3*xc*(1 + xS)));
276  }
277 
278 gslpp::complex THDMWMatching::CNPVLLcc(double xc, double xb, double xS, gslpp::complex etaU, gslpp::complex etaD){
279  return etaD*etaU.conjugate()*CNPVLLccEtadEtasu(xc, xb, xS) +
280  etaU.abs2()*CNPVLLccEtau2(xc, xb ,xS);
281  }
282 
283 gslpp::complex THDMWMatching::CNPVLL(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
284  return pow(myTHDMW.getCKM().computelamt_s().conjugate(),2)*CNPVLLtt(xc, xb, xt, xS, etaU, etaD)+
285  2*myTHDMW.getCKM().computelamt_s().conjugate()*myTHDMW.getCKM().computelamc_s().conjugate()*CNPVLLct(xc, xb, xt, xS, etaU, etaD)+
286  pow(myTHDMW.getCKM().computelamc_s().conjugate(),2)*CNPVLLcc(xc, xb, xS, etaU, etaD) ;
287  }
288 
289 
290 
291 
292 
293 
294 
295 
296 
297 
298 
299 double THDMWMatching::CNPSRR1ctEtadEtasuEtau2(double xc, double xb, double xt, double xS){
300  return (-19*xb*xc*xt)/(18.*(xc - xS)*(xS - xt)) + (19*xb*xc*xS*xt*log(xS))/(18.*(2*xc - xS)*pow(xS - xt,2)) -
301  (19*xb*xc*pow(xt,2)*log(xt))/(18.*(xc - xt)*pow(xS - xt,2));
302  }
303 
304 double THDMWMatching::CNPSRR1ctEtad2Etasu2(double xc, double xb, double xt, double xS){
305  return (19*xb*xc*xt)/(18.*(xc - xS)*(xS - xt)) - (19*xb*xc*xS*xt*log(xS))/(18.*(2*xc - xS)*pow(xS - xt,2)) +
306  (19*xb*xc*pow(xt,2)*log(xt))/(18.*(xc - xt)*pow(xS - xt,2));
307  }
308 
309 double THDMWMatching::CNPSRR1ctEtadEtasu(double xc, double xb, double xt, double xS){
310  return (-5*xb*xc*xS*(1 + xS - 2*xt)*xt)/(6.*(-1 + xS)*(-xS + xc*(1 + xS))*(xS - xt)*(-1 + xt)) +
311  (5*xb*xc*xS*xt*(-3*xt + xS*(2 + xt))*log(xS))/(6.*pow(-1 + xS,2)*(-2*xc + xS)*pow(xS - xt,2)) +
312  (5*xb*xc*pow(xt,2)*(xS*(-2 + xt) + (3 - 2*xt)*xt)*log(xt))/(6.*pow(xS - xt,2)*pow(-1 + xt,2)*(-xc + xt));
313  }
314 
315 double THDMWMatching::CNPSRR1ctEtau4(double xc, double xb, double xt, double xS){
316  return (19*xb*xc*pow(xt,2)*(5*pow(xS,2) - 22*xS*xt + 5*pow(xt,2)))/(648.*pow(xS - xt,3)*(-(xS*xt) + xc*(2*xS + 3*xt))) -
317  (19*xb*xc*pow(xS,2)*(xS - 3*xt)*xt*log(xS))/(108.*(4*xc - xS)*pow(xS - xt,4)) +
318  (19*xb*xc*xS*(xS - 3*xt)*pow(xt,2)*log(xt))/(108.*(3*xc - xt)*pow(xS - xt,4));
319  }
320 
321 double THDMWMatching::CNPSRR1ctEtau2(double xc, double xb, double xt, double xS){
322  return f35(xc,xb,xt,xS)*(f36(xt,xS) + f37(xt,xS)) + f32(xc,xb,xt,xS)*log(xS) -
323  f33(xc,xb,xt,xS)*f34(xt,xS)*log(xt);
324  }
325 
326 gslpp::complex THDMWMatching::CNPSRR1ct(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
327  return etaD*etaU.conjugate()*etaU.abs2()*CNPSRR1ctEtadEtasuEtau2(xc ,xb ,xt , xS)+pow(etaD*etaU.conjugate(),2)*CNPSRR1ctEtad2Etasu2(xc ,xb ,xt , xS)+
328  etaD*etaU.conjugate()*CNPSRR1ctEtadEtasu(xc ,xb ,xt , xS)+pow(etaU.abs2(),2)*CNPSRR1ctEtau4(xc ,xb ,xt , xS) +
329  etaU.abs2()*CNPSRR1ctEtau2(xc ,xb ,xt , xS);
330  }
331 
332 double THDMWMatching::CNPSRR1ttEtadEtasuEtau2(double xc, double xb, double xt, double xS){
333  return (19*xb*pow(xt,2))/(9.*pow(xS - xt,2)) - (19*xb*pow(xt,2)*(xS + xt)*log(xS))/(18.*pow(xS - xt,3)) +
334  (19*xb*pow(xt,2)*(xS + xt)*log(xt))/(18.*pow(xS - xt,3));
335  }
336 
337 double THDMWMatching::CNPSRR1ttEtad2Etasu2(double xc, double xb, double xt, double xS){
338  return (-19*xb*pow(xt,2))/(9.*pow(xS - xt,2)) + (19*xb*pow(xt,2)*(xS + xt)*log(xS))/(18.*pow(xS - xt,3)) -
339  (19*xb*pow(xt,2)*(xS + xt)*log(xt))/(18.*pow(xS - xt,3));
340  }
341 
342 double THDMWMatching::CNPSRR1ttEtadEtasu(double xc, double xb, double xt, double xS){
343  return (5*xb*pow(xt,2)*(pow(xS,2)*(-3 + xt) + (-3 + xt)*xt + xS*(1 + 6*xt - 3*pow(xt,2))))/(6.*(-1 + xS)*pow(xS - xt,2)*pow(-1 + xt,2)) +
344  (5*xb*xS*pow(xt,2)*(-2*xt + xS*(1 + xt))*log(xS))/(3.*pow(-1 + xS,2)*pow(xS - xt,3)) +
345  (5*xb*pow(xt,2)*(pow(xS,2) - 2*xS*xt - (-2 + xt)*pow(xt,3))*log(xt))/(3.*pow(xS - xt,3)*pow(-1 + xt,3));
346  }
347 
348 double THDMWMatching::CNPSRR1ttEtau4(double xc, double xb, double xt, double xS){
349  return (-19*xb*pow(xt,2)*(5*pow(xS,2) - 22*xS*xt + 5*pow(xt,2)))/(324.*pow(xS - xt,4)) +
350  (19*xb*pow(xt,2)*(pow(xS,3) - 3*pow(xS,2)*xt - 3*xS*pow(xt,2) + pow(xt,3))*log(xS))/(108.*pow(xS - xt,5))
351  - (19*xb*pow(xt,2)*(pow(xS,3) - 3*pow(xS,2)*xt - 3*xS*pow(xt,2) + pow(xt,3))*log(xt))/(108.*pow(xS - xt,5));
352  }
353 
354 double THDMWMatching::CNPSRR1ttEtau2(double xc, double xb, double xt, double xS){
355  return -(f40(xb,xt,xS)*(f41(xt,xS) + f42(xt,xS) + f43(xt,xS))) + f38(xb,xt,xS)*log(xS) +
356  f39(xb,xt,xS)*log(xt);
357  }
358 
359 gslpp::complex THDMWMatching::CNPSRR1tt(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
360  return etaD*etaU.conjugate()*etaU.abs2()*CNPSRR1ttEtadEtasuEtau2(xc ,xb ,xt , xS)+pow(etaD*etaU.conjugate(),2)*CNPSRR1ttEtad2Etasu2(xc ,xb ,xt , xS)+
361  etaD*etaU.conjugate()*CNPSRR1ttEtadEtasu(xc ,xb ,xt , xS)+pow(etaU.abs2(),2)*CNPSRR1ttEtau4(xc ,xb ,xt , xS) +
362  etaU.abs2()*CNPSRR1ttEtau2(xc ,xb ,xt , xS);
363  }
364 
365 gslpp::complex THDMWMatching::CNPSRR1(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
366  return pow(myTHDMW.getCKM().computelamt_s().conjugate(),2)*CNPSRR1tt(xc, xb, xt, xS, etaU, etaD)+
367  2*myTHDMW.getCKM().computelamt_s().conjugate()*myTHDMW.getCKM().computelamc_s().conjugate()*CNPSRR1ct(xc, xb, xt, xS, etaU, etaD);
368  }
369 
370 
371 
372 
373 
374 
375 
376 
377 
378 
379 
380 double THDMWMatching::CNPSRR2ctEtadEtasuEtau2(double xc, double xb, double xt, double xS){
381  return -21*CNPSRR1ctEtadEtasuEtau2(xc, xb, xt, xS)/76;
382  }
383 
384 double THDMWMatching::CNPSRR2ctEtad2Etasu2(double xc, double xb, double xt, double xS){
385  return -21*CNPSRR1ctEtad2Etasu2(xc, xb, xt, xS)/76;
386  }
387 
388 double THDMWMatching::CNPSRR2ctEtadEtasu(double xc, double xb, double xt, double xS){
389  return -3*CNPSRR1ctEtadEtasu(xc, xb, xt, xS)/20;
390  }
391 
392 double THDMWMatching::CNPSRR2ctEtau4(double xc, double xb, double xt, double xS){
393  return -21*CNPSRR1ctEtau4(xc, xb, xt, xS)/76;
394  }
395 
396 double THDMWMatching::CNPSRR2ctEtau2(double xc, double xb, double xt, double xS){
397  return -3*CNPSRR1ctEtau2(xc, xb, xt, xS)/20;
398  }
399 
400 gslpp::complex THDMWMatching::CNPSRR2ct(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
401  return etaD*etaU.conjugate()*etaU.abs2()*CNPSRR2ctEtadEtasuEtau2(xc ,xb ,xt , xS)+pow(etaD*etaU.conjugate(),2)*CNPSRR2ctEtad2Etasu2(xc ,xb ,xt , xS)+
402  etaD*etaU.conjugate()*CNPSRR2ctEtadEtasu(xc ,xb ,xt , xS)+pow(etaU.abs2(),2)*CNPSRR2ctEtau4(xc ,xb ,xt , xS) +
403  etaU.abs2()*CNPSRR2ctEtau2(xc ,xb ,xt , xS);
404  }
405 
406 
407 
408 
409 double THDMWMatching::CNPSRR2ttEtadEtasuEtau2(double xc, double xb, double xt, double xS){
410  return -21*CNPSRR1ttEtadEtasuEtau2(xc, xb, xt, xS)/76;
411  }
412 
413 double THDMWMatching::CNPSRR2ttEtad2Etasu2(double xc, double xb, double xt, double xS){
414  return -21*CNPSRR1ttEtad2Etasu2(xc, xb, xt, xS)/76;
415  }
416 
417 double THDMWMatching::CNPSRR2ttEtadEtasu(double xc, double xb, double xt, double xS){
418  return -3*CNPSRR1ttEtadEtasu(xc, xb, xt, xS)/20;
419  }
420 
421 double THDMWMatching::CNPSRR2ttEtau4(double xc, double xb, double xt, double xS){
422  return -21*CNPSRR1ttEtau4(xc, xb, xt, xS)/76;
423  }
424 
425 double THDMWMatching::CNPSRR2ttEtau2(double xc, double xb, double xt, double xS){
426  return -3*CNPSRR1ttEtau2(xc, xb, xt, xS)/20;
427  }
428 
429 gslpp::complex THDMWMatching::CNPSRR2tt(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
430  return etaD*etaU.conjugate()*etaU.abs2()*CNPSRR2ttEtadEtasuEtau2(xc ,xb ,xt , xS)+pow(etaD*etaU.conjugate(),2)*CNPSRR2ttEtad2Etasu2(xc ,xb ,xt , xS)+
431  etaD*etaU.conjugate()*CNPSRR2ttEtadEtasu(xc ,xb ,xt , xS)+pow(etaU.abs2(),2)*CNPSRR2ttEtau4(xc ,xb ,xt , xS) +
432  etaU.abs2()*CNPSRR2ttEtau2(xc ,xb ,xt , xS);
433  }
434 
435 
436 
437 gslpp::complex THDMWMatching::CNPSRR2(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD){
438  return pow(myTHDMW.getCKM().computelamt_s().conjugate(),2)*CNPSRR2tt(xc, xb, xt, xS, etaU, etaD)+
439  2*myTHDMW.getCKM().computelamt_s().conjugate()*myTHDMW.getCKM().computelamc_s().conjugate()*CNPSRR2ct(xc, xb, xt, xS, etaU, etaD);
440  }
441 
442 
443 
444 
445 
446 
447 
448 
449 
450 
451 //Functions Needed from 1504.00839
452 
453 double THDMWMatching::f1(double xc, double xt, double xS){
454  double f1 = -(xc*xS*xt)/(9.*pow(-1 + xS,3)*(-3*xc + xS)*pow(xS - xt,3));
455  return f1;
456  }
457 
458 double THDMWMatching::f2(double xb, double xt, double xS){
459  double f2 = -6*pow(xS,5) + 12*pow(xS,4)*(3 + xt) - 3*pow(xS,3)*(xb*(-6 + xt)
460  + 2*(9 + 12*xt + pow(xt,2)));
461  return f2;
462  }
463 
464 double THDMWMatching::f3(double xb, double xt, double xS){
465  double f3 = pow(xS,2)*(xb*(2 - 8*xt + pow(xt,2)) + 12*(2 + 9*xt + 3*pow(xt,2)));
466  return f3;
467  }
468 
469 double THDMWMatching::f4(double xb, double xt, double xS){
470  double f4 = xS*xt*(xb*(-41 + 6*xt) - 6*(8 + 9*xt)) + xt*(24*xt + xb*(12 + 13*xt));
471  return f4;
472  }
473 
474 double THDMWMatching::f5(double xc, double xt, double xS){
475  double f5 = (xc*pow(xt,2))/(9.*pow(xS - xt,3)*pow(-1 + xt,3)*(-3*xc + xt));
476  return f5;
477  }
478 
479 double THDMWMatching::f6(double xb, double xt, double xS){
480  double f6 = pow(xS,2)*(-6*(-4 + xt)*pow(-1 + xt,2) + xb*(2 + 7*xt + pow(xt,2)));
481  return f6;
482  }
483 
484 double THDMWMatching::f7(double xb, double xt, double xS){
485  double f7 = xS*xt*(12*(-4 + xt)*pow(-1 + xt,2) - xb*(5 + 12*xt + 3*pow(xt,2)));
486  return f7;
487  }
488 
489 double THDMWMatching::f8(double xb, double xt){
490  double f8 = xt*(-6*(-4 + xt)*pow(-1 + xt,2)*xt + xb*(12 - 23*xt + 21*pow(xt,2)));
491  return f8;
492  }
493 
494 double THDMWMatching::f9(double xc,double xb, double xt, double xS){
495  double f9 = (2*xb*xc*xt)/(9.*pow(-1 + xS,2)*pow(xS - xt,2)*pow(-1 + xt,2)*(2*xc*xS + 2*xc*xt - xS*xt + 2*xc*xS*xt));
496  return f9;
497  }
498 
499 double THDMWMatching::f10(double xt, double xS){
500  double f10 = pow(xS,4)*(6 - 15*xt + 4*pow(xt,2)) + pow(xS,3)*(-12 + 19*xt + 17*pow(xt,2) - 9*pow(xt,3));
501  return f10;
502  }
503 
504 double THDMWMatching::f11(double xt, double xS){
505  double f11 = pow(xS,2)*(6 + 21*xt - 70*pow(xt,2) + 24*pow(xt,3) + 4*pow(xt,4)) ;
506  return f11;
507  }
508 
509 double THDMWMatching::f12(double xt, double xS){
510  double f12 = 3*pow(-1 + xt,2)*pow(xt,2) + xS*xt*(-15 + 16*xt + 21*pow(xt,2) - 17*pow(xt,3));
511  return f12;
512  }
513 
514 double THDMWMatching::f13(double xt, double xS){
515  double f13 = (2*xS*pow(xt,2))/(9.*pow(-1 + xS,3)*pow(xS - xt,4));
516  return f13;
517  }
518 
519 double THDMWMatching::f14(double xb, double xt, double xS){
520  double f14 = 3*pow(xS,5) - 6*pow(xS,4)*(3 + xt) + 3*pow(xS,3)*(9 + xb*(-3 + xt) + 12*xt + pow(xt,2));
521  return f14;
522  }
523 
524 double THDMWMatching::f15(double xb, double xt, double xS){
525  double f15 = -(pow(xS,2)*(xb*(1 + 10*xt + pow(xt,2)) + 6*(2 + 9*xt + 3*pow(xt,2))));
526  return f15;
527  }
528 
529 double THDMWMatching::f16(double xb, double xt, double xS){
530  double f16 = -12*xt*(xt + xb*(1 + xt)) + 3*xS*xt*(8 + 9*xt + xb*(13 + xt));
531  return f16;
532  }
533 
534 double THDMWMatching::f17( double xt, double xS){
535  double f17 = (2*pow(xt,2))/(9.*pow(xS - xt,4)*pow(-1 + xt,4));
536  return f17;
537  }
538 
539 double THDMWMatching::f18(double xb, double xt, double xS){
540  double f18 = pow(xS,3)*(xb*(1 + 9*xt) + 3*pow(-1 + xt,2)*(4 - 2*xt + pow(xt,2)));
541  return f18;
542  }
543 
544 double THDMWMatching::f19(double xb, double xt, double xS){
545  double f19 = -3*pow(xS,2)*xt*(xb*(1 + 9*xt) + pow(-1 + xt,2)*(8 - xt + 2*pow(xt,2)));
546  return f19;
547  }
548 
549 double THDMWMatching::f20(double xb, double xt, double xS){
550  double f20 = 3*xS*xt*(xt*pow(-2 + xt + pow(xt,2),2) + xb*(4 - 12*xt + 24*pow(xt,2) - 7*pow(xt,3) + pow(xt,4)));
551  return f20;
552  }
553 
554 double THDMWMatching::f21(double xb, double xt){
555  double f21 = -(pow(xt,4)*(9*pow(-1 + xt,2) + xb*(12 - 3*xt + pow(xt,2))));
556  return f21;
557  }
558 
559 double THDMWMatching::f22(double xb, double xt, double xS){
560  double f22 = f18(xb,xt,xS)+f19(xb,xt,xS);
561  return f22;
562  }
563 
564 double THDMWMatching::f23(double xb, double xt, double xS){
565  double f23 = f20(xb,xt,xS)+f21(xb,xt);
566  return f23;
567  }
568 
569 double THDMWMatching::f24(double xt, double xS){
570  double f24 = xt/(27.*pow(-1 + xS,2)*pow(xS - xt,3)*pow(-1 + xt,3));
571  return f24;
572  }
573 
574 double THDMWMatching::f25(double xb, double xt, double xS){
575  double f25 = xb*pow(xS,4)*(-12 + 65*xt + 2*pow(xt,2) + 5*pow(xt,3)) -
576  2*xb*pow(xS,3)*(-12 + 47*xt + 85*pow(xt,2) - 11*pow(xt,3) + 11*pow(xt,4));
577  return f25;
578  }
579 
580 double THDMWMatching::f26(double xb, double xt, double xS){
581  double f26 = xb*pow(xS,2)*(-12 - 91*xt + 574*pow(xt,2) - 246*pow(xt,3) + 130*pow(xt,4) + 5*pow(xt,5));
582  return f26;
583  }
584 
585 double THDMWMatching::f27(double xb, double xt, double xS){
586  double f27 = -2*xb*xS*xt*(-30 + 95*xt + 49*pow(xt,2) - 11*pow(xt,3) + 17*pow(xt,4));
587  return f27;
588  }
589 
590 double THDMWMatching::f28(double xb, double xt){
591  double f28 = xb*pow(xt,2)*(24 - 43*xt + 110*pow(xt,2) - 31*pow(xt,3));
592  return f28;
593  }
594 
595 double THDMWMatching::f29(double xt, double xS){
596  double f29 = -18*pow(-1 + xS,2)*pow(xS - xt,2)*(-4 + xt)*pow(-1 + xt,2)*xt;
597  return f29;
598  }
599 
600 double THDMWMatching::f30(double xb, double xt, double xS){
601  double f30 = f25(xb,xt,xS)+f26(xb,xt,xS)+f26(xb,xt,xS);
602  return f30;
603  }
604 
605 double THDMWMatching::f31(double xb, double xt, double xS){
606  double f31 = f28(xb,xt)+f29(xt,xS);
607  return f31;
608  }
609 
610 double THDMWMatching::f32(double xc, double xb, double xt, double xS){
611  double f32 = (5*xb*xc*xS*xt*(4*pow(xt,2) - xS*xt*(5 + 3*xt) + pow(xS,2)*(2 + xt + pow(xt,2))))/(9.*pow(-1 + xS,3)*(-3*xc + xS)*pow(xS - xt,3));
612  return f32;
613  }
614 
615 double THDMWMatching::f33(double xc, double xb, double xt, double xS){
616  double f33 = (5*xb*xc*pow(xt,2))/(9.*pow(xS - xt,3)*pow(-1 + xt,3)*(-3*xc + xt));
617  return f33;
618  }
619 
620 double THDMWMatching::f34(double xt, double xS){
621  double f34 =xS*xt*(-5 + 6*xt - 3*pow(xt,2)) + pow(xS,2)*(2 - 2*xt + pow(xt,2)) + pow(xt,2)*(4 - 6*xt + 3*pow(xt,2));
622  return f34;
623  }
624 
625 double THDMWMatching::f35(double xc, double xb, double xt, double xS){
626  double f35 = (5*xb*xc*xS*pow(xt,2))/(18.*pow(-1 + xS,2)*pow(xS - xt,2)*pow(-1 + xt,2)*(-(xS*xt) + 2*xc*(xt + xS*(1 + xt))));
627  return f35;
628  }
629 
630 double THDMWMatching::f36(double xt, double xS){
631  double f36 = pow(xS,3)*(-3 + xt) + pow(xS,2)*(4 + 5*xt - 3*pow(xt,2)) ;
632  return f36;
633  }
634 
635 double THDMWMatching::f37(double xt, double xS){
636  double f37 = xt*(-5 + 15*xt - 8*pow(xt,2)) + xS*(3 - 13*xt + 4*pow(xt,3)) ;
637  return f37;
638  }
639 
640 double THDMWMatching::f38(double xb, double xt, double xS){
641  double f38 = (10*xb*xS*pow(xt,2)*(3*pow(xt,2) - 3*xS*xt*(1 + xt) + pow(xS,2)*(1 + xt + pow(xt,2))))/(9.*pow(-1 + xS,3)*pow(xS - xt,4));
642  return f38;
643  }
644 
645 double THDMWMatching::f39(double xb, double xt, double xS){
646  double f39 = (10*xb*pow(xt,2)*(pow(xS,3) - 3*pow(xS,2)*xt + 3*xS*pow(xt,2) - pow(xt,4)*(3 - 3*xt + pow(xt,2))))/(9.*pow(xS - xt,4)*pow(-1 + xt,4));
647  return f39;
648  }
649 
650 double THDMWMatching::f40(double xb, double xt, double xS){
651  double f40 = (5*xb*pow(xt,2))/(27.*pow(-1 + xS,2)*pow(xS - xt,3)*pow(-1 + xt,3));
652  return f40;
653  }
654 
655 double THDMWMatching::f41(double xt, double xS){
656  double f41 = pow(xS,4)*(11 - 7*xt + 2*pow(xt,2)) - pow(xS,3)*(19 + 17*xt - 19*pow(xt,2) + 7*pow(xt,3));
657  return f41;
658  }
659 
660 double THDMWMatching::f42(double xt, double xS){
661  double f42 = pow(xS,2)*(2 + 55*xt - 15*pow(xt,2) - 17*pow(xt,3) + 11*pow(xt,4));
662  return f42;
663  }
664 
665 double THDMWMatching::f43(double xt, double xS){
666  double f43 = pow(xt,2)*(11 - 7*xt + 2*pow(xt,2)) - xS*xt*(7 + 53*xt - 55*pow(xt,2) + 19*pow(xt,3));
667  return f43;
668  }
THDMWMatching::CNPVLLcc
virtual gslpp::complex CNPVLLcc(double xc, double xb, double xS, gslpp::complex etaU, gslpp::complex etaD)
Definition: THDMWMatching.cpp:278
QCD::BOTTOM
Definition: QCD.h:329
THDMWMatching::CNPVLLctEtau2
virtual double CNPVLLctEtau2(double xc, double xb, double xt, double xS)
Definition: THDMWMatching.cpp:235
THDMWMatching::CNPVLLccEtadEtasu
virtual double CNPVLLccEtadEtasu(double xc, double xb, double xS)
Definition: THDMWMatching.cpp:270
THDMWMatching::CNPVLLctEtau4
virtual double CNPVLLctEtau4(double xc, double xb, double xt, double xS)
Definition: THDMWMatching.cpp:229
THDMWMatching::CMdbs2
virtual std::vector< WilsonCoefficient > & CMdbs2()
Definition: THDMWMatching.cpp:118
THDMW.h
StandardModelMatching::CMdbs2
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
Definition: StandardModelMatching.cpp:1043
THDMWMatching::C10NP
virtual gslpp::complex C10NP(double xt, double xS, gslpp::complex etaU)
Definition: THDMWMatching.cpp:83
LO
Definition: OrderScheme.h:33
THDMWMatching::CNPVLLtt
virtual gslpp::complex CNPVLLtt(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD)
Definition: THDMWMatching.cpp:265
NDR
Definition: OrderScheme.h:21
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
gslpp::complex::abs2
double abs2() const
Definition: gslpp_complex.cpp:86
THDMWMatching::CNPVLLct
virtual gslpp::complex CNPVLLct(double xc, double xb, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD)
Definition: THDMWMatching.cpp:241
THDMW
A base class for symmetric Two-Higgs-Doublet-Manohar-Wise models.
Definition: THDMW.h:233
THDMWMatching::CMBMll
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)
Definition: THDMWMatching.cpp:31
THDMWMatching::CNPVLLttEtau2
virtual double CNPVLLttEtau2(double xc, double xb, double xt, double xS)
Definition: THDMWMatching.cpp:259
THDMWMatching::CNPVLLccEtau2
virtual double CNPVLLccEtau2(double xc, double xb, double xS)
Definition: THDMWMatching.cpp:274
StandardModelMatching
A class for the matching in the Standard Model.
Definition: StandardModelMatching.h:26
gslpp::complex::conjugate
complex conjugate() const
Definition: gslpp_complex.cpp:288
ModelMatching::CMBMll
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
THDMWMatching::CPNP
virtual gslpp::complex CPNP(double xt, double xS, gslpp::complex etaU, gslpp::complex etaD)
Definition: THDMWMatching.cpp:100
THDMWMatching::THDMWMatching
THDMWMatching(const THDMW &THDMW_i)
Definition: THDMWMatching.cpp:16
NNLO
Definition: OrderScheme.h:35
THDMWcache.h
THDMWMatching::CNPVLLttEtau4
virtual double CNPVLLttEtau4(double xc, double xb, double xt, double xS)
Definition: THDMWMatching.cpp:252
THDMWMatching::CNPVLLttEtadEtasu
virtual double CNPVLLttEtadEtasu(double xc, double xb, double xt, double xS)
Definition: THDMWMatching.cpp:246
THDMWMatching.h
NLO
Definition: OrderScheme.h:34
THDMWMatching::CSNP
virtual gslpp::complex CSNP(double nu1, double xh, double xt, double xS, gslpp::complex etaU, gslpp::complex etaD)
Definition: THDMWMatching.cpp:89
FULLNNLO
Definition: OrderScheme.h:38
THDMWMatching::CNPVLLctEtadEtasu
virtual double CNPVLLctEtadEtasu(double xc, double xb, double xt, double xS)
Definition: THDMWMatching.cpp:222
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310