|
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. 44 for ( ib = 0; ib < _nB; ib++ ) { 50 for ( ia = 0; ia < _nA; ia++ ) { 55 for ( ib = 0; ib < _nB; ib++ ) { 60 for ( ic = 0; ic < _nC; ic++ ) { 65 for ( ia = 0; ia < _nA; ia++ ) { 66 for ( ib = 0; ib < _nB; ib++ ) { 67 delete[] _amp[ia][ib]; 68 delete[] _amp1[ia][ib]; 69 delete[] _amp3[ia][ib]; 105 for ( ib = 0; ib < _nB; ib++ ) { 110 for ( ia = 0; ia < _nA; ia++ ) { 114 for ( ib = 0; ib < _nB; ib++ ) { 118 for ( ic = 0; ic < _nC; ic++ ) { 125 for ( ia = 0; ia < _nA; ia++ ) { 129 for ( ib = 0; ib < _nB; ib++ ) { 142 for ( ib = 0; ib < _nB; ib++ ) { 143 for ( ic = 0; ic < _nC; ic++ ) { 144 _HBC[ib][ic] = HBC[ib][ic]; 158 double maxprob = 0.0; 160 for ( itheta = -10; itheta <= 10; itheta++ ) { 161 theta = acos( 0.099999 * itheta ); 162 for ( ia = 0; ia < _nA; ia++ ) { 164 for ( ib = 0; ib < _nB; ib++ ) { 165 for ( ic = 0; ic < _nC; ic++ ) { 166 _amp[ia][ib][ic] = 0.0; 168 _amp[ia][ib][ic] = c * _HBC[ib][ic] * 179 prob *= sqrt( 1.0 * _nA ); 181 if ( prob > maxprob ) 195 double theta = acos( pB. get( 3 ) / pB. d3mag() ); 196 double phi = atan2( pB. get( 2 ), pB. get( 1 ) ); 204 for ( ia = 0; ia < _nA; ia++ ) { 205 for ( ib = 0; ib < _nB; ib++ ) { 206 for ( ic = 0; ic < _nC; ic++ ) { 207 _amp[ia][ib][ic] = 0.0; 231 for ( ia = 0; ia < _nA; ia++ ) { 232 for ( ib = 0; ib < _nB; ib++ ) { 233 for ( ic = 0; ic < _nC; ic++ ) { 268 if ( fabs( prob1 - prob2 ) > 0.000001 * prob1 ) { 270 << "prob1,prob2:" << prob1 << " " << prob2 << endl; 282 if ( n == 2 && J2 == 2 ) { 289 if ( n == 1 && J2 == 1 ) { 300 assert( n == J2 + 1 ); 302 for ( i = 0; i < n; i++ ) { 303 lambda2[i] = n - i * 2 - 1; 332 for ( i = 0; i < n; i++ ) { 333 for ( j = 0; j < n; j++ ) { 334 _RA[i][j] = R. get( i, j ); 344 << "Spin2(_JA2)=" << _JA2 << " not supported!" << endl; 369 for ( i = 0; i < n; i++ ) { 370 for ( j = 0; j < n; j++ ) { 381 << "Spin2(_JB2)=" << _JB2 << " not supported!" << endl; 406 for ( i = 0; i < n; i++ ) { 407 for ( j = 0; j < n; j++ ) { 418 << "Spin2(_JC2)=" << _JC2 << " not supported!" << endl; 429 for ( ia = 0; ia < _nA; ia++ ) { 430 for ( ib = 0; ib < _nB; ib++ ) { 431 for ( ic = 0; ic < _nC; ic++ ) { 433 for ( i = 0; i < _nC; i++ ) { 434 temp += _RC[i][ic] * _amp[ia][ib][i]; 436 _amp1[ia][ib][ic] = temp; 441 for ( ia = 0; ia < _nA; ia++ ) { 442 for ( ic = 0; ic < _nC; ic++ ) { 443 for ( ib = 0; ib < _nB; ib++ ) { 445 for ( i = 0; i < _nB; i++ ) { 446 temp += _RB[i][ib] * _amp1[ia][i][ic]; 448 _amp3[ia][ib][ic] = temp; 453 for ( ib = 0; ib < _nB; ib++ ) { 454 for ( ic = 0; ic < _nC; ic++ ) { 455 for ( ia = 0; ia < _nA; ia++ ) { 457 for ( i = 0; i < _nA; i++ ) { 458 temp += _RA[i][ia] * _amp3[i][ib][ic]; 460 _amp[ia][ib][ic] = temp; void fillHelicity(int *lambda2, int n, int J2, EvtId id)
EvtComplexPtrPtrPtr _amp1
static EvtSpinType::spintype getSpinType(EvtId i)
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
Evt3Rank3C conj(const Evt3Rank3C &t2)
const EvtComplex & get(int i, int j) const
EvtEvalHelAmp(EvtId idA, EvtId idB, EvtId idC, EvtComplexPtrPtr HBC)
static int getSpinStates(spintype stype)
void vertex(const EvtComplex &)
virtual EvtSpinDensity rotateToHelicityBasis() const =0
double abs(const EvtComplex &c)
const EvtVector4R & getP4() const
void evalAmp(EvtParticle *p, EvtAmp &)
EvtComplexPtrPtrPtr _amp3
static int getSpin2(spintype stype)
EvtComplex exp(const EvtComplex &c)
EvtParticle * getDaug(int i)
void setUpRotationMatrices(EvtParticle *p, double theta, double phi)
static double d(int j, int m1, int m2, double theta)
void applyRotationMatrices()
double real(const EvtComplex &c)
static int getStdHep(EvtId id)
|