125 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
126 int EE[4][4][4][4] = {
127 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
128 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
129 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
130 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
131 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
132 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
133 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
134 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
135 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
136 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
137 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
138 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
139 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
140 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
141 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
142 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
143 for (
int i = 0; i < 4; i++ )
145 for (
int j = 0; j < 4; j++ )
148 for (
int k = 0; k < 4; k++ )
150 for (
int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
186 double Ks[4], Pip1[4], Pip2[4], Pim[4];
187 Ks[0] = Ks0.
get( 0 );
188 Pip1[0] = pi1.
get( 0 );
189 Pip2[0] =
pi2.get( 0 );
190 Pim[0] = pi3.
get( 0 );
191 Ks[1] = Ks0.
get( 1 );
192 Pip1[1] = pi1.
get( 1 );
193 Pip2[1] =
pi2.get( 1 );
194 Pim[1] = pi3.
get( 1 );
195 Ks[2] = Ks0.
get( 2 );
196 Pip1[2] = pi1.
get( 2 );
197 Pip2[2] =
pi2.get( 2 );
198 Pim[2] = pi3.
get( 2 );
199 Ks[3] = Ks0.
get( 3 );
200 Pip1[3] = pi1.
get( 3 );
201 Pip2[3] =
pi2.get( 3 );
202 Pim[3] = pi3.
get( 3 );
203 double prob = calPDF( Ks, Pip1, Pip2, Pim );
208double EvtDToKSpipipi::calPDF(
double Ks[],
double Pip1[],
double Pip2[],
double Pim[] ) {
210 double P14[4], P24[4], P34[4], P124[4], P134[4], P234[4];
211 for (
int i = 0; i < 4; i++ )
213 P14[i] = Ks[i] + Pim[i];
214 P24[i] = Pip1[i] + Pim[i];
215 P34[i] = Pip2[i] + Pim[i];
216 P124[i] = P14[i] + Pip1[i];
217 P134[i] = P14[i] + Pip2[i];
218 P234[i] = P24[i] + Pip2[i];
222 PDF[0] = D2AP_A2VP( Ks, Pip2, Pip1, Pim, 0 ) * getprop( P24, Pip2, ma1, Ga1, 1, 0 ) *
223 getprop( Pip1, Pim, mrho, Grho, 2, 1 ) +
224 D2AP_A2VP( Ks, Pip1, Pip2, Pim, 0 ) * getprop( P34, Pip1, ma1, Ga1, 1, 0 ) *
225 getprop( Pip2, Pim, mrho, Grho, 2, 1 );
226 PDF[1] = D2AP_A2VP( Ks, Pip2, Pip1, Pim, 2 ) * getprop( P24, Pip2, ma1, Ga1, 1, 2 ) *
227 getprop( Pip1, Pim, mrho, Grho, 2, 1 ) +
228 D2AP_A2VP( Ks, Pip1, Pip2, Pim, 2 ) * getprop( P34, Pip1, ma1, Ga1, 1, 2 ) *
229 getprop( Pip2, Pim, mrho, Grho, 2, 1 );
231 PDF[2] = D2AP_A2SP( Ks, Pip2, Pip1, Pim ) * getprop( P24, Pip2, ma1, Ga1, 1, 1 ) *
232 getprop( Pip1, Pim, msigma, Gsigma, 4, 0 ) +
233 D2AP_A2SP( Ks, Pip1, Pip2, Pim ) * getprop( P34, Pip1, ma1, Ga1, 1, 1 ) *
234 getprop( Pip2, Pim, msigma, Gsigma, 4, 0 );
238 PDF[3] = D2AP_A2VP( Pip2, Pip1, Ks, Pim, 0 ) * getprop( P14, Pip1, mK1400, GK1400, 1, 0 ) *
239 getprop( Ks, Pim, mKstr, GKstr, 1, 1 ) +
240 D2AP_A2VP( Pip1, Pip2, Ks, Pim, 0 ) * getprop( P14, Pip2, mK1400, GK1400, 1, 0 ) *
241 getprop( Ks, Pim, mKstr, GKstr, 1, 1 );
243 PDF[4] = D2AP_A2VP( Pip2, Pip1, Ks, Pim, 2 ) * getprop( P14, Pip1, mK1400, GK1400, 1, 2 ) *
244 getprop( Ks, Pim, mKstr, GKstr, 1, 1 ) +
245 D2AP_A2VP( Pip1, Pip2, Ks, Pim, 2 ) * getprop( P14, Pip2, mK1400, GK1400, 1, 2 ) *
246 getprop( Ks, Pim, mKstr, GKstr, 1, 1 );
249 PDF[5] = D2AP_A2VP( Pip2, Ks, Pip1, Pim, 0 ) * getprop( P24, Ks, mK1270, GK1270, 0, 0 ) *
250 getprop( Pip1, Pim, mrho, Grho, 2, 1 ) +
251 D2AP_A2VP( Pip1, Ks, Pip2, Pim, 0 ) * getprop( P34, Ks, mK1270, GK1270, 0, 0 ) *
252 getprop( Pip2, Pim, mrho, Grho, 2, 1 );
254 PDF[6] = D2AP_A2VP( Pip2, Ks, Pip1, Pim, 0 ) * getprop( Pip1, Pim, mrho, Grho, 2, 1 ) +
255 D2AP_A2VP( Pip1, Ks, Pip2, Pim, 0 ) * getprop( Pip2, Pim, mrho, Grho, 2, 1 );
256 PDF[7] = D2AP_A2VP( Pip2, Ks, Pip1, Pim, 2 ) * getprop( Pip1, Pim, mrho, Grho, 2, 1 ) +
257 D2AP_A2VP( Pip1, Ks, Pip2, Pim, 2 ) * getprop( Pip2, Pim, mrho, Grho, 2, 1 );
259 PDF[8] = D2PP_P2VP( Pip2, Ks, Pip1, Pim ) * getprop( P24, Ks, mK1460, GK1460, 1, 1 ) *
260 getprop( Pip1, Pim, mrho, Grho, 2, 1 ) +
261 D2PP_P2VP( Pip1, Ks, Pip2, Pim ) * getprop( P34, Ks, mK1460, GK1460, 1, 1 ) *
262 getprop( Pip2, Pim, mrho, Grho, 2, 1 );
264 PDF[9] = D2AP_A2VP( Pip2, Pip1, Ks, Pim, 0 ) * getprop( P14, Pip1, mK1650, GK1650, 1, 0 ) *
265 getprop( Ks, Pim, mKstr, GKstr, 1, 1 ) +
266 D2AP_A2VP( Pip1, Pip2, Ks, Pim, 0 ) * getprop( P14, Pip2, mK1650, GK1650, 1, 0 ) *
267 getprop( Ks, Pim, mKstr, GKstr, 1, 1 );
269 PDF[10] = D2AP_A2SP( Pip2, Ks, Pip1, Pim ) + D2AP_A2SP( Pip1, Ks, Pip2, Pim );
271 EvtComplex corr( 2, 0 );
272 PDF[11] = corr * PHSP( Ks, Pim );
275 PDF[12] = D2PP_P2VP( Pip2, Pip1, Ks, Pim ) * getprop( P14, Pip1, mK1460, GK1460, 1, 1 ) *
276 getprop( Ks, Pim, mKstr, GKstr, 1, 1 ) +
277 D2PP_P2VP( Pip1, Pip2, Ks, Pim ) * getprop( P14, Pip2, mK1460, GK1460, 1, 1 ) *
278 getprop( Ks, Pim, mKstr, GKstr, 1, 1 );
281 EvtComplex pdf, module;
282 pdf = EvtComplex( 0, 0 );
283 for (
int i = 0; i < 13; i++ )
285 cof = EvtComplex( rho[i] *
cos( phi[i] ), rho[i] *
sin( phi[i] ) );
286 pdf = pdf + cof * PDF[i];
288 module = conj( pdf ) * pdf;
290 value =
real( module );
291 return ( value <= 0 ) ? 1e-20 : value;
294EvtComplex EvtDToKSpipipi::KPiSFormfactor(
double sa,
double sb,
double sc,
double r ) {
295 double m1430 = 1.463;
296 double sa0 = m1430 * m1430;
297 double w1430 = 0.233;
298 double q0 = ( sa0 + sb - sc ) * ( sa0 + sb - sc ) / ( 4 * sa0 ) - sb;
299 if ( q0 < 0 ) q0 = 1e-16;
300 double qs = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
301 double q = sqrt( qs );
302 double width = w1430 *
q * m1430 / sqrt( sa * q0 );
303 double temp_R = atan( m1430 * width / ( sa0 - sa ) );
304 if ( temp_R < 0 ) temp_R += math_pi;
305 double deltaR = -5.31 + temp_R;
306 double temp_F = atan( 2 * 1.07 *
q / ( 2 + ( -1.8 ) * 1.07 * qs ) );
307 if ( temp_F < 0 ) temp_F += math_pi;
308 double deltaF = 2.33 + temp_F;
309 EvtComplex cR(
cos( deltaR ),
sin( deltaR ) );
310 EvtComplex cF(
cos( deltaF ),
sin( deltaF ) );
311 EvtComplex amp = 0.8 *
sin( deltaF ) * cF +
sin( deltaR ) * cR * cF * cF;
314EvtComplex EvtDToKSpipipi::D2AP_A2VP(
double P1[],
double P2[],
double P3[],
double P4[],
317 EvtComplex amp_PDF( 0, 0 );
319 double t1V[4], t1D[4], t2A[4][4];
320 double sa[3], sb[3], sc[3],
B[3];
321 double pV[4], pA[4], pD[4];
322 for (
int i = 0; i != 4; i++ )
324 pV[i] = P3[i] + P4[i];
325 pA[i] = pV[i] + P2[i];
326 pD[i] = pA[i] + P1[i];
328 sa[0] = dot( pV, pV );
329 sb[0] = dot( P3, P3 );
330 sc[0] = dot( P4, P4 );
331 sa[1] = dot( pA, pA );
333 sc[1] = dot( P2, P2 );
334 sa[2] = dot( pD, pD );
336 sc[2] = dot( P1, P1 );
337 B[0] = barrier( 1, sa[0], sb[0], sc[0], 3 );
338 B[2] = barrier( 1, sa[2], sb[2], sc[2], rD );
339 calt1( P3, P4, t1V );
340 calt1( pA, P1, t1D );
343 for (
int i = 0; i != 4; i++ )
345 for (
int j = 0; j != 4; j++ )
348 t1D[i] * ( G[i][j] - pA[i] * pA[j] / sa[1] ) * t1V[j] * ( G[i][i] ) * ( G[j][j] );
355 calt2( pV, P2, t2A );
356 for (
int i = 0; i != 4; i++ )
358 for (
int j = 0; j != 4; j++ )
359 { temp_PDF += t1D[i] * t2A[i][j] * t1V[j] * ( G[i][i] ) * ( G[j][j] ); }
361 B[1] = barrier( 2, sa[1], sb[1], sc[1], 3 );
363 amp_PDF = temp_PDF *
B[0] *
B[1] *
B[2];
366EvtComplex EvtDToKSpipipi::D2AP_A2SP(
double P1[],
double P2[],
double P3[],
double P4[] ) {
368 EvtComplex amp_PDF( 0, 0 );
370 double sa[3], sb[3], sc[3],
B[3];
371 double t1D[4], t1A[4];
372 double pS[4], pA[4], pD[4];
373 for (
int i = 0; i != 4; i++ )
375 pS[i] = P3[i] + P4[i];
376 pA[i] = pS[i] + P2[i];
377 pD[i] = pA[i] + P1[i];
379 sa[0] = dot( pS, pS );
380 sb[0] = dot( P3, P3 );
381 sc[0] = dot( P4, P4 );
382 sa[1] = dot( pA, pA );
384 sc[1] = dot( P2, P2 );
385 sa[2] = dot( pD, pD );
387 sc[2] = dot( P1, P1 );
388 B[1] = barrier( 1, sa[1], sb[1], sc[1], 3 );
389 B[2] = barrier( 1, sa[2], sb[2], sc[2], rD );
390 calt1( pA, P1, t1D );
391 calt1( pS, P2, t1A );
392 for (
int i = 0; i != 4; i++ ) { temp_PDF += t1D[i] * t1A[i] * ( G[i][i] ); }
393 amp_PDF = temp_PDF *
B[1] *
B[2];
396EvtComplex EvtDToKSpipipi::D2PP_P2VP(
double P1[],
double P2[],
double P3[],
double P4[] ) {
398 EvtComplex amp_PDF( 0, 0 );
400 double sa[3], sb[3], sc[3],
B[3];
402 double pV[4], pP[4], pD[4];
403 for (
int i = 0; i != 4; i++ )
405 pV[i] = P3[i] + P4[i];
406 pP[i] = pV[i] + P2[i];
407 pD[i] = pP[i] + P1[i];
409 sa[0] = dot( pV, pV );
410 sb[0] = dot( P3, P3 );
411 sc[0] = dot( P4, P4 );
412 sa[1] = dot( pP, pP );
414 sc[1] = dot( P2, P2 );
415 sa[2] = dot( pD, pD );
417 sc[2] = dot( P1, P1 );
418 B[0] = barrier( 1, sa[0], sb[0], sc[0], 3 );
419 B[1] = barrier( 1, sa[1], sb[1], sc[1], 3 );
420 calt1( P3, P4, t1V );
421 for (
int i = 0; i != 4; i++ ) { temp_PDF += P2[i] * t1V[i] * ( G[i][i] ); }
422 amp_PDF = temp_PDF *
B[0] *
B[1];
425EvtComplex EvtDToKSpipipi::D2VP_V2VP(
double P1[],
double P2[],
double P3[],
double P4[] ) {
427 EvtComplex amp_PDF( 0, 0 );
429 double sa[3], sb[3], sc[3],
B[3];
430 double pV1[4], pV2[4], qV1[4], qV2[4], pD[4];
431 for (
int i = 0; i != 4; i++ )
433 pV2[i] = P3[i] + P4[i];
434 qV2[i] = P3[i] - P4[i];
435 pV1[i] = pV2[i] + P2[i];
436 qV1[i] = pV2[i] - P2[i];
437 pD[i] = pV1[i] + P1[i];
439 for (
int i = 0; i != 4; i++ )
441 for (
int j = 0; j != 4; j++ )
443 for (
int k = 0; k != 4; k++ )
445 for (
int l = 0; l != 4; l++ )
447 temp_PDF += E[i][j][k][l] * pV1[i] * qV1[j] * P1[k] * qV2[l] * ( G[i][i] ) *
448 ( G[j][j] ) * ( G[k][k] ) * ( G[l][l] );
453 sa[0] = dot( pV2, pV2 );
454 sb[0] = dot( P3, P3 );
455 sc[0] = dot( P4, P4 );
456 sa[1] = dot( pV1, pV1 );
458 sc[1] = dot( P2, P2 );
459 sa[2] = dot( pD, pD );
461 sc[2] = dot( P1, P1 );
462 B[0] = barrier( 1, sa[0], sb[0], sc[0], 3.0 );
463 B[1] = barrier( 1, sa[1], sb[1], sc[1], 3.0 );
464 B[2] = barrier( 1, sa[2], sb[2], sc[2], rD );
465 amp_PDF = temp_PDF *
B[0] *
B[1] *
B[2];
468EvtComplex EvtDToKSpipipi::PHSP(
double Km[],
double Pip[] ) {
469 EvtComplex amp_PDF( 0, 0 );
472 for (
int i = 0; i != 4; i++ ) { KPi[i] = Km[i] + Pip[i]; }
473 sa = dot( KPi, KPi );
475 sc = dot( Pip, Pip );
476 amp_PDF = KPiSFormfactor( sa, sb, sc, 3.0 );
479EvtComplex EvtDToKSpipipi::getprop(
double daug1[],
double daug2[],
double mass,
double width,
487 EvtComplex prop1, prop2, prop;
488 EvtComplex
one( 1, 0 );
490 for (
int i = 0; i < 4; i++ ) { pR[i] = daug1[i] + daug2[i]; }
493 sb = dot( daug1, daug1 );
494 sc = dot( daug2, daug2 );
495 if (
flag == 0 )
return propogator( mass, width, sa );
496 if (
flag == 1 )
return propagatorRBW( mass, width, sa, sb, sc, 3.0, L );
499 prop1 = propagatorGS( mass, width, sa, sb, sc, 3.0, L );
500 prop2 = propagatorRBW( 0.783, 0.008, sa, sb, sc, 3.0, L );
501 EvtComplex coef_omega( rho_omega *
cos( phi_omega ), rho_omega *
sin( phi_omega ) );
502 prop = prop1 * (
one + 0.783 * 0.783 * coef_omega * prop2 );
511 EvtComplex ci( 0, 1 );
512 double f = 0.5843 + 1.6663 * sa;
514 double mpi2 = mass_Pion * mass_Pion;
515 double mass2 = M * M;
516 double g1 = f * ( sa -
mpi2 / 2 ) / ( mass2 - mpi2 / 2 ) *
exp( ( mass2 - sa ) / 1.082 );
517 EvtComplex rho1s = rhoab( sa, sb, sc );
518 EvtComplex rho1M = rhoab( mass2, sb, sc );
519 EvtComplex rho2s = rho4Pi( sa );
520 EvtComplex rho2M = rho4Pi( mass2 );
521 prop = 1.0 / ( M * M - sa - ci * M * ( g1 * rho1s / rho1M + 0.0024 * rho2s / rho2M ) );
524 cout <<
"Please set a right flag! " <<
flag << endl;
527EvtComplex EvtDToKSpipipi::rhoab(
double sa,
double sb,
double sc ) {
528 EvtComplex
one( 1, 0 );
529 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
531 EvtComplex ci( 0, 1 );
532 if (
q > 0 ) rho =
one * sqrt(
q / sa );
533 if (
q < 0 ) rho = ci * sqrt( -
q / sa );
537EvtComplex EvtDToKSpipipi::rho4Pi(
double sa ) {
538 double mpi = 0.13957;
539 EvtComplex
one( 1, 0 );
540 EvtComplex rho( 0, 0 );
541 EvtComplex ci( 0, 1 );
542 double temp = 1 - 16 * mpi * mpi / sa;
543 if ( temp > 0 ) rho =
one * sqrt( temp ) / ( 1 +
exp( 9.8 - 3.5 * sa ) );
544 if ( temp < 0 ) rho = ci * sqrt( -temp ) / ( 1 +
exp( 9.8 - 3.5 * sa ) );
548EvtComplex EvtDToKSpipipi::propogator(
double mass,
double width,
double sx )
const {
549 EvtComplex ci( 0, 1 );
550 EvtComplex prop = 1.0 / ( mass * mass - sx - ci * mass * width );
553double EvtDToKSpipipi::wid(
double mass,
double sa,
double sb,
double sc,
double r,
555 double widm( 0. ),
q( 0. ), q0( 0. );
556 double sa0 = mass * mass;
557 double m = sqrt( sa );
558 q = Qabcs( sa, sb, sc );
559 q0 = Qabcs( sa0, sb, sc );
566 if ( l == 1 ) F = sqrt( ( 1 + z0 ) / ( 1 + z ) );
567 if ( l == 2 ) F = sqrt( ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ) );
568 widm = pow(
t, l + 0.5 ) * mass / m * F * F;
571double EvtDToKSpipipi::h(
double m,
double q )
const {
573 h = 2 / pi *
q / m * log( ( m + 2 *
q ) / ( 2 * mpi ) );
576double EvtDToKSpipipi::dh(
double mass,
double q0 )
const {
577 double dh = h( mass, q0 ) * ( 1.0 / ( 8 * q0 * q0 ) - 1.0 / ( 2 * mass * mass ) ) +
578 1.0 / ( 2 * pi * mass * mass );
581double EvtDToKSpipipi::f(
double mass,
double sx,
double q0,
double q )
const {
582 double m = sqrt( sx );
583 double f = mass * mass / ( pow( q0, 3 ) ) *
584 (
q *
q * ( h( m,
q ) - h( mass, q0 ) ) +
585 ( mass * mass - sx ) * q0 * q0 * dh( mass, q0 ) );
588double EvtDToKSpipipi::d(
double mass,
double q0 )
const {
589 double d = 3.0 / pi * mpi * mpi / ( q0 * q0 ) * log( ( mass + 2 * q0 ) / ( 2 * mpi ) ) +
590 mass / ( 2 * pi * q0 ) - ( mpi * mpi * mass ) / ( pi * pow( q0, 3 ) );
593EvtComplex EvtDToKSpipipi::propagatorRBW(
double mass,
double width,
double sa,
double sb,
594 double sc,
double r,
int l )
const {
595 EvtComplex ci( 0, 1 );
597 1.0 / ( mass * mass - sa - ci * mass * width * wid( mass, sa, sb, sc, r, l ) );
600EvtComplex EvtDToKSpipipi::propagatorGS(
double mass,
double width,
double sa,
double sb,
601 double sc,
double r,
int l )
const {
602 EvtComplex ci( 0, 1 );
603 double q = Qabcs( sa, sb, sc );
604 double sa0 = mass * mass;
605 double q0 = Qabcs( sa0, sb, sc );
608 EvtComplex prop = ( 1 + d( mass, q0 ) * width / mass ) /
609 ( mass * mass - sa + width * f( mass, sa, q0,
q ) -
610 ci * mass * width * wid( mass, sa, sb, sc, r, l ) );
613double EvtDToKSpipipi::Flatte_rhoab(
double sa,
double sb,
double sc )
const {
614 double q = Qabcs( sa, sb, sc );
615 double rho = sqrt(
q / sa );
618EvtComplex EvtDToKSpipipi::propagatorFlatte(
double mass,
double width,
double sx,
double* sb,
620 EvtComplex ci( 0, 1 );
621 double rho1 = Flatte_rhoab( sx, sb[0], sc[0] );
622 double rho2 = Flatte_rhoab( sx, sb[1], sc[1] );
623 EvtComplex prop = 1.0 / ( mass * mass - sx - ci * ( g1 * g1 * rho1 + g2 * g2 * rho2 ) );
627double EvtDToKSpipipi::dot(
double* a1,
double* a2 )
const {
629 for (
int i = 0; i != 4; i++ ) { dot += a1[i] * a2[i] * G[i][i]; }
632double EvtDToKSpipipi::Qabcs(
double sa,
double sb,
double sc )
const {
633 double Qabcs = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
634 if ( Qabcs < 0 ) Qabcs = 1e-16;
637double EvtDToKSpipipi::barrier(
double l,
double sa,
double sb,
double sc,
double r )
const {
638 double q = Qabcs( sa, sb, sc );
645 if ( l == 1 ) { F = sqrt( ( 2 * z ) / ( 1 + z ) ); }
646 if ( l == 2 ) { F = sqrt( ( 13 * z * z ) / ( 9 + 3 * z + z * z ) ); }
649void EvtDToKSpipipi::calt1(
double daug1[],
double daug2[],
double t1[] )
const {
652 for (
int i = 0; i != 4; i++ )
654 pa[i] = daug1[i] + daug2[i];
655 qa[i] = daug1[i] - daug2[i];
659 for (
int i = 0; i != 4; i++ ) { t1[i] = qa[i] - pq / p * pa[i]; }
661void EvtDToKSpipipi::calt2(
double daug1[],
double daug2[],
double t2[][4] )
const {
664 calt1( daug1, daug2, t1 );
666 for (
int i = 0; i != 4; i++ ) { pa[i] = daug1[i] + daug2[i]; }
668 for (
int i = 0; i != 4; i++ )
670 for (
int j = 0; j != 4; j++ )
671 { t2[i][j] = t1[i] * t1[j] - 1.0 / 3 * r * ( G[i][j] - pa[i] * pa[j] / p ); }
character *LEPTONflag integer iresonances real pi2
EvtComplex exp(const EvtComplex &c)
double sin(const BesAngle a)
double cos(const BesAngle a)
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
void getName(std::string &name)
void decay(EvtParticle *p)
virtual ~EvtDToKSpipipi()
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void setProb(double prob)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)