00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "EvtGenBase/EvtPatches.hh"
00023 #include "EvtGenBase/EvtPatches.hh"
00024 #include "EvtGenBase/EvtParticle.hh"
00025 #include "EvtGenBase/EvtGenKine.hh"
00026 #include "EvtGenBase/EvtPDL.hh"
00027 #include "EvtGenBase/EvtReport.hh"
00028 #include "EvtGenBase/EvtVector4C.hh"
00029 #include "EvtGenBase/EvtTensor4C.hh"
00030 #include "EvtGenBase/EvtDiracSpinor.hh"
00031 #include "EvtGenModels/EvtbTosllAmp.hh"
00032 #include "EvtGenBase/EvtId.hh"
00033 #include "EvtGenBase/EvtAmp.hh"
00034 #include "EvtGenBase/EvtScalarParticle.hh"
00035 #include "EvtGenBase/EvtVectorParticle.hh"
00036
00037 double EvtbTosllAmp::CalcMaxProb( EvtId parent, EvtId meson,
00038 EvtId lepton1, EvtId lepton2,
00039 EvtbTosllFF *FormFactors,
00040 double& poleSize) {
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 EvtScalarParticle *scalar_part;
00054 EvtParticle *root_part;
00055
00056 scalar_part=new EvtScalarParticle;
00057
00058
00059 scalar_part->noLifeTime();
00060
00061 EvtVector4R p_init;
00062
00063 p_init.set(EvtPDL::getMass(parent),0.0,0.0,0.0);
00064 scalar_part->init(parent,p_init);
00065 root_part=(EvtParticle *)scalar_part;
00066 root_part->setDiagonalSpinDensity();
00067
00068 EvtParticle *daughter, *lep1, *lep2;
00069
00070 EvtAmp amp;
00071
00072 EvtId listdaug[3];
00073 listdaug[0] = meson;
00074 listdaug[1] = lepton1;
00075 listdaug[2] = lepton2;
00076
00077 amp.init(parent,3,listdaug);
00078
00079 root_part->makeDaughters(3,listdaug);
00080 daughter=root_part->getDaug(0);
00081 lep1=root_part->getDaug(1);
00082 lep2=root_part->getDaug(2);
00083
00084
00085 daughter->noLifeTime();
00086 lep1->noLifeTime();
00087 lep2->noLifeTime();
00088
00089
00090
00091
00092 EvtSpinDensity rho;
00093 rho.SetDiag(root_part->getSpinStates());
00094
00095 double mass[3];
00096
00097 double m = root_part->mass();
00098
00099 EvtVector4R p4meson, p4lepton1, p4lepton2, p4w;
00100 double q2max;
00101
00102 double q2, elepton, plepton;
00103 int i,j;
00104 double erho,prho,costl;
00105
00106 double maxfoundprob = 0.0;
00107 double prob = -10.0;
00108 int massiter;
00109
00110 double maxpole=0;
00111
00112 for (massiter=0;massiter<3;massiter++){
00113
00114 mass[0] = EvtPDL::getMeanMass(meson);
00115 mass[1] = EvtPDL::getMeanMass(lepton1);
00116 mass[2] = EvtPDL::getMeanMass(lepton2);
00117 if ( massiter==1 ) {
00118 mass[0] = EvtPDL::getMinMass(meson);
00119 }
00120 if ( massiter==2 ) {
00121 mass[0] = EvtPDL::getMaxMass(meson);
00122 if ( (mass[0]+mass[1]+mass[2])>m) mass[0]=m-mass[1]-mass[2]-0.00001;
00123 }
00124
00125 q2max = (m-mass[0])*(m-mass[0]);
00126
00127
00128
00129 for (i=0;i<25;i++) {
00130
00131 q2 = ((i+1.5)*q2max)/26.0;
00132
00133 if (i==0) q2=4*(mass[1]*mass[1]);
00134
00135 erho = ( m*m + mass[0]*mass[0] - q2 )/(2.0*m);
00136
00137 prho = sqrt(erho*erho-mass[0]*mass[0]);
00138
00139 p4meson.set(erho,0.0,0.0,-1.0*prho);
00140 p4w.set(m-erho,0.0,0.0,prho);
00141
00142
00143 elepton = (q2+mass[1]*mass[1])/(2.0*sqrt(q2));
00144 plepton = sqrt(elepton*elepton-mass[1]*mass[1]);
00145
00146 double probctl[3];
00147
00148 for (j=0;j<3;j++) {
00149
00150 costl = 0.99*(j - 1.0);
00151
00152
00153
00154 p4lepton1.set(elepton,0.0,
00155 plepton*sqrt(1.0-costl*costl),plepton*costl);
00156 p4lepton2.set(elepton,0.0,
00157 -1.0*plepton*sqrt(1.0-costl*costl),-1.0*plepton*costl);
00158
00159 EvtVector4R boost((m-erho),0.0,0.0,1.0*prho);
00160 p4lepton1=boostTo(p4lepton1,boost);
00161 p4lepton2=boostTo(p4lepton2,boost);
00162
00163
00164
00165 daughter->init(meson,p4meson);
00166 lep1->init(lepton1,p4lepton1);
00167 lep2->init(lepton2,p4lepton2);
00168
00169 CalcAmp(root_part,amp,FormFactors);
00170
00171
00172
00173
00174
00175
00176
00177
00178 prob = rho.NormalizedProb(amp.getSpinDensity());
00179
00180
00181
00182 probctl[j]=prob;
00183 }
00184
00185
00186
00187
00188 double a=probctl[1];
00189 double b=0.5*(probctl[2]-probctl[0]);
00190 double c=0.5*(probctl[2]+probctl[0])-probctl[1];
00191
00192 prob=probctl[0];
00193 if (probctl[1]>prob) prob=probctl[1];
00194 if (probctl[2]>prob) prob=probctl[2];
00195
00196 if (fabs(c)>1e-20){
00197 double ctlx=-0.5*b/c;
00198 if (fabs(ctlx)<1.0){
00199 double probtmp=a+b*ctlx+c*ctlx*ctlx;
00200 if (probtmp>prob) prob=probtmp;
00201 }
00202
00203 }
00204
00205
00206
00207
00208
00209
00210 if (i==0) {
00211 maxpole=prob;
00212 continue;
00213 }
00214
00215 if ( prob > maxfoundprob ) {
00216 maxfoundprob = prob;
00217 }
00218
00219
00220
00221 }
00222 if ( EvtPDL::getWidth(meson) <= 0.0 ) {
00223
00224 massiter = 4;
00225 }
00226
00227 }
00228
00229 root_part->deleteTree();
00230
00231 poleSize=0.04*(maxpole/maxfoundprob)*4*(mass[1]*mass[1]);
00232
00233
00234
00235
00236
00237
00238 maxfoundprob *=1.15;
00239
00240 return maxfoundprob;
00241
00242 }
00243
00244
00245 EvtComplex EvtbTosllAmp::GetC7Eff(double q2, bool nnlo)
00246 {
00247
00248 if (!nnlo) return -0.313;
00249 double mbeff = 4.8;
00250 double shat = q2/mbeff/mbeff;
00251 double logshat;
00252 logshat = log(shat);
00253
00254 double muscale;
00255 muscale = 2.5;
00256 double alphas;
00257 alphas = 0.267;
00258 double A7;
00259 A7 = -0.353 + 0.023;
00260 double A8;
00261 A8 = -0.164;
00262 double A9;
00263 A9 = 4.287 + (-0.218);
00264 double A10;
00265 A10 = -4.592 + 0.379;
00266 double C1;
00267 C1 = -0.697;
00268 double C2;
00269 C2 = 1.046;
00270 double T9;
00271 T9 = 0.114 + 0.280;
00272 double U9;
00273 U9 = 0.045 + 0.023;
00274 double W9;
00275 W9 = 0.044 + 0.016;
00276
00277 double Lmu;
00278 Lmu = log(muscale/mbeff);
00279
00280 EvtComplex uniti(0.0,1.0);
00281
00282 EvtComplex c7eff;
00283 if (shat > 0.25)
00284 {
00285 c7eff = A7;
00286 return c7eff;
00287 }
00288
00289
00290
00291
00292
00293 muscale = 5.0;
00294 alphas = 0.215;
00295 A7 = -0.312 + 0.008;
00296 A8 = -0.148;
00297 A9 = 4.174 + (-0.035);
00298 A10 = -4.592 + 0.379;
00299 C1 = -0.487;
00300 C2 = 1.024;
00301 T9 = 0.374 + 0.252;
00302 U9 = 0.033 + 0.015;
00303 W9 = 0.032 + 0.012;
00304 Lmu = log(muscale/mbeff);
00305
00306 EvtComplex F71;
00307 EvtComplex f71;
00308 EvtComplex k7100(-0.68192,-0.074998);
00309 EvtComplex k7101(0.0,0.0);
00310 EvtComplex k7110(-0.23935,-0.12289);
00311 EvtComplex k7111(0.0027424,0.019676);
00312 EvtComplex k7120(-0.0018555,-0.175);
00313 EvtComplex k7121(0.022864,0.011456);
00314 EvtComplex k7130(0.28248,-0.12783);
00315 EvtComplex k7131(0.029027,-0.0082265);
00316 f71 = k7100 + k7101*logshat + shat*(k7110 + k7111*logshat) +
00317 shat*shat*(k7120 + k7121*logshat) +
00318 shat*shat*shat*(k7130 + k7131*logshat);
00319 F71 = (-208.0/243.0)*Lmu + f71;
00320
00321 EvtComplex F72;
00322 EvtComplex f72;
00323 EvtComplex k7200(4.0915,0.44999);
00324 EvtComplex k7201(0.0,0.0);
00325 EvtComplex k7210(1.4361,0.73732);
00326 EvtComplex k7211(-0.016454,-0.11806);
00327 EvtComplex k7220(0.011133,1.05);
00328 EvtComplex k7221(-0.13718,-0.068733);
00329 EvtComplex k7230(-1.6949,0.76698);
00330 EvtComplex k7231(-0.17416,0.049359);
00331 f72 = k7200 + k7201*logshat + shat*(k7210 + k7211*logshat) +
00332 shat*shat*(k7220 + k7221*logshat) +
00333 shat*shat*shat*(k7230 + k7231*logshat);
00334 F72 = (416.0/81.0)*Lmu + f72;
00335
00336 EvtComplex F78;
00337 F78 = (-32.0/9.0)*Lmu + 8.0*EvtConst::pi*EvtConst::pi/27.0 + (-44.0/9.0)
00338 + (-8.0*EvtConst::pi/9.0)*uniti +
00339 (4.0/3.0*EvtConst::pi*EvtConst::pi - 40.0/3.0)*shat +
00340 (32.0*EvtConst::pi*EvtConst::pi/9.0 - 316.0/9.0)*shat*shat +
00341 (200.0*EvtConst::pi*EvtConst::pi/27.0 - 658.0/9.0)*shat*shat*shat +
00342 (-8.0*logshat/9.0)*(shat + shat*shat + shat*shat*shat);
00343
00344 c7eff = A7 - alphas/(4.0*EvtConst::pi)*(C1*F71 + C2*F72 + A8*F78);
00345
00346 return c7eff;
00347 }
00348
00349
00350 EvtComplex EvtbTosllAmp::GetC9Eff(double q2, bool nnlo, bool btod)
00351 {
00352
00353 if (!nnlo) return 4.344;
00354 double mbeff = 4.8;
00355 double shat = q2/mbeff/mbeff;
00356 double logshat;
00357 logshat = log(shat);
00358 double mchat = 0.29;
00359
00360
00361 double muscale;
00362 muscale = 2.5;
00363 double alphas;
00364 alphas = 0.267;
00365 double A7;
00366 A7 = -0.353 + 0.023;
00367 double A8;
00368 A8 = -0.164;
00369 double A9;
00370 A9 = 4.287 + (-0.218);
00371 double A10;
00372 A10 = -4.592 + 0.379;
00373 double C1;
00374 C1 = -0.697;
00375 double C2;
00376 C2 = 1.046;
00377 double T9;
00378 T9 = 0.114 + 0.280;
00379 double U9;
00380 U9 = 0.045 + 0.023;
00381 double W9;
00382 W9 = 0.044 + 0.016;
00383
00384 double Lmu;
00385 Lmu = log(muscale/mbeff);
00386
00387
00388 EvtComplex uniti(0.0,1.0);
00389
00390 EvtComplex hc;
00391 double xarg;
00392 xarg = 4.0*mchat/shat;
00393 hc = -4.0/9.0*log(mchat*mchat) + 8.0/27.0 + 4.0*xarg/9.0;
00394
00395 if (xarg < 1.0)
00396 {
00397 hc = hc - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))*
00398 (log(fabs((sqrt(1.0 - xarg)+1.0)/(sqrt(1.0 - xarg) - 1.0))) -
00399 uniti*EvtConst::pi);
00400 }
00401 else
00402 {
00403 hc = hc - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))*
00404 2.0*atan(1.0/sqrt(xarg - 1.0));
00405 }
00406
00407 EvtComplex h1;
00408 xarg = 4.0/shat;
00409 h1 = 8.0/27.0 + 4.0*xarg/9.0;
00410 if (xarg < 1.0)
00411 {
00412 h1 = h1 - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))*
00413 (log(fabs((sqrt(1.0 - xarg)+1.0)/(sqrt(1.0 - xarg) - 1.0))) -
00414 uniti*EvtConst::pi);
00415 }
00416 else
00417 {
00418 h1 = h1 - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))*
00419 2.0*atan(1.0/sqrt(xarg - 1.0));
00420 }
00421
00422
00423 EvtComplex h0;
00424 h0 = 8.0/27.0 - 4.0*log(2.0)/9.0 + 4.0*uniti*EvtConst::pi/9.0;
00425
00426
00427
00428
00429 EvtComplex Vudstar(1.0 - 0.2279*0.2279/2.0, 0.0);
00430 EvtComplex Vub((0.118+0.273)/2.0, -1.0*(0.305+0.393)/2.0);
00431 EvtComplex Vtdstar(1.0 - (0.118+0.273)/2.0,(0.305+0.393)/2.0);
00432 EvtComplex Vtb(1.0,0.0);
00433
00434 EvtComplex Xd;
00435 Xd = (Vudstar * Vub / Vtdstar * Vtb) * (4.0/3.0*C1 + C2) * (hc - h0);
00436
00437
00438 EvtComplex c9eff=4.344;
00439 if (shat > 0.25)
00440 {
00441 c9eff = A9 + T9*hc + U9*h1 + W9*h0;
00442 if (btod)
00443 {
00444 c9eff += Xd;
00445 }
00446
00447 return c9eff;
00448 }
00449
00450
00451 muscale = 5.0;
00452 alphas = 0.215;
00453 A9 = 4.174 + (-0.035);
00454 C1 = -0.487;
00455 C2 = 1.024;
00456 A8 = -0.148;
00457 T9 = 0.374 + 0.252;
00458 U9 = 0.033 + 0.015;
00459 W9 = 0.032 + 0.012;
00460 Lmu = log(muscale/mbeff);
00461
00462 EvtComplex F91;
00463 EvtComplex f91;
00464 EvtComplex k9100(-11.973,0.16371);
00465 EvtComplex k9101(-0.081271,-0.059691);
00466 EvtComplex k9110(-28.432,-0.25044);
00467 EvtComplex k9111(-0.040243,0.016442);
00468 EvtComplex k9120(-57.114,-0.86486);
00469 EvtComplex k9121(-0.035191,0.027909);
00470 EvtComplex k9130(-128.8,-2.5243);
00471 EvtComplex k9131(-0.017587,0.050639);
00472 f91 = k9100 + k9101*logshat + shat*(k9110 + k9111*logshat) +
00473 shat*shat*(k9120 + k9121*logshat) +
00474 shat*shat*shat*(k9130 + k9131*logshat);
00475 F91 = (-1424.0/729.0 + 16.0*uniti*EvtConst::pi/243.0
00476 + 64.0/27.0*log(mchat))*Lmu - 16.0*Lmu*logshat/243.0 +
00477 (16.0/1215.0 - 32.0/135.0/mchat/mchat)*Lmu*shat +
00478 (4.0/2835.0 - 8.0/315.0/mchat/mchat/mchat/mchat)*Lmu*shat*shat +
00479 (16.0/76545.0 - 32.0/8505.0/mchat/mchat/mchat/mchat/mchat/mchat)*
00480 Lmu*shat*shat*shat -256.0*Lmu*Lmu/243.0 + f91;
00481
00482 EvtComplex F92;
00483 EvtComplex f92;
00484 EvtComplex k9200(6.6338,-0.98225);
00485 EvtComplex k9201(0.48763,0.35815);
00486 EvtComplex k9210(3.3585,1.5026);
00487 EvtComplex k9211(0.24146,-0.098649);
00488 EvtComplex k9220(-1.1906,5.1892);
00489 EvtComplex k9221(0.21115,-0.16745);
00490 EvtComplex k9230(-17.12,15.146);
00491 EvtComplex k9231(0.10552,-0.30383);
00492 f92 = k9200 + k9201*logshat + shat*(k9210 + k9211*logshat) +
00493 shat*shat*(k9220 + k9221*logshat) +
00494 shat*shat*shat*(k9230 + k9231*logshat);
00495 F92 = (256.0/243.0 - 32.0*uniti*EvtConst::pi/81.0
00496 - 128.0/9.0*log(mchat))*Lmu + 32.0*Lmu*logshat/81.0 +
00497 (-32.0/405.0 + 64.0/45.0/mchat/mchat)*Lmu*shat +
00498 (-8.0/945.0 + 16.0/105.0/mchat/mchat/mchat/mchat)*Lmu*shat*shat +
00499 (-32.0/25515.0 + 64.0/2835.0/mchat/mchat/mchat/mchat/mchat/mchat)*
00500 Lmu*shat*shat*shat + 512.0*Lmu*Lmu/81.0 + f92;
00501
00502 EvtComplex F98;
00503 F98 = 104.0/9.0 - 32.0*EvtConst::pi*EvtConst::pi/27.0 +
00504 (1184.0/27.0 - 40.0*EvtConst::pi*EvtConst::pi/9.0)*shat +
00505 (14212.0/135.0 - 32.0*EvtConst::pi*EvtConst::pi/3.0)*shat*shat +
00506 (193444.0/945.0 - 560.0*EvtConst::pi*EvtConst::pi/27.0)*shat*shat*shat +
00507 16.0*logshat/9.0*(1.0 + shat + shat*shat + shat*shat*shat);
00508
00509 Xd = (Vudstar * Vub / Vtdstar * Vtb) * (4.0/3.0*C1 + C2) * (hc - h0);
00510
00511 c9eff = A9 + T9*hc + U9*h1 + W9*h0 -
00512 alphas/(4.0*EvtConst::pi)*(C1*F91 + C2*F92 + A8*F98);
00513 if (btod)
00514 {
00515 c9eff += Xd;
00516 }
00517
00518 return c9eff;
00519 }
00520
00521 EvtComplex EvtbTosllAmp::GetC10Eff(double q2, bool nnlo)
00522 {
00523
00524 if (!nnlo) return -4.669;
00525 double A10;
00526 A10 = -4.592 + 0.379;
00527
00528 EvtComplex c10eff;
00529 c10eff = A10;
00530
00531 return c10eff;
00532 }
00533
00534 double EvtbTosllAmp::dGdsProb(double mb, double ms, double ml,
00535 double s)
00536 {
00537
00538
00539
00540
00541 double delta, lambda, prob;
00542 double f1, f2, f3, f4;
00543 double msh, mlh, sh;
00544
00545 mlh = ml / mb;
00546 msh = ms / mb;
00547 sh = s / (mb*mb);
00548
00549 EvtComplex c9eff = EvtbTosllAmp::GetC9Eff(sh*mb);
00550 EvtComplex c7eff = EvtbTosllAmp::GetC7Eff(sh*mb);
00551 EvtComplex c10eff = EvtbTosllAmp::GetC10Eff(sh*mb);
00552
00553 double alphas = 0.119/
00554 (1 + 0.119*log(pow(4.8,2)/pow(91.1867,2))*23.0/12.0/EvtConst::pi);
00555 double omega9 = -2.0/9.0*EvtConst::pi*EvtConst::pi - 4.0/3.0*ddilog_(sh)
00556 - 2.0/3.0*log(sh)*log(1.0-sh)
00557 - (5.0+4.0*sh)/(3.0*(1.0+2.0*sh)) * log(1.0-sh)
00558 - 2.0*sh*(1.0+sh)*(1.0-2.0*sh)
00559 /(3.0*pow(1.0-sh,2)*(1.0+2.0*sh)) * log(sh)
00560 + (5.0+9.0*sh-6.0*sh*sh)/(6.0*(1.0-sh)*(1.0+2.0*sh));
00561 double eta9 = 1.0 + alphas*omega9/EvtConst::pi;
00562 double omega7 = -8.0/3.0*log(4.8/mb)
00563 -4.0/3.0*ddilog_(sh)
00564 -2.0/9.0*EvtConst::pi*EvtConst::pi
00565 -2.0/3.0*log(sh)*log(1.0-sh)
00566 -log(1-sh)*(8.0+sh)/(2.0+sh)/3.0
00567 -2.0/3.0*sh*(2.0 - 2.0*sh - sh*sh)*log(sh)/pow((1.0 - sh),2)/(2.0 + sh)
00568 -(16.0 - 11.0*sh - 17.0*sh*sh)/18.0/(2.0 + sh)/(1.0 - sh);
00569 double eta7 = 1.0 + alphas*omega7/EvtConst::pi;
00570
00571 double omega79 = -4.0/3.0*log(4.8/mb)
00572 -4.0/3.0*ddilog_(sh)
00573 -2.0/9.0*EvtConst::pi*EvtConst::pi
00574 -2.0/3.0*log(sh)*log(1.0-sh)
00575 -1.0/9.0*(2.0+7.0*sh)*log(1.0 - sh)/sh
00576 -2.0/9.0*sh*(3.0 - 2.0*sh)*log(sh)/pow((1.0 - sh),2)
00577 +1.0/18.0*(5.0 - 9.0*sh)/(1.0 - sh);
00578 double eta79 = 1.0 + alphas*omega79/EvtConst::pi;
00579
00580 double c7c9 = abs(c7eff)*real(c9eff);
00581 c7c9 *= pow(eta79,2);
00582 double c7c7 = pow(abs(c7eff),2);
00583 c7c7 *= pow(eta7,2);
00584
00585 double c9c9plusc10c10 = pow(abs(c9eff),2) + pow(abs(c10eff),2);
00586 c9c9plusc10c10 *= pow(eta9,2);
00587 double c9c9minusc10c10 = pow(abs(c9eff),2) - pow(abs(c10eff),2);
00588 c9c9minusc10c10 *= pow(eta9,2);
00589
00590 lambda = 1.0 + sh*sh + pow(msh,4) - 2.0*(sh + sh*msh*msh + msh*msh);
00591
00592 f1 = pow(1.0-msh*msh,2) - sh*(1.0 + msh*msh);
00593 f2 = 2.0*(1.0 + msh*msh) * pow(1.0-msh*msh,2)
00594 - sh*(1.0 + 14.0*msh*msh + pow(msh,4)) - sh*sh*(1.0 + msh*msh);
00595 f3 = pow(1.0-msh*msh,2) + sh*(1.0 + msh*msh) - 2.0*sh*sh
00596 + lambda*2.0*mlh*mlh/sh;
00597 f4 = 1.0 - sh + msh*msh;
00598
00599 delta = ( 12.0*c7c9*f1 + 4.0*c7c7*f2/sh ) * (1.0 + 2.0*mlh*mlh/sh)
00600 + c9c9plusc10c10*f3
00601 + 6.0*mlh*mlh*c9c9minusc10c10*f4;
00602
00603 prob = sqrt(lambda*(1.0 - 4.0*mlh*mlh/sh)) * delta;
00604
00605 return prob;
00606 }
00607
00608 double EvtbTosllAmp::dGdsdupProb(double mb, double ms, double ml,
00609 double s, double u)
00610 {
00611
00612
00613
00614 double prob;
00615 double f1sp, f2sp, f3sp;
00616
00617 double sh = s / (mb*mb);
00618
00619 EvtComplex c9eff = EvtbTosllAmp::GetC9Eff(sh*mb);
00620 EvtComplex c7eff = EvtbTosllAmp::GetC7Eff(sh*mb);
00621 EvtComplex c10eff = EvtbTosllAmp::GetC10Eff(sh*mb);
00622
00623 double alphas = 0.119/
00624 (1 + 0.119*log(pow(4.8,2)/pow(91.1867,2))*23.0/12.0/EvtConst::pi);
00625 double omega9 = - 2.0/9.0*EvtConst::pi*EvtConst::pi - 4.0/3.0*ddilog_(sh)
00626 - 2.0/3.0*log(sh)*log(1.0-sh)
00627 - (5.0+4.0*sh)/(3.0*(1.0+2.0*sh)) * log(1.0-sh)
00628 - 2.0*sh*(1.0+sh)*(1.0-2.0*sh)
00629 /(3.0*pow(1.0-sh,2)*(1.0+2.0*sh)) * log(sh)
00630 + (5.0+9.0*sh-6.0*sh*sh)/(6.0*(1.0-sh)*(1.0+2.0*sh));
00631 double eta9 = 1.0 + alphas*omega9/EvtConst::pi;
00632 double omega7 = -8.0/3.0*log(4.8/mb)
00633 -4.0/3.0*ddilog_(sh)
00634 -2.0/9.0*EvtConst::pi*EvtConst::pi
00635 -2.0/3.0*log(sh)*log(1.0-sh)
00636 -log(1-sh)*(8.0+sh)/(2.0+sh)/3.0
00637 -2.0/3.0*sh*(2.0 - 2.0*sh - sh*sh)*log(sh)/pow((1.0 - sh),2)/(2.0 + sh)
00638 -(16.0 - 11.0*sh - 17.0*sh*sh)/18.0/(2.0 + sh)/(1.0 - sh);
00639 double eta7 = 1.0 + alphas*omega7/EvtConst::pi;
00640
00641 double omega79 = -4.0/3.0*log(4.8/mb)
00642 -4.0/3.0*ddilog_(sh)
00643 -2.0/9.0*EvtConst::pi*EvtConst::pi
00644 -2.0/3.0*log(sh)*log(1.0-sh)
00645 -1.0/9.0*(2.0+7.0*sh)*log(1.0 - sh)/sh
00646 -2.0/9.0*sh*(3.0 - 2.0*sh)*log(sh)/pow((1.0 - sh),2)
00647 +1.0/18.0*(5.0 - 9.0*sh)/(1.0 - sh);
00648 double eta79 = 1.0 + alphas*omega79/EvtConst::pi;
00649
00650 double c7c9 = abs(c7eff)*real(c9eff);
00651 c7c9 *= pow(eta79,2);
00652 double c7c7 = pow(abs(c7eff),2);
00653 c7c7 *= pow(eta7,2);
00654
00655 double c9c9plusc10c10 = pow(abs(c9eff),2) + pow(abs(c10eff),2);
00656 c9c9plusc10c10 *= pow(eta9,2);
00657 double c9c9minusc10c10 = pow(abs(c9eff),2) - pow(abs(c10eff),2);
00658 c9c9minusc10c10 *= pow(eta9,2);
00659 double c7c10 = abs(c7eff)*real(c10eff);
00660 c7c10 *= eta7; c7c10 *= eta9;
00661 double c9c10 = real(c9eff)*real(c10eff);
00662 c9c10 *= pow(eta9,2);
00663
00664 f1sp = ( pow(mb*mb-ms*ms,2) - s*s) * c9c9plusc10c10
00665 + 4.0*( pow(mb,4) - ms*ms*mb*mb - pow(ms,4)*(1.0 - ms*ms/(mb*mb))
00666 - 8.0*s*ms*ms - s*s*(1.0 + ms*ms/(mb*mb) ))*mb*mb*c7c7/s
00667
00668 *(1.0 + 2.0*ml*ml/s)
00669 - 8.0*(s*(mb*mb + ms*ms) - pow(mb*mb-ms*ms,2)) * c7c9
00670
00671 *(1.0 + 2.0*ml*ml/s);
00672
00673 f2sp = 4.0*s*c9c10 + 8.0*(mb*mb + ms*ms)*c7c10;
00674 f3sp = - (c9c9plusc10c10)
00675 + 4.0*(1.0 + pow(ms/mb,4)) * mb*mb*c7c7/s
00676
00677 *(1.0 + 2.0*ml*ml/s);
00678
00679 prob = (f1sp + f2sp*u + f3sp*u*u)/ pow(mb,3);
00680
00681 return prob;
00682 }
00683
00684
00685
00686
00687
00688
00689
00690
00691
00692
00693
00694
00695