BOSS 7.0.4
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtBtoXsllUtil Class Reference

#include <EvtBtoXsllUtil.hh>

Public Member Functions

EvtComplex GetC7Eff0 (double sh, bool nnlo=true)
 
EvtComplex GetC7Eff1 (double sh, double mb, bool nnlo=true)
 
EvtComplex GetC9Eff0 (double sh, double mb, bool nnlo=true, bool btod=false)
 
EvtComplex GetC9Eff1 (double sh, double mb, bool nnlo=true, bool btod=false)
 
EvtComplex GetC10Eff (double sh, bool nnlo=true)
 
double dGdsProb (double mb, double ms, double ml, double s)
 
double dGdsdupProb (double mb, double ms, double ml, double s, double u)
 
double FermiMomentum (double pf)
 
double FermiMomentumProb (double pb, double pf)
 

Detailed Description

Definition at line 30 of file EvtBtoXsllUtil.hh.

Member Function Documentation

◆ dGdsdupProb()

double EvtBtoXsllUtil::dGdsdupProb ( double  mb,
double  ms,
double  ml,
double  s,
double  u 
)

Definition at line 481 of file EvtBtoXsllUtil.cc.

483{
484 // Compute the decay probability density function given a value of s and u
485 // according to Ali-Hiller-Handoko-Morozumi's 1997 paper
486 // see Appendix E
487
488 bool btod = false;
489 bool nnlo = true;
490
491 double prob;
492 double f1sp, f2sp, f3sp;
493 //double u_ext;
494 double mbeff = 4.8;
495
496 // double sh = s / (mb*mb);
497 double sh = s / (mbeff*mbeff);
498
499 EvtComplex c7eff0 = EvtBtoXsllUtil::GetC7Eff0(sh,nnlo);
500 EvtComplex c7eff1 = EvtBtoXsllUtil::GetC7Eff1(sh,mbeff,nnlo);
501 EvtComplex c9eff0 = EvtBtoXsllUtil::GetC9Eff0(sh,mbeff,nnlo,btod);
502 EvtComplex c9eff1 = EvtBtoXsllUtil::GetC9Eff1(sh,mbeff,nnlo,btod);
503 EvtComplex c10eff = EvtBtoXsllUtil::GetC10Eff(sh,nnlo);
504
505 double alphas = 0.119/
506 (1 + 0.119*log(pow(4.8,2)/pow(91.1867,2))*23.0/12.0/EvtConst::pi);
507
508 double omega7 = -8.0/3.0*log(4.8/mb)
509 -4.0/3.0*ddilog_(sh)
511 -2.0/3.0*log(sh)*log(1.0-sh)
512 -log(1-sh)*(8.0+sh)/(2.0+sh)/3.0
513 -2.0/3.0*sh*(2.0 - 2.0*sh - sh*sh)*log(sh)/pow((1.0 - sh),2)/(2.0 + sh)
514 -(16.0 - 11.0*sh - 17.0*sh*sh)/18.0/(2.0 + sh)/(1.0 - sh);
515 double eta7 = 1.0 + alphas*omega7/EvtConst::pi;
516
517 double omega79 = -4.0/3.0*log(4.8/mb)
518 -4.0/3.0*ddilog_(sh)
520 -2.0/3.0*log(sh)*log(1.0-sh)
521 -1.0/9.0*(2.0+7.0*sh)*log(1.0 - sh)/sh
522 -2.0/9.0*sh*(3.0 - 2.0*sh)*log(sh)/pow((1.0 - sh),2)
523 +1.0/18.0*(5.0 - 9.0*sh)/(1.0 - sh);
524 double eta79 = 1.0 + alphas*omega79/EvtConst::pi;
525
526 double omega9 = - 2.0/9.0*EvtConst::pi*EvtConst::pi - 4.0/3.0*ddilog_(sh)
527 - 2.0/3.0*log(sh)*log(1.0-sh)
528 - (5.0+4.0*sh)/(3.0*(1.0+2.0*sh)) * log(1.0-sh)
529 - 2.0*sh*(1.0+sh)*(1.0-2.0*sh)
530 /(3.0*pow(1.0-sh,2)*(1.0+2.0*sh)) * log(sh)
531 + (5.0+9.0*sh-6.0*sh*sh)/(6.0*(1.0-sh)*(1.0+2.0*sh));
532 double eta9 = 1.0 + alphas*omega9/EvtConst::pi;
533
534 EvtComplex c7eff = eta7*c7eff0 + c7eff1;
535 EvtComplex c9eff = eta9*c9eff0 + c9eff1;
536 c10eff *= eta9;
537
538 double c7c7 = abs2(c7eff);
539 double c7c9 = real((eta79*c7eff0 + c7eff1)*conj(eta79*c9eff0 + c9eff1));
540 double c7c10 = real((eta79*c7eff0 + c7eff1)*conj(eta9*c10eff));
541 double c9c10 = real((eta9*c9eff0 + c9eff1)*conj(eta9*c10eff));
542 double c9c9plusc10c10 = abs2(c9eff) + abs2(c10eff);
543 //double c9c9minusc10c10 = abs2(c9eff) - abs2(c10eff);
544
545 f1sp = ( pow(mb*mb-ms*ms,2) - s*s) * c9c9plusc10c10
546 + 4.0*( pow(mb,4) - ms*ms*mb*mb - pow(ms,4)*(1.0 - ms*ms/(mb*mb))
547 - 8.0*s*ms*ms - s*s*(1.0 + ms*ms/(mb*mb) ))*mb*mb*c7c7/s
548 // kludged mass term
549 *(1.0 + 2.0*ml*ml/s)
550 - 8.0*(s*(mb*mb + ms*ms) - pow(mb*mb-ms*ms,2)) * c7c9
551 // kludged mass term
552 *(1.0 + 2.0*ml*ml/s);
553
554 f2sp = 4.0*s*c9c10 + 8.0*(mb*mb + ms*ms)*c7c10;
555 f3sp = - (c9c9plusc10c10)
556 + 4.0*(1.0 + pow(ms/mb,4)) * mb*mb*c7c7/s
557 // kludged mass term
558 *(1.0 + 2.0*ml*ml/s);
559
560 prob = (f1sp + f2sp*u + f3sp*u*u)/ pow(mb,3);
561
562 return prob;
563}
Evt3Rank3C conj(const Evt3Rank3C &t2)
Definition: Evt3Rank3C.cc:175
double abs2(const EvtComplex &c)
Definition: EvtComplex.hh:221
double ddilog_(const double &sh)
XmlRpcServer s
Definition: HelloServer.cpp:11
EvtComplex GetC10Eff(double sh, bool nnlo=true)
EvtComplex GetC9Eff0(double sh, double mb, bool nnlo=true, bool btod=false)
EvtComplex GetC7Eff1(double sh, double mb, bool nnlo=true)
EvtComplex GetC7Eff0(double sh, bool nnlo=true)
EvtComplex GetC9Eff1(double sh, double mb, bool nnlo=true, bool btod=false)
static const double pi
Definition: EvtConst.hh:28

Referenced by EvtBtoXsll::decay(), and EvtBtoXsll::init().

◆ dGdsProb()

double EvtBtoXsllUtil::dGdsProb ( double  mb,
double  ms,
double  ml,
double  s 
)

Definition at line 352 of file EvtBtoXsllUtil.cc.

354{
355 // Compute the decay probability density function given a value of s
356 // according to Ali-Lunghi-Greub-Hiller's 2002 paper
357 // Note that the form given below is taken from
358 // F.Kruger and L.M.Sehgal, Phys. Lett. B380, 199 (1996)
359 // but the differential rate as a function of dilepton mass
360 // in this latter paper reduces to Eq.(12) in ALGH's 2002 paper
361 // for ml = 0 and ms = 0.
362
363 bool btod = false;
364 bool nnlo = true;
365
366 double delta, lambda, prob;
367 double f1, f2, f3, f4;
368 double msh, mlh, sh;
369 double mbeff = 4.8;
370
371 mlh = ml / mb;
372 msh = ms / mb;
373 // set lepton and strange-quark masses to 0 if need to
374 // be in strict agreement with ALGH 2002 paper
375 // mlh = 0.0; msh = 0.0;
376 // sh = s / (mb*mb);
377 sh = s / (mbeff*mbeff);
378
379 EvtComplex c7eff0 = EvtBtoXsllUtil::GetC7Eff0(sh,nnlo);
380 EvtComplex c7eff1 = EvtBtoXsllUtil::GetC7Eff1(sh,mbeff,nnlo);
381 EvtComplex c9eff0 = EvtBtoXsllUtil::GetC9Eff0(sh,mbeff,nnlo,btod);
382 EvtComplex c9eff1 = EvtBtoXsllUtil::GetC9Eff1(sh,mbeff,nnlo,btod);
383 EvtComplex c10eff = EvtBtoXsllUtil::GetC10Eff(sh,nnlo);
384
385 double alphas = 0.119/
386 (1 + 0.119*log(pow(4.8,2)/pow(91.1867,2))*23.0/12.0/EvtConst::pi);
387
388 double omega7 = -8.0/3.0*log(4.8/mb)
389 -4.0/3.0*ddilog_(sh)
391 -2.0/3.0*log(sh)*log(1.0-sh)
392 -log(1-sh)*(8.0+sh)/(2.0+sh)/3.0
393 -2.0/3.0*sh*(2.0 - 2.0*sh - sh*sh)*log(sh)/pow((1.0 - sh),2)/(2.0 + sh)
394 -(16.0 - 11.0*sh - 17.0*sh*sh)/18.0/(2.0 + sh)/(1.0 - sh);
395 double eta7 = 1.0 + alphas*omega7/EvtConst::pi;
396
397 double omega79 = -4.0/3.0*log(4.8/mb)
398 -4.0/3.0*ddilog_(sh)
400 -2.0/3.0*log(sh)*log(1.0-sh)
401 -1.0/9.0*(2.0+7.0*sh)*log(1.0 - sh)/sh
402 -2.0/9.0*sh*(3.0 - 2.0*sh)*log(sh)/pow((1.0 - sh),2)
403 +1.0/18.0*(5.0 - 9.0*sh)/(1.0 - sh);
404 double eta79 = 1.0 + alphas*omega79/EvtConst::pi;
405
406 double omega9 = -2.0/9.0*EvtConst::pi*EvtConst::pi - 4.0/3.0*ddilog_(sh)
407 - 2.0/3.0*log(sh)*log(1.0-sh)
408 - (5.0+4.0*sh)/(3.0*(1.0+2.0*sh)) * log(1.0-sh)
409 - 2.0*sh*(1.0+sh)*(1.0-2.0*sh)
410 /(3.0*pow(1.0-sh,2)*(1.0+2.0*sh)) * log(sh)
411 + (5.0+9.0*sh-6.0*sh*sh)/(6.0*(1.0-sh)*(1.0+2.0*sh));
412 double eta9 = 1.0 + alphas*omega9/EvtConst::pi;
413
414 EvtComplex c7eff = eta7*c7eff0 + c7eff1;
415 EvtComplex c9eff = eta9*c9eff0 + c9eff1;
416 c10eff *= eta9;
417
418 double c7c7 = abs2(c7eff);
419 double c7c9 = real((eta79*c7eff0 + c7eff1)*conj(eta79*c9eff0 + c9eff1));
420 double c9c9plusc10c10 = abs2(c9eff) + abs2(c10eff);
421 double c9c9minusc10c10 = abs2(c9eff) - abs2(c10eff);
422
423 // Power corrections according to ALGH 2002
424 double lambda_1 = -0.2;
425 double lambda_2 = 0.12;
426 double C1 = -0.487;
427 double C2 = 1.024;
428 double mc = 0.29 * mb;
429
430 EvtComplex F;
431 double r = s / (4.0 * mc * mc);
432 EvtComplex uniti(0.0,1.0);
433 F = 3.0 / (2.0 * r);
434 if (r < 1)
435 {
436 F *= 1.0/sqrt(r*(1.0-r))*atan(sqrt(r/(1.0-r)))-1.0;
437 }
438 else
439 {
440 F *= 0.5/sqrt(r*(r-1.0))*(log((1.0-sqrt(1.0-1.0/r))/(1.0+sqrt(1.0-1.0/r)))
441 +uniti*EvtConst::pi)-1.0;
442 }
443
444 double G1 = 1.0 + lambda_1 / (2.0 * mb * mb)
445 + 3.0 * (1.0 - 15.0*sh*sh + 10.0*sh*sh*sh)
446 / ((1.0 - sh)*(1.0 -sh)*(1.0 + 2.0*sh))
447 * lambda_2 / (2.0*mb*mb);
448 double G2 = 1.0 + lambda_1 / (2.0 * mb * mb)
449 - 3.0 * (6.0 + 3.0*sh - 5.0*sh*sh*sh)
450 / ((1.0 - sh)*(1.0 -sh)*(2.0 + sh))
451 * lambda_2 / (2.0*mb*mb);
452 double G3 = 1.0 + lambda_1 / (2.0 * mb * mb)
453 - (5.0 + 6.0*sh - 7.0*sh*sh)
454 / ((1.0 - sh)*(1.0 -sh))
455 * lambda_2 / (2.0*mb*mb);
456 double Gc = -8.0/9.0 * (C2 - C1/6.0) * lambda_2/(mc*mc)
457 * real(F*(conj(c9eff)*(2.0+sh)+conj(c7eff)*(1.0 + 6.0*sh - sh*sh)/sh));
458
459 // end of power corrections section
460 // now back to Kruger & Sehgal expressions
461
462 lambda = 1.0 + sh*sh + pow(msh,4) - 2.0*(sh + sh*msh*msh + msh*msh);
463
464 f1 = pow(1.0-msh*msh,2) - sh*(1.0 + msh*msh);
465 f2 = 2.0*(1.0 + msh*msh) * pow(1.0-msh*msh,2)
466 - sh*(1.0 + 14.0*msh*msh + pow(msh,4)) - sh*sh*(1.0 + msh*msh);
467 f3 = pow(1.0-msh*msh,2) + sh*(1.0 + msh*msh) - 2.0*sh*sh
468 + lambda*2.0*mlh*mlh/sh;
469 f4 = 1.0 - sh + msh*msh;
470
471 delta = ( 12.0*c7c9*f1*G3 + 4.0*c7c7*f2*G2/sh ) * (1.0 + 2.0*mlh*mlh/sh)
472 + c9c9plusc10c10*f3*G1
473 + 6.0*mlh*mlh*c9c9minusc10c10*f4
474 + Gc;
475
476 prob = sqrt(lambda*(1.0 - 4.0*mlh*mlh/sh)) * delta;
477
478 return prob;
479}
TFile * f1

Referenced by EvtBtoXsll::init().

◆ FermiMomentum()

double EvtBtoXsllUtil::FermiMomentum ( double  pf)

Definition at line 565 of file EvtBtoXsllUtil.cc.

566{
567 // Pick a value for the b-quark Fermi motion momentum
568 // according to Ali's Gaussian model
569
570 double pb, pbmax, xbox, ybox;
571 pb = 0.0;
572 pbmax = 5.0 * pf;
573
574 while (pb == 0.0)
575 {
576 xbox = EvtRandom::Flat(pbmax);
577 ybox = EvtRandom::Flat();
578 if (ybox < FermiMomentumProb(xbox, pf)) { pb = xbox;}
579 }
580
581 return pb;
582}
double FermiMomentumProb(double pb, double pf)
static double Flat()
Definition: EvtRandom.cc:74

Referenced by EvtBtoXsll::decay().

◆ FermiMomentumProb()

double EvtBtoXsllUtil::FermiMomentumProb ( double  pb,
double  pf 
)

Definition at line 584 of file EvtBtoXsllUtil.cc.

585{
586 // Compute probability according to Ali's Gaussian model
587 // the function chosen has a convenient maximum value of 1 for pb = pf
588
589 double prsq = (pb*pb)/(pf*pf);
590 double prob = prsq * exp(1.0 - prsq);
591
592 return prob;
593}
EvtComplex exp(const EvtComplex &c)
Definition: EvtComplex.hh:252

Referenced by FermiMomentum().

◆ GetC10Eff()

EvtComplex EvtBtoXsllUtil::GetC10Eff ( double  sh,
bool  nnlo = true 
)

Definition at line 339 of file EvtBtoXsllUtil.cc.

340{
341
342 if (!nnlo) return -4.669;
343 double A10;
344 A10 = -4.592 + 0.379;
345
346 EvtComplex c10eff;
347 c10eff = A10;
348
349 return c10eff;
350}

Referenced by dGdsdupProb(), and dGdsProb().

◆ GetC7Eff0()

EvtComplex EvtBtoXsllUtil::GetC7Eff0 ( double  sh,
bool  nnlo = true 
)

Definition at line 43 of file EvtBtoXsllUtil.cc.

44{
45 // This function returns the zeroth-order alpha_s part of C7
46
47 if (!nnlo) return -0.313;
48
49 double A7;
50
51 // use energy scale of 2.5 GeV as a computational trick (G.Hiller)
52 // at least for shat > 0.25
53 A7 = -0.353 + 0.023;
54
55 EvtComplex c7eff;
56 if (sh > 0.25)
57 {
58 c7eff = A7;
59 return c7eff;
60 }
61
62 // change energy scale to 5.0 for full NNLO calculation below shat = 0.25
63 A7 = -0.312 + 0.008;
64 c7eff = A7;
65
66 return c7eff;
67}

Referenced by dGdsdupProb(), and dGdsProb().

◆ GetC7Eff1()

EvtComplex EvtBtoXsllUtil::GetC7Eff1 ( double  sh,
double  mb,
bool  nnlo = true 
)

Definition at line 69 of file EvtBtoXsllUtil.cc.

70{
71 // This function returns the first-order alpha_s part of C7
72
73 if (!nnlo) return 0.0;
74 double logsh;
75 logsh = log(sh);
76
77 EvtComplex uniti(0.0,1.0);
78
79 EvtComplex c7eff = 0.0;
80 if (sh > 0.25)
81 {
82 return c7eff;
83 }
84
85 // change energy scale to 5.0 for full NNLO calculation below shat = 0.25
86 double muscale = 5.0;
87 double alphas = 0.215;
88 //double A7 = -0.312 + 0.008;
89 double A8 = -0.148;
90 //double A9 = 4.174 + (-0.035);
91 //double A10 = -4.592 + 0.379;
92 double C1 = -0.487;
93 double C2 = 1.024;
94 //double T9 = 0.374 + 0.252;
95 //double U9 = 0.033 + 0.015;
96 //double W9 = 0.032 + 0.012;
97 double Lmu = log(muscale/mbeff);
98
99 EvtComplex F71;
100 EvtComplex f71;
101 EvtComplex k7100(-0.68192,-0.074998);
102 EvtComplex k7101(0.0,0.0);
103 EvtComplex k7110(-0.23935,-0.12289);
104 EvtComplex k7111(0.0027424,0.019676);
105 EvtComplex k7120(-0.0018555,-0.175);
106 EvtComplex k7121(0.022864,0.011456);
107 EvtComplex k7130(0.28248,-0.12783);
108 EvtComplex k7131(0.029027,-0.0082265);
109 f71 = k7100 + k7101*logsh + sh*(k7110 + k7111*logsh) +
110 sh*sh*(k7120 + k7121*logsh) +
111 sh*sh*sh*(k7130 + k7131*logsh);
112 F71 = (-208.0/243.0)*Lmu + f71;
113
114 EvtComplex F72;
115 EvtComplex f72;
116 EvtComplex k7200(4.0915,0.44999);
117 EvtComplex k7201(0.0,0.0);
118 EvtComplex k7210(1.4361,0.73732);
119 EvtComplex k7211(-0.016454,-0.11806);
120 EvtComplex k7220(0.011133,1.05);
121 EvtComplex k7221(-0.13718,-0.068733);
122 EvtComplex k7230(-1.6949,0.76698);
123 EvtComplex k7231(-0.17416,0.049359);
124 f72 = k7200 + k7201*logsh + sh*(k7210 + k7211*logsh) +
125 sh*sh*(k7220 + k7221*logsh) +
126 sh*sh*sh*(k7230 + k7231*logsh);
127 F72 = (416.0/81.0)*Lmu + f72;
128
129 EvtComplex F78;
130 F78 = (-32.0/9.0)*Lmu + 8.0*EvtConst::pi*EvtConst::pi/27.0 + (-44.0/9.0)
131 + (-8.0*EvtConst::pi/9.0)*uniti +
132 (4.0/3.0*EvtConst::pi*EvtConst::pi - 40.0/3.0)*sh +
133 (32.0*EvtConst::pi*EvtConst::pi/9.0 - 316.0/9.0)*sh*sh +
134 (200.0*EvtConst::pi*EvtConst::pi/27.0 - 658.0/9.0)*sh*sh*sh +
135 (-8.0*logsh/9.0)*(sh + sh*sh + sh*sh*sh);
136
137 c7eff = - alphas/(4.0*EvtConst::pi)*(C1*F71 + C2*F72 + A8*F78);
138
139 return c7eff;
140}

Referenced by dGdsdupProb(), and dGdsProb().

◆ GetC9Eff0()

EvtComplex EvtBtoXsllUtil::GetC9Eff0 ( double  sh,
double  mb,
bool  nnlo = true,
bool  btod = false 
)

Definition at line 143 of file EvtBtoXsllUtil.cc.

145{
146 // This function returns the zeroth-order alpha_s part of C9
147
148 if (!nnlo) return 4.344;
149 double logsh;
150 logsh = log(sh);
151 double mch = 0.29;
152
153
154 double muscale;
155 muscale = 2.5;
156 double alphas;
157 alphas = 0.267;
158 double A8;
159 A8 = -0.164;
160 double A9;
161 A9 = 4.287 + (-0.218);
162 double A10;
163 A10 = -4.592 + 0.379;
164 double C1;
165 C1 = -0.697;
166 double C2;
167 C2 = 1.046;
168 double T9;
169 T9 = 0.114 + 0.280;
170 double U9;
171 U9 = 0.045 + 0.023;
172 double W9;
173 W9 = 0.044 + 0.016;
174
175 double Lmu;
176 Lmu = log(muscale/mbeff);
177
178
179 EvtComplex uniti(0.0,1.0);
180
182 double xarg;
183 xarg = 4.0*mch/sh;
184 hc = -4.0/9.0*log(mch*mch) + 8.0/27.0 + 4.0*xarg/9.0;
185 if (xarg < 1.0)
186 {
187 hc = hc - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))*
188 (log((sqrt(1.0 - xarg)+1.0)/(sqrt(1.0 - xarg) - 1.0)) -
189 uniti*EvtConst::pi);
190 }
191 else
192 {
193 hc = hc - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))*
194 2.0*atan(1.0/sqrt(xarg - 1.0));
195 }
196
197 EvtComplex h1;
198 xarg = 4.0/sh;
199 h1 = 8.0/27.0 + 4.0*xarg/9.0;
200 if (xarg < 1.0)
201 {
202 h1 = h1 - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))*
203 (log((sqrt(1.0 - xarg)+1.0)/(sqrt(1.0 - xarg) - 1.0)) -
204 uniti*EvtConst::pi);
205 }
206 else
207 {
208 h1 = h1 - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))*
209 2.0*atan(1.0/sqrt(xarg - 1.0));
210 }
211
212 EvtComplex h0;
213 h0 = 8.0/27.0 - 4.0*log(2.0)/9.0 + 4.0*uniti*EvtConst::pi/9.0;
214
215
216 // X=V_{ud}^* V_ub / V_{td}^* V_tb * (4/3 C_1 +C_2) * (h(\hat m_c^2, hat s)-
217 // h(\hat m_u^2, hat s))
218 EvtComplex Vudstar(1.0 - 0.2279*0.2279/2.0, 0.0);
219 EvtComplex Vub((0.118+0.273)/2.0, -1.0*(0.305+0.393)/2.0);
220 EvtComplex Vtdstar(1.0 - (0.118+0.273)/2.0,(0.305+0.393)/2.0);
221 EvtComplex Vtb(1.0,0.0);
222
223 EvtComplex Xd;
224 Xd = (Vudstar * Vub / Vtdstar * Vtb) * (4.0/3.0*C1 + C2) * (hc - h0);
225
226 EvtComplex c9eff = 4.344;
227 if (sh > 0.25)
228 {
229 c9eff = A9 + T9*hc + U9*h1 + W9*h0;
230 if (btod)
231 {
232 c9eff += Xd;
233 }
234 return c9eff;
235 }
236
237 // change energy scale to 5.0 for full NNLO calculation below shat = 0.25
238 muscale = 5.0;
239 alphas = 0.215;
240 A9 = 4.174 + (-0.035);
241 C1 = -0.487;
242 C2 = 1.024;
243 A8 = -0.148;
244 T9 = 0.374 + 0.252;
245 U9 = 0.033 + 0.015;
246 W9 = 0.032 + 0.012;
247 Lmu = log(muscale/mbeff);
248
249 Xd = (Vudstar * Vub / Vtdstar * Vtb) * (4.0/3.0*C1 + C2) * (hc - h0);
250
251 c9eff = A9 + T9*hc + U9*h1 + W9*h0;
252
253 if (btod)
254 {
255 c9eff += Xd;
256 }
257
258 return c9eff;
259}
const double hc
Definition: TConstant.h:41

Referenced by dGdsdupProb(), and dGdsProb().

◆ GetC9Eff1()

EvtComplex EvtBtoXsllUtil::GetC9Eff1 ( double  sh,
double  mb,
bool  nnlo = true,
bool  btod = false 
)

Definition at line 261 of file EvtBtoXsllUtil.cc.

263{
264 // This function returns the first-order alpha_s part of C9
265
266 if (!nnlo) return 0.0;
267 double logsh;
268 logsh = log(sh);
269 double mch = 0.29;
270
271 EvtComplex uniti(0.0,1.0);
272
273 EvtComplex c9eff = 0.0;
274 if (sh > 0.25)
275 {
276 return c9eff;
277 }
278
279 // change energy scale to 5.0 for full NNLO calculation below shat = 0.25
280 double muscale = 5.0;
281 double alphas = 0.215;
282 double C1 = -0.487;
283 double C2 = 1.024;
284 double A8 = -0.148;
285 double Lmu = log(muscale/mbeff);
286
287 EvtComplex F91;
288 EvtComplex f91;
289 EvtComplex k9100(-11.973,0.16371);
290 EvtComplex k9101(-0.081271,-0.059691);
291 EvtComplex k9110(-28.432,-0.25044);
292 EvtComplex k9111(-0.040243,0.016442);
293 EvtComplex k9120(-57.114,-0.86486);
294 EvtComplex k9121(-0.035191,0.027909);
295 EvtComplex k9130(-128.8,-2.5243);
296 EvtComplex k9131(-0.017587,0.050639);
297 f91 = k9100 + k9101*logsh + sh*(k9110 + k9111*logsh) +
298 sh*sh*(k9120 + k9121*logsh) +
299 sh*sh*sh*(k9130 + k9131*logsh);
300 F91 = (-1424.0/729.0 + 16.0*uniti*EvtConst::pi/243.0
301 + 64.0/27.0*log(mch))*Lmu - 16.0*Lmu*logsh/243.0 +
302 (16.0/1215.0 - 32.0/135.0/mch/mch)*Lmu*sh +
303 (4.0/2835.0 - 8.0/315.0/mch/mch/mch/mch)*Lmu*sh*sh +
304 (16.0/76545.0 - 32.0/8505.0/mch/mch/mch/mch/mch/mch)*
305 Lmu*sh*sh*sh -256.0*Lmu*Lmu/243.0 + f91;
306
307 EvtComplex F92;
308 EvtComplex f92;
309 EvtComplex k9200(6.6338,-0.98225);
310 EvtComplex k9201(0.48763,0.35815);
311 EvtComplex k9210(3.3585,1.5026);
312 EvtComplex k9211(0.24146,-0.098649);
313 EvtComplex k9220(-1.1906,5.1892);
314 EvtComplex k9221(0.21115,-0.16745);
315 EvtComplex k9230(-17.12,15.146);
316 EvtComplex k9231(0.10552,-0.30383);
317 f92 = k9200 + k9201*logsh + sh*(k9210 + k9211*logsh) +
318 sh*sh*(k9220 + k9221*logsh) +
319 sh*sh*sh*(k9230 + k9231*logsh);
320 F92 = (256.0/243.0 - 32.0*uniti*EvtConst::pi/81.0
321 - 128.0/9.0*log(mch))*Lmu + 32.0*Lmu*logsh/81.0 +
322 (-32.0/405.0 + 64.0/45.0/mch/mch)*Lmu*sh +
323 (-8.0/945.0 + 16.0/105.0/mch/mch/mch/mch)*Lmu*sh*sh +
324 (-32.0/25515.0 + 64.0/2835.0/mch/mch/mch/mch/mch/mch)*
325 Lmu*sh*sh*sh + 512.0*Lmu*Lmu/81.0 + f92;
326
327 EvtComplex F98;
328 F98 = 104.0/9.0 - 32.0*EvtConst::pi*EvtConst::pi/27.0 +
329 (1184.0/27.0 - 40.0*EvtConst::pi*EvtConst::pi/9.0)*sh +
330 (14212.0/135.0 - 32.0*EvtConst::pi*EvtConst::pi/3.0)*sh*sh +
331 (193444.0/945.0 - 560.0*EvtConst::pi*EvtConst::pi/27.0)*sh*sh*sh +
332 16.0*logsh/9.0*(1.0 + sh + sh*sh + sh*sh*sh);
333
334 c9eff = - alphas/(4.0*EvtConst::pi)*(C1*F91 + C2*F92 + A8*F98);
335
336 return c9eff;
337}

Referenced by dGdsdupProb(), and dGdsProb().


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