BOSS 8.0.0
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 452 of file EvtBtoXsllUtil.cc.

452 {
453 // Compute the decay probability density function given a value of s and u
454 // according to Ali-Hiller-Handoko-Morozumi's 1997 paper
455 // see Appendix E
456
457 bool btod = false;
458 bool nnlo = true;
459
460 double prob;
461 double f1sp, f2sp, f3sp;
462 // double u_ext;
463 double mbeff = 4.8;
464
465 // double sh = s / (mb*mb);
466 double sh = s / ( mbeff * mbeff );
467
468 EvtComplex c7eff0 = EvtBtoXsllUtil::GetC7Eff0( sh, nnlo );
469 EvtComplex c7eff1 = EvtBtoXsllUtil::GetC7Eff1( sh, mbeff, nnlo );
470 EvtComplex c9eff0 = EvtBtoXsllUtil::GetC9Eff0( sh, mbeff, nnlo, btod );
471 EvtComplex c9eff1 = EvtBtoXsllUtil::GetC9Eff1( sh, mbeff, nnlo, btod );
472 EvtComplex c10eff = EvtBtoXsllUtil::GetC10Eff( sh, nnlo );
473
474 double alphas = 0.119 / ( 1 + 0.119 * log( pow( 4.8, 2 ) / pow( 91.1867, 2 ) ) * 23.0 /
475 12.0 / EvtConst::pi );
476
477 double omega7 = -8.0 / 3.0 * log( 4.8 / mb ) - 4.0 / 3.0 * ddilog_( sh ) -
478 2.0 / 9.0 * EvtConst::pi * EvtConst::pi -
479 2.0 / 3.0 * log( sh ) * log( 1.0 - sh ) -
480 log( 1 - sh ) * ( 8.0 + sh ) / ( 2.0 + sh ) / 3.0 -
481 2.0 / 3.0 * sh * ( 2.0 - 2.0 * sh - sh * sh ) * log( sh ) /
482 pow( ( 1.0 - sh ), 2 ) / ( 2.0 + sh ) -
483 ( 16.0 - 11.0 * sh - 17.0 * sh * sh ) / 18.0 / ( 2.0 + sh ) / ( 1.0 - sh );
484 double eta7 = 1.0 + alphas * omega7 / EvtConst::pi;
485
486 double omega79 = -4.0 / 3.0 * log( 4.8 / mb ) - 4.0 / 3.0 * ddilog_( sh ) -
487 2.0 / 9.0 * EvtConst::pi * EvtConst::pi -
488 2.0 / 3.0 * log( sh ) * log( 1.0 - sh ) -
489 1.0 / 9.0 * ( 2.0 + 7.0 * sh ) * log( 1.0 - sh ) / sh -
490 2.0 / 9.0 * sh * ( 3.0 - 2.0 * sh ) * log( sh ) / pow( ( 1.0 - sh ), 2 ) +
491 1.0 / 18.0 * ( 5.0 - 9.0 * sh ) / ( 1.0 - sh );
492 double eta79 = 1.0 + alphas * omega79 / EvtConst::pi;
493
494 double omega9 =
495 -2.0 / 9.0 * EvtConst::pi * EvtConst::pi - 4.0 / 3.0 * ddilog_( sh ) -
496 2.0 / 3.0 * log( sh ) * log( 1.0 - sh ) -
497 ( 5.0 + 4.0 * sh ) / ( 3.0 * ( 1.0 + 2.0 * sh ) ) * log( 1.0 - sh ) -
498 2.0 * sh * ( 1.0 + sh ) * ( 1.0 - 2.0 * sh ) /
499 ( 3.0 * pow( 1.0 - sh, 2 ) * ( 1.0 + 2.0 * sh ) ) * log( sh ) +
500 ( 5.0 + 9.0 * sh - 6.0 * sh * sh ) / ( 6.0 * ( 1.0 - sh ) * ( 1.0 + 2.0 * sh ) );
501 double eta9 = 1.0 + alphas * omega9 / EvtConst::pi;
502
503 EvtComplex c7eff = eta7 * c7eff0 + c7eff1;
504 EvtComplex c9eff = eta9 * c9eff0 + c9eff1;
505 c10eff *= eta9;
506
507 double c7c7 = abs2( c7eff );
508 double c7c9 = real( ( eta79 * c7eff0 + c7eff1 ) * conj( eta79 * c9eff0 + c9eff1 ) );
509 double c7c10 = real( ( eta79 * c7eff0 + c7eff1 ) * conj( eta9 * c10eff ) );
510 double c9c10 = real( ( eta9 * c9eff0 + c9eff1 ) * conj( eta9 * c10eff ) );
511 double c9c9plusc10c10 = abs2( c9eff ) + abs2( c10eff );
512 // double c9c9minusc10c10 = abs2(c9eff) - abs2(c10eff);
513
514 f1sp =
515 ( pow( mb * mb - ms * ms, 2 ) - s * s ) * c9c9plusc10c10 +
516 4.0 *
517 ( pow( mb, 4 ) - ms * ms * mb * mb - pow( ms, 4 ) * ( 1.0 - ms * ms / ( mb * mb ) ) -
518 8.0 * s * ms * ms - s * s * ( 1.0 + ms * ms / ( mb * mb ) ) ) *
519 mb * mb * c7c7 /
520 s
521 // kludged mass term
522 * ( 1.0 + 2.0 * ml * ml / s ) -
523 8.0 * ( s * ( mb * mb + ms * ms ) - pow( mb * mb - ms * ms, 2 ) ) *
524 c7c9
525 // kludged mass term
526 * ( 1.0 + 2.0 * ml * ml / s );
527
528 f2sp = 4.0 * s * c9c10 + 8.0 * ( mb * mb + ms * ms ) * c7c10;
529 f3sp = -( c9c9plusc10c10 ) + 4.0 * ( 1.0 + pow( ms / mb, 4 ) ) * mb * mb * c7c7 /
530 s
531 // kludged mass term
532 * ( 1.0 + 2.0 * ml * ml / s );
533
534 prob = ( f1sp + f2sp * u + f3sp * u * u ) / pow( mb, 3 );
535
536 return prob;
537}
character *LEPTONflag integer iresonances real zeta5 real adp3 real large_3 real zeta5 common params adp3 common switch large_3 common lepton LEPTONflag common RESFIT IRESON common RES iresonances common alpgmu era0 common physparams ERMW common leptomass ml
Evt3Rank3C conj(const Evt3Rank3C &t2)
double abs2(const EvtComplex &c)
double ddilog_(const double &sh)
XmlRpcServer s
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:27

◆ dGdsProb()

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

Definition at line 327 of file EvtBtoXsllUtil.cc.

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

◆ FermiMomentum()

double EvtBtoXsllUtil::FermiMomentum ( double pf)

Definition at line 539 of file EvtBtoXsllUtil.cc.

539 {
540 // Pick a value for the b-quark Fermi motion momentum
541 // according to Ali's Gaussian model
542
543 double pb, pbmax, xbox, ybox;
544 pb = 0.0;
545 pbmax = 5.0 * pf;
546
547 while ( pb == 0.0 )
548 {
549 xbox = EvtRandom::Flat( pbmax );
550 ybox = EvtRandom::Flat();
551 if ( ybox < FermiMomentumProb( xbox, pf ) ) { pb = xbox; }
552 }
553
554 return pb;
555}
double FermiMomentumProb(double pb, double pf)
static double Flat()
Definition EvtRandom.cc:69

◆ FermiMomentumProb()

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

Definition at line 557 of file EvtBtoXsllUtil.cc.

557 {
558 // Compute probability according to Ali's Gaussian model
559 // the function chosen has a convenient maximum value of 1 for pb = pf
560
561 double prsq = ( pb * pb ) / ( pf * pf );
562 double prob = prsq * exp( 1.0 - prsq );
563
564 return prob;
565}
EvtComplex exp(const EvtComplex &c)

Referenced by FermiMomentum().

◆ GetC10Eff()

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

Definition at line 315 of file EvtBtoXsllUtil.cc.

315 {
316
317 if ( !nnlo ) return -4.669;
318 double A10;
319 A10 = -4.592 + 0.379;
320
321 EvtComplex c10eff;
322 c10eff = A10;
323
324 return c10eff;
325}

Referenced by dGdsdupProb(), and dGdsProb().

◆ GetC7Eff0()

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

Definition at line 43 of file EvtBtoXsllUtil.cc.

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

Referenced by dGdsdupProb(), and dGdsProb().

◆ GetC7Eff1()

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

Definition at line 68 of file EvtBtoXsllUtil.cc.

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

Referenced by dGdsdupProb(), and dGdsProb().

◆ GetC9Eff0()

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

Definition at line 135 of file EvtBtoXsllUtil.cc.

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

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

Referenced by dGdsdupProb(), and dGdsProb().


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