|
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. 52 double mS, double mP, double gammaS, 53 double gammaP, double mLiiLR, double Fc, 54 double mD23LL, double mD23RR, double mD32LL, 55 double mD32RR, double mD13LL, double mD13RR, 56 double mD31LL, double mD31RR ) 60 int il1 = 0, il2 = 1, il3 = 2, 72 Cl = mLiiLR * mLiiLR / ( sqrt( 2 ) * Fc ); 76 << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...)" 77 << "\n Error in the Cl setting!" 78 << "\n Cl = " << Cl << "\n mLiiLR = " << mLiiLR 79 << "\n Fc = " << Fc << std::endl; 94 EvtId IdMu1, IdMu2, IdMu3, IdMu4; 100 CB = mD32LL * mD32LL + mD32RR * mD32RR; 103 if ( idparent == EvtPDL::getId( std::string( "anti-B_s0" ) ) ) { 105 CB = mD23LL * mD23LL + mD23RR * mD23RR; 110 CB = mD31LL * mD31LL + mD31RR * mD31RR; 113 if ( idparent == EvtPDL::getId( std::string( "anti-B0" ) ) ) { 115 CB = mD13LL * mD13LL + mD13RR * mD13RR; 120 << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...)" 121 << "\n Error in the CB setting!" 122 << "\n CB = " << CB << "\n mD32LL = " << mD32LL 123 << "\n mD32RR = " << mD32RR << "\n mD23LL = " << mD23LL 124 << "\n mD23RR = " << mD23RR << "\n mD31LL = " << mD31LL 125 << "\n mD31RR = " << mD31RR << "\n mD13LL = " << mD13LL 126 << "\n mD13RR = " << mD13RR << "\n idparent = " << idparent 140 if ( ( abs( charge1 ) != 1 ) || ( abs( charge2 ) != 1 ) || 141 ( abs( charge3 ) != 1 ) || ( abs( charge4 ) != 1 ) || 142 ( charge1 + charge2 + charge3 + charge4 != 0 ) ) { 144 << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...)" 145 << "\n Error in the leptonic charge definition!" 146 << "\n charge1 =" << charge1 147 << "\n charge2 =" << charge2 148 << "\n charge3 =" << charge3 149 << "\n charge4 =" << charge4 150 << "\n number of daughters =" << parent-> getNDaug() << std::endl; 176 k_1. set( 0.0, 0.0, 0.0, 0.0 ); 177 k_2. set( 0.0, 0.0, 0.0, 0.0 ); 178 k_3. set( 0.0, 0.0, 0.0, 0.0 ); 179 k_4. set( 0.0, 0.0, 0.0, 0.0 ); 181 if ( ( charge1 + charge2 == 0 ) && ( charge3 + charge4 == 0 ) ) { 183 lep1Plus = ( charge1 > charge2 ) ? parent-> getDaug( il1 ) 186 lep1Minus = ( charge1 < charge2 ) ? parent-> getDaug( il1 ) 188 if ( charge1 > charge2 ) { 200 lep2Plus = ( charge3 > charge4 ) ? parent-> getDaug( il3 ) 203 lep2Minus = ( charge3 < charge4 ) ? parent-> getDaug( il3 ) 205 if ( charge3 > charge4 ) { 217 if ( ( charge1 + charge3 == 0 ) && ( charge2 + charge4 == 0 ) ) { 219 lep1Plus = ( charge1 > charge3 ) ? parent-> getDaug( il1 ) 222 lep1Minus = ( charge1 < charge3 ) ? parent-> getDaug( il1 ) 224 if ( charge1 > charge3 ) { 236 lep2Plus = ( charge2 > charge4 ) ? parent-> getDaug( il2 ) 239 lep2Minus = ( charge2 < charge4 ) ? parent-> getDaug( il2 ) 241 if ( charge2 > charge4 ) { 271 q2second = qsecond. mass2(); 272 k2second = ksecond. mass2(); 275 static EvtIdSet bmesons( "anti-B0", "anti-B_s0" ); 276 static EvtIdSet bbarmesons( "B0", "B_s0" ); 280 if ( bmesons. contains( parentID ) ) { 293 for ( i2 = 0; i2 < 2; i2++ ) { 294 leptonicspin[0] = i2; 295 for ( i1 = 0; i1 < 2; i1++ ) { 296 leptonicspin[1] = i1; 297 for ( i4 = 0; i4 < 2; i4++ ) { 298 leptonicspin[2] = i4; 299 for ( i3 = 0; i3 < 2; i3++ ) { 300 leptonicspin[3] = i3; 318 ( SL2L1 * PL4L3 * ( q2 - k2 ) / 319 ( ( q2 - MS * MS ) * ( k2 - MP * MP ) ) - 320 SL2L1second * PL4L3second * 321 ( q2second - k2second ) / 322 ( ( q2second - MS * MS ) * 323 ( k2second - MP * MP ) ) ) / 380 if ( bbarmesons. contains( parentID ) ) { 393 for ( i2 = 1; i2 < 0; i2-- ) { 394 leptonicspin[0] = i2; 395 for ( i1 = 1; i1 < 0; i1-- ) { 396 leptonicspin[1] = i1; 397 for ( i4 = 1; i4 < 0; i4-- ) { 398 leptonicspin[2] = i4; 399 for ( i3 = 1; i3 < 0; i3-- ) { 400 leptonicspin[3] = i3; 419 ( SL2L1 * PL4L3 * ( q2 - k2 ) / 422 SL2L1second * PL4L3second * 423 ( q2second - k2second ) / 424 ( ( q2second - MS * MS ) * 425 ( k2second - MP * MP ) ) ) / 483 << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcAmp(...)" 484 << "\n Wrong Bq-meson number" << std::endl; 495 EvtId , double mS, double mP, double gammaS, double gammaP, 496 double mLiiLR, double Fc, double mD23LL, double mD23RR, double mD32LL, 497 double mD32RR, double mD13LL, double mD13RR, double mD31LL, double mD31RR ) 501 << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcMaxProb" 502 << "\n Error in the Fc setting!" 503 << "\n Fc = " << Fc << "\n mD32LL = " << mD32LL 504 << "\n mD32RR = " << mD32RR << "\n mD23LL = " << mD23LL 505 << "\n mD23RR = " << mD23RR << "\n mD31LL = " << mD31LL 506 << "\n mD31RR = " << mD31RR << "\n mD13LL = " << mD13LL 507 << "\n mD13RR = " << mD13RR << "\n parnum = " << parnum 514 Cl = mLiiLR * mLiiLR / ( sqrt( 2 ) * Fc ); 518 << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcMaxProb" 519 << "\n Error in the Cl setting!" 520 << "\n Cl = " << Cl << "\n mLiiLR = " << mLiiLR 521 << "\n Fc = " << Fc << std::endl; 534 CB = mD32LL * mD32LL + mD32RR * mD32RR; 537 if ( parnum == EvtPDL::getId( std::string( "anti-B_s0" ) ) ) { 539 CB = mD23LL * mD23LL + mD23RR * mD23RR; 544 CB = mD31LL * mD31LL + mD31RR * mD31RR; 549 CB = mD13LL * mD13LL + mD13RR * mD13RR; 554 << "\n\n The function EvtbsToLLLLHyperCPAmp::CalcMaxProb" 555 << "\n Error in the CB setting!" 556 << "\n CB = " << CB << "\n mD32LL = " << mD32LL 557 << "\n mD32RR = " << mD32RR << "\n mD23LL = " << mD23LL 558 << "\n mD23RR = " << mD23RR << "\n mD31LL = " << mD31LL 559 << "\n mD31RR = " << mD31RR << "\n mD13LL = " << mD13LL 560 << "\n mD13RR = " << mD13RR << "\n parnum = " << parnum 569 double maxfoundprob = Cl * Cl * CB * fb * 570 fabs( mS * mS + mP * mP + M1 * M1 ) * 10000000.0 / 571 ( 4.0 * Fc * Fc * mS * gammaS * mP * gammaP ); 573 if ( maxfoundprob <= 0.0 ) { 575 << "\n\n In the function EvtbsToLLLLHyperCPAmp::CalcMaxProb" 576 << "\n maxfoundprob = " << maxfoundprob << " < 0 or =0!" 577 << "\n mS = " << mS << "\n mP = " << mP 578 << "\n gammaS = " << gammaS << "\n gammaP = " << gammaP 579 << "\n mLiiLR = " << mLiiLR << "\n Fc = " << Fc 580 << "\n mD32LL = " << mD32LL << "\n mD32RR = " << mD32RR 581 << "\n mD23LL = " << mD23LL << "\n mD23RR = " << mD23RR 582 << "\n mD31LL = " << mD31LL << "\n mD31RR = " << mD31RR 583 << "\n mD13LL = " << mD13LL << "\n mD13RR = " << mD13RR 584 << "\n parnum = " << parnum << std::endl; 589 << "\n maxfoundprob (...) = " << maxfoundprob << std::endl; 591 maxfoundprob *= 1.01; 601 l = pow( a, 2.0 ) + pow( b, 2.0 ) + pow( c, 2.0 ) - 2.0 * a * b - 602 2.0 * a * c - 2.0 * b * c; double CalcMaxProb(EvtId parnum, EvtId l1num, EvtId l2num, EvtId l3num, EvtId l4num, double mS, double mP, double gammaS, double gammaP, double mLiiLR, double Fc, double mD23LL, double mD23RR, double mD32LL, double mD32RR, double mD13LL, double mD13RR, double mD31LL, double mD31RR)
double lambda(double a, double b, double c)
EvtComplex EvtLeptonPCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
static double getMeanMass(EvtId i)
void set(int i, double d)
void CalcAmp(EvtParticle *parent, EvtAmp &, double mS, double mP, double gammaS, double gammaP, double mLiiLR, double Fc, double mD23LL, double mD23RR, double mD32LL, double mD32RR, double mD13LL, double mD13RR, double mD31LL, double mD31RR)
virtual EvtDiracSpinor spParent(int) const
void vertex(const EvtComplex &)
double abs(const EvtComplex &c)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
int contains(const EvtId id)
EvtComplex EvtLeptonSCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4R getP4Restframe() const
|