EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtWHad.cpp
Go to the documentation of this file.
1
2/***********************************************************************
3* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4* *
5* This file is part of EvtGen. *
6* *
7* EvtGen is free software: you can redistribute it and/or modify *
8* it under the terms of the GNU General Public License as published by *
9* the Free Software Foundation, either version 3 of the License, or *
10* (at your option) any later version. *
11* *
12* EvtGen is distributed in the hope that it will be useful, *
13* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15* GNU General Public License for more details. *
16* *
17* You should have received a copy of the GNU General Public License *
18* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19***********************************************************************/
20
22
23#include "EvtGenBase/EvtPDL.hh"
25
27 m_mRho(),
28 m_gamma0(),
29 m_cK( 0 ),
30 m_mK(),
31 m_gammaK(),
32 m_gKRho(),
33 m_gKPi(),
34 m_mPi( EvtPDL::getMeanMass( EvtPDL::getId( "pi+" ) ) ),
36{
37 // cK coefficients from Eur. Phys. J. C39, 41 (2005), arXiv:hep-ph/0409080 [hep-ph]
38
39 // rho(770)
40 m_mRho.push_back( EvtPDL::getMeanMass( EvtPDL::getId( "rho0" ) ) );
41 m_gamma0.push_back( EvtPDL::getWidth( EvtPDL::getId( "rho0" ) ) );
42 m_cK.push_back( 1.195 );
43
44 // rho(1450)
45 m_mRho.push_back( EvtPDL::getMeanMass( EvtPDL::getId( "rho(2S)0" ) ) );
46 m_gamma0.push_back( EvtPDL::getWidth( EvtPDL::getId( "rho(2S)0" ) ) );
47 m_cK.push_back( -0.112 );
48
49 // rho(1700)
50 m_mRho.push_back( EvtPDL::getMeanMass( EvtPDL::getId( "rho(3S)0" ) ) );
51 m_gamma0.push_back( EvtPDL::getWidth( EvtPDL::getId( "rho(3S)0" ) ) );
52 m_cK.push_back( -0.083 );
53
54 // rho(2150), PRD 76 092005
55 m_mRho.push_back( 2.150 );
56 m_gamma0.push_back( 0.310 );
57 m_cK.push_back( 0.0 );
58
59 // Storing K resonance information
60
61 // K(892)
62
63 m_mK.push_back( EvtPDL::getMeanMass( EvtPDL::getId( "K*0" ) ) );
64 m_gammaK.push_back( EvtPDL::getWidth( EvtPDL::getId( "K*0" ) ) );
65 m_gKRho.push_back( 0.0 );
66 m_gKPi.push_back( 3.26 );
67
68 // K1(1270)
69
70 m_mK.push_back( EvtPDL::getMeanMass( EvtPDL::getId( "K_10" ) ) );
71 m_gammaK.push_back( EvtPDL::getWidth( EvtPDL::getId( "K_10" ) ) );
72 m_gKRho.push_back( 2.71 );
73 m_gKPi.push_back( 0.792 );
74
75 // K1(1400)
76 m_mK.push_back( EvtPDL::getMeanMass( EvtPDL::getId( "K'_10" ) ) );
77 m_gammaK.push_back( EvtPDL::getWidth( EvtPDL::getId( "K'_10" ) ) );
78 m_gKRho.push_back( 0.254 );
79 m_gKPi.push_back( 2.509 );
80}
81
82EvtComplex EvtWHad::BWKK( double s, int i ) const
83{
84 const double m2 = m_mRho[i] * m_mRho[i];
85 const EvtComplex qs = pcm( s );
86 const EvtComplex qm = pcm( m2 );
87 if ( abs( qm ) < 1e-10 ) {
88 return 0;
89 }
90
91 const EvtComplex rat = qs / qm;
92 const EvtComplex rat3 = rat * rat * rat;
93 if ( abs( s ) < 1e-10 ) {
94 return 0;
95 }
96
97 const EvtComplex gamma = m2 * rat3 * m_gamma0[i] / s;
98 const EvtComplex I( 0.0, 1.0 );
99
100 const EvtComplex denBW = m2 - s - I * sqrt( s ) * gamma;
101 if ( abs( denBW ) < 1e-10 ) {
102 return 0;
103 }
104
105 return m_cK[i] * m2 / denBW;
106}
107
109 const EvtVector4R& pKplus ) const
110{
111 const double s = ( pKS + pKplus ).mass2();
112 const EvtComplex f = BWKK( s, 0 ) + BWKK( s, 1 ) + BWKK( s, 2 );
113
114 return f * ( pKS - pKplus );
115}
116
117EvtComplex EvtWHad::pcm( double s ) const
118{
119 const double mpi2 = 0.0196; // 0.140*0.140
120 if ( abs( s ) < 1e-10 )
121 return 0;
122
123 const double pcm2 = 1.0 - 4.0 * mpi2 / s;
124 EvtComplex result;
125
126 if ( pcm2 >= 0.0 ) {
127 result = EvtComplex( sqrt( pcm2 ), 0.0 );
128 } else {
129 result = EvtComplex( 0.0, sqrt( -pcm2 ) );
130 }
131
132 return result;
133}
134
135// =================== W+ -> pi_ current ========================================
136
138{
139 return q1;
140}
141
142//====================== W+ -> pi+ pi0 current =========================================
143
145{
146 return BWr( q1 + q2 ) * ( q1 - q2 );
147}
148
149//========================= W+ -> pi+ pi+ pi- current ==============================================
150
152 const EvtVector4R& q3 ) const
153{
154 const EvtVector4R Q = q1 + q2 + q3;
155 const EvtVector4R q13 = q1 - q3, q23 = q2 - q3;
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 ) );
159}
160
161// ================= W+ -> pi+ pi+ pi- pi- pi+ current with symmetrization ================================
162
164 const EvtVector4R& q3, const EvtVector4R& q4,
165 const EvtVector4R& q5 ) const
166{
167 const EvtVector4C term1 = JB( q1, q2, q3, q4, q5 );
168 const EvtVector4C term2 = JB( q5, q2, q3, q4, q1 );
169 const EvtVector4C term3 = JB( q1, q5, q3, q4, q2 );
170 const EvtVector4C term4 = JB( q1, q2, q4, q3, q5 );
171 const EvtVector4C term5 = JB( q5, q2, q4, q3, q1 );
172 const EvtVector4C term6 = JB( q1, q5, q4, q3, q2 );
173
174 const EvtVector4C V = term1 + term2 + term3 + term4 + term5 + term6;
175 return V;
176}
177
178// W+ -> pi+ pi+ pi+ pi- pi-
180 const EvtVector4R& q3, const EvtVector4R& q4,
181 const EvtVector4R& q5 ) const
182{
183 return EvtWHad::WCurrent( q1, q2, q4, q5, q3 ); // WCurrent(++--+)
184}
185
186// =========================W+ -> K+ K- pi+ current ==================================================
187
189 const EvtVector4R& pKminus,
190 const EvtVector4R& pPiPlus ) const
191{
192 const double mA1( 1.239 ), gammaA1( 0.600 );
193
194 const EvtVector4R q = pKplus + pKminus + pPiPlus;
195 const double q2 = q.mass2();
196 const EvtVector4R pK = pKminus + pPiPlus;
197 const double pK2 = pK.mass2();
198
199 const EvtComplex I( 0.0, 1.0 );
200
201 const EvtComplex den1 = 1.0 / ( q2 - mA1 * mA1 + I * mA1 * gammaA1 );
202 const EvtComplex den2 = 1.0 / ( pK2 - m_mK[0] * m_mK[0] +
203 I * m_mK[0] * m_gammaK[0] ); //K(892)
204
205 const EvtTensor4C ten = EvtTensor4C::g() -
206 ( 1.0 / q2 ) * EvtGenFunctions::directProd( q, q );
207
208 EvtVector4C vec = den1 * den2 * ( pKminus - pPiPlus );
209 vec = ten.cont2( vec );
210
211 return vec;
212}
213
214// hadronic hurrent W -> K+ K- pi+ pi+ pi- with identical pi+ symmetry
216 const EvtVector4R& pKminus,
217 const EvtVector4R& pPi1Plus,
218 const EvtVector4R& pPi2Plus,
219 const EvtVector4R& pPiMinus ) const
220{
221 return EvtWHad::WCurrent_KKPPP_nosym( pKplus, pKminus, pPi1Plus, pPi2Plus,
222 pPiMinus ) +
223 EvtWHad::WCurrent_KKPPP_nosym( pKplus, pKminus, pPi2Plus, pPi1Plus,
224 pPiMinus );
225}
226
227// hadronic hurrent W -> a1(K+ K- pi1+) f0(pi2+ pi-) without identical pi+ symmetry
229 const EvtVector4R& pKminus,
230 const EvtVector4R& pPi1Plus,
231 const EvtVector4R& pPi2Plus,
232 const EvtVector4R& pPiMinus ) const
233{
234 const EvtVector4R pf0 = pPi2Plus + pPiMinus;
235 const EvtVector4C epsA1 = EvtWHad::WCurrent_KKP( pKplus, pKminus, pPi1Plus );
236 const EvtVector4R q = pKplus + pKminus + pPi1Plus + pPi2Plus + pPiMinus;
237 return BWa( q ) * epsA1 * BWf( pf0 );
238}
239
240// 1=pi+ 2=pi+ 3=pi+ 4=pi+ 5=pi- 6=pi- 7=pi- with symmetrization of the identical particles
242 const EvtVector4R& p3, const EvtVector4R& p4,
243 const EvtVector4R& p5, const EvtVector4R& p6,
244 const EvtVector4R& p7 ) const
245{
246 // a1 -> a1(1=pi+ 2=pi+ 3=pi+ 5=pi- 6=pi-) f0(4=pi+ 7=pi-) without symmetrization of the identical particles
247 // making p4 symmetric with p1, p2, p3
248 // p7 p5, p6
249 EvtVector4C eps;
250 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p2, p3, p4, p5, p6, p7 );
251 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p2, p4, p3, p5, p6, p7 );
252 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p4, p3, p2, p5, p6, p7 );
253 eps += EvtWHad::WCurrent_7pi_nosymm( p4, p2, p3, p1, p5, p6, p7 );
254 //
255 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p2, p3, p4, p5, p7, p6 );
256 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p2, p4, p3, p5, p7, p6 );
257 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p4, p3, p2, p5, p7, p6 );
258 eps += EvtWHad::WCurrent_7pi_nosymm( p4, p2, p3, p1, p5, p7, p6 );
259 //
260 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p2, p3, p4, p7, p6, p5 );
261 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p2, p4, p3, p7, p6, p5 );
262 eps += EvtWHad::WCurrent_7pi_nosymm( p1, p4, p3, p2, p7, p6, p5 );
263 eps += EvtWHad::WCurrent_7pi_nosymm( p4, p2, p3, p1, p7, p6, p5 );
264
265 return eps;
266}
267
268// a1 -> a1(1=pi+ 2=pi+ 3=pi+ 5=pi- 6=pi-) f0(4=pi+ 7=pi-) without symmetrization of the identical particles
270 const EvtVector4R& p1, const EvtVector4R& p2, const EvtVector4R& p3,
271 const EvtVector4R& p4, const EvtVector4R& p5, const EvtVector4R& p6,
272 const EvtVector4R& p7 ) const
273{
274 const EvtVector4R qTot = p1 + p2 + p3 + p4 + p5 + p6 + p7;
275 const EvtVector4C eps1 = EvtWHad::WCurrent_5pi( p1, p2, p3, p5,
276 p6 ); // pi+ pi+ pi+ pi- pi-
277 const EvtVector4R pf0 = p4 + p7;
278 return eps1 * BWa( qTot ) * BWf( pf0 );
279}
280
281// hadronic current W+ -> K+ pi+ pi-
282
284 const EvtVector4R& pPiPlus,
285 const EvtVector4R& pPiMinus ) const
286{
287 const double cK1p = 0.210709, cK1r = -0.0152997, cK2p = 0.0945309,
288 cK2r = 0.504315;
289 const double gRho_PiPi = 6.02;
290
291 const EvtVector4R q = pKplus + pPiPlus + pPiMinus;
292 const double q2 = q.mass2();
293
294 double pp2( 0.0 );
295 EvtVector4C curr( 0, 0, 0, 0 ), curr1;
296
297 // W+ -> K1+(1270) -> K+ rho0 -> K+ pi+ pi-
298
299 pp2 = ( pPiPlus + pPiMinus ).mass2();
300 curr1 = ( pPiPlus - pPiMinus ) * Den( q2, m_mK[1], m_gammaK[1], m_gKRho[1] ) *
301 Den( pp2, m_mRho[0], m_gamma0[0], gRho_PiPi ); //K1(1270) and rho(770)
302 curr = curr + cK1r * curr1;
303
304 // W+ -> K1+(1270) -> K*(892)0 pi+ -> K+ pi- pi-
305
306 pp2 = ( pKplus + pPiMinus ).mass2();
307 curr1 = ( pKplus - pPiMinus ) * Den( q2, m_mK[1], m_gammaK[1], m_gKPi[1] ) *
308 Den( pp2, m_mK[0], m_gammaK[0], m_gKPi[0] ); //K1(1270) and K(892)
309 curr = curr + cK1p * curr1;
310
311 // W+ -> K1+(1400) -> K+ rho0 -> K+ pi+ pi-
312
313 pp2 = ( pPiMinus + pPiPlus ).mass2();
314 curr1 = ( pPiPlus - pPiMinus ) * Den( q2, m_mK[2], m_gammaK[2], m_gKRho[2] ) *
315 Den( pp2, m_mRho[0], m_gamma0[0], gRho_PiPi ); //K1(1400) and rho(770)
316 curr = curr + cK2r * curr1;
317
318 // W+ -> K1+(1400) -> K*(892)0 pi+ -> K+ pi- pi+
319
320 pp2 = ( pKplus + pPiMinus ).mass2();
321 curr1 = ( pKplus - pPiPlus ) * Den( q2, m_mK[2], m_gammaK[2], m_gKPi[2] ) *
322 Den( pp2, m_mK[0], m_gammaK[0], m_gKPi[0] ); //K1(1400) and K(892)
323 curr = curr + cK2p * curr1;
324
325 const EvtTensor4C ten = EvtTensor4C::g() -
326 ( 1.0 / q2 ) * EvtGenFunctions::directProd( q, q );
327 curr = ten.cont2( curr );
328
329 return curr;
330}
331
332EvtComplex EvtWHad::Den( double qSq, const double mR, const double gammaR,
333 const double gR ) const
334{
335 const EvtComplex I( 0.0, 1.0 );
336 const EvtComplex tmp = qSq - mR * mR + I * mR * gammaR;
337
338 if ( abs( tmp ) < 1e-10 )
339 return 0;
340 return gR / tmp;
341}
342
343// a1 -> pi+ pi+ pi- BW
345{
346 const double _mA1( 1.26 ), _GA1( 0.4 );
347 const double _mA1Sq = _mA1 * _mA1;
348 const EvtComplex I( 0.0, 1.0 );
349 const double Q2 = q.mass2();
350 const double GA1 = _GA1 * pi3G( Q2 ) / pi3G( _mA1Sq );
351
352 const EvtComplex denBA1( _mA1Sq - Q2, -1.0 * _mA1 * GA1 );
353 if ( abs( denBA1 ) < 1e-10 )
354 return 0;
355 return _mA1Sq / denBA1;
356}
357
359{
360 const double mf( 0.8 ), Gf( 0.6 );
361 const double mfSq = mf * mf;
362 const EvtComplex I( 0.0, 1.0 );
363 const double Q2 = q.mass2();
364 return mfSq / ( mfSq - Q2 - I * mf * Gf );
365}
366
368{
369 const double beta( -0.108 );
370
371 const double s = q.mass2();
372 const EvtComplex BW_rho = BW( s, m_mRho[0], m_gamma0[0], m_mPi, m_mPi );
373 const EvtComplex BW_rhopr = BW( s, m_mRho[1], m_gamma0[1], m_mPi, m_mPi );
374 return ( BW_rho + beta * BW_rhopr ) / ( 1.0 + beta );
375}
376
377double EvtWHad::pi3G( double Q2 ) const
378{
379 const double mRhoPi = m_mRho[0] + m_mPi;
380 // Parameterisation of scaling factor for a1 (to 3pi) decay width
381 if ( Q2 < mRhoPi * mRhoPi ) {
382 const double arg = Q2 - 9. * m_mPiSq;
383 const double arg2 = arg * arg;
384 const double arg3 = arg * arg2;
385 return 4.1 * arg3 * ( 1. - 3.3 * arg + 5.8 * arg2 );
386 } else {
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 );
390 }
391}
392
394 const EvtVector4R& p3, const EvtVector4R& p4,
395 const EvtVector4R& p5 ) const
396{
397 const EvtVector4R Qtot = p1 + p2 + p3 + p4 + p5, Qa = p1 + p2 + p3;
398 const EvtTensor4C T = ( 1.0 / Qtot.mass2() ) *
399 EvtGenFunctions::directProd( Qtot, Qtot ) -
401
402 const EvtVector4R p13 = p1 - p3, p23 = p2 - p3;
403 const EvtVector4R V13 = Qa * ( p2 * p13 ) / Qa.mass2() - p13;
404 const EvtVector4R V23 = Qa * ( p1 * p23 ) / Qa.mass2() - p23;
405
406 return BWa( Qtot ) * BWa( Qa ) * BWf( p4 + p5 ) *
407 ( T.cont1( V13 ) * BWr( p1 + p3 ) + T.cont1( V23 ) * BWr( p2 + p3 ) );
408}
409
410EvtComplex EvtWHad::BW( double s, double m, double gamma, double xm1,
411 double xm2 ) const
412{
413 const double m2 = m * m;
414 const double xmSum = xm1 + xm2;
415 const double xmSumSq = xmSum * xmSum;
416 if ( s > xmSumSq ) {
417 const double xmDiff = xm1 - xm2;
418 const double xmDiffSq = xmDiff * xmDiff;
419 const double qs = sqrt( fabs( ( s - xmSumSq ) * ( s - xmDiffSq ) ) ) /
420 sqrt( s );
421 const double qm = sqrt( fabs( ( m2 - xmSumSq ) * ( m2 - xmDiffSq ) ) ) /
422 m;
423
424 const double qRatio = qm > 0.0 ? qs / qm : 0.0;
425 gamma *= m2 / s * ( qRatio * qRatio * qRatio );
426 } else
427 gamma = 0.;
428 const EvtComplex denBW( m2 - s, -1. * sqrt( s ) * gamma );
429 return m2 / denBW;
430}
431
433 const EvtVector4R& p3, const EvtVector4R& p4,
434 const EvtVector4R& p5 ) const
435{
436 return EvtWHad::WCurrent_K4pi_nosymm( p1, p2, p3, p4, p5 ) +
437 EvtWHad::WCurrent_K4pi_nosymm( p1, p2, p3, p5, p4 );
438}
439
440// a1 -> K*0 (1=K+ 4=pi-) a1(2=pi+ 3=pi+ 5=pi-)
442 const EvtVector4R& p2,
443 const EvtVector4R& p3,
444 const EvtVector4R& p4,
445 const EvtVector4R& p5 ) const
446{
447 const EvtComplex I( 0, 1 );
448 const EvtVector4R pKstar = p1 + p4, pa1 = p2 + p3 + p5;
449 EvtComplex denKstar = pKstar * pKstar - m_mK[0] * m_mK[0] +
450 I * m_mK[0] * m_gammaK[0]; //K(892)
451 if ( abs( denKstar ) < 1e-10 ) {
452 denKstar = 1e10;
453 }
454 const EvtVector4C epsKstar = 1 / denKstar * ( p1 - p4 );
455 const EvtVector4C epsA1 = WCurrent( p2, p3, p5 );
456 const EvtVector4C eps =
457 dual( EvtGenFunctions::directProd( epsKstar, epsA1 ) ).cont2( pKstar - pa1 );
458 return eps;
459}
460
462 const EvtDiracSpinor& sp1,
463 const EvtVector4R& p2,
464 const EvtDiracSpinor& sp2,
465 const EvtVector4R& k ) const
466{
467 const EvtVector4R q = p1 + p2 + k;
468 const double q2 = q.mass2();
469 const double mp = p1.mass(), mp2 = mp * mp, mpi = k.mass(), mpi2 = mpi * mpi;
470 const double mn = EvtPDL::getMeanMass( EvtPDL::getId( "n0" ) );
471 const double mn2 = mn * mn;
472 const EvtComplex II( 0, 1 );
473
474 const double kp2 = k * p2;
475 const double p1p2 = p1 * p2;
476
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 );
481
482 const EvtComplex curS = EvtLeptonSCurrent( sp1, sp2 );
483 const EvtComplex curP = EvtLeptonPCurrent( sp1, sp2 );
484 const EvtVector4C curV = EvtLeptonVCurrent( sp1, sp2 );
485 const EvtVector4C curA = EvtLeptonACurrent( sp1, sp2 );
486 const EvtTensor4C curT = EvtLeptonTCurrent( sp1, sp2 );
487
488 const double D1 = 1 / ( 2 * kp2 + mp2 - mn2 + mpi2 ); //(k+p2)^2-mn^2
489
490 // Amplitude: ~U(p1).GA5.Vpp(alpha).prop(-p2-k).V(p2) + permutations
491 // U() and V() are proton and antiproton spinors, prop() is the proton's propagator,
492 // and Vpp(alpha) is the W->pp vertex.
493 // Expand terms to use basic spinor currents (Scalar, Vector, Axial, etc)
494
495 EvtVector4C current;
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 );
509
510 const EvtTensor4C JT = ( 1.0 / q2 ) * EvtGenFunctions::directProd( q, q ) -
512 current = JT.cont2( current );
513
514 return BWa( q ) * current;
515}
const EvtComplex I
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)
Definition EvtPDL.cpp:346
static double getMeanMass(EvtId i)
Definition EvtPDL.cpp:306
static EvtId getId(const std::string &name)
Definition EvtPDL.cpp:283
EvtVector4C cont1(const EvtVector4C &v4) const
static const EvtTensor4C & g()
EvtVector4C cont2(const EvtVector4C &v4) const
double mass() const
double mass2() const
std::vector< double > m_mK
Definition EvtWHad.hh:127
EvtVector4C WCurrent_KKP(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPiPlus) const
Definition EvtWHad.cpp:188
EvtComplex Den(double q, double mR, double gammaR, double gR) const
Definition EvtWHad.cpp:332
EvtVector4C WCurrent_KPP(const EvtVector4R &pKplus, const EvtVector4R &pPiPlus, const EvtVector4R &pPiMinus) const
Definition EvtWHad.cpp:283
EvtVector4C WCurrent_K4pi(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5) const
Definition EvtWHad.cpp:432
std::vector< double > m_mRho
Definition EvtWHad.hh:127
EvtComplex BWr(const EvtVector4R &q) const
Definition EvtWHad.cpp:367
std::vector< double > m_gKRho
Definition EvtWHad.hh:127
EvtComplex BWf(const EvtVector4R &q) const
Definition EvtWHad.cpp:358
EvtVector4C WCurrent_KKPPP_nosym(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPi1Plus, const EvtVector4R &pPi2Plus, const EvtVector4R &pPiMinus) const
Definition EvtWHad.cpp:228
EvtComplex pcm(double s) const
Definition EvtWHad.cpp:117
EvtWHad()
Definition EvtWHad.cpp:26
EvtVector4C WCurrent_KSK(const EvtVector4R &pKS, const EvtVector4R &pKplus) const
Definition EvtWHad.cpp:108
EvtVector4C WCurrent_KKPPP(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPi1Plus, const EvtVector4R &pPi2Plus, const EvtVector4R &pPiMinus) const
Definition EvtWHad.cpp:215
std::vector< double > m_cK
Definition EvtWHad.hh:127
EvtVector4C WCurrent(const EvtVector4R &q1) const
Definition EvtWHad.cpp:137
EvtVector4C WCurrent_ppPi(const EvtVector4R &p1, const EvtDiracSpinor &sp1, const EvtVector4R &p2, const EvtDiracSpinor &sp2, const EvtVector4R &k) const
Definition EvtWHad.cpp:461
std::vector< double > m_gammaK
Definition EvtWHad.hh:127
EvtVector4C WCurrent_K4pi_nosymm(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5) const
Definition EvtWHad.cpp:441
std::vector< double > m_gKPi
Definition EvtWHad.hh:127
std::vector< double > m_gamma0
Definition EvtWHad.hh:127
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
Definition EvtWHad.cpp:241
EvtComplex BW(double s, double m, double gamma, double xm1, double xm2) const
Definition EvtWHad.cpp:410
EvtComplex BWKK(double s, int i) const
Definition EvtWHad.cpp:82
double m_mPi
Definition EvtWHad.hh:128
double m_mPiSq
Definition EvtWHad.hh:128
EvtComplex BWa(const EvtVector4R &q) const
Definition EvtWHad.cpp:344
double pi3G(double Q2) const
Definition EvtWHad.cpp:377
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
Definition EvtWHad.cpp:269
EvtVector4C JB(const EvtVector4R &q1, const EvtVector4R &q2, const EvtVector4R &q3, const EvtVector4R &q4, const EvtVector4R &q5) const
Definition EvtWHad.cpp:393
EvtVector4C WCurrent_5pi(const EvtVector4R &q1, const EvtVector4R &q2, const EvtVector4R &q3, const EvtVector4R &q4, const EvtVector4R &q5) const
Definition EvtWHad.cpp:179
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)