42 m_cK.push_back( 1.195 );
47 m_cK.push_back( -0.112 );
52 m_cK.push_back( -0.083 );
57 m_cK.push_back( 0.0 );
87 if (
abs( qm ) < 1e-10 ) {
93 if (
abs( s ) < 1e-10 ) {
100 const EvtComplex denBW = m2 - s -
I * sqrt( s ) * gamma;
101 if (
abs( denBW ) < 1e-10 ) {
105 return m_cK[i] * m2 / denBW;
111 const double s = ( pKS + pKplus ).mass2();
114 return f * ( pKS - pKplus );
119 const double mpi2 = 0.0196;
120 if (
abs( s ) < 1e-10 )
123 const double pcm2 = 1.0 - 4.0 * mpi2 / s;
146 return BWr( q1 + q2 ) * ( q1 - q2 );
156 const double Q2 = Q.
mass2();
157 return BWa( Q ) * ( q13 - ( Q * ( Q * q13 ) / Q2 ) *
BWr( q2 + q3 ) + q23 -
158 ( Q * ( Q * q23 ) / Q2 ) *
BWr( q1 + q3 ) );
174 const EvtVector4C V = term1 + term2 + term3 + term4 + term5 + term6;
192 const double mA1( 1.239 ), gammaA1( 0.600 );
195 const double q2 = q.
mass2();
197 const double pK2 = pK.
mass2();
201 const EvtComplex den1 = 1.0 / ( q2 - mA1 * mA1 +
I * mA1 * gammaA1 );
208 EvtVector4C vec = den1 * den2 * ( pKminus - pPiPlus );
209 vec = ten.
cont2( vec );
236 const EvtVector4R q = pKplus + pKminus + pPi1Plus + pPi2Plus + pPiMinus;
237 return BWa( q ) * epsA1 *
BWf( pf0 );
274 const EvtVector4R qTot = p1 + p2 + p3 + p4 + p5 + p6 + p7;
278 return eps1 *
BWa( qTot ) *
BWf( pf0 );
287 const double cK1p = 0.210709, cK1r = -0.0152997, cK2p = 0.0945309,
289 const double gRho_PiPi = 6.02;
292 const double q2 = q.
mass2();
299 pp2 = ( pPiPlus + pPiMinus ).mass2();
302 curr = curr + cK1r * curr1;
306 pp2 = ( pKplus + pPiMinus ).mass2();
309 curr = curr + cK1p * curr1;
313 pp2 = ( pPiMinus + pPiPlus ).mass2();
316 curr = curr + cK2r * curr1;
320 pp2 = ( pKplus + pPiMinus ).mass2();
323 curr = curr + cK2p * curr1;
327 curr = ten.
cont2( curr );
333 const double gR )
const
336 const EvtComplex tmp = qSq - mR * mR +
I * mR * gammaR;
338 if (
abs( tmp ) < 1e-10 )
346 const double _mA1( 1.26 ), _GA1( 0.4 );
347 const double _mA1Sq = _mA1 * _mA1;
349 const double Q2 = q.
mass2();
350 const double GA1 = _GA1 *
pi3G( Q2 ) /
pi3G( _mA1Sq );
352 const EvtComplex denBA1( _mA1Sq - Q2, -1.0 * _mA1 * GA1 );
353 if (
abs( denBA1 ) < 1e-10 )
355 return _mA1Sq / denBA1;
360 const double mf( 0.8 ), Gf( 0.6 );
361 const double mfSq = mf * mf;
363 const double Q2 = q.
mass2();
364 return mfSq / ( mfSq - Q2 -
I * mf * Gf );
369 const double beta( -0.108 );
371 const double s = q.
mass2();
374 return ( BW_rho + beta * BW_rhopr ) / ( 1.0 + beta );
381 if ( Q2 < mRhoPi * mRhoPi ) {
383 const double arg2 =
arg *
arg;
384 const double arg3 =
arg * arg2;
385 return 4.1 * arg3 * ( 1. - 3.3 *
arg + 5.8 * arg2 );
387 const double Q2Sq = Q2 * Q2;
388 const double Q2Cu = Q2 * Q2Sq;
389 return Q2 * ( 1.623 + 10.38 / Q2 - 9.32 / Q2Sq + 0.65 / Q2Cu );
397 const EvtVector4R Qtot = p1 + p2 + p3 + p4 + p5, Qa = p1 + p2 + p3;
406 return BWa( Qtot ) *
BWa( Qa ) *
BWf( p4 + p5 ) *
413 const double m2 = m * m;
414 const double xmSum = xm1 + xm2;
415 const double xmSumSq = xmSum * xmSum;
417 const double xmDiff = xm1 - xm2;
418 const double xmDiffSq = xmDiff * xmDiff;
419 const double qs = sqrt( fabs( ( s - xmSumSq ) * ( s - xmDiffSq ) ) ) /
421 const double qm = sqrt( fabs( ( m2 - xmSumSq ) * ( m2 - xmDiffSq ) ) ) /
424 const double qRatio = qm > 0.0 ? qs / qm : 0.0;
425 gamma *= m2 / s * ( qRatio * qRatio * qRatio );
428 const EvtComplex denBW( m2 - s, -1. * sqrt( s ) * gamma );
448 const EvtVector4R pKstar = p1 + p4, pa1 = p2 + p3 + p5;
451 if (
abs( denKstar ) < 1e-10 ) {
454 const EvtVector4C epsKstar = 1 / denKstar * ( p1 - p4 );
468 const double q2 = q.
mass2();
469 const double mp = p1.
mass(), mp2 = mp * mp, mpi = k.
mass(), mpi2 = mpi * mpi;
471 const double mn2 = mn * mn;
474 const double kp2 = k * p2;
475 const double p1p2 = p1 * p2;
477 const double f1 = 1.0;
478 const double f2 = 3.7 / ( 2.0 + mp );
479 const double g1 = 1.25;
480 const double g3 = 2.0 * mp * g1 / ( p1p2 + mp2 );
488 const double D1 = 1 / ( 2 * kp2 + mp2 - mn2 + mpi2 );
496 current += curA * ( -( f2 * II ) );
497 current += ( D1 * g1 * II ) * curT.
cont2( k );
498 current += -( -0.5 * ( D1 * f1 ) ) *
dual( curT ).
cont2( k );
499 current += -( D1 * f2 * II * mp ) *
dual( curT ).
cont2( k );
500 current += k * ( -( D1 * g1 ) ) * curS;
501 current += k * ( -( D1 * f1 ) ) * curP;
502 current += k * ( 2 * D1 * f2 * II * mp ) * curP;
503 current += k * ( curV * k ) * ( D1 * g3 );
504 current += k * ( curA * k ) * ( D1 * f2 * II );
505 current += p1 * ( curV * k ) * ( D1 * g3 );
506 current += p1 * ( curA * k ) * ( -( D1 * f2 * II ) );
507 current += p2 * ( curV * k ) * ( D1 * g3 );
508 current += p2 * ( curA * k ) * ( D1 * f2 * II );
512 current = JT.
cont2( current );
514 return BWa( q ) * current;
double arg(const EvtComplex &c)
double abs(const EvtComplex &c)
EvtTensor4C EvtLeptonTCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtComplex EvtLeptonSCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtComplex EvtLeptonPCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtTensor4C dual(const EvtTensor4C &t2)
static double getWidth(EvtId i)
static double getMeanMass(EvtId i)
static EvtId getId(const std::string &name)
EvtVector4C cont1(const EvtVector4C &v4) const
static const EvtTensor4C & g()
EvtVector4C cont2(const EvtVector4C &v4) const
std::vector< double > m_mK
EvtVector4C WCurrent_KKP(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPiPlus) const
EvtComplex Den(double q, double mR, double gammaR, double gR) const
EvtVector4C WCurrent_KPP(const EvtVector4R &pKplus, const EvtVector4R &pPiPlus, const EvtVector4R &pPiMinus) const
EvtVector4C WCurrent_K4pi(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5) const
std::vector< double > m_mRho
EvtComplex BWr(const EvtVector4R &q) const
std::vector< double > m_gKRho
EvtComplex BWf(const EvtVector4R &q) const
EvtVector4C WCurrent_KKPPP_nosym(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPi1Plus, const EvtVector4R &pPi2Plus, const EvtVector4R &pPiMinus) const
EvtComplex pcm(double s) const
EvtVector4C WCurrent_KSK(const EvtVector4R &pKS, const EvtVector4R &pKplus) const
EvtVector4C WCurrent_KKPPP(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPi1Plus, const EvtVector4R &pPi2Plus, const EvtVector4R &pPiMinus) const
std::vector< double > m_cK
EvtVector4C WCurrent(const EvtVector4R &q1) const
EvtVector4C WCurrent_ppPi(const EvtVector4R &p1, const EvtDiracSpinor &sp1, const EvtVector4R &p2, const EvtDiracSpinor &sp2, const EvtVector4R &k) const
std::vector< double > m_gammaK
EvtVector4C WCurrent_K4pi_nosymm(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5) const
std::vector< double > m_gKPi
std::vector< double > m_gamma0
EvtVector4C WCurrent_7pi(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5, const EvtVector4R &p6, const EvtVector4R &p7) const
EvtComplex BW(double s, double m, double gamma, double xm1, double xm2) const
EvtComplex BWKK(double s, int i) const
EvtComplex BWa(const EvtVector4R &q) const
double pi3G(double Q2) const
EvtVector4C WCurrent_7pi_nosymm(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5, const EvtVector4R &p6, const EvtVector4R &p7) const
EvtVector4C JB(const EvtVector4R &q1, const EvtVector4R &q2, const EvtVector4R &q3, const EvtVector4R &q4, const EvtVector4R &q5) const
EvtVector4C WCurrent_5pi(const EvtVector4R &q1, const EvtVector4R &q2, const EvtVector4R &q3, const EvtVector4R &q4, const EvtVector4R &q5) const
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)