|
EvtGen
2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
|
Go to the documentation of this file. 61 int Nf, int res_swch, int ias, double CKM_A, 62 double CKM_lambda, double CKM_barrho, 67 int il1 = 0, il2 = 1, il3 = 2, 74 double M1 = parent-> mass(); 90 double Relambda_qu, Imlambda_qu; 96 EvtId IdMu1, IdMu2, IdMu3, IdMu4; 103 Vtq = unit1 * ( 1.0 - 0.5 * pow( CKM_lambda, 2.0 ) ) + 104 pow( CKM_lambda, 2.0 ) * 105 ( CKM_barrho * unit1 + CKM_bareta * uniti ) / 106 sqrt( 1.0 - pow( CKM_lambda, 2.0 ) ); 107 Vtq = -CKM_A * pow( CKM_lambda, 2.0 ) * Vtq; 109 Vuq = CKM_lambda * unit1; 111 Vcq = unit1 - 0.5 * pow( CKM_lambda, 2.0 ) - 112 0.125 * pow( CKM_lambda, 4.0 ) * ( 1.0 + 4.0 * pow( CKM_A, 2.0 ) ); 120 Vtq = unit1 - ( 1.0 - 0.5 * pow( CKM_lambda, 2.0 ) ) * 121 ( CKM_barrho * unit1 + CKM_bareta * uniti ) / 122 sqrt( 1.0 - pow( CKM_lambda, 2.0 ) ); 123 Vtq = CKM_A * pow( CKM_lambda, 3.0 ) * Vtq; 125 Vuq = unit1 * ( 1.0 - 0.5 * pow( CKM_lambda, 2.0 ) - 126 0.125 * pow( CKM_lambda, 4.0 ) ); 130 0.5 * pow( CKM_A, 2.0 ) * pow( CKM_lambda, 5.0 ) * 131 ( 1.0 - 2.0 * ( CKM_barrho * unit1 + CKM_bareta * uniti ) / 132 sqrt( 1.0 - pow( CKM_lambda, 2.0 ) ) ) ); 137 << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)" 138 << "\n Error in the mq setting!" 139 << "\n mq = " << mq << "< 0.001" 140 << "\n idparent = " << idparent << std::endl; 144 Vtb = unit1 * ( 1.0 - 0.5 * pow( CKM_A * CKM_lambda * CKM_lambda, 146 Vub = CKM_A * pow( CKM_lambda, 3.0 ) * 147 ( CKM_barrho * unit1 - CKM_bareta * uniti ) / 148 sqrt( 1.0 - pow( CKM_lambda, 2.0 ) ); 149 Vcb = unit1 * CKM_A * pow( CKM_lambda, 2.0 ); 151 CKM_factor = conj( Vtq ) * Vtb; 153 lambda_qu = conj( Vuq ) * Vub / 155 Relambda_qu = real( lambda_qu ); 156 Imlambda_qu = imag( lambda_qu ); 158 lambda_qc = conj( Vcq ) * Vcb / 170 if ( ( abs( charge1 ) != 1 ) || ( abs( charge2 ) != 1 ) || 171 ( abs( charge3 ) != 1 ) || ( abs( charge4 ) != 1 ) || 172 ( charge1 + charge2 + charge3 + charge4 != 0 ) ) { 174 << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)" 175 << "\n Error in the leptonic charge definition!" 176 << "\n charge1 =" << charge1 177 << "\n charge2 =" << charge2 178 << "\n charge3 =" << charge3 179 << "\n charge4 =" << charge4 180 << "\n number of daughters =" << parent-> getNDaug() << std::endl; 215 k_1. set( 0.0, 0.0, 0.0, 0.0 ); 216 k_2. set( 0.0, 0.0, 0.0, 0.0 ); 217 k_3. set( 0.0, 0.0, 0.0, 0.0 ); 218 k_4. set( 0.0, 0.0, 0.0, 0.0 ); 220 if ( ( charge1 + charge2 == 0 ) && ( charge3 + charge4 == 0 ) ) { 222 lep1Plus = ( charge1 > charge2 ) ? parent-> getDaug( il1 ) 225 lep1Minus = ( charge1 < charge2 ) ? parent-> getDaug( il1 ) 227 if ( charge1 > charge2 ) { 239 lep2Plus = ( charge3 > charge4 ) ? parent-> getDaug( il3 ) 242 lep2Minus = ( charge3 < charge4 ) ? parent-> getDaug( il3 ) 244 if ( charge3 > charge4 ) { 256 if ( ( charge1 + charge3 == 0 ) && ( charge2 + charge4 == 0 ) ) { 258 lep1Plus = ( charge1 > charge3 ) ? parent-> getDaug( il1 ) 261 lep1Minus = ( charge1 < charge3 ) ? parent-> getDaug( il1 ) 263 if ( charge1 > charge3 ) { 275 lep2Plus = ( charge2 > charge4 ) ? parent-> getDaug( il2 ) 278 lep2Minus = ( charge2 < charge4 ) ? parent-> getDaug( il2 ) 280 if ( charge2 > charge4 ) { 312 if ( ( res_swch == 1 ) && ( q2 >= 9.199 ) && ( q2 <= 15.333 ) ) { 317 c9eff_b2q = unit1 * 0.0; 318 c9eff_barb2barq = unit1 * 0.0; 321 c1 = WilsCoeff-> C1( mu, Mw, Nf, ias ); 322 c2 = WilsCoeff-> C2( mu, Mw, Nf, ias ); 323 a1 = unit1 * ( c1 + c2 / 3.0 ); 324 c7gam = WilsCoeff-> GetC7Eff( mu, Mw, mt, Nf, ias ); 325 c9eff_b2q = WilsCoeff-> GetC9Eff( 0, res_swch, ias, Nf, q2, mb, mq, mc, mu, 326 mt, Mw, ml, Relambda_qu, Imlambda_qu ); 327 c9eff_barb2barq = WilsCoeff-> GetC9Eff( 1, res_swch, ias, Nf, q2, mb, mq, 328 mc, mu, mt, Mw, ml, Relambda_qu, 339 if ( ( res_swch == 1 ) && ( q2 >= 9.199 ) && ( q2 <= 15.333 ) ) { 343 Fta_b2q = unit1 * 0.0; 344 Fta_barb2barq = unit1 * 0.0; 345 Ftv_b2q = unit1 * 0.0; 346 Ftv_barb2barq = unit1 * 0.0; 350 << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)" 351 << "\n Leptonic decay constant fb is not uninitialized in this function!" 352 << " fb = " << fb << std::endl; 358 a1, lambda_qu, lambda_qc, Fv, Fa, Ftv_b2q, 363 a1, lambda_qu, lambda_qc, Fv, Fa, 364 Ftv_barb2barq, Fta_barb2barq ); 368 EvtComplex a_b2q, a_barb2barq, b_b2q, b_barb2barq, c_b2q, c_barb2barq; 369 EvtComplex e_b2q, e_barb2barq, f_b2q, f_barb2barq, g_b2q, g_barb2barq; 371 a_b2q = c9eff_b2q * Fv + 2.0 * c7gam * Ftv_b2q * mb * M1 / q2; 372 a_barb2barq = c9eff_barb2barq * Fv + 373 2.0 * c7gam * Ftv_barb2barq * mb * M1 / q2; 375 b_b2q = ( c9eff_b2q * Fa + 2.0 * c7gam * Fta_b2q * mb * M1 / q2 ) * 377 b_barb2barq = ( c9eff_barb2barq * Fa + 378 2.0 * c7gam * Fta_barb2barq * mb * M1 / q2 ) * 381 c_b2q = c9eff_b2q * Fa + 2.0 * c7gam * Fta_b2q * mb * M1 / q2; 382 c_barb2barq = c9eff_barb2barq * Fa + 383 2.0 * c7gam * Fta_barb2barq * mb * M1 / q2; 388 f_b2q = c10a * Fa * ( hatp * hatk ); 400 q2second = qsecond. mass2(); 401 hatqsecond = qsecond / M1; 402 hatksecond = ksecond / M1; 405 if ( ( res_swch == 1 ) && ( q2second >= 9.199 ) && ( q2second <= 15.333 ) ) { 410 c9eff_b2q = unit1 * 0.0; 411 c9eff_barb2barq = unit1 * 0.0; 414 c1 = WilsCoeff-> C1( mu, Mw, Nf, ias ); 415 c2 = WilsCoeff-> C2( mu, Mw, Nf, ias ); 416 a1 = unit1 * ( c1 + c2 / 3.0 ); 417 c7gam = WilsCoeff-> GetC7Eff( mu, Mw, mt, Nf, ias ); 418 c9eff_b2q = WilsCoeff-> GetC9Eff( 0, res_swch, ias, Nf, q2second, mb, mq, 419 mc, mu, mt, Mw, ml, Relambda_qu, 421 c9eff_barb2barq = WilsCoeff-> GetC9Eff( 1, res_swch, ias, Nf, q2second, 422 mb, mq, mc, mu, mt, Mw, ml, 423 Relambda_qu, Imlambda_qu ); 428 if ( ( res_swch == 1 ) && ( q2second >= 9.199 ) && ( q2second <= 15.333 ) ) { 432 Fta_b2q = unit1 * 0.0; 433 Fta_barb2barq = unit1 * 0.0; 434 Ftv_b2q = unit1 * 0.0; 435 Ftv_barb2barq = unit1 * 0.0; 439 << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)" 440 << "\n Leptonic decay constant fb is not uninitialized in this function!" 441 << " fb = " << fb << std::endl; 447 c7gam, a1, lambda_qu, lambda_qc, Fv, Fa, 452 c7gam, a1, lambda_qu, lambda_qc, Fv, Fa, 453 Ftv_barb2barq, Fta_barb2barq ); 457 EvtComplex a_b2qsecond, a_barb2barqsecond, b_b2qsecond, b_barb2barqsecond, 458 c_b2qsecond, c_barb2barqsecond; 459 EvtComplex e_b2qsecond, e_barb2barqsecond, f_b2qsecond, f_barb2barqsecond, 460 g_b2qsecond, g_barb2barqsecond; 462 a_b2qsecond = c9eff_b2q * Fv + 2.0 * c7gam * Ftv_b2q * mb * M1 / q2second; 463 a_barb2barqsecond = c9eff_barb2barq * Fv + 464 2.0 * c7gam * Ftv_barb2barq * mb * M1 / q2second; 466 b_b2qsecond = ( c9eff_b2q * Fa + 2.0 * c7gam * Fta_b2q * mb * M1 / q2second ) * 467 ( hatpsecond * hatksecond ); 468 b_barb2barqsecond = ( c9eff_barb2barq * Fa + 469 2.0 * c7gam * Fta_barb2barq * mb * M1 / q2second ) * 470 ( hatpsecond * hatksecond ); 472 c_b2qsecond = c9eff_b2q * Fa + 2.0 * c7gam * Fta_b2q * mb * M1 / q2second; 473 c_barb2barqsecond = c9eff_barb2barq * Fa + 474 2.0 * c7gam * Fta_barb2barq * mb * M1 / q2second; 476 e_b2qsecond = c10a * Fv; 477 e_barb2barqsecond = e_b2qsecond; 479 f_b2qsecond = c10a * Fa * ( hatpsecond * hatksecond ); 480 f_barb2barqsecond = f_b2qsecond; 482 g_b2qsecond = c10a * Fa; 483 g_barb2barqsecond = g_b2qsecond; 490 static EvtIdSet bmesons( "anti-B0", "anti-B_s0" ); 491 static EvtIdSet bbarmesons( "B0", "B_s0" ); 495 if ( bmesons. contains( parentID ) ) { 507 T1second = a_b2qsecond * unit1 * 511 c_b2qsecond * uniti * 514 T2second = e_b2qsecond * unit1 * 518 g_b2qsecond * uniti * 530 for ( i2 = 0; i2 < 2; i2++ ) { 531 leptonicspin[0] = i2; 532 for ( i1 = 0; i1 < 2; i1++ ) { 533 leptonicspin[1] = i1; 534 for ( i4 = 0; i4 < 2; i4++ ) { 535 leptonicspin[2] = i4; 536 for ( i3 = 0; i3 < 2; i3++ ) { 537 leptonicspin[3] = i3; 549 E1 = T1. cont2( VL4L3 ); 550 E2 = T2. cont2( VL4L3 ); 558 E1second = T1second. cont2( VL4L3second ); 559 E2second = T2second. cont2( VL4L3second ); 562 CKM_factor * ( VL2L1 * E1 + AL2L1 * E2 + 563 VL2L1second * E1second + 564 AL2L1second * E2second ) ); 642 if ( bbarmesons. contains( parentID ) ) { 646 T1 = -a_barb2barq * unit1 * 651 T2 = -e_barb2barq * unit1 * 656 T1second = -a_barb2barqsecond * unit1 * 660 c_barb2barqsecond * uniti * 663 T2second = -e_barb2barqsecond * unit1 * 667 g_barb2barqsecond * uniti * 679 for ( i2 = 1; i2 < 0; i2-- ) { 680 leptonicspin[0] = i2; 681 for ( i1 = 1; i1 < 0; i1-- ) { 682 leptonicspin[1] = i1; 683 for ( i4 = 1; i4 < 0; i4-- ) { 684 leptonicspin[2] = i4; 685 for ( i3 = 1; i3 < 0; i3-- ) { 686 leptonicspin[3] = i3; 698 E1 = T1. cont2( VL4L3 ); 699 E2 = T2. cont2( VL4L3 ); 710 E1second = T1second. cont2( VL4L3second ); 711 E2second = T2second. cont2( VL4L3second ); 715 ( VL2L1 * E1 + AL2L1 * E2 + 716 VL2L1second * E1second + 717 AL2L1second * E2second ) ); 786 << "\n\n The function EvtbsToLLLLAmp::CalcAmp(...)" 787 << "\n Wrong Bq-meson number" << std::endl; 808 double maxfoundprob = 5.0; 818 l = pow( a, 2.0 ) + pow( b, 2.0 ) + pow( c, 2.0 ) - 2.0 * a * b - 819 2.0 * a * c - 2.0 * b * c; EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)
static const EvtTensor4C & g()
EvtComplex GetC7Eff(double mu, double Mw, double mt, int Nf, int ias)
EvtTensor4C dual(const EvtTensor4C &t2)
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
Evt3Rank3C conj(const Evt3Rank3C &t2)
virtual void getPhotonFF(int, double, EvtId, double, double, double, double, EvtComplex, EvtComplex, EvtComplex, EvtComplex, EvtComplex &, EvtComplex &, EvtComplex &, EvtComplex &)
EvtVector4C cont2(const EvtVector4C &v4) const
double lambda(double a, double b, double c)
void set(int i, double d)
virtual EvtDiracSpinor spParent(int) const
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
void vertex(const EvtComplex &)
double C2(double mu, double Mw, int Nf, int ias)
EvtComplex GetC9Eff(int decay_id, int res_swch, int ias, int Nf, double q2, double m2, double md, double mc, double mu, double mt, double Mw, double ml, double Relambda_qu, double Imlambda_qu)
EvtComplex GetC10Eff(double mt, double Mw)
double abs(const EvtComplex &c)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
double imag(const EvtComplex &c)
double C1(double mu, double Mw, int Nf, int ias)
EvtParticle * getDaug(int i)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
int contains(const EvtId id)
void CalcAmp(EvtParticle *parent, EvtAmp &, Evtbs2llGammaFF *formFactors, EvtbTosllWilsCoeffNLO *WilsCoeff, double mu, int Nf, int res_swch, int ias, double CKM_A, double CKM_lambda, double CKM_barrho, double CKM_bareta)
EvtVector4R getP4Restframe() const
double real(const EvtComplex &c)
virtual double getQuarkMass(int)
|