53 phi[1] = -1.45750737501177241029;
54 phi[2] = 1.45694587813248066510;
55 phi[3] = -2.14539596963664980223;
56 phi[4] = -0.51808334601975225553;
57 phi[5] = -1.56645961468228378521;
58 phi[6] = 1.87207969874086810336;
59 phi[7] = -0.92156758917410819265;
60 phi[8] = -0.92156758917410819265;
61 phi[9] = 0.61333399627627738226;
62 phi[10] = 2.95348100053888362737;
63 phi[11] = 2.12806871473955627749;
64 phi[12] = 2.12806871473955627749;
66 phi[13] = 2.14745266587422545257;
67 phi[14] = -0.25044816999225272269;
68 phi[15] = -0.25044816999225272269;
69 phi[16] = 1.52246676387907431405;
70 phi[17] = 1.52246676387907431405;
72 rho[1] = 0.14853586409145513869;
73 rho[2] = 0.06437581911225187525;
74 rho[3] = 0.63500586659756663721;
75 rho[4] = 0.11892962207932455954;
76 rho[5] = 0.06386739319734147102;
77 rho[6] = 1.72035932015034198628;
78 rho[7] = 0.84266300186759934832;
79 rho[8] = 0.84266300186759934832;
80 rho[9] = 5.52084783967448444741;
81 rho[10] = 1.18304173083694408319;
82 rho[11] = 0.37041606275538363491;
83 rho[12] = 0.37041606275538363491;
85 rho[13] = 1.99906320501213841112;
86 rho[14] = 0.28474658039299072243;
87 rho[15] = 0.28474658039299072243;
88 rho[16] = 0.10589240624900675414;
89 rho[17] = 0.10589240624900675414;
133 width1[0] = 0.004249;
134 width1[1] = 0.004249;
135 width1[2] = 0.004249;
205 mass_Pion_N = 0.134977;
215 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
216 int EE[4][4][4][4] = {
217 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
218 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
219 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
220 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
221 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
222 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
223 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
224 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
225 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
226 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
227 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
228 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
229 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
230 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
231 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
232 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
233 for (
int i = 0; i < 4; i++ )
235 for (
int j = 0; j < 4; j++ )
238 for (
int k = 0; k < 4; k++ )
240 for (
int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
287 double Km[4], Kp[4], Pip[4],
Pi0[4];
290 Pip[0] = pip.
get( 0 );
294 Pip[1] = pip.
get( 1 );
298 Pip[2] = pip.
get( 2 );
302 Pip[3] = pip.
get( 3 );
306 int g0[18] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
307 int g1[18] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
308 int g2[18] = { 0, 1, 2, 0, 1, 2, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 2, 2 };
310 calEvaMy( Km, Kp, Pip,
Pi0, mass1, mass2, width1, width2, rho, phi, g0,
g1, g2, modetype,
317void EvtDsToKKpipi0::Com_Multi(
double a1[2],
double a2[2],
double res[2] ) {
318 res[0] = a1[0] * a2[0] - a1[1] * a2[1];
319 res[1] = a1[1] * a2[0] + a1[0] * a2[1];
321void EvtDsToKKpipi0::Com_Divide(
double a1[2],
double a2[2],
double res[2] ) {
322 double tmp = a2[0] * a2[0] + a2[1] * a2[1];
323 res[0] = ( a1[0] * a2[0] + a1[1] * a2[1] ) / tmp;
324 res[1] = ( a1[1] * a2[0] - a1[0] * a2[1] ) / tmp;
326double EvtDsToKKpipi0::SCADot(
double a1[4],
double a2[4] ) {
327 double _cal = a1[0] * a2[0] - a1[1] * a2[1] - a1[2] * a2[2] - a1[3] * a2[3];
330double EvtDsToKKpipi0::barrier(
int l,
double sa,
double sb,
double sc,
double r2 ) {
332 double tmp = sa + sb - sc;
333 double q = 0.25 * tmp * tmp / sa - sb;
334 if (
q < 0 )
q = fabs(
q );
336 if ( l == 1 ) { F = sqrt( 2.0 / ( 1.0 / r2 +
q ) ); }
341 F = sqrt( 13.0 / ( 9.0 * ( 1 / ( r2 * r2 ) ) + 3.0 *
q * ( 1 / r2 ) +
q *
q ) );
346void EvtDsToKKpipi0::calt1(
double daug1[4],
double daug2[4],
double t1[4] ) {
349 for (
int i = 0; i < 4; i++ )
351 pa[i] = daug1[i] + daug2[i];
352 qa[i] = daug1[i] - daug2[i];
354 p = SCADot( pa, pa );
355 pq = SCADot( pa, qa );
357 for (
int i = 0; i < 4; i++ ) { t1[i] = qa[i] - tmp * pa[i]; }
359void EvtDsToKKpipi0::calt2(
double daug1[4],
double daug2[4],
double t2[4][4] ) {
362 calt1( daug1, daug2, t1 );
363 r = SCADot( t1, t1 ) / 3.0;
364 for (
int i = 0; i < 4; i++ ) { pa[i] = daug1[i] + daug2[i]; }
365 p = SCADot( pa, pa );
366 for (
int i = 0; i < 4; i++ )
368 for (
int j = 0; j < 4; j++ )
369 { t2[i][j] = t1[i] * t1[j] - r * ( G[i][j] - pa[i] * pa[j] / p ); }
372void EvtDsToKKpipi0::Flatte_rhoab(
double sa,
double sb,
double sc,
double rho[2] ) {
373 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
376 rho[0] = 2 * sqrt(
q / sa );
382 rho[1] = 2 * sqrt( -
q / sa );
385void EvtDsToKKpipi0::propagatora0980(
double mass2,
double mass,
double sx,
double* sb,
386 double* sc,
double prop[2] ) {
387 double unit[2] = { 1.0 };
388 double ci[2] = { 0, 1 };
390 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
392 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
394 double gKK_a980 = 0.892 * 0.341, gPiEta_a980 = 0.341;
395 double tmp1[2] = { gKK_a980, 0 };
397 double tmp2[2] = { gPiEta_a980, 0 };
399 Com_Multi( tmp1, rho1, tmp11 );
400 Com_Multi( tmp2, rho2, tmp22 );
401 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
403 Com_Multi( tmp3, ci, tmp31 );
404 double tmp4[2] = { mass2 - sx - tmp31[0], -1.0 * tmp31[1] };
405 Com_Divide(
unit, tmp4, prop );
407double EvtDsToKKpipi0::wid(
double mass2,
double mass,
double sa,
double sb,
double sc,
410 double m = sqrt( sa );
411 double tmp = sb - sc;
412 double tmp1 = sa + tmp;
413 double q = 0.25 * tmp1 * tmp1 / sa - sb;
414 if (
q < 0 )
q = fabs(
q );
415 double tmp2 = mass2 + tmp;
416 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
417 if ( q0 < 0 ) q0 = fabs( q0 );
421 if ( l == 0 ) { widm = sqrt(
t ) *
mass / m; }
422 else if ( l == 1 ) { widm =
t * sqrt(
t ) *
mass / m * ( 1 + z0 ) / ( 1 + z ); }
424 { widm =
t *
t * sqrt(
t ) *
mass / m * ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ); }
427double EvtDsToKKpipi0::widl1(
double mass2,
double mass,
double sa,
double sb,
double sc,
430 double m = sqrt( sa );
431 double tmp = sb - sc;
432 double tmp1 = sa + tmp;
433 double q = 0.25 * tmp1 * tmp1 / sa - sb;
434 if (
q < 0 )
q = fabs(
q );
435 double tmp2 = mass2 + tmp;
436 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
437 if ( q0 < 0 ) q0 = fabs( q0 );
440 double F = ( 1 + z0 ) / ( 1 + z );
442 widm =
t * sqrt(
t ) *
mass / m * F;
445void EvtDsToKKpipi0::propagatorRBW(
double mass2,
double mass,
double width,
double sa,
446 double sb,
double sc,
double r2,
int l,
double prop[2] ) {
451 b[1] = -
mass * width * wid( mass2,
mass, sa, sb, sc, r2, l );
452 Com_Divide( a, b, prop );
454void EvtDsToKKpipi0::propagatorNBW(
double mass2,
double mass,
double width,
double sa,
455 double sb,
double sc,
double r2,
int l,
double prop[2] ) {
460 b[1] = -
mass * width;
461 Com_Divide( a, b, prop );
463void EvtDsToKKpipi0::propagatorRBWl1(
double mass2,
double mass,
double width,
double sa,
464 double sb,
double sc,
double r2,
double prop[2] ) {
469 b[1] = -
mass * width * widl1( mass2,
mass, sa, sb, sc, r2 );
470 Com_Divide( a, b, prop );
472void EvtDsToKKpipi0::propagatorGS(
double mass2,
double mass,
double width,
double sa,
473 double sb,
double sc,
double r2,
double prop[2] ) {
475 double tmp = sb - sc;
476 double tmp1 = sa + tmp;
477 double q2 = 0.25 * tmp1 * tmp1 / sa - sb;
478 if ( q2 < 0 ) q2 = fabs( q2 );
480 double tmp2 = mass2 + tmp;
481 double q02 = 0.25 * tmp2 * tmp2 / mass2 - sb;
482 if ( q02 < 0 ) q02 = fabs( q02 );
484 double q = sqrt( q2 );
485 double q0 = sqrt( q02 );
486 double m = sqrt( sa );
487 double q03 = q0 * q02;
488 double tmp3 = log(
mass + 2 * q0 ) + 1.2760418309;
490 double h = GS1 *
q / m * ( log( m + 2 *
q ) + 1.2760418309 );
491 double h0 = GS1 * q0 /
mass * tmp3;
492 double dh = h0 * ( 0.125 / q02 - 0.5 / mass2 ) + GS3 / mass2;
493 double d = GS2 / q02 * tmp3 + GS3 *
mass / q0 - GS4 *
mass / q03;
494 double f = mass2 / q03 * ( q2 * ( h - h0 ) + ( mass2 - sa ) * q02 * dh );
496 a[0] = 1.0 + d * width /
mass;
498 b[0] = mass2 - sa + width *
f;
499 b[1] = -
mass * width * widl1( mass2,
mass, sa, sb, sc, r2 );
500 Com_Divide( a, b, prop );
502void EvtDsToKKpipi0::KPiSLASS(
double sa,
double sb,
double sc,
double prop[2] ) {
503 const double m1430 = 1.441;
504 const double sa0 = 2.076481;
505 const double w1430 = 0.193;
506 const double Lass1 = 0.25 / sa0;
507 double tmp = sb - sc;
508 double tmp1 = sa0 + tmp;
509 double q0 = Lass1 * tmp1 * tmp1 - sb;
510 if ( q0 < 0 ) q0 = 1e-16;
511 double tmp2 = sa + tmp;
512 double qs = 0.25 * tmp2 * tmp2 / sa - sb;
513 double q = sqrt( qs );
514 double width = w1430 *
q * m1430 / sqrt( sa * q0 );
515 double temp_R = atan( m1430 * width / ( sa0 - sa ) );
516 if ( temp_R < 0 ) temp_R += math_pi;
517 double deltaR = -109.7 * math_pi / 180.0 + temp_R;
519 atan( 0.226 *
q / ( 2.0 - 3.8194 * qs ) );
520 if ( temp_F < 0 ) temp_F += math_pi;
521 double deltaF = 0.1 * math_pi / 180.0 + temp_F;
522 double deltaS = deltaR + 2.0 * deltaF;
523 double t1 = 0.96 *
sin( deltaF );
524 double t2 =
sin( deltaR );
526 CF[0] =
cos( deltaF );
527 CF[1] =
sin( deltaF );
528 CS[0] =
cos( deltaS );
529 CS[1] =
sin( deltaS );
530 prop[0] = t1 * CF[0] + t2 *
CS[0];
531 prop[1] = t1 * CF[1] + t2 *
CS[1];
534void EvtDsToKKpipi0::calEvaMy(
double* Km,
double* Kp,
double* Pip,
double*
Pi0,
double* mass1,
535 double* mass2,
double* width1,
double* width2,
double* amp,
536 double* phase,
int* g0,
int*
g1,
int* g2,
int* modetype,
537 int nstates,
double& Result ) {
538 double cof[2], amp_tmp[2], amp_PDF[2], PDF[2];
539 Km[0] = sqrt( 0.243719942 + Km[1] * Km[1] + Km[2] * Km[2] + Km[3] * Km[3] );
540 Kp[0] = sqrt( 0.243719942 + Kp[1] * Kp[1] + Kp[2] * Kp[2] + Kp[3] * Kp[3] );
541 Pip[0] = sqrt( 0.019479785 + Pip[1] * Pip[1] + Pip[2] * Pip[2] + Pip[3] * Pip[3] );
542 Pi0[0] = sqrt( 0.0182187905 + Pi0[1] * Pi0[1] + Pi0[2] * Pi0[2] + Pi0[3] * Pi0[3] );
550 double pKstr0[4], pKstrp[4], pKstrm[4], prhop[4], pphi[4], pK10[4], pK11[4], pK12[4],
551 pK13[4], pK14[4], pD[4];
552 for (
int i = 0; i != 4; i++ )
554 pphi[i] = Km[i] + Kp[i];
555 prhop[i] = Pip[i] + Pi0[i];
556 pKstr0[i] = Km[i] + Pip[i];
557 pKstrp[i] = Kp[i] + Pi0[i];
558 pKstrm[i] = Km[i] + Pi0[i];
559 pK10[i] = pKstrm[i] + Kp[i];
560 pK11[i] = pKstrm[i] + Pip[i];
561 pK12[i] = pKstrp[i] + Km[i];
562 pK13[i] = pKstr0[i] + Pi0[i];
563 pK14[i] = pphi[i] + Pi0[i];
564 pD[i] = pphi[i] + prhop[i];
566 double spi0, spionp, skaon1, skaon2, sphi, srhop, skstr0, skstrp, skstrm, sk10, sk11, sk12,
568 skaon1 = SCADot( Km, Km );
569 skaon2 = SCADot( Kp, Kp );
570 spionp = SCADot( Pip, Pip );
571 spi0 = SCADot( Pi0, Pi0 );
572 sphi = SCADot( pphi, pphi );
573 srhop = SCADot( prhop, prhop );
574 skstr0 = SCADot( pKstr0, pKstr0 );
575 skstrp = SCADot( pKstrp, pKstrp );
576 skstrm = SCADot( pKstrm, pKstrm );
577 sk10 = SCADot( pK10, pK10 );
578 sk11 = SCADot( pK11, pK11 );
579 sk12 = SCADot( pK12, pK12 );
580 sk13 = SCADot( pK13, pK13 );
581 sk14 = SCADot( pK14, pK14 );
582 sD = SCADot( pD, pD );
584 double t1phi[4], t1A1[4], t1A2[4], t1rhop[4], t1kstr1[4], t1kstr2[4], t1kstr3[4], t1kstr4[4],
585 t2k11[4][4], t2k12[4][4], t2k13[4][4], t2k14[4][4], t2k21[4][4];
586 calt1( Km, Kp, t1phi );
587 calt1( Pip, Pi0, t1rhop );
588 calt1( Km, Pip, t1kstr1 );
589 calt1( Kp, Pi0, t1kstr2 );
590 calt1( Km, Pi0, t1kstr3 );
591 calt1( Kp, Pi0, t1kstr4 );
593 calt1( pKstr0, Pi0, t1A1 );
594 calt1( pKstrm, Pip, t1A2 );
596 calt2( pKstr0, Pi0, t2k11 );
597 calt2( pKstrm, Pip, t2k12 );
599 calt2( pKstrm, Kp, t2k13 );
600 calt2( pKstrp, Km, t2k14 );
601 calt2( prhop, Km, t2k21 );
603 double B_phi = -1.0, B_rho = -1.0, B_rho_2 = -1.0, B_phirho1 = -1.0, B_phirho2 = -1.0,
605 double B_Kstp = -1.0, B_Kst0 = -1.0, B_KsKs1 = -1.0, B_KsKs2 = -1.0, B_Kstp_2 = -1.0,
606 B_Kst0_2 = -1.0, B_DA2 = -1.0;
607 double B_Kstm = -1.0, B_DA1 = -1.0, B_A1 = -1.0, B_A2 = -1.0, B_A1_1 = -1.0, B_K13_1 = -1.0,
609 double B_D_Arho = -1.0, B_Arho = -1.0, B_K11 = -1.0, B_D11 = -1.0, B_Arho1 = -1.0,
610 B_K14_phi = -1.0, B_A10 = -1.0;
611 double B_K11rho = -1.0, B_D_K11rho = -1.0, B_K14_1 = -1.0, B_K14_2 = -1.0, B_D_K14 = -1.0,
612 B_K14_km = -1.0, B_K14_kp = -1.0;
613 double B_K_Kst0pi0 = -1.0, B_D_KK = -1.0, B_K_Kstmpip = -1.0, B_D_K11_2 = -1.0,
614 B_K11_21 = -1.0, B_K11_22 = -1.0, B_A12 = -1.0;
618 double mass1sq, mass2sq, tt1, tt2, tt3, tt4;
619 double temp_PDF, tmp1, temp[2], tmp3, temp_PDF1;
620 double pro[2], pro0[2], pro1[2], pro2[2], pro3[2], pro4[2];
621 double t1A[4], t1D[4], t2D[4][4],
B[3];
622 int isKstp = 0.0, isKst0 = 0.0, isKstm = 0.0, isRho = 0.0, isf0 = 0.0, isKmPip_S = 0.0,
623 isKpPi0_S = 0.0, isKmPi0_S = 0.0, isPiPi_S = 0.0, isA0980 = 0.0;
624 double proRho[2], proKstp[2], proKstm[2], proKst0[2], proPiPi_S[2], proKmPip_S[2],
625 proKpPi0_S[2], proKmPi0_S[2], proA0980[2], prof0[2];
626 for (
int i = 0; i < nstates; i++ )
630 cof[0] = amp[i] *
cos( phase[i] );
631 cof[1] = amp[i] *
sin( phase[i] );
632 mass1sq = mass1[i] * mass1[i];
633 mass2sq = mass2[i] * mass2[i];
634 if ( modetype[i] == 1 )
637 if ( B_phi < 0.0 ) B_phi = barrier( 1, sphi, skaon1, skaon2, rRes2 );
638 if ( B_rho < 0.0 ) B_rho = barrier( 1, srhop, spionp, spi0, rRes2 );
641 for (
int i = 0; i < 4; i++ ) { temp_PDF += G[i][i] * t1phi[i] * t1rhop[i]; }
642 tmp1 = B_phi * B_rho * temp_PDF;
644 else if ( g2[i] == 1 )
646 calt1( pphi, prhop, t1D );
647 for (
int i = 0; i < 4; i++ )
649 tt1 = pD[i] * G[i][i];
650 for (
int j = 0; j < 4; j++ )
652 tt2 = t1D[j] * G[j][j];
653 for (
int k = 0; k < 4; k++ )
655 tt3 = t1phi[k] * G[k][k];
656 for (
int l = 0; l < 4; l++ )
657 { temp_PDF += E[i][j][k][l] * tt1 * tt2 * tt3 * t1rhop[l] * G[l][l]; }
661 if ( B_phirho1 < 0.0 )
663 B_phirho1 = barrier( 1, sD, sphi, srhop, rD2 );
664 tmp1 = B_phi * B_rho * B_phirho1 * temp_PDF;
667 else if ( g2[i] == 2 )
669 calt2( pphi, prhop, t2D );
670 for (
int i = 0; i < 4; i++ )
672 tt1 = t1phi[i] * G[i][i];
673 for (
int j = 0; j < 4; j++ ) { temp_PDF += t2D[i][j] * t1rhop[j] * G[j][j] * tt1; }
675 if ( B_phirho2 < 0.0 )
677 B_phirho2 = barrier( 2, sD, sphi, srhop, rD2 );
678 tmp1 = B_phi * B_rho * B_phirho2 * temp_PDF;
683 propagatorGS( mass2sq, mass2[i], width2[i], srhop, spionp, spi0, rRes2,
688 { propagatorRBWl1( mass1sq, mass1[i], width1[i], sphi, skaon1, skaon2, rRes2, pro0 ); }
689 else if ( g0[i] == 0 )
699 else if (
g1[i] == 0 )
704 Com_Multi( pro0, pro1, pro );
705 amp_tmp[0] = tmp1 * pro[0];
706 amp_tmp[1] = tmp1 * pro[1];
709 else if ( modetype[i] == 2 )
711 if ( B_Kst0 < 0.0 ) B_Kst0 = barrier( 1, skstr0, skaon1, spionp, rRes2 );
712 if ( B_Kstp < 0.0 ) B_Kstp = barrier( 1, skstrp, skaon2, spi0, rRes2 );
715 for (
int i = 0; i < 4; i++ ) { temp_PDF += G[i][i] * t1kstr1[i] * t1kstr2[i]; }
716 tmp1 = B_Kst0 * B_Kstp * temp_PDF;
718 else if ( g2[i] == 1 )
720 calt1( pKstr0, pKstrp, t1D );
721 for (
int i = 0; i < 4; i++ )
723 tt1 = pD[i] * G[i][i];
724 for (
int j = 0; j < 4; j++ )
726 tt2 = t1D[j] * G[j][j];
727 for (
int k = 0; k < 4; k++ )
729 tt3 = t1kstr1[k] * G[k][k];
730 for (
int l = 0; l < 4; l++ )
731 { temp_PDF += E[i][j][k][l] * tt1 * tt2 * tt3 * t1kstr2[l] * G[l][l]; }
737 B_KsKs1 = barrier( 1, sD, skstr0, skstrp, rD2 );
738 tmp1 = B_Kst0 * B_Kstp * B_KsKs1 * temp_PDF;
741 else if ( g2[i] == 2 )
743 calt2( pKstr0, pKstrp, t2D );
744 for (
int i = 0; i < 4; i++ )
746 tt1 = t1kstr1[i] * G[i][i];
747 for (
int j = 0; j < 4; j++ ) { temp_PDF += t2D[i][j] * t1kstr2[j] * G[j][j] * tt1; }
751 B_KsKs2 = barrier( 2, sD, skstr0, skstrp, rD2 );
752 tmp1 = B_Kst0 * B_Kstp * B_KsKs2 * temp_PDF;
757 propagatorRBWl1( mass1sq, mass1[i], width1[i], skstr0, skaon1, spionp, rRes2,
763 propagatorRBWl1( mass2sq, mass2[i], width2[i], skstrp, skaon2, spi0, rRes2,
769 pro0[0] = proKst0[0];
770 pro0[1] = proKst0[1];
772 else if ( g0[i] == 0 )
779 pro1[0] = proKstp[0];
780 pro1[1] = proKstp[1];
782 else if (
g1[i] == 0 )
787 Com_Multi( pro0, pro1, pro );
788 amp_tmp[0] = tmp1 * pro[0];
789 amp_tmp[1] = tmp1 * pro[1];
792 else if ( modetype[i] == 3 )
796 if ( B_DA1 < 0.0 ) B_DA1 = barrier( 1, sD, sk11, skaon2, rD2 );
797 if ( B_Kst0 < 0.0 ) B_Kst0 = barrier( 1, skstr0, skaon1, spionp, rRes2 );
798 calt1( pK11, Kp, t1D );
801 for (
int i = 0; i < 4; i++ )
803 tt1 = t1D[i] * G[i][i];
804 for (
int j = 0; j < 4; j++ )
805 { temp_PDF += tt1 * ( G[i][j] - pK11[i] * pK11[j] / sk11 ) * t1kstr1[j] * G[j][j]; }
807 tmp1 = B_Kst0 * B_DA1 * temp_PDF;
809 else if ( g2[i] == 2 )
811 for (
int i = 0; i < 4; i++ )
813 tt1 = t1D[i] * G[i][i];
814 for (
int j = 0; j < 4; j++ )
815 { temp_PDF += tt1 * t2k11[i][j] * t1kstr1[j] * G[j][j]; }
817 if ( B_A2 < 0.0 ) B_A2 = barrier( 2, sk11, skstr0, spi0, rRes2 );
818 tmp1 = B_Kst0 * B_A2 * B_DA1 * temp_PDF;
822 propagatorRBWl1( mass1sq, mass1[i], width1[i], skstr0, skaon1, spionp, rRes2,
828 pro0[0] = proKst0[0];
829 pro0[1] = proKst0[1];
831 else if ( g0[i] == 0 )
838 propagatorRBW( mass2sq, mass2[i], width2[i], sk11, skstr0, spi0, rRes2, g2[i],
841 else if (
g1[i] == 0 )
846 Com_Multi( pro0, pro1, pro );
847 amp_tmp[0] = tmp1 * pro[0];
848 amp_tmp[1] = tmp1 * pro[1];
851 else if ( modetype[i] == 333 )
855 if ( B_DA1 < 0.0 ) B_DA1 = barrier( 1, sD, sk11, skaon2, rD2 );
856 if ( B_Kstm < 0.0 ) B_Kstm = barrier( 1, skstrm, skaon1, spi0, rRes2 );
857 calt1( pK11, Kp, t1D );
860 for (
int i = 0; i < 4; i++ )
862 tt1 = t1D[i] * G[i][i];
863 for (
int j = 0; j < 4; j++ )
864 { temp_PDF1 += tt1 * ( G[i][j] - pK11[i] * pK11[j] / sk11 ) * t1kstr3[j] * G[j][j]; }
866 tmp3 = B_Kstm * B_DA1 * temp_PDF1;
868 else if ( g2[i] == 2 )
870 for (
int i = 0; i < 4; i++ )
872 tt1 = t1D[i] * G[i][i];
873 for (
int j = 0; j < 4; j++ )
874 { temp_PDF1 += tt1 * t2k12[i][j] * t1kstr3[j] * G[j][j]; }
876 if ( B_A1 < 0.0 ) B_A1 = barrier( 2, sk11, skstrm, spionp, rRes2 );
877 tmp3 = B_Kstm * B_A1 * B_DA1 * temp_PDF1;
880 { propagatorRBWl1( mass1sq, mass1[i], width1[i], skstrm, skaon1, spi0, rRes2, pro2 ); }
881 else if ( g0[i] == 0 )
888 propagatorRBW( mass2sq, mass2[i], width2[i], sk11, skstrm, spionp, rRes2, g2[i],
891 else if (
g1[i] == 0 )
896 Com_Multi( pro2, pro3, pro4 );
897 amp_tmp[0] = -1.414 * tmp3 * pro4[0];
898 amp_tmp[1] = -1.414 * tmp3 * pro4[1];
901 else if ( modetype[i] == 4 )
904 if ( B_rho < 0.0 ) B_rho = barrier( 1, srhop, spionp, spi0, rRes2 );
905 if ( B_D_Arho < 0.0 ) B_D_Arho = barrier( 1, sD, sk11, skaon2, rD2 );
906 calt1( pK11, Kp, t1D );
909 for (
int i = 0; i < 4; i++ )
911 tt1 = t1D[i] * G[i][i];
912 for (
int j = 0; j < 4; j++ )
913 { temp_PDF += tt1 * ( G[i][j] - pK11[i] * pK11[j] / sk11 ) * t1rhop[j] * G[j][j]; }
915 tmp1 = B_rho * B_D_Arho * temp_PDF;
917 else if ( g2[i] == 2 )
919 for (
int i = 0; i < 4; i++ )
921 tt1 = t1D[i] * G[i][i];
922 for (
int j = 0; j < 4; j++ )
923 { temp_PDF += tt1 * t2k21[i][j] * t1rhop[j] * G[j][j]; }
927 B_Arho = barrier( 2, sk11, srhop, skaon1, rRes2 );
928 tmp1 = B_rho * B_Arho * B_D_Arho * temp_PDF;
933 propagatorGS( mass2sq, mass2[i], width2[i], srhop, spionp, spi0, rRes2,
938 propagatorRBW( mass1sq, mass1[i], width1[i], sk11, srhop, skaon1, rRes2, g2[i],
940 else if ( g0[i] == 0 )
950 else if (
g1[i] == 0 )
955 Com_Multi( pro0, pro1, pro );
956 amp_tmp[0] = tmp1 * pro[0];
957 amp_tmp[1] = tmp1 * pro[1];
960 else if ( modetype[i] == 30 )
963 double sKmm[2] = { skaon1, mass_Pion_N * mass_Pion_N };
964 double sKpp[2] = { skaon2, mass_Eta * mass_Eta };
967 propagatora0980( mass1sq, mass1[i], sphi, sKmm, sKpp, proA0980 );
972 pro0[0] = proA0980[0];
973 pro0[1] = proA0980[1];
975 else if ( g0[i] == 0 )
981 propagatorRBW( mass2sq, mass2[i], width2[i], sk14, sphi, spi0, rRes2, 0, pro1 );
982 else if (
g1[i] == 0 )
987 Com_Multi( pro0, pro1, pro );
992 else if ( modetype[i] == 31 )
995 if ( B_K14_phi < 0.0 ) B_K14_phi = barrier( 1, sk14, sphi, spi0, rRes2 );
996 if ( B_D_K14 < 0.0 ) B_D_K14 = barrier( 1, sD, sk14, spionp, rD2 );
997 double sKmm[2] = { skaon1, mass_Pion_N * mass_Pion_N };
998 double sKpp[2] = { skaon2, mass_Eta * mass_Eta };
999 calt1( pK14, Pip, t1D );
1000 calt1( pphi, Pi0, t1A );
1001 for (
int w = 0;
w < 4;
w++ ) { temp_PDF += t1D[
w] * t1A[
w] * G[
w][
w]; }
1002 tmp1 = temp_PDF * B_K14_phi * B_D_K14;
1005 propagatora0980( mass1sq, mass1[i], sphi, sKmm, sKpp, proA0980 );
1010 pro0[0] = proA0980[0];
1011 pro0[1] = proA0980[1];
1013 else if ( g0[i] == 0 )
1019 propagatorRBWl1( mass2sq, mass2[i], width2[i], sk14, sphi, spi0, rRes2, pro1 );
1020 else if (
g1[i] == 0 )
1025 Com_Multi( pro0, pro1, pro );
1026 amp_tmp[0] = tmp1 * pro[0];
1027 amp_tmp[1] = tmp1 * pro[1];
1030 else if ( modetype[i] == 72 )
1033 if ( isKmPi0_S == 0 )
1035 KPiSLASS( skstrm, skaon1, spi0, proKmPi0_S );
1040 pro0[0] = proKmPi0_S[0];
1041 pro0[1] = proKmPi0_S[1];
1043 else if ( g0[i] == 0 )
1049 { propagatorRBW( mass2sq, mass2[i], width2[i], sk14, skstrm, skaon2, rRes2, 0, pro1 ); }
1050 else if (
g1[i] == 0 )
1055 Com_Multi( pro0, pro1, pro );
1056 amp_tmp[0] = pro[0];
1057 amp_tmp[1] = pro[1];
1060 else if ( modetype[i] == 721 )
1063 if ( isKpPi0_S == 0 )
1065 KPiSLASS( skstrp, skaon2, spi0, proKpPi0_S );
1070 pro2[0] = proKpPi0_S[0];
1071 pro2[1] = proKpPi0_S[1];
1073 else if ( g0[i] == 0 )
1079 { propagatorRBW( mass2sq, mass2[i], width2[i], sk14, skstrp, skaon1, rRes2, 0, pro3 ); }
1080 else if (
g1[i] == 0 )
1085 Com_Multi( pro2, pro3, pro4 );
1086 amp_tmp[0] = pro4[0];
1087 amp_tmp[1] = pro4[1];
1090 else if ( modetype[i] == 73 )
1093 if ( B_DA2 < 0.0 ) B_DA2 = barrier( 1, sD, sk10, spionp, rD2 );
1094 if ( B_Kstm < 0.0 ) B_Kstm = barrier( 1, skstrm, skaon1, spi0, rRes2 );
1095 calt1( pK10, Pip, t1D );
1098 for (
int i = 0; i < 4; i++ )
1100 tt1 = t1D[i] * G[i][i];
1101 for (
int j = 0; j < 4; j++ )
1102 { temp_PDF += tt1 * ( G[i][j] - pK10[i] * pK10[j] / sk10 ) * t1kstr3[j] * G[j][j]; }
1104 tmp1 = B_Kstm * B_DA2 * temp_PDF;
1106 else if ( g2[i] == 2 )
1108 for (
int i = 0; i < 4; i++ )
1110 tt1 = t1D[i] * G[i][i];
1111 for (
int j = 0; j < 4; j++ )
1112 { temp_PDF += tt1 * t2k13[i][j] * t1kstr3[j] * G[j][j]; }
1114 if ( B_A10 < 0.0 ) B_A10 = barrier( 2, sk10, skstrm, skaon2, rRes2 );
1115 tmp1 = B_Kstm * B_A10 * B_DA2 * temp_PDF;
1119 propagatorRBWl1( mass1sq, mass1[i], width1[i], skstrm, skaon1, spi0, rRes2, proKstm );
1124 pro0[0] = proKstm[0];
1125 pro0[1] = proKstm[1];
1127 else if ( g0[i] == 0 )
1134 propagatorRBW( mass2sq, mass2[i], width2[i], sk10, skstrm, skaon2, rRes2, g2[i],
1137 else if (
g1[i] == 0 )
1142 Com_Multi( pro0, pro1, pro );
1143 amp_tmp[0] = tmp1 * pro[0];
1144 amp_tmp[1] = tmp1 * pro[1];
1147 else if ( modetype[i] == 731 )
1150 if ( B_DA2 < 0.0 ) B_DA2 = barrier( 1, sD, sk10, spionp, rD2 );
1151 if ( B_Kstp < 0.0 ) B_Kstp = barrier( 1, skstrp, skaon2, spi0, rRes2 );
1152 calt1( pK10, Pip, t1D );
1155 for (
int i = 0; i < 4; i++ )
1157 tt1 = t1D[i] * G[i][i];
1158 for (
int j = 0; j < 4; j++ )
1159 { temp_PDF1 += tt1 * ( G[i][j] - pK10[i] * pK10[j] / sk10 ) * t1kstr4[j] * G[j][j]; }
1161 tmp3 = B_Kstp * B_DA2 * temp_PDF1;
1163 else if ( g2[i] == 2 )
1165 for (
int i = 0; i < 4; i++ )
1167 tt1 = t1D[i] * G[i][i];
1168 for (
int j = 0; j < 4; j++ )
1169 { temp_PDF1 += tt1 * t2k14[i][j] * t1kstr4[j] * G[j][j]; }
1171 if ( B_A12 < 0.0 ) B_A12 = barrier( 2, sk12, skstrp, skaon1, rRes2 );
1172 tmp3 = B_Kstp * B_A12 * B_DA2 * temp_PDF1;
1176 propagatorRBWl1( mass1sq, mass1[i], width1[i], skstrp, skaon2, spi0, rRes2, proKstp );
1181 pro2[0] = proKstp[0];
1182 pro2[1] = proKstp[1];
1184 else if ( g0[i] == 0 )
1191 propagatorRBW( mass2sq, mass2[i], width2[i], sk12, skstrp, skaon1, rRes2, g2[i],
1194 else if (
g1[i] == 0 )
1199 Com_Multi( pro2, pro3, pro4 );
1200 amp_tmp[0] = -tmp3 * pro4[0];
1201 amp_tmp[1] = -tmp3 * pro4[1];
1204 else if ( modetype[i] == 50 )
1207 if ( B_rho < 0.0 ) B_rho = barrier( 1, srhop, spionp, spi0, rRes2 );
1208 if ( B_phirho1 < 0.0 ) B_phirho1 = barrier( 1, sD, sphi, srhop, rD2 );
1209 calt1( pphi, prhop, t1D );
1210 for (
int w = 0;
w < 4;
w++ ) { temp_PDF += t1D[
w] * t1rhop[
w] * G[
w][
w]; }
1211 tmp1 = temp_PDF * B_rho * B_phirho1;
1212 double sKmm[2] = { skaon1, mass_Pion_N * mass_Pion_N };
1213 double sKpp[2] = { skaon2, mass_Eta * mass_Eta };
1216 propagatora0980( mass1sq, mass1[i], sphi, sKmm, sKpp, proA0980 );
1221 propagatorGS( mass2sq, mass2[i], width2[i], srhop, spionp, spi0, rRes2,
1227 pro0[0] = proA0980[0];
1228 pro0[1] = proA0980[1];
1230 else if ( g0[i] == 0 )
1237 pro1[0] = proRho[0];
1238 pro1[1] = proRho[1];
1240 else if (
g1[i] == 0 )
1245 Com_Multi( pro0, pro1, pro );
1246 amp_tmp[0] = tmp1 * pro[0];
1247 amp_tmp[1] = tmp1 * pro[1];
1250 Com_Multi( amp_tmp, cof, amp_PDF );
1251 PDF[0] += amp_PDF[0];
1252 PDF[1] += amp_PDF[1];
1254 double value = PDF[0] * PDF[0] + PDF[1] * PDF[1];
1255 if ( value <= 0 ) value = 1e-20;
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per saves r n generator level $ !Flag for chat level in !Latex Output unit
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 checkSpinDaughter(int d1, EvtSpinType::spintype sp)
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)
void getName(std::string &name)
virtual ~EvtDsToKKpipi0()
void decay(EvtParticle *p)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)