276 mass_Pi0 = 0.1349766;
285 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
286 int EE[4][4][4][4] = {
287 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
288 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
289 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
290 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
291 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
292 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
293 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
294 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
295 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
296 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
297 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
298 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
299 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
300 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
301 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
302 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
303 for (
int i = 0; i < 4; i++ )
305 for (
int j = 0; j < 4; j++ )
308 for (
int k = 0; k < 4; k++ )
310 for (
int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
346 double Km[4], Pip[4], Pi01[4], Pi02[4];
347 Km[0] = Km0.
get( 0 );
348 Pip[0] = pi1.
get( 0 );
349 Pi01[0] =
pi2.get( 0 );
350 Pi02[0] = pi3.
get( 0 );
351 Km[1] = Km0.
get( 1 );
352 Pip[1] = pi1.
get( 1 );
353 Pi01[1] =
pi2.get( 1 );
354 Pi02[1] = pi3.
get( 1 );
355 Km[2] = Km0.
get( 2 );
356 Pip[2] = pi1.
get( 2 );
357 Pi01[2] =
pi2.get( 2 );
358 Pi02[2] = pi3.
get( 2 );
359 Km[3] = Km0.
get( 3 );
360 Pip[3] = pi1.
get( 3 );
361 Pi01[3] =
pi2.get( 3 );
362 Pi02[3] = pi3.
get( 3 );
363 double prob = calPDF( Km, Pip, Pi01, Pi02 );
368double EvtD0ToKpipi0pi0::calPDF(
double Km[],
double Pip[],
double Pi01[],
double Pi02[] ) {
369 Km[0] = sqrt( mass_Kaon * mass_Kaon + Km[1] * Km[1] + Km[2] * Km[2] + Km[3] * Km[3] );
370 Pip[0] = sqrt(
mass_Pion *
mass_Pion + Pip[1] * Pip[1] + Pip[2] * Pip[2] + Pip[3] * Pip[3] );
372 sqrt( mass_Pi0 * mass_Pi0 + Pi01[1] * Pi01[1] + Pi01[2] * Pi01[2] + Pi01[3] * Pi01[3] );
374 sqrt( mass_Pi0 * mass_Pi0 + Pi02[1] * Pi02[1] + Pi02[2] * Pi02[2] + Pi02[3] * Pi02[3] );
379 PDF[0] = PHSP( Km, Pip ) + PHSP( Km, Pip );
380 PDF[1] = PHSP( Km, Pi01 ) + PHSP( Km, Pi02 );
391 PDF[7] = D2AP_A2VP( Km, Pi01, Pip, Pi02, g, 0 ) + D2AP_A2VP( Km, Pi02, Pip, Pi01, g, 0 );
393 PDF[8] = D2AP_A2VP( Km, Pi01, Pip, Pi02, g, 0 ) + D2AP_A2VP( Km, Pi02, Pip, Pi01, g, 0 );
395 PDF[9] = D2AP_A2VP( Pip, Pi01, Km, Pi02, g, 1 ) + D2AP_A2VP( Pip, Pi02, Km, Pi01, g, 1 );
403 PDF[13] = D2AP_A2VP( Pi01, Pi02, Km, Pip, g, 31 ) + D2AP_A2VP( Pi02, Pi01, Km, Pip, g, 31 );
405 PDF[14] = D2AP_A2VP( Pi01, Pi02, Km, Pip, g, 31 ) + D2AP_A2VP( Pi02, Pi01, Km, Pip, g, 31 );
407 PDF[15] = D2AP_A2VP( Pi01, Km, Pip, Pi02, g, 3 ) + D2AP_A2VP( Pi02, Km, Pip, Pi01, g, 3 );
417 PDF[19] = D2AP_A2VP( Pip, Pi01, Km, Pi02, g, 1 ) + D2AP_A2VP( Pip, Pi02, Km, Pi01, g, 1 );
425 PDF[23] = D2AP_A2VP( Pi01, Pi02, Km, Pip, g, 31 ) + D2AP_A2VP( Pi02, Pi01, Km, Pip, g, 31 );
427 PDF[24] = D2AP_A2VP( Pi01, Pi02, Km, Pip, g, 31 ) + D2AP_A2VP( Pi02, Pi01, Km, Pip, g, 31 );
431 PDF[26] = D2AP_A2VP( Pi01, Km, Pip, Pi02, g, 3 ) + D2AP_A2VP( Pi02, Km, Pip, Pi01, g, 3 );
435 PDF[29] = D2AP_A2SP( Pi01, Pi02, Km, Pip, 1 ) + D2AP_A2SP( Pi02, Pi01, Km, Pip, 1 );
441 PDF[34] = D2VS( Pip, Pi01, Km, Pi02, 1, 0 ) + D2VS( Pip, Pi02, Km, Pi01, 1, 0 );
442 PDF[35] = D2VS( Km, Pi01, Pip, Pi02, 1, 1 ) + D2VS( Km, Pi02, Pip, Pi01, 1, 1 );
443 PDF[36] = D2VS( Km, Pip, Pi01, Pi02, 1, 11 ) + D2VS( Km, Pip, Pi02, Pi01, 1, 11 );
449 PDF[41] = D2VP_V2VP( Pi01, Pip, Km, Pi02, 0 ) + D2VP_V2VP( Pi02, Pip, Km, Pi01, 0 );
458 PDF[46] = D2VV( Km, Pi01, Pip, Pi02, g, 0 ) + D2VV( Km, Pi02, Pip, Pi01, g, 0 );
460 PDF[47] = D2VV( Km, Pi01, Pip, Pi02, g, 0 ) + D2VV( Km, Pi02, Pip, Pi01, g, 0 );
462 PDF[48] = D2VV( Km, Pi01, Pip, Pi02, g, 0 ) + D2VV( Km, Pi02, Pip, Pi01, g, 0 );
468 PDF[50] = D2VV( Km, Pi01, Pip, Pi02, g, 0 ) + D2VV( Km, Pi02, Pip, Pi01, g, 0 );
470 PDF[51] = D2VV( Km, Pi01, Pip, Pi02, g, 0 ) + D2VV( Km, Pi02, Pip, Pi01, g, 0 );
478 PDF[54] = D2VV( Km, Pi01, Pip, Pi02, g, 0 ) + D2VV( Km, Pi02, Pip, Pi01, g, 0 );
498 PDF[61] = D2VV( Km, Pi01, Pip, Pi02, g, 0 ) + D2VV( Km, Pi02, Pip, Pi01, g, 0 );
506 PDF[66] = D2TS( Pi02, Pi01, Km, Pip, 1 ) + D2TS( Pi01, Pi02, Km, Pip, 1 );
507 PDF[67] = D2TS( Pip, Pi01, Km, Pi02, 11 ) + D2TS( Pip, Pi02, Km, Pi01, 11 );
513 for (
int i = 0; i < 68; i++ )
515 if ( mod[i] == 0 )
continue;
517 pdf = pdf + cof * PDF[i];
519 module = conj( pdf ) * pdf;
521 value =
real( module );
522 return ( value <= 0 ) ? 1e-20 : value;
524EvtComplex EvtD0ToKpipi0pi0::KPiSFormfactor(
double sa,
double sb,
double sc,
double r ) {
525 double m1430 = 1.463;
526 double sa0 = m1430 * m1430;
527 double w1430 = 0.233;
528 double q0 = ( sa0 + sb - sc ) * ( sa0 + sb - sc ) / ( 4 * sa0 ) - sb;
529 if ( q0 < 0 ) q0 = 1e-16;
530 double qs = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
531 double q = sqrt( qs );
532 double width = w1430 *
q * m1430 / sqrt( sa * q0 );
533 double temp_R = atan( m1430 * width / ( sa0 - sa ) );
534 if ( temp_R < 0 ) temp_R += math_pi;
535 double deltaR = -5.31 + temp_R;
536 double temp_F = atan( 2 * 1.07 *
q / ( 2 + ( -1.8 ) * 1.07 * qs ) );
537 if ( temp_F < 0 ) temp_F += math_pi;
538 double deltaF = 2.33 + temp_F;
539 EvtComplex cR(
cos( deltaR ),
sin( deltaR ) );
540 EvtComplex cF(
cos( deltaF ),
sin( deltaF ) );
541 EvtComplex amp = 0.8 *
sin( deltaF ) * cF +
sin( deltaR ) * cR * cF * cF;
544EvtComplex EvtD0ToKpipi0pi0::D2VV(
double P1[],
double P2[],
double P3[],
double P4[],
int g[],
546 double t1V1[4], t1V2[4], t1D[4], t2D[4][4];
548 EvtComplex amp_PDF( 0, 0 );
551 double sa[3], sb[3], sc[3],
B[3];
552 double pV1[4], pV2[4], pD[4];
553 for (
int i = 0; i != 4; i++ )
555 pV1[i] = P1[i] + P2[i];
556 pV2[i] = P3[i] + P4[i];
557 pD[i] = pV1[i] + pV2[i];
559 sa[0] = dot( pV1, pV1 );
560 sb[0] = dot( P1, P1 );
561 sc[0] = dot( P2, P2 );
562 sa[1] = dot( pV2, pV2 );
563 sb[1] = dot( P3, P3 );
564 sc[1] = dot( P4, P4 );
565 sa[2] = dot( pD, pD );
570 if (
flag == 0 ) pro[0] = propagatorRBW( mass[2], width[2], sa[0], sb[0], sc[0], rRes, 1 );
571 if (
flag == 1 ) pro[0] = propagatorRBW( mass[3], width[3], sa[0], sb[0], sc[0], rRes, 1 );
576 pro[1] = propagatorGS( mass[4], width[4], sa[1], sb[1], sc[1], rRes, 1 );
577 if (
flag == 1 ) pro[1] = 1;
579 if ( g[0] == 0 ) pro[0] = 1;
580 if ( g[1] == 0 ) pro[1] = 1;
581 B[0] = barrier( 1, sa[0], sb[0], sc[0], rRes );
582 B[1] = barrier( 1, sa[1], sb[1], sc[1], rRes );
583 calt1( P1, P2, t1V1 );
584 calt1( P3, P4, t1V2 );
587 for (
int i = 0; i != 4; i++ ) { temp_PDF += ( G[i][i] ) * t1V1[i] * t1V2[i]; }
592 calt1( pV1, pV2, t1D );
593 for (
int i = 0; i != 4; i++ )
595 for (
int j = 0; j != 4; j++ )
597 for (
int k = 0; k != 4; k++ )
599 for (
int l = 0; l != 4; l++ )
601 temp_PDF += E[i][j][k][l] * pD[i] * t1D[j] * t1V1[k] * t1V2[l] * ( G[i][i] ) *
602 ( G[j][j] ) * ( G[l][l] ) * ( G[k][k] );
607 B[2] = barrier( 1, sa[2], sb[2], sc[2], rD );
611 calt2( pV1, pV2, t2D );
612 for (
int i = 0; i != 4; i++ )
614 for (
int j = 0; j != 4; j++ )
615 { temp_PDF += t2D[i][j] * t1V1[i] * t1V2[j] * ( G[i][i] ) * ( G[j][j] ); }
617 B[2] = barrier( 2, sa[2], sb[2], sc[2], rD );
619 amp_PDF = temp_PDF *
B[0] *
B[1] *
B[2] * pro[0] * pro[1];
623EvtComplex EvtD0ToKpipi0pi0::D2AP_A2VP(
double P1[],
double P2[],
double P3[],
double P4[],
624 int g[],
int flag ) {
626 EvtComplex amp_PDF( 0, 0 );
628 double t1V[4], t1D[4], t2A[4][4];
629 double sa[3], sb[3], sc[3],
B[3];
630 double pV[4], pA[4], pD[4];
631 for (
int i = 0; i != 4; i++ )
633 pV[i] = P3[i] + P4[i];
634 pA[i] = pV[i] + P2[i];
635 pD[i] = pA[i] + P1[i];
637 sa[0] = dot( pV, pV );
638 sb[0] = dot( P3, P3 );
639 sc[0] = dot( P4, P4 );
640 sa[1] = dot( pA, pA );
642 sc[1] = dot( P2, P2 );
643 sa[2] = dot( pD, pD );
645 sc[2] = dot( P1, P1 );
649 pro[0] = propagatorGS( mass[4], width[4], sa[0], sb[0], sc[0], rRes, 1 );
651 pro[0] = propagatorRBW( mass[2], width[2], sa[0], sb[0], sc[0], rRes, 1 );
652 else if (
flag == 31 )
653 pro[0] = propagatorRBW( mass[3], width[3], sa[0], sb[0], sc[0], rRes, 1 );
655 else if ( g[0] == 0 ) pro[0] = 1;
659 pro[1] = propagatorRBW( mass[0], width[0], sa[1], sb[1], sc[1], rRes, g[2] );
661 pro[1] = propagatorRBW( mass[1], width[1], sa[1], sb[1], sc[1], rRes, g[2] );
663 else if ( g[1] == 0 ) pro[1] = 1;
664 B[0] = barrier( 1, sa[0], sb[0], sc[0], rRes );
665 B[2] = barrier( 1, sa[2], sb[2], sc[2], rD );
666 calt1( P3, P4, t1V );
667 calt1( pA, P1, t1D );
670 for (
int i = 0; i != 4; i++ )
672 for (
int j = 0; j != 4; j++ )
675 t1D[i] * ( G[i][j] - pA[i] * pA[j] / sa[1] ) * t1V[j] * ( G[i][i] ) * ( G[j][j] );
680 else if ( g[2] == 2 )
682 calt2( pV, P2, t2A );
683 for (
int i = 0; i != 4; i++ )
685 for (
int j = 0; j != 4; j++ )
686 { temp_PDF += t1D[i] * t2A[i][j] * t1V[j] * ( G[i][i] ) * ( G[j][j] ); }
688 B[1] = barrier( 2, sa[1], sb[1], sc[1], rRes );
690 amp_PDF = temp_PDF *
B[0] *
B[1] *
B[2] * pro[0] * pro[1];
694EvtComplex EvtD0ToKpipi0pi0::D2AP_A2SP(
double P1[],
double P2[],
double P3[],
double P4[],
698 EvtComplex amp_PDF( 0, 0 );
700 double sa[3], sb[3], sc[3],
B[3];
701 double t1D[4], t1A[4];
702 double pS[4], pA[4], pD[4];
703 for (
int i = 0; i != 4; i++ )
705 pS[i] = P3[i] + P4[i];
706 pA[i] = pS[i] + P2[i];
707 pD[i] = pA[i] + P1[i];
709 sa[0] = dot( pS, pS );
710 sb[0] = dot( P3, P3 );
711 sc[0] = dot( P4, P4 );
712 sa[1] = dot( pA, pA );
714 sc[1] = dot( P2, P2 );
715 sa[2] = dot( pD, pD );
717 sc[2] = dot( P1, P1 );
718 B[1] = barrier( 1, sa[1], sb[1], sc[1], rRes );
719 B[2] = barrier( 1, sa[2], sb[2], sc[2], rD );
720 calt1( pA, P1, t1D );
721 calt1( pS, P2, t1A );
722 for (
int i = 0; i != 4; i++ ) { temp_PDF += t1D[i] * t1A[i] * ( G[i][i] ); }
723 amp_PDF = temp_PDF *
B[1] *
B[2];
725 amp_PDF = amp_PDF * KPiSFormfactor( sa[0], sb[0], sc[0], rRes );
729EvtComplex EvtD0ToKpipi0pi0::D2PP_P2VP(
double P1[],
double P2[],
double P3[],
double P4[],
737 EvtComplex amp( 0, 0 );
739 double sa[3], sb[3], sc[3],
B[3];
741 double pV[4], pP[4], pD[4];
742 for (
int i = 0; i != 4; i++ )
744 pV[i] = P3[i] + P4[i];
745 pP[i] = pV[i] + P2[i];
746 pD[i] = pP[i] + P1[i];
748 sa[0] = dot( pV, pV );
749 sb[0] = dot( P3, P3 );
750 sc[0] = dot( P4, P4 );
751 sa[1] = dot( pP, pP );
753 sc[1] = dot( P2, P2 );
754 sa[2] = dot( pD, pD );
756 sc[2] = dot( P1, P1 );
757 B[0] = barrier( 1, sa[0], sb[0], sc[0], rRes );
758 B[1] = barrier( 1, sa[1], sb[1], sc[1], rRes );
759 if (
flag == 0 ) prop = propagatorRBW( mass[3], width[3], sa[0], sb[0], sc[0], rRes, 1 );
760 else if (
flag == 10 || 20 )
761 prop = propagatorRBW( mass[2], width[2], sa[0], sb[0], sc[0], rRes, 1 );
762 else if (
flag == 1 || 11 )
763 prop = propagatorGS( mass[4], width[4], sa[0], sb[0], sc[0], rRes, 1 );
764 calt1( P3, P4, t1V );
765 for (
int i = 0; i != 4; i++ ) { temp_PDF += P2[i] * t1V[i] * ( G[i][i] ); }
766 amp = temp_PDF *
B[0] *
B[1] * prop;
770EvtComplex EvtD0ToKpipi0pi0::D2VP_V2VP(
double P1[],
double P2[],
double P3[],
double P4[],
773 EvtComplex amp_PDF( 0, 0 );
775 double sa[3], sb[3], sc[3],
B[3];
776 double pV1[4], pV2[4], qV1[4], qV2[4], pD[4];
777 for (
int i = 0; i != 4; i++ )
779 pV2[i] = P3[i] + P4[i];
780 qV2[i] = P3[i] - P4[i];
781 pV1[i] = pV2[i] + P2[i];
782 qV1[i] = pV2[i] - P2[i];
783 pD[i] = pV1[i] + P1[i];
785 for (
int i = 0; i != 4; i++ )
787 for (
int j = 0; j != 4; j++ )
789 for (
int k = 0; k != 4; k++ )
791 for (
int l = 0; l != 4; l++ )
793 temp_PDF += E[i][j][k][l] * pV1[i] * qV1[j] * P1[k] * qV2[l] * ( G[i][i] ) *
794 ( G[j][j] ) * ( G[k][k] ) * ( G[l][l] );
799 sa[0] = dot( pV2, pV2 );
800 sb[0] = dot( P3, P3 );
801 sc[0] = dot( P4, P4 );
802 sa[1] = dot( pV1, pV1 );
804 sc[1] = dot( P2, P2 );
805 sa[2] = dot( pD, pD );
807 sc[2] = dot( P1, P1 );
809 pro = propagatorRBW( mass[2], width[2], sa[0], sb[0], sc[0], rRes, 1 );
810 else if (
flag == 20 )
811 pro = propagatorRBW( mass[3], width[3], sa[0], sb[0], sc[0], rRes, 1 );
813 pro = propagatorGS( mass[4], width[4], sa[0], sb[0], sc[0], rRes, 1 );
814 B[0] = barrier( 1, sa[0], sb[0], sc[0], rRes );
815 B[1] = barrier( 1, sa[1], sb[1], sc[1], rRes );
816 B[2] = barrier( 1, sa[2], sb[2], sc[2], rD );
817 amp_PDF = temp_PDF *
B[0] *
B[1] *
B[2] * pro;
821EvtComplex EvtD0ToKpipi0pi0::D2VS(
double P1[],
double P2[],
double P3[],
double P4[],
int g,
824 EvtComplex amp_PDF( 0, 0 );
826 double sa[3], sb[3], sc[3],
B[3];
827 double t1D[4], t1V[4];
828 double pS[4], pV[4], pD[4];
829 for (
int i = 0; i != 4; i++ )
831 pS[i] = P3[i] + P4[i];
832 pV[i] = P1[i] + P2[i];
833 pD[i] = pS[i] + pV[i];
835 sa[0] = dot( pS, pS );
836 sb[0] = dot( P3, P3 );
837 sc[0] = dot( P4, P4 );
838 sa[1] = dot( pV, pV );
839 sb[1] = dot( P1, P1 );
840 sc[1] = dot( P2, P2 );
841 sa[2] = dot( pD, pD );
846 if (
flag == 0 ) pro = propagatorGS( mass[4], width[4], sa[1], sb[1], sc[1], rRes, 1 );
847 else if (
flag == 1 )
848 pro = propagatorRBW( mass[2], width[2], sa[1], sb[1], sc[1], rRes, 1 );
849 else if (
flag == 11 )
850 pro = propagatorRBW( mass[3], width[3], sa[1], sb[1], sc[1], rRes, 1 );
851 else if (
flag == 10 ) pro = 1;
853 else if ( g == 0 ) pro = 1;
854 B[1] = barrier( 1, sa[1], sb[1], sc[1], rRes );
855 B[2] = barrier( 1, sa[2], sb[2], sc[2], rD );
856 calt1( P1, P2, t1V );
857 calt1( pS, pV, t1D );
858 for (
int i = 0; i != 4; i++ ) { temp_PDF += G[i][i] * t1D[i] * t1V[i]; }
859 amp_PDF = temp_PDF *
B[1] *
B[2] * pro;
860 if (
flag == 0 ||
flag == 10 ) amp_PDF *= KPiSFormfactor( sa[0], sb[0], sc[0], rRes );
865EvtComplex EvtD0ToKpipi0pi0::D2TS(
double P1[],
double P2[],
double P3[],
double P4[],
869 EvtComplex amp_PDF( 0, 0 );
870 double sa[3], sb[3], sc[3],
B[3];
871 double t2D[4][4], t2T[4][4];
872 double pS[4], pT[4], pD[4];
873 for (
int i = 0; i != 4; i++ )
875 pS[i] = P3[i] + P4[i];
876 pT[i] = P1[i] + P2[i];
877 pD[i] = pT[i] + pS[i];
879 sa[0] = dot( pT, pT );
880 sb[0] = dot( P1, P1 );
881 sc[0] = dot( P2, P2 );
882 sa[1] = dot( pS, pS );
883 sb[1] = dot( P3, P3 );
884 sc[1] = dot( P4, P4 );
885 sa[2] = dot( pD, pD );
888 B[0] = barrier( 2, sa[0], sb[0], sc[0], rRes );
889 B[2] = barrier( 2, sa[2], sb[2], sc[2], rD );
890 calt2( P1, P2, t2T );
891 calt2( pT, pS, t2D );
892 for (
int i = 0; i != 4; i++ )
894 for (
int j = 0; j != 4; j++ )
895 { temp_PDF += t2D[i][j] * t2T[j][i] * ( G[i][i] ) * ( G[j][j] ); }
897 amp_PDF = temp_PDF *
B[0] *
B[2];
899 { amp_PDF = amp_PDF * KPiSFormfactor( sa[1], sb[1], sc[1], rRes ); }
903EvtComplex EvtD0ToKpipi0pi0::PHSP(
double P1[],
double P2[] ) {
904 EvtComplex amp_PDF( 0, 0 );
907 for (
int i = 0; i != 4; i++ ) { KPi[i] = P1[i] + P2[i]; }
908 sa = dot( KPi, KPi );
911 amp_PDF = KPiSFormfactor( sa, sb, sc, rRes );
915EvtComplex EvtD0ToKpipi0pi0::propogator(
double mass,
double width,
double sx )
const {
916 EvtComplex ci( 0, 1 );
917 EvtComplex prop = 1.0 / ( mass * mass - sx - ci * mass * width );
920double EvtD0ToKpipi0pi0::wid(
double mass,
double sa,
double sb,
double sc,
double r,
922 double widm( 0. ),
q( 0. ), q0( 0. );
923 double sa0 = mass * mass;
924 double m = sqrt( sa );
925 q = Qabcs( sa, sb, sc );
926 q0 = Qabcs( sa0, sb, sc );
933 if ( l == 1 ) F = sqrt( ( 1 + z0 ) / ( 1 + z ) );
934 if ( l == 2 ) F = sqrt( ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ) );
935 widm = pow(
t, l + 0.5 ) * mass / m * F * F;
938double EvtD0ToKpipi0pi0::h(
double m,
double q )
const {
940 h = 2 / pi *
q / m * log( ( m + 2 *
q ) / ( 2 * mpi ) );
943double EvtD0ToKpipi0pi0::dh(
double mass,
double q0 )
const {
944 double dh = h( mass, q0 ) * ( 1.0 / ( 8 * q0 * q0 ) - 1.0 / ( 2 * mass * mass ) ) +
945 1.0 / ( 2 * pi * mass * mass );
948double EvtD0ToKpipi0pi0::f(
double mass,
double sx,
double q0,
double q )
const {
949 double m = sqrt( sx );
950 double f = mass * mass / ( pow( q0, 3 ) ) *
951 (
q *
q * ( h( m,
q ) - h( mass, q0 ) ) +
952 ( mass * mass - sx ) * q0 * q0 * dh( mass, q0 ) );
955double EvtD0ToKpipi0pi0::d(
double mass,
double q0 )
const {
956 double d = 3.0 / pi * mpi * mpi / ( q0 * q0 ) * log( ( mass + 2 * q0 ) / ( 2 * mpi ) ) +
957 mass / ( 2 * pi * q0 ) - ( mpi * mpi * mass ) / ( pi * pow( q0, 3 ) );
960EvtComplex EvtD0ToKpipi0pi0::propagatorRBW(
double mass,
double width,
double sa,
double sb,
961 double sc,
double r,
int l )
const {
962 EvtComplex ci( 0, 1 );
964 1.0 / ( mass * mass - sa - ci * mass * width * wid( mass, sa, sb, sc, r, l ) );
967EvtComplex EvtD0ToKpipi0pi0::propagatorGS(
double mass,
double width,
double sa,
double sb,
968 double sc,
double r,
int l )
const {
969 EvtComplex ci( 0, 1 );
970 double q = Qabcs( sa, sb, sc );
971 double sa0 = mass * mass;
972 double q0 = Qabcs( sa0, sb, sc );
975 EvtComplex prop = ( 1 + d( mass, q0 ) * width / mass ) /
976 ( mass * mass - sa + width * f( mass, sa, q0,
q ) -
977 ci * mass * width * wid( mass, sa, sb, sc, r, l ) );
980double EvtD0ToKpipi0pi0::Flatte_rhoab(
double sa,
double sb,
double sc )
const {
981 double q = Qabcs( sa, sb, sc );
982 double rho = sqrt(
q / sa );
985EvtComplex EvtD0ToKpipi0pi0::propagatorFlatte(
double mass,
double width,
double sx,
986 double* sb,
double* sc )
const {
987 EvtComplex ci( 0, 1 );
988 double rho1 = Flatte_rhoab( sx, sb[0], sc[0] );
989 double rho2 = Flatte_rhoab( sx, sb[1], sc[1] );
990 EvtComplex prop = 1.0 / ( mass * mass - sx - ci * ( g1 * g1 * rho1 + g2 * g2 * rho2 ) );
993double EvtD0ToKpipi0pi0::dot(
double* a1,
double* a2 )
const {
995 for (
int i = 0; i != 4; i++ ) { dot += a1[i] * a2[i] * G[i][i]; }
998double EvtD0ToKpipi0pi0::Qabcs(
double sa,
double sb,
double sc )
const {
999 double Qabcs = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
1000 if ( Qabcs < 0 ) Qabcs = 1e-16;
1003double EvtD0ToKpipi0pi0::barrier(
double l,
double sa,
double sb,
double sc,
double r )
const {
1004 double q = Qabcs( sa, sb, sc );
1010 if ( l == 0 ) F = 1;
1011 if ( l == 1 ) { F = sqrt( ( 2 * z ) / ( 1 + z ) ); }
1012 if ( l == 2 ) { F = sqrt( ( 13 * z * z ) / ( 9 + 3 * z + z * z ) ); }
1015void EvtD0ToKpipi0pi0::calt1(
double daug1[],
double daug2[],
double t1[] )
const {
1017 double pa[4], qa[4];
1018 for (
int i = 0; i != 4; i++ )
1020 pa[i] = daug1[i] + daug2[i];
1021 qa[i] = daug1[i] - daug2[i];
1025 for (
int i = 0; i != 4; i++ ) { t1[i] = qa[i] - pq / p * pa[i]; }
1027void EvtD0ToKpipi0pi0::calt2(
double daug1[],
double daug2[],
double t2[][4] )
const {
1029 double pa[4], t1[4];
1030 calt1( daug1, daug2, t1 );
1032 for (
int i = 0; i != 4; i++ ) { pa[i] = daug1[i] + daug2[i]; }
1034 for (
int i = 0; i != 4; i++ )
1036 for (
int j = 0; j != 4; j++ )
1037 { 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
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 decay(EvtParticle *p)
void getName(std::string &name)
virtual ~EvtD0ToKpipi0pi0()
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)