40 phi[1] = 3.42566005625144;
41 rho[1] = 0.481320242396153;
42 phi[2] = 3.38836604528211;
43 rho[2] = 0.692817392287617;
44 phi[3] = 2.09747486815378;
45 rho[3] = 0.642052025575875;
46 phi[4] = -1.19528927010597;
47 rho[4] = 0.363639226481389;
55 if ( Uspin == 1 && Daug0Id == 130 )
94 mass_Pion2 = 0.0194797849;
109 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
110 for (
int i = 0; i < 4; i++ )
112 for (
int j = 0; j < 4; j++ ) { G[i][j] = GG[i][j]; }
117 int Daug0Id,
int Uspin ) {
119 double P1[4], P2[4], P3[4];
133 if ( Daug0Id == 310 ) SorL =
true;
136 int spin[5] = { 0, 1, 0, 0, 0 };
140 int g0[5] = { 5, 1, 3, 1, 1 };
141 double r0[5] = { 3, 3, 3, 3, 3 };
142 double r1[5] = { 5, 5, 5, 5, 5 };
146 calPDF( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, 0, nstates, PDFD0 );
148 else if ( ( !SorL ) && Uspin == 1 )
150 int g0[5] = { 5, 1, 3, 1, 1 };
151 double r0[5] = { 6.82071036651904, 2.89695915812383, 3, 3, -6.61721570909587 };
152 double r1[5] = { 1.80820371593891, -2.15090641236998, 5, 5, -0.972853397735864 };
156 calPDF( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, 0, nstates, PDFD0 );
160 int g0[5] = { 5, 1, 3, 1, 1 };
161 double r0[5] = { 3, 3, 3, 3, 3 };
162 double r1[5] = { 5, 5, 5, 5, 5 };
166 calPDF( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, 0, nstates, PDFD0 );
172void D0ToKSLKK::Com_Multi(
double a1[2],
double a2[2],
double res[2] ) {
173 res[0] = a1[0] * a2[0] - a1[1] * a2[1];
174 res[1] = a1[1] * a2[0] + a1[0] * a2[1];
176void D0ToKSLKK::Com_Divide(
double a1[2],
double a2[2],
double res[2] ) {
177 double tmp = a2[0] * a2[0] + a2[1] * a2[1];
178 res[0] = ( a1[0] * a2[0] + a1[1] * a2[1] ) / tmp;
179 res[1] = ( a1[1] * a2[0] - a1[0] * a2[1] ) / tmp;
182double D0ToKSLKK::SCADot(
double a1[4],
double a2[4] ) {
183 double _cal = a1[0] * a2[0] - a1[1] * a2[1] - a1[2] * a2[2] - a1[3] * a2[3];
186double D0ToKSLKK::barrier(
int l,
double sa,
double sb,
double sc,
double r,
double mass ) {
187 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
194 double q0 = ( sa0 + sb - sc ) * ( sa0 + sb - sc ) / ( 4 * sa0 ) - sb;
196 if ( q0 < 0 ) q0 = -q0;
197 double z0 = q0 * r * r;
200 if ( l == 1 ) F = sqrt( ( 1 + z0 ) / ( 1 + z ) );
201 if ( l == 2 ) F = sqrt( ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ) );
205void D0ToKSLKK::calt1(
double daug1[4],
double daug2[4],
double t1[4] ) {
208 for (
int i = 0; i < 4; i++ )
210 pa[i] = daug1[i] + daug2[i];
211 qa[i] = daug1[i] - daug2[i];
213 p = SCADot( pa, pa );
214 pq = SCADot( pa, qa );
216 for (
int i = 0; i < 4; i++ ) { t1[i] = qa[i] - tmp * pa[i]; }
218void D0ToKSLKK::calt2(
double daug1[4],
double daug2[4],
double t2[4][4] ) {
221 calt1( daug1, daug2, t1 );
222 r = SCADot( t1, t1 ) / 3.0;
223 for (
int i = 0; i < 4; i++ ) { pa[i] = daug1[i] + daug2[i]; }
224 p = SCADot( pa, pa );
225 for (
int i = 0; i < 4; i++ )
227 for (
int j = 0; j < 4; j++ )
228 { t2[i][j] = t1[i] * t1[j] - r * ( G[i][j] - pa[i] * pa[j] / p ); }
232void D0ToKSLKK::propagatorCBW(
double mass,
double width,
double sx,
double prop[2] ) {
236 b[0] = mass * mass - sx;
237 b[1] = -mass * width;
238 Com_Divide( a, b, prop );
240double D0ToKSLKK::wid(
double mass2,
double mass,
double sa,
double sb,
double sc,
double r2,
243 double m = sqrt( sa );
244 double tmp = sb - sc;
245 double tmp1 = sa + tmp;
246 double q = 0.25 * tmp1 * tmp1 / sa - sb;
249 double tmp2 = mass2 + tmp;
250 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
252 if ( q0 < 0 ) q0 = -q0;
256 if ( l == 0 ) { widm = sqrt(
t ) * mass / m; }
257 else if ( l == 1 ) { widm =
t * sqrt(
t ) * mass / m * ( 1 + z0 ) / ( 1 + z ); }
259 { widm =
t *
t * sqrt(
t ) * mass / m * ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ); }
262double D0ToKSLKK::widl1(
double mass2,
double mass,
double sa,
double sb,
double sc,
265 double m = sqrt( sa );
266 double tmp = sb - sc;
267 double tmp1 = sa + tmp;
268 double q = 0.25 * tmp1 * tmp1 / sa - sb;
271 double tmp2 = mass2 + tmp;
272 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
274 if ( q0 < 0 ) q0 = -q0;
277 double F = ( 1 + z0 ) / ( 1 + z );
279 widm =
t * sqrt(
t ) * mass / m * F;
282void D0ToKSLKK::propagatorRBW(
double mass,
double width,
double sa,
double sb,
double sc,
283 double r2,
int l,
double prop[2] ) {
285 double mass2 = mass * mass;
290 b[1] = -mass * width * wid( mass2, mass, sa, sb, sc, r2, l );
291 Com_Divide( a, b, prop );
294void D0ToKSLKK::propagatorFlatte(
double mass,
double width,
double sa,
double prop[2] ) {
297 double rhoPi[2] = { 0.0, 0.0 }, rhoKa[2] = { 0.0, 0.0 };
299 q2_Pi = 0.25 * sa - mPi * mPi;
300 q2_Ka = 0.25 * sa - mKa * mKa;
304 rhoPi[0] = 2.0 * sqrt( q2_Pi / sa );
310 rhoPi[1] = 2.0 * sqrt( -q2_Pi / sa );
315 rhoKa[0] = 2.0 * sqrt( q2_Ka / sa );
321 rhoKa[1] = 2.0 * sqrt( -q2_Ka / sa );
341 b[0] = mass * mass - sa + 0.165 * rhoPi[1] + 0.69465 * rhoKa[1];
342 b[1] = -( 0.165 * rhoPi[0] + 0.69465 * rhoKa[0] );
343 Com_Divide( a, b, prop );
347void D0ToKSLKK::propagatorGS(
double mass,
double width,
double sa,
double sb,
double sc,
348 double r2,
double prop[2] ) {
350 double mass2 = mass * mass;
351 double tmp = sb - sc;
352 double tmp1 = sa + tmp;
353 double q2 = 0.25 * tmp1 * tmp1 / sa - sb;
355 if ( q2 < 0 ) q2 = -q2;
357 double tmp2 = mass2 + tmp;
358 double q02 = 0.25 * tmp2 * tmp2 / mass2 - sb;
360 if ( q02 < 0 ) q02 = -q02;
362 double q = sqrt( q2 );
363 double q0 = sqrt( q02 );
364 double m = sqrt( sa );
365 double q03 = q0 * q02;
366 double tmp3 = log( mass + 2 * q0 ) + 1.2760418309;
368 double h = GS1 *
q / m * ( log( m + 2 *
q ) + 1.2760418309 );
369 double h0 = GS1 * q0 / mass * tmp3;
370 double dh = h0 * ( 0.125 / q02 - 0.5 / mass2 ) + GS3 / mass2;
371 double d = GS2 / q02 * tmp3 + GS3 * mass / q0 - GS4 * mass / q03;
372 double f = mass2 / q03 * ( q2 * ( h - h0 ) + ( mass2 - sa ) * q02 * dh );
374 a[0] = 1.0 + d * width / mass;
376 b[0] = mass2 - sa + width *
f;
377 b[1] = -mass * width * widl1( mass2, mass, sa, sb, sc, r2 );
378 Com_Divide( a, b, prop );
380void D0ToKSLKK::KPiSLASS(
double sa,
double sb,
double sc,
double prop[2] ) {
381 const double m1430 = 1.441;
382 const double sa0 = 2.076481;
383 const double w1430 = 0.193;
384 const double Lass1 = 0.25 / sa0;
385 double tmp = sb - sc;
386 double tmp1 = sa0 + tmp;
387 double q0 = Lass1 * tmp1 * tmp1 - sb;
389 if ( q0 < 0 ) q0 = -q0;
390 double tmp2 = sa + tmp;
391 double qs = 0.25 * tmp2 * tmp2 / sa - sb;
392 double q = sqrt( qs );
393 double width = w1430 *
q * m1430 / sqrt( sa * q0 );
394 double temp_R = atan( m1430 * width / ( sa0 - sa ) );
395 if ( temp_R < 0 ) temp_R += math_pi;
396 double deltaR = -109.7 * math_pi / 180.0 + temp_R;
398 atan( 0.226 *
q / ( 2.0 - 3.8194 * qs ) );
399 if ( temp_F < 0 ) temp_F += math_pi;
400 double deltaF = 0.1 * math_pi / 180.0 + temp_F;
401 double deltaS = deltaR + 2.0 * deltaF;
402 double t1 = 0.96 *
sin( deltaF );
403 double t2 =
sin( deltaR );
405 CF[0] =
cos( deltaF );
406 CF[1] =
sin( deltaF );
407 CS[0] =
cos( deltaS );
408 CS[1] =
sin( deltaS );
409 prop[0] = t1 * CF[0] + t2 *
CS[0];
410 prop[1] = t1 * CF[1] + t2 *
CS[1];
413void D0ToKSLKK::Flatte_rhoab(
double sa,
double sb,
double sc,
double rho[2] ) {
414 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
417 rho[0] = 2 * sqrt(
q / sa );
423 rho[1] = 2 * sqrt( -
q / sa );
427void D0ToKSLKK::propagatorKstr1430(
double mass,
double sx,
double* sb,
double* sc,
430 double unit[2] = { 1.0 };
431 double ci[2] = { 0, 1 };
433 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
435 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
436 double gKPi_Kstr1430 = 0.2990, gEtaPK_Kstr1430 = 0.0529;
437 double tmp1[2] = { gKPi_Kstr1430, 0 };
439 double tmp2[2] = { gEtaPK_Kstr1430, 0 };
441 Com_Multi( tmp1, rho1, tmp11 );
442 Com_Multi( tmp2, rho2, tmp22 );
443 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
445 Com_Multi( tmp3, ci, tmp31 );
446 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
447 Com_Divide(
unit, tmp4, prop );
450void D0ToKSLKK::propagatora0980p(
double mass,
double sx,
double* sb,
double* sc,
453 double unit[2] = { 1.0 };
454 double ci[2] = { 0, 1 };
456 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
458 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
459 double gKK_a0980p = 0.341 * 0.892, gEtapi_a0980p = 0.341;
460 double tmp1[2] = { gKK_a0980p, 0 };
462 double tmp2[2] = { gEtapi_a0980p, 0 };
464 Com_Multi( tmp1, rho1, tmp11 );
465 Com_Multi( tmp2, rho2, tmp22 );
466 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
468 Com_Multi( tmp3, ci, tmp31 );
469 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
470 Com_Divide(
unit, tmp4, prop );
473void D0ToKSLKK::propagatora0980pfloated(
double mass,
double sx,
double* sb,
double* sc,
474 double gKK,
double prop[2] )
476 double unit[2] = { 1.0 };
477 double ci[2] = { 0, 1 };
479 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
481 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
482 double gKK_a0980p = 0.341 * gKK, gEtapi_a0980p = 0.341;
483 double tmp1[2] = { gKK_a0980p, 0 };
485 double tmp2[2] = { gEtapi_a0980p, 0 };
487 Com_Multi( tmp1, rho1, tmp11 );
488 Com_Multi( tmp2, rho2, tmp22 );
489 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
491 Com_Multi( tmp3, ci, tmp31 );
492 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
493 Com_Divide(
unit, tmp4, prop );
496void D0ToKSLKK::propagatora0980wm(
double mass,
double width,
double sx,
double sb,
double sc,
499 double unit[2] = { 1.0 };
500 double ci[2] = { 0, 1 };
502 double tmp1[2] = { mass, 0 };
503 double tmp2[2] = { width, 0 };
504 double tmp11[2], tmp22[2];
505 Flatte_rhoab( sx, sb, sc, rho1 );
506 Com_Multi( tmp1, rho1, tmp11 );
507 Com_Multi( tmp11, tmp2, tmp22 );
509 Com_Multi( tmp22, ci, tmp3 );
510 double tmp4[2] = { mass * mass - sx - tmp3[0], -1.0 * tmp3[1] };
511 Com_Divide(
unit, tmp4, prop );
514void D0ToKSLKK::propagatora09800(
double mass,
double sx,
double* sb,
double* sc,
517 double unit[2] = { 1.0 };
518 double ci[2] = { 0, 1 };
520 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
522 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
524 Flatte_rhoab( sx, sb[2], sc[2], rho3 );
525 double gKK_a09800 = 0.341 * 0.892, gEtapi_a09800 = 0.341, gK0K0_a09800 = 0.341 * 0.892;
526 double tmp1[2] = { gKK_a09800, 0 };
528 double tmp2[2] = { gEtapi_a09800, 0 };
530 double tmp3[2] = { gK0K0_a09800, 0 };
532 Com_Multi( tmp1, rho1, tmp11 );
533 Com_Multi( tmp2, rho2, tmp22 );
534 Com_Multi( tmp3, rho3, tmp33 );
535 double tmp4[2] = { tmp11[0] + tmp22[0] + tmp33[0], tmp11[1] + tmp22[1] + tmp33[1] };
537 Com_Multi( tmp4, ci, tmp41 );
538 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
539 Com_Divide(
unit, tmp5, prop );
542void D0ToKSLKK::propagatora09800floated(
double mass,
double sx,
double* sb,
double* sc,
543 double gKK,
double prop[2] )
545 double unit[2] = { 1.0 };
546 double ci[2] = { 0, 1 };
548 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
550 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
552 Flatte_rhoab( sx, sb[2], sc[2], rho3 );
553 double gKK_a09800 = 0.341 * gKK, gEtapi_a09800 = 0.341, gK0K0_a09800 = 0.341 * gKK;
554 double tmp1[2] = { gKK_a09800, 0 };
556 double tmp2[2] = { gEtapi_a09800, 0 };
558 double tmp3[2] = { gK0K0_a09800, 0 };
560 Com_Multi( tmp1, rho1, tmp11 );
561 Com_Multi( tmp2, rho2, tmp22 );
562 Com_Multi( tmp3, rho3, tmp33 );
563 double tmp4[2] = { tmp11[0] + tmp22[0] + tmp33[0], tmp11[1] + tmp22[1] + tmp33[1] };
565 Com_Multi( tmp4, ci, tmp41 );
566 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
567 Com_Divide(
unit, tmp5, prop );
570void D0ToKSLKK::propagatora098002channel(
double mass,
double sx,
double* sb,
double* sc,
573 double unit[2] = { 1.0 };
574 double ci[2] = { 0, 1 };
576 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
578 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
579 double gKK_a09800 = 0.341 * 0.892, gEtapi_a09800 = 0.341;
580 double tmp1[2] = { gKK_a09800, 0 };
582 double tmp2[2] = { gEtapi_a09800, 0 };
584 Com_Multi( tmp1, rho1, tmp11 );
585 Com_Multi( tmp2, rho2, tmp22 );
586 double tmp4[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
588 Com_Multi( tmp4, ci, tmp41 );
589 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
590 Com_Divide(
unit, tmp5, prop );
593void D0ToKSLKK::rhoab(
double sa,
double sb,
double sc,
double res[2] ) {
594 double tmp = sa + sb - sc;
595 double q = 0.25 * tmp * tmp / sa - sb;
598 res[0] = 2.0 * sqrt(
q / sa );
604 res[1] = 2.0 * sqrt( -
q / sa );
607void D0ToKSLKK::rho4Pi(
double sa,
double res[2] ) {
608 double temp = 1.0 - 0.3116765584 / sa;
611 res[0] = sqrt( temp ) / ( 1.0 +
exp( 9.8 - 3.5 * sa ) );
617 res[1] = sqrt( -temp ) / ( 1.0 +
exp( 9.8 - 3.5 * sa ) );
621void D0ToKSLKK::propagatorsigma500(
double sa,
double sb,
double sc,
623 double f = 0.5843 + 1.6663 * sa;
624 const double M = 0.9264;
625 const double mass2 = 0.85821696;
626 const double mpi2d2 = 0.00973989245;
627 double g1 =
f * ( sa - mpi2d2 ) / ( mass2 - mpi2d2 ) *
exp( ( mass2 - sa ) / 1.082 );
628 double rho1s[2], rho1M[2], rho2s[2], rho2M[2], rho1[2], rho2[2];
629 rhoab( sa, sb, sc, rho1s );
630 rhoab( mass2, sb, sc, rho1M );
632 rho4Pi( mass2, rho2M );
633 Com_Divide( rho1s, rho1M, rho1 );
634 Com_Divide( rho2s, rho2M, rho2 );
638 b[0] = mass2 - sa + M * (
g1 * rho1[1] + 0.0024 * rho2[1] );
639 b[1] = -M * (
g1 * rho1[0] + 0.0024 * rho2[0] );
640 Com_Divide( a, b, prop );
643void D0ToKSLKK::getprop(
double sa,
double sb,
double sc,
double mass,
double width,
645 double prop1[2], prop2[2];
646 propagatorGS( mass, width, sa, sb, sc, 9.0, prop1 );
647 propagatorRBW( 0.783, 0.008, sa, sb, sc, 3.0, 1, prop2 );
648 double coef_omega[2];
649 coef_omega[0] = rho_omega *
cos( phi_omega ), coef_omega[1] = rho_omega *
sin( phi_omega );
654 Com_Multi( coef_omega, prop2, temp );
655 temp[0] =
one[0] + 0.783 * 0.783 * temp[0];
656 temp[1] =
one[1] + 0.783 * 0.783 * temp[1];
657 Com_Multi( prop1, temp, prop );
659double D0ToKSLKK::DDalitz(
double P1[4],
double P2[4],
double P3[4],
int Ang,
double mass ) {
661 double temp_PDF, v_re;
664 double B[2], s1, s2, s3, sR, sD;
665 for (
int i = 0; i < 4; i++ )
667 pR[i] = P1[i] + P2[i];
668 pD[i] = pR[i] + P3[i];
670 s1 = SCADot( P1, P1 );
671 s2 = SCADot( P2, P2 );
672 s3 = SCADot( P3, P3 );
673 sR = SCADot( pR, pR );
674 sD = SCADot( pD, pD );
676 for (
int i = 0; i != 4; i++ )
678 for (
int j = 0; j != 4; j++ )
682 if ( i == 0 ) G[i][j] = 1;
696 B[0] = barrier( 1, sR, s1, s2, 3.0, mass );
697 B[1] = barrier( 1, sD, sR, s3, 5.0, mDM );
704 for (
int i = 0; i < 4; i++ ) { temp_PDF += t1[i] * T1[i] * G[i][i]; }
708 B[0] = barrier( 2, sR, s1, s2, 3.0, mass );
709 B[1] = barrier( 2, sD, sR, s3, 5.0, mDM );
712 double t2[4][4], T2[4][4];
716 for (
int i = 0; i < 4; i++ )
718 for (
int j = 0; j < 4; j++ ) { temp_PDF += t2[i][j] * T2[j][i] * G[i][i] * G[j][j]; }
721 v_re = temp_PDF *
B[0] *
B[1];
725void D0ToKSLKK::calPDF(
double* Ks0,
double* K1,
double* K2,
double* mass1,
double* width1,
726 double* amp,
double* phase,
int* g0,
int* spin,
int* modetype,
727 double* r0,
double* r1,
int first,
int last,
double PDF[2] ) {
728 double P12[4], P23[4], P13[4];
729 double cof[2], amp_PDF[2];
730 double s12, s13, s23;
731 for (
int i = 0; i < 4; i++ )
733 P12[i] = K1[i] + Ks0[i];
734 P13[i] = K2[i] + Ks0[i];
735 P23[i] = K1[i] + K2[i];
737 s12 = SCADot( P12, P12 );
738 s13 = SCADot( P13, P13 );
739 s23 = SCADot( P23, P23 );
741 s1 = SCADot( Ks0, Ks0 );
742 s2 = SCADot( K1, K1 );
743 s3 = SCADot( K2, K2 );
744 double pro[2], temp_PDF, amp_tmp[2];
753 for (
int i = first; i < last; i++ )
758 cof[0] = amp[i] *
cos( phase[i] );
759 cof[1] = amp[i] *
sin( phase[i] );
762 if ( modetype[i] == 12 )
764 temp_PDF = DDalitz( Ks0, K1, K2, spin[i], mass1[i] );
766 propagatorRBW( mass1[i], width1[i], s12, mass_KS * mass_KS, mKa2, rRes2, spin[i],
770 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
771 double s22[2] = { mKa * mKa, mEta * mEta };
772 propagatora0980p( mass1[i], s12, s11, s22, pro );
775 propagatora0980wm( mass1[i], width1[i], s12, mass_KS * mass_KS, mKa * mKa, pro );
781 amp_tmp[0] = temp_PDF * pro[0];
782 amp_tmp[1] = temp_PDF * pro[1];
785 if ( modetype[i] == 13 )
787 temp_PDF = DDalitz( Ks0, K2, K1, spin[i], mass1[i] );
789 propagatorRBW( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa2, rRes2, spin[i],
793 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
794 double s22[2] = { mKa * mKa, mEta * mEta };
795 propagatora0980p( mass1[i], s13, s11, s22, pro );
798 propagatora0980wm( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa * mKa, pro );
801 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
802 double s22[2] = { mKa * mKa, mEta * mEta };
803 propagatora0980pfloated( mass1[i], s13, s11, s22, r0[i], pro );
806 propagatorGS( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa2, rRes2, pro );
813 amp_tmp[0] = temp_PDF * pro[0];
814 amp_tmp[1] = temp_PDF * pro[1];
817 if ( modetype[i] == 23 )
819 temp_PDF = DDalitz( K1, K2, Ks0, spin[i], mass1[i] );
826 propagatorRBW( mass1[i], width1[i], s23, mKa2, mKa2, rRes2, spin[i], pro );
829 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
830 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
831 propagatora09800( mass1[i], s23, s11, s22, pro );
835 double s11[3] = { mKa * mKa, mPi * mPi };
836 double s22[3] = { mKa * mKa, mEta * mEta };
837 propagatora098002channel( mass1[i], s23, s11, s22, pro );
840 { propagatorFlatte( mass1[i], width1[i], s23, pro ); }
842 propagatora0980wm( mass1[i], width1[i], s23, mKa * mKa, mKa * mKa, pro );
845 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
846 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
847 propagatora09800floated( mass1[i], s23, s11, s22, r0[i], pro );
849 amp_tmp[0] = temp_PDF * pro[0];
850 amp_tmp[1] = temp_PDF * pro[1];
854 if ( modetype[i] == 232 )
856 temp_PDF = DDalitz( K1, K2, Ks0, spin[i], mass1[i] );
863 propagatorRBW( mass1[i], width1[i], s23, mKa2, mKa2, rRes2, spin[i], pro );
866 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
867 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
868 propagatora09800( mass1[i], s23, s11, s22, pro );
872 double s11[3] = { mKa * mKa, mPi * mPi };
873 double s22[3] = { mKa * mKa, mEta * mEta };
874 propagatora098002channel( mass1[i], s23, s11, s22, pro );
877 { propagatorFlatte( mass1[i], width1[i], s23, pro ); }
879 propagatora0980wm( mass1[i], width1[i], s23, mKa * mKa, mKa * mKa, pro );
882 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
883 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
884 propagatora09800floated( mass1[i], s23, s11, s22, r0[i], pro );
887 double uspinbr[2], coff[2];
888 coff[0] = r0[i] *
cos( r1[i] );
889 coff[1] = r0[i] *
sin( r1[i] );
895 unit[0] - 2 * ( ( 0.22650 * 0.22650 ) / ( 1. - ( 0.22650 * 0.22650 ) ) ) * coff[0];
897 unit[1] - 2 * ( ( 0.22650 * 0.22650 ) / ( 1. - ( 0.22650 * 0.22650 ) ) ) * coff[1];
900 amp_tmpp[0] = temp_PDF * pro[0];
901 amp_tmpp[1] = temp_PDF * pro[1];
903 Com_Multi( uspinbr, amp_tmpp, amp_tmp );
906 if ( modetype[i] == 100 )
918 Com_Multi( amp_tmp, cof, amp_PDF );
919 PDF[0] += amp_PDF[0];
920 PDF[1] += amp_PDF[1];
924void D0ToKSLKK::calEva_QC(
double* Ks0,
double* K1,
double* K2,
double* mass1,
double* width1,
925 double* amp,
double* phase,
int* g0,
int* spin,
int* modetype,
926 double* r0,
double* r1,
double& Result,
int first,
int last,
927 int charge,
bool SorL ) {
928 double PDFD0[2], PDFD0bar[2];
931 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
934 Ks0[1] = ( -1.0 ) * Ks0[1];
935 Ks0[2] = ( -1.0 ) * Ks0[2];
936 Ks0[3] = ( -1.0 ) * Ks0[3];
938 K1[1] = ( -1.0 ) * K1[1];
939 K1[2] = ( -1.0 ) * K1[2];
940 K1[3] = ( -1.0 ) * K1[3];
942 K2[1] = ( -1.0 ) * K2[1];
943 K2[2] = ( -1.0 ) * K2[2];
944 K2[3] = ( -1.0 ) * K2[3];
946 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
951 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
954 Ks0[1] = ( -1.0 ) * Ks0[1];
955 Ks0[2] = ( -1.0 ) * Ks0[2];
956 Ks0[3] = ( -1.0 ) * Ks0[3];
958 K1[1] = ( -1.0 ) * K1[1];
959 K1[2] = ( -1.0 ) * K1[2];
960 K1[3] = ( -1.0 ) * K1[3];
962 K2[1] = ( -1.0 ) * K2[1];
963 K2[2] = ( -1.0 ) * K2[2];
964 K2[3] = ( -1.0 ) * K2[3];
965 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
970 double r_tag = 0.0586;
972 double delta_tag = 192.1 / 180.0 * 3.1415926;
974 qcf[0] = r_tag * R_tag *
cos( -1.0 * delta_tag );
975 qcf[1] = r_tag * R_tag *
sin( -1.0 * delta_tag );
976 double ampD0_part1[2], qcfampD0bar[2];
977 Com_Multi( qcf, PDFD0bar, qcfampD0bar );
980 ampD0_part1[0] = PDFD0[0] - qcfampD0bar[0];
981 ampD0_part1[1] = PDFD0[1] - qcfampD0bar[1];
985 ampD0_part1[0] = PDFD0[0] + qcfampD0bar[0];
986 ampD0_part1[1] = PDFD0[1] + qcfampD0bar[1];
988 double value = ampD0_part1[0] * ampD0_part1[0] + ampD0_part1[1] * ampD0_part1[1] +
989 r_tag * r_tag * ( 1 - R_tag * R_tag ) *
990 ( PDFD0bar[0] * PDFD0bar[0] + PDFD0bar[1] * PDFD0bar[1] );
992 if ( value <= 0 ) value = 1e-20;
996void D0ToKSLKK::calEva(
double* Ks0,
double* K1,
double* K2,
double* mass1,
double* width1,
997 double* amp,
double* phase,
int* g0,
int* spin,
int* modetype,
998 double* r0,
double* r1,
double& Result,
int first,
int last,
999 int charge,
bool SorL ) {
1000 double PDFD0[2], PDFD0bar[2];
1003 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1006 Ks0[1] = ( -1.0 ) * Ks0[1];
1007 Ks0[2] = ( -1.0 ) * Ks0[2];
1008 Ks0[3] = ( -1.0 ) * Ks0[3];
1010 K1[1] = ( -1.0 ) * K1[1];
1011 K1[2] = ( -1.0 ) * K1[2];
1012 K1[3] = ( -1.0 ) * K1[3];
1014 K2[1] = ( -1.0 ) * K2[1];
1015 K2[2] = ( -1.0 ) * K2[2];
1016 K2[3] = ( -1.0 ) * K2[3];
1018 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1023 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1026 Ks0[1] = ( -1.0 ) * Ks0[1];
1027 Ks0[2] = ( -1.0 ) * Ks0[2];
1028 Ks0[3] = ( -1.0 ) * Ks0[3];
1030 K1[1] = ( -1.0 ) * K1[1];
1031 K1[2] = ( -1.0 ) * K1[2];
1032 K1[3] = ( -1.0 ) * K1[3];
1034 K2[1] = ( -1.0 ) * K2[1];
1035 K2[2] = ( -1.0 ) * K2[2];
1036 K2[3] = ( -1.0 ) * K2[3];
1037 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1041 double ampD0_part1[2];
1042 ampD0_part1[0] = PDFD0[0];
1043 ampD0_part1[1] = PDFD0[1];
1044 double value = ampD0_part1[0] * ampD0_part1[0] + ampD0_part1[1] * ampD0_part1[1];
1065 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 init(int Daug0Id, int Uspin)
complex< double > Amp(vector< double > k0l, vector< double > kp, vector< double > km, int Daug0Id, int Uspin)