45 if ( Narg == 0 ) { Uspin = 0; }
46 else { Uspin =
getArg( 0 ); }
58 rho[1] = 0.5567227875;
63 phi[4] = -0.7616302559;
72 if ( Uspin == 1 && Daug0Id == 130 )
111 mass_Pion2 = 0.0194797849;
112 mass_2Pion = 0.27914;
113 math_2pi = 6.2831852;
126 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
127 for (
int i = 0; i < 4; i++ )
129 for (
int j = 0; j < 4; j++ ) { G[i][j] = GG[i][j]; }
136 else if ( Daug0Id == 130 && Uspin == 1 )
setProbMax( 1785.0 );
195 double P1[4], P2[4], P3[4];
217 if ( Daug0Id == 310 ) SorL =
true;
220 int spin[5] = { 0, 1, 0, 0, 1 };
223 int g0[5] = { 5, 1, 3, 1, 5 };
224 double r0[5] = { 3, 3, 3, 3, 3 };
225 double r1[5] = { 5, 5, 5, 5, 5 };
227 calEva( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,
230 else if ( ( !SorL ) && Uspin == 1 )
232 int g0[5] = { 5, 1, 3, 1, 5 };
233 double r0[5] = { -1.566394443, -1.33043736, 3, 3, 3 };
234 double r1[5] = { 0.1844175671, -1.397710917, 5, 5, 5 };
236 calEva( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,
241 int g0[5] = { 5, 1, 3, 1, 5 };
242 double r0[5] = { 3, 3, 3, 3, 3 };
243 double r1[5] = { 5, 5, 5, 5, 5 };
245 calEva( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,
254void EvtD0ToKSLKK::Com_Multi(
double a1[2],
double a2[2],
double res[2] ) {
255 res[0] = a1[0] * a2[0] - a1[1] * a2[1];
256 res[1] = a1[1] * a2[0] + a1[0] * a2[1];
258void EvtD0ToKSLKK::Com_Divide(
double a1[2],
double a2[2],
double res[2] ) {
259 double tmp = a2[0] * a2[0] + a2[1] * a2[1];
260 res[0] = ( a1[0] * a2[0] + a1[1] * a2[1] ) / tmp;
261 res[1] = ( a1[1] * a2[0] - a1[0] * a2[1] ) / tmp;
264double EvtD0ToKSLKK::SCADot(
double a1[4],
double a2[4] ) {
265 double _cal = a1[0] * a2[0] - a1[1] * a2[1] - a1[2] * a2[2] - a1[3] * a2[3];
268double EvtD0ToKSLKK::barrier(
int l,
double sa,
double sb,
double sc,
double r,
double mass ) {
269 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
276 double q0 = ( sa0 + sb - sc ) * ( sa0 + sb - sc ) / ( 4 * sa0 ) - sb;
278 if ( q0 < 0 ) q0 = -q0;
279 double z0 = q0 * r * r;
282 if ( l == 1 ) F = sqrt( ( 1 + z0 ) / ( 1 + z ) );
283 if ( l == 2 ) F = sqrt( ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ) );
287void EvtD0ToKSLKK::calt1(
double daug1[4],
double daug2[4],
double t1[4] ) {
290 for (
int i = 0; i < 4; i++ )
292 pa[i] = daug1[i] + daug2[i];
293 qa[i] = daug1[i] - daug2[i];
295 p = SCADot( pa, pa );
296 pq = SCADot( pa, qa );
298 for (
int i = 0; i < 4; i++ ) { t1[i] = qa[i] - tmp * pa[i]; }
300void EvtD0ToKSLKK::calt2(
double daug1[4],
double daug2[4],
double t2[4][4] ) {
303 calt1( daug1, daug2, t1 );
304 r = SCADot( t1, t1 ) / 3.0;
305 for (
int i = 0; i < 4; i++ ) { pa[i] = daug1[i] + daug2[i]; }
306 p = SCADot( pa, pa );
307 for (
int i = 0; i < 4; i++ )
309 for (
int j = 0; j < 4; j++ )
310 { t2[i][j] = t1[i] * t1[j] - r * ( G[i][j] - pa[i] * pa[j] / p ); }
314void EvtD0ToKSLKK::propagatorCBW(
double mass,
double width,
double sx,
double prop[2] ) {
318 b[0] = mass * mass - sx;
319 b[1] = -mass * width;
320 Com_Divide( a, b, prop );
322double EvtD0ToKSLKK::wid(
double mass2,
double mass,
double sa,
double sb,
double sc,
325 double m = sqrt( sa );
326 double tmp = sb - sc;
327 double tmp1 = sa + tmp;
328 double q = 0.25 * tmp1 * tmp1 / sa - sb;
331 double tmp2 = mass2 + tmp;
332 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
334 if ( q0 < 0 ) q0 = -q0;
338 if ( l == 0 ) { widm = sqrt(
t ) * mass / m; }
339 else if ( l == 1 ) { widm =
t * sqrt(
t ) * mass / m * ( 1 + z0 ) / ( 1 + z ); }
341 { widm =
t *
t * sqrt(
t ) * mass / m * ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ); }
344double EvtD0ToKSLKK::widl1(
double mass2,
double mass,
double sa,
double sb,
double sc,
347 double m = sqrt( sa );
348 double tmp = sb - sc;
349 double tmp1 = sa + tmp;
350 double q = 0.25 * tmp1 * tmp1 / sa - sb;
353 double tmp2 = mass2 + tmp;
354 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
356 if ( q0 < 0 ) q0 = -q0;
359 double F = ( 1 + z0 ) / ( 1 + z );
361 widm =
t * sqrt(
t ) * mass / m * F;
364void EvtD0ToKSLKK::propagatorRBW(
double mass,
double width,
double sa,
double sb,
double sc,
365 double r2,
int l,
double prop[2] ) {
367 double mass2 = mass * mass;
372 b[1] = -mass * width * wid( mass2, mass, sa, sb, sc, r2, l );
373 Com_Divide( a, b, prop );
376void EvtD0ToKSLKK::propagatorFlatte(
double mass,
double width,
double sa,
double prop[2] ) {
379 double rhoPi[2], rhoKa[2];
381 q2_Pi = 0.25 * sa - mPi * mPi;
382 q2_Ka = 0.25 * sa - mKa * mKa;
386 rhoPi[0] = 2.0 * sqrt( q2_Pi / sa );
392 rhoPi[1] = 2.0 * sqrt( -q2_Pi / sa );
397 rhoKa[0] = 2.0 * sqrt( q2_Ka / sa );
403 rhoKa[1] = 2.0 * sqrt( -q2_Ka / sa );
423 b[0] = mass * mass - sa + 0.165 * rhoPi[1] + 0.69465 * rhoKa[1];
424 b[1] = -( 0.165 * rhoPi[0] + 0.69465 * rhoKa[0] );
425 Com_Divide( a, b, prop );
429void EvtD0ToKSLKK::propagatorGS(
double mass,
double width,
double sa,
double sb,
double sc,
430 double r2,
double prop[2] ) {
432 double mass2 = mass * mass;
433 double tmp = sb - sc;
434 double tmp1 = sa + tmp;
435 double q2 = 0.25 * tmp1 * tmp1 / sa - sb;
437 if ( q2 < 0 ) q2 = -q2;
439 double tmp2 = mass2 + tmp;
440 double q02 = 0.25 * tmp2 * tmp2 / mass2 - sb;
442 if ( q02 < 0 ) q02 = -q02;
444 double q = sqrt( q2 );
445 double q0 = sqrt( q02 );
446 double m = sqrt( sa );
447 double q03 = q0 * q02;
448 double tmp3 = log( mass + 2 * q0 ) + 1.2760418309;
450 double h = GS1 *
q / m * ( log( m + 2 *
q ) + 1.2760418309 );
451 double h0 = GS1 * q0 / mass * tmp3;
452 double dh = h0 * ( 0.125 / q02 - 0.5 / mass2 ) + GS3 / mass2;
453 double d = GS2 / q02 * tmp3 + GS3 * mass / q0 - GS4 * mass / q03;
454 double f = mass2 / q03 * ( q2 * ( h - h0 ) + ( mass2 - sa ) * q02 * dh );
456 a[0] = 1.0 + d * width / mass;
458 b[0] = mass2 - sa + width *
f;
459 b[1] = -mass * width * widl1( mass2, mass, sa, sb, sc, r2 );
460 Com_Divide( a, b, prop );
462void EvtD0ToKSLKK::KPiSLASS(
double sa,
double sb,
double sc,
double prop[2] ) {
463 const double m1430 = 1.441;
464 const double sa0 = 2.076481;
465 const double w1430 = 0.193;
466 const double Lass1 = 0.25 / sa0;
467 double tmp = sb - sc;
468 double tmp1 = sa0 + tmp;
469 double q0 = Lass1 * tmp1 * tmp1 - sb;
471 if ( q0 < 0 ) q0 = -q0;
472 double tmp2 = sa + tmp;
473 double qs = 0.25 * tmp2 * tmp2 / sa - sb;
474 double q = sqrt( qs );
475 double width = w1430 *
q * m1430 / sqrt( sa * q0 );
476 double temp_R = atan( m1430 * width / ( sa0 - sa ) );
477 if ( temp_R < 0 ) temp_R += math_pi;
478 double deltaR = -109.7 * math_pi / 180.0 + temp_R;
480 atan( 0.226 *
q / ( 2.0 - 3.8194 * qs ) );
481 if ( temp_F < 0 ) temp_F += math_pi;
482 double deltaF = 0.1 * math_pi / 180.0 + temp_F;
483 double deltaS = deltaR + 2.0 * deltaF;
484 double t1 = 0.96 *
sin( deltaF );
485 double t2 =
sin( deltaR );
487 CF[0] =
cos( deltaF );
488 CF[1] =
sin( deltaF );
489 CS[0] =
cos( deltaS );
490 CS[1] =
sin( deltaS );
491 prop[0] = t1 * CF[0] + t2 *
CS[0];
492 prop[1] = t1 * CF[1] + t2 *
CS[1];
495void EvtD0ToKSLKK::Flatte_rhoab(
double sa,
double sb,
double sc,
double rho[2] ) {
496 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
499 rho[0] = 2 * sqrt(
q / sa );
505 rho[1] = 2 * sqrt( -
q / sa );
509void EvtD0ToKSLKK::propagatorKstr1430(
double mass,
double sx,
double* sb,
double* sc,
512 double unit[2] = { 1.0 };
513 double ci[2] = { 0, 1 };
515 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
517 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
518 double gKPi_Kstr1430 = 0.2990, gEtaPK_Kstr1430 = 0.0529;
519 double tmp1[2] = { gKPi_Kstr1430, 0 };
521 double tmp2[2] = { gEtaPK_Kstr1430, 0 };
523 Com_Multi( tmp1, rho1, tmp11 );
524 Com_Multi( tmp2, rho2, tmp22 );
525 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
527 Com_Multi( tmp3, ci, tmp31 );
528 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
529 Com_Divide(
unit, tmp4, prop );
532void EvtD0ToKSLKK::propagatora0980p(
double mass,
double sx,
double* sb,
double* sc,
535 double unit[2] = { 1.0 };
536 double ci[2] = { 0, 1 };
538 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
540 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
541 double gKK_a0980p = 0.341 * 0.892, gEtapi_a0980p = 0.341;
542 double tmp1[2] = { gKK_a0980p, 0 };
544 double tmp2[2] = { gEtapi_a0980p, 0 };
546 Com_Multi( tmp1, rho1, tmp11 );
547 Com_Multi( tmp2, rho2, tmp22 );
548 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
550 Com_Multi( tmp3, ci, tmp31 );
551 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
552 Com_Divide(
unit, tmp4, prop );
555void EvtD0ToKSLKK::propagatora0980pfloated(
double mass,
double sx,
double* sb,
double* sc,
556 double gKK,
double prop[2] )
558 double unit[2] = { 1.0 };
559 double ci[2] = { 0, 1 };
561 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
563 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
564 double gKK_a0980p = 0.341 * gKK, gEtapi_a0980p = 0.341;
565 double tmp1[2] = { gKK_a0980p, 0 };
567 double tmp2[2] = { gEtapi_a0980p, 0 };
569 Com_Multi( tmp1, rho1, tmp11 );
570 Com_Multi( tmp2, rho2, tmp22 );
571 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
573 Com_Multi( tmp3, ci, tmp31 );
574 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
575 Com_Divide(
unit, tmp4, prop );
578void EvtD0ToKSLKK::propagatora0980wm(
double mass,
double width,
double sx,
double sb,
579 double sc,
double prop[2] )
581 double unit[2] = { 1.0 };
582 double ci[2] = { 0, 1 };
584 double tmp1[2] = { mass, 0 };
585 double tmp2[2] = { width, 0 };
586 double tmp11[2], tmp22[2];
587 Flatte_rhoab( sx, sb, sc, rho1 );
588 Com_Multi( tmp1, rho1, tmp11 );
589 Com_Multi( tmp11, tmp2, tmp22 );
591 Com_Multi( tmp22, ci, tmp3 );
592 double tmp4[2] = { mass * mass - sx - tmp3[0], -1.0 * tmp3[1] };
593 Com_Divide(
unit, tmp4, prop );
596void EvtD0ToKSLKK::propagatora09800(
double mass,
double sx,
double* sb,
double* sc,
599 double unit[2] = { 1.0 };
600 double ci[2] = { 0, 1 };
602 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
604 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
606 Flatte_rhoab( sx, sb[2], sc[2], rho3 );
607 double gKK_a09800 = 0.341 * 0.892, gEtapi_a09800 = 0.341, gK0K0_a09800 = 0.341 * 0.892;
608 double tmp1[2] = { gKK_a09800, 0 };
610 double tmp2[2] = { gEtapi_a09800, 0 };
612 double tmp3[2] = { gK0K0_a09800, 0 };
614 Com_Multi( tmp1, rho1, tmp11 );
615 Com_Multi( tmp2, rho2, tmp22 );
616 Com_Multi( tmp3, rho3, tmp33 );
617 double tmp4[2] = { tmp11[0] + tmp22[0] + tmp33[0], tmp11[1] + tmp22[1] + tmp33[1] };
619 Com_Multi( tmp4, ci, tmp41 );
620 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
621 Com_Divide(
unit, tmp5, prop );
624void EvtD0ToKSLKK::propagatora09800floated(
double mass,
double sx,
double* sb,
double* sc,
625 double gKK,
double prop[2] )
627 double unit[2] = { 1.0 };
628 double ci[2] = { 0, 1 };
630 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
632 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
634 Flatte_rhoab( sx, sb[2], sc[2], rho3 );
635 double gKK_a09800 = 0.341 * gKK, gEtapi_a09800 = 0.341, gK0K0_a09800 = 0.341 * gKK;
636 double tmp1[2] = { gKK_a09800, 0 };
638 double tmp2[2] = { gEtapi_a09800, 0 };
640 double tmp3[2] = { gK0K0_a09800, 0 };
642 Com_Multi( tmp1, rho1, tmp11 );
643 Com_Multi( tmp2, rho2, tmp22 );
644 Com_Multi( tmp3, rho3, tmp33 );
645 double tmp4[2] = { tmp11[0] + tmp22[0] + tmp33[0], tmp11[1] + tmp22[1] + tmp33[1] };
647 Com_Multi( tmp4, ci, tmp41 );
648 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
649 Com_Divide(
unit, tmp5, prop );
652void EvtD0ToKSLKK::propagatora098002channel(
double mass,
double sx,
double* sb,
double* sc,
655 double unit[2] = { 1.0 };
656 double ci[2] = { 0, 1 };
658 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
660 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
661 double gKK_a09800 = 0.341 * 0.892, gEtapi_a09800 = 0.341;
662 double tmp1[2] = { gKK_a09800, 0 };
664 double tmp2[2] = { gEtapi_a09800, 0 };
666 Com_Multi( tmp1, rho1, tmp11 );
667 Com_Multi( tmp2, rho2, tmp22 );
668 double tmp4[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
670 Com_Multi( tmp4, ci, tmp41 );
671 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
672 Com_Divide(
unit, tmp5, prop );
675void EvtD0ToKSLKK::rhoab(
double sa,
double sb,
double sc,
double res[2] ) {
676 double tmp = sa + sb - sc;
677 double q = 0.25 * tmp * tmp / sa - sb;
680 res[0] = 2.0 * sqrt(
q / sa );
686 res[1] = 2.0 * sqrt( -
q / sa );
689void EvtD0ToKSLKK::rho4Pi(
double sa,
double res[2] ) {
690 double temp = 1.0 - 0.3116765584 / sa;
693 res[0] = sqrt( temp ) / ( 1.0 +
exp( 9.8 - 3.5 * sa ) );
699 res[1] = sqrt( -temp ) / ( 1.0 +
exp( 9.8 - 3.5 * sa ) );
703void EvtD0ToKSLKK::propagatorsigma500(
double sa,
double sb,
double sc,
705 double f = 0.5843 + 1.6663 * sa;
706 const double M = 0.9264;
707 const double mass2 = 0.85821696;
708 const double mpi2d2 = 0.00973989245;
709 double g1 =
f * ( sa - mpi2d2 ) / ( mass2 - mpi2d2 ) *
exp( ( mass2 - sa ) / 1.082 );
710 double rho1s[2], rho1M[2], rho2s[2], rho2M[2], rho1[2], rho2[2];
711 rhoab( sa, sb, sc, rho1s );
712 rhoab( mass2, sb, sc, rho1M );
714 rho4Pi( mass2, rho2M );
715 Com_Divide( rho1s, rho1M, rho1 );
716 Com_Divide( rho2s, rho2M, rho2 );
720 b[0] = mass2 - sa + M * (
g1 * rho1[1] + 0.0024 * rho2[1] );
721 b[1] = -M * (
g1 * rho1[0] + 0.0024 * rho2[0] );
722 Com_Divide( a, b, prop );
725void EvtD0ToKSLKK::getprop(
double sa,
double sb,
double sc,
double mass,
double width,
727 double prop1[2], prop2[2];
728 propagatorGS( mass, width, sa, sb, sc, 9.0, prop1 );
729 propagatorRBW( 0.783, 0.008, sa, sb, sc, 3.0, 1, prop2 );
730 double coef_omega[2];
731 coef_omega[0] = rho_omega *
cos( phi_omega ), coef_omega[1] = rho_omega *
sin( phi_omega );
736 Com_Multi( coef_omega, prop2, temp );
737 temp[0] =
one[0] + 0.783 * 0.783 * temp[0];
738 temp[1] =
one[1] + 0.783 * 0.783 * temp[1];
739 Com_Multi( prop1, temp, prop );
741double EvtD0ToKSLKK::DDalitz(
double P1[4],
double P2[4],
double P3[4],
int Ang,
744 double temp_PDF, v_re;
747 double B[2], s1, s2, s3, sR, sD;
748 for (
int i = 0; i < 4; i++ )
750 pR[i] = P1[i] + P2[i];
751 pD[i] = pR[i] + P3[i];
753 s1 = SCADot( P1, P1 );
754 s2 = SCADot( P2, P2 );
755 s3 = SCADot( P3, P3 );
756 sR = SCADot( pR, pR );
757 sD = SCADot( pD, pD );
759 for (
int i = 0; i != 4; i++ )
761 for (
int j = 0; j != 4; j++ )
765 if ( i == 0 ) G[i][j] = 1;
779 B[0] = barrier( 1, sR, s1, s2, 3.0, mass );
780 B[1] = barrier( 1, sD, sR, s3, 5.0, mDM );
787 for (
int i = 0; i < 4; i++ ) { temp_PDF += t1[i] * T1[i] * G[i][i]; }
791 B[0] = barrier( 2, sR, s1, s2, 3.0, mass );
792 B[1] = barrier( 2, sD, sR, s3, 5.0, mDM );
795 double t2[4][4], T2[4][4];
799 for (
int i = 0; i < 4; i++ )
801 for (
int j = 0; j < 4; j++ ) { temp_PDF += t2[i][j] * T2[j][i] * G[i][i] * G[j][j]; }
804 v_re = temp_PDF *
B[0] *
B[1];
808void EvtD0ToKSLKK::calPDF(
double* Ks0,
double* K1,
double* K2,
double* mass1,
double* width1,
809 double* amp,
double* phase,
int* g0,
int* spin,
int* modetype,
810 double* r0,
double* r1,
int first,
int last,
double PDF[2] ) {
811 double P12[4], P23[4], P13[4];
812 double cof[2], amp_PDF[2];
813 double s12, s13, s23;
814 for (
int i = 0; i < 4; i++ )
816 P12[i] = K1[i] + Ks0[i];
817 P13[i] = K2[i] + Ks0[i];
818 P23[i] = K1[i] + K2[i];
822 s12 = SCADot( P12, P12 );
823 s13 = SCADot( P13, P13 );
824 s23 = SCADot( P23, P23 );
826 s1 = SCADot( Ks0, Ks0 );
827 s2 = SCADot( K1, K1 );
828 s3 = SCADot( K2, K2 );
829 double pro[2], temp_PDF, amp_tmp[2];
841 for (
int i = first; i < last; i++ )
846 cof[0] = amp[i] *
cos( phase[i] );
847 cof[1] = amp[i] *
sin( phase[i] );
850 if ( modetype[i] == 12 )
852 temp_PDF = DDalitz( Ks0, K1, K2, spin[i], mass1[i] );
854 propagatorRBW( mass1[i], width1[i], s12, mass_KS * mass_KS, mKa2, rRes2, spin[i],
858 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
859 double s22[2] = { mKa * mKa, mEta * mEta };
860 propagatora0980p( mass1[i], s12, s11, s22, pro );
863 propagatora0980wm( mass1[i], width1[i], s12, mass_KS * mass_KS, mKa * mKa, pro );
869 amp_tmp[0] = temp_PDF * pro[0];
870 amp_tmp[1] = temp_PDF * pro[1];
873 if ( modetype[i] == 13 )
875 temp_PDF = DDalitz( Ks0, K2, K1, spin[i], mass1[i] );
877 propagatorRBW( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa2, rRes2, spin[i],
881 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
882 double s22[2] = { mKa * mKa, mEta * mEta };
883 propagatora0980p( mass1[i], s13, s11, s22, pro );
886 propagatora0980wm( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa * mKa, pro );
889 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
890 double s22[2] = { mKa * mKa, mEta * mEta };
891 propagatora0980pfloated( mass1[i], s13, s11, s22, r0[i], pro );
894 propagatorGS( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa2, rRes2, pro );
901 amp_tmp[0] = temp_PDF * pro[0];
902 amp_tmp[1] = temp_PDF * pro[1];
905 if ( modetype[i] == 23 )
907 temp_PDF = DDalitz( K1, K2, Ks0, spin[i], mass1[i] );
914 propagatorRBW( mass1[i], width1[i], s23, mKa2, mKa2, rRes2, spin[i], pro );
917 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
918 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
919 propagatora09800( mass1[i], s23, s11, s22, pro );
923 double s11[3] = { mKa * mKa, mPi * mPi };
924 double s22[3] = { mKa * mKa, mEta * mEta };
925 propagatora098002channel( mass1[i], s23, s11, s22, pro );
928 { propagatorFlatte( mass1[i], width1[i], s23, pro ); }
930 propagatora0980wm( mass1[i], width1[i], s23, mKa * mKa, mKa * mKa, pro );
933 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
934 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
935 propagatora09800floated( mass1[i], s23, s11, s22, r0[i], pro );
937 amp_tmp[0] = temp_PDF * pro[0];
938 amp_tmp[1] = temp_PDF * pro[1];
942 if ( modetype[i] == 232 )
944 temp_PDF = DDalitz( K1, K2, Ks0, spin[i], mass1[i] );
951 propagatorRBW( mass1[i], width1[i], s23, mKa2, mKa2, rRes2, spin[i], pro );
954 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
955 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
956 propagatora09800( mass1[i], s23, s11, s22, pro );
960 double s11[3] = { mKa * mKa, mPi * mPi };
961 double s22[3] = { mKa * mKa, mEta * mEta };
962 propagatora098002channel( mass1[i], s23, s11, s22, pro );
965 { propagatorFlatte( mass1[i], width1[i], s23, pro ); }
967 propagatora0980wm( mass1[i], width1[i], s23, mKa * mKa, mKa * mKa, pro );
970 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
971 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
972 propagatora09800floated( mass1[i], s23, s11, s22, r0[i], pro );
974 if ( g0[i] == 7 ) propagatorGS( mass1[i], width1[i], s23, mKa * mKa, mKa2, rRes2, pro );
976 double uspinbr[2], coff[2];
977 coff[0] = r0[i] *
cos( r1[i] );
978 coff[1] = r0[i] *
sin( r1[i] );
984 unit[0] - 2 * ( ( 0.22650 * 0.22650 ) / ( 1. - ( 0.22650 * 0.22650 ) ) ) * coff[0];
986 unit[1] - 2 * ( ( 0.22650 * 0.22650 ) / ( 1. - ( 0.22650 * 0.22650 ) ) ) * coff[1];
989 amp_tmpp[0] = temp_PDF * pro[0];
990 amp_tmpp[1] = temp_PDF * pro[1];
992 Com_Multi( uspinbr, amp_tmpp, amp_tmp );
995 if ( modetype[i] == 100 )
1007 Com_Multi( amp_tmp, cof, amp_PDF );
1008 PDF[0] += amp_PDF[0];
1009 PDF[1] += amp_PDF[1];
1014void EvtD0ToKSLKK::calEva(
double* Ks0,
double* K1,
double* K2,
double* mass1,
double* width1,
1015 double* amp,
double* phase,
int* g0,
int* spin,
int* modetype,
1016 double* r0,
double* r1,
double& Result,
int first,
int last,
1017 int charge,
bool SorL ) {
1018 double PDFD0[2], PDFD0bar[2];
1021 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1024 Ks0[1] = ( -1.0 ) * Ks0[1];
1025 Ks0[2] = ( -1.0 ) * Ks0[2];
1026 Ks0[3] = ( -1.0 ) * Ks0[3];
1028 K1[1] = ( -1.0 ) * K1[1];
1029 K1[2] = ( -1.0 ) * K1[2];
1030 K1[3] = ( -1.0 ) * K1[3];
1032 K2[1] = ( -1.0 ) * K2[1];
1033 K2[2] = ( -1.0 ) * K2[2];
1034 K2[3] = ( -1.0 ) * K2[3];
1037 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1042 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1045 Ks0[1] = ( -1.0 ) * Ks0[1];
1046 Ks0[2] = ( -1.0 ) * Ks0[2];
1047 Ks0[3] = ( -1.0 ) * Ks0[3];
1049 K1[1] = ( -1.0 ) * K1[1];
1050 K1[2] = ( -1.0 ) * K1[2];
1051 K1[3] = ( -1.0 ) * K1[3];
1053 K2[1] = ( -1.0 ) * K2[1];
1054 K2[2] = ( -1.0 ) * K2[2];
1055 K2[3] = ( -1.0 ) * K2[3];
1057 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1079 double value = PDFD0[0] * PDFD0[0] + PDFD0[1] * PDFD0[1];
1080 if ( value <= 0 ) value = 1e-20;
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
EvtComplex exp(const EvtComplex &c)
*******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 getName(std::string &name)
void decay(EvtParticle *p)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
void setProb(double prob)
static int getStdHep(EvtId id)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)