39 for (
int i = 0; i < 4; i++ )
41 for (
int j = 0; j < 4; j++ )
43 if ( i != j ) { g_uv.push_back( 0.0 ); }
44 else if ( i < 3 ) { g_uv.push_back( -1.0 ); }
45 else if ( i == 3 ) { g_uv.push_back( 1.0 ); }
50 for (
int i = 0; i < 4; i++ )
52 for (
int j = 0; j < 4; j++ )
54 for (
int k = 0; k < 4; k++ )
56 for (
int l = 0; l < 4; l++ )
58 if ( i == j || i == k || i == l || j == k || j == l || k == l )
59 { epsilon_uvmn.push_back( 0.0 ); }
62 if ( i == 0 && j == 1 && k == 2 && l == 3 ) epsilon_uvmn.push_back( 1.0 );
63 if ( i == 0 && j == 1 && k == 3 && l == 2 ) epsilon_uvmn.push_back( -1.0 );
64 if ( i == 0 && j == 2 && k == 1 && l == 3 ) epsilon_uvmn.push_back( -1.0 );
65 if ( i == 0 && j == 2 && k == 3 && l == 1 ) epsilon_uvmn.push_back( 1.0 );
66 if ( i == 0 && j == 3 && k == 1 && l == 2 ) epsilon_uvmn.push_back( 1.0 );
67 if ( i == 0 && j == 3 && k == 2 && l == 1 ) epsilon_uvmn.push_back( -1.0 );
69 if ( i == 1 && j == 0 && k == 2 && l == 3 ) epsilon_uvmn.push_back( -1.0 );
70 if ( i == 1 && j == 0 && k == 3 && l == 2 ) epsilon_uvmn.push_back( 1.0 );
71 if ( i == 1 && j == 2 && k == 0 && l == 3 ) epsilon_uvmn.push_back( 1.0 );
72 if ( i == 1 && j == 2 && k == 3 && l == 0 ) epsilon_uvmn.push_back( -1.0 );
73 if ( i == 1 && j == 3 && k == 0 && l == 2 ) epsilon_uvmn.push_back( -1.0 );
74 if ( i == 1 && j == 3 && k == 2 && l == 0 ) epsilon_uvmn.push_back( 1.0 );
76 if ( i == 2 && j == 0 && k == 1 && l == 3 ) epsilon_uvmn.push_back( 1.0 );
77 if ( i == 2 && j == 0 && k == 3 && l == 1 ) epsilon_uvmn.push_back( -1.0 );
78 if ( i == 2 && j == 1 && k == 0 && l == 3 ) epsilon_uvmn.push_back( -1.0 );
79 if ( i == 2 && j == 1 && k == 3 && l == 0 ) epsilon_uvmn.push_back( 1.0 );
80 if ( i == 2 && j == 3 && k == 0 && l == 1 ) epsilon_uvmn.push_back( 1.0 );
81 if ( i == 2 && j == 3 && k == 1 && l == 0 ) epsilon_uvmn.push_back( -1.0 );
83 if ( i == 3 && j == 0 && k == 1 && l == 2 ) epsilon_uvmn.push_back( -1.0 );
84 if ( i == 3 && j == 0 && k == 2 && l == 1 ) epsilon_uvmn.push_back( 1.0 );
85 if ( i == 3 && j == 1 && k == 0 && l == 2 ) epsilon_uvmn.push_back( 1.0 );
86 if ( i == 3 && j == 1 && k == 2 && l == 0 ) epsilon_uvmn.push_back( -1.0 );
87 if ( i == 3 && j == 2 && k == 0 && l == 1 ) epsilon_uvmn.push_back( -1.0 );
88 if ( i == 3 && j == 2 && k == 1 && l == 0 ) epsilon_uvmn.push_back( 1.0 );
99 rRes = 3.0 * 0.197321;
104 m2_Pi0 = m_Pi0 * m_Pi0;
106 m0_rho7700 = 0.77526;
109 m0_rho770p = 0.77511;
140vector<double> D0Topipipi0::sum_tensor( vector<double> pa, vector<double> pb ) {
141 if ( pa.size() != pb.size() )
143 cout <<
"error sum tensor" << endl;
148 for (
int i = 0; i < pa.size(); i++ )
150 double sum = pa[i] + pb[i];
151 temp.push_back( sum );
156double D0Topipipi0::contract_11_0( vector<double> pa, vector<double> pb ) {
157 if ( pa.size() != pb.size() || pa.size() != 4 )
159 cout <<
"error contract 11->0" << endl;
162 double temp = pa[3] * pb[3] - pa[0] * pb[0] - pa[1] * pb[1] - pa[2] * pb[2];
166vector<double> D0Topipipi0::contract_21_1( vector<double> pa, vector<double> pb ) {
167 if ( pa.size() != 16 || pb.size() != 4 )
169 cout <<
"error contract 21->1" << endl;
174 for (
int i = 0; i < 4; i++ )
177 for (
int j = 0; j < 4; j++ )
180 sum += pa[idx] * pb[j] * g_uv[4 * j + j];
182 temp.push_back( sum );
187double D0Topipipi0::contract_22_0( vector<double> pa, vector<double> pb ) {
188 if ( pa.size() != pb.size() || pa.size() != 16 )
190 cout <<
"error contract 22->0" << endl;
194 for (
int i = 0; i < 4; i++ )
196 for (
int j = 0; j < 4; j++ )
199 temp += pa[idx] * pb[idx] * g_uv[4 * i + i] * g_uv[4 * j + j];
205vector<double> D0Topipipi0::contract_31_2( vector<double> pa, vector<double> pb ) {
206 if ( pa.size() != 64 || pb.size() != 4 )
208 cout <<
"error contract 31->2" << endl;
213 for (
int i = 0; i < 16; i++ )
216 for (
int j = 0; j < 4; j++ )
219 sum += pa[idx] * pb[j] * g_uv[4 * j + j];
221 temp.push_back( sum );
226vector<double> D0Topipipi0::contract_41_3( vector<double> pa, vector<double> pb ) {
227 if ( pa.size() != 256 || pb.size() != 4 )
229 cout <<
"error contract 41->3" << endl;
234 for (
int i = 0; i < 64; i++ )
237 for (
int j = 0; j < 4; j++ )
240 sum += pa[idx] * pb[j] * g_uv[4 * j + j];
242 temp.push_back( sum );
247vector<double> D0Topipipi0::contract_42_2( vector<double> pa, vector<double> pb ) {
248 if ( pa.size() != 256 || pb.size() != 16 )
250 cout <<
"error contract 42->2" << endl;
255 for (
int i = 0; i < 16; i++ )
258 for (
int j = 0; j < 4; j++ )
260 for (
int k = 0; k < 4; k++ )
262 int idxa = i * 16 + j * 4 + k;
263 int idxb = j * 4 + k;
264 sum += pa[idxa] * pb[idxb] * g_uv[4 * j + j] * g_uv[4 * k + k];
267 temp.push_back( sum );
273vector<double> D0Topipipi0::contract_22_2( vector<double> pa, vector<double> pb ) {
274 if ( pa.size() != 16 || pb.size() != 16 )
276 cout <<
"error contract 42->2" << endl;
281 for (
int i = 0; i < 4; i++ )
283 for (
int j = 0; j < 4; j++ )
286 for (
int k = 0; k < 4; k++ )
288 int idxa = i * 4 + k;
289 int idxb = j * 4 + k;
290 sum += pa[idxa] * pb[idxb] * g_uv[4 * k + k];
292 temp.push_back( sum );
332vector<double> D0Topipipi0::OrbitalTensors( vector<double> pa, vector<double> pb,
333 vector<double> pc,
double r,
int rank ) {
335 if ( pa.size() != 4 || pb.size() != 4 || pc.size() != 4 )
337 cout <<
"Error: pa, pb, pc" << endl;
342 cout <<
"Error: L<0 !!!" << endl;
350 for (
int i = 0; i < 4; i++ )
352 double temp = pb[i] - pc[i];
353 mr.push_back( temp );
357 double msa = contract_11_0( pa, pa );
358 double msb = contract_11_0( pb, pb );
359 double msc = contract_11_0( pc, pc );
362 double top = msa + msb - msc;
363 double Q2abc = top * top / ( 4.0 * msa ) - msb;
366 double Q_0 = 0.197321f / r;
367 double Q_02 = Q_0 * Q_0;
368 double Q_04 = Q_02 * Q_02;
372 double Q4abc = Q2abc * Q2abc;
376 double mB1 = sqrt( 2.0f / ( Q2abc + Q_02 ) );
377 double mB2 = sqrt( 13.0f / ( Q4abc + ( 3.0f * Q_02 ) * Q2abc + 9.0f * Q_04 ) );
383 vector<double> proj_uv;
385 for (
int i = 0; i < 4; i++ )
387 for (
int j = 0; j < 4; j++ )
390 double temp = -g_uv[idx] + pa[i] * pa[j] / msa;
391 proj_uv.push_back( temp );
409 for (
int i = 0; i < 4; i++ )
412 for (
int j = 0; j < 4; j++ )
415 temp += -proj_uv[idx] * mr[j] * g_uv[j * 4 + j];
417 t_u.push_back( temp );
418 Bt_u.push_back( temp * mB1 );
420 if ( rank == 1 )
return Bt_u;
422 double t_u2 = contract_11_0( t_u, t_u );
424 vector<double> Bt_uv;
426 for (
int i = 0; i < 4; i++ )
428 for (
int j = 0; j < 4; j++ )
431 double temp = t_u[i] * t_u[j] + ( 1.0 / 3.0 ) * proj_uv[idx] * t_u2;
432 Bt_uv.push_back( temp * mB2 );
435 if ( rank == 2 )
return Bt_uv;
439 cout <<
"rank>2: please add it by yourself!!!" << endl;
443 std::cerr << __FILE__ <<
":" << __LINE__ <<
": Should not reach here!" << std::endl;
448vector<double> D0Topipipi0::ProjectionTensors( vector<double> pa,
int rank ) {
450 if ( pa.size() != 4 )
452 cout <<
"Error: pa" << endl;
457 cout <<
"Error: L<0 !!!" << endl;
461 double msa = contract_11_0( pa, pa );
464 vector<double> proj_uv;
466 for (
int i = 0; i < 4; i++ )
468 for (
int j = 0; j < 4; j++ )
471 double temp = -g_uv[idx] + pa[i] * pa[j] / msa;
472 proj_uv.push_back( temp );
484 else if ( rank == 1 ) {
return proj_uv; }
485 else if ( rank == 2 )
487 vector<double> proj_uvmn;
489 for (
int i = 0; i < 4; i++ )
491 for (
int j = 0; j < 4; j++ )
493 for (
int k = 0; k < 4; k++ )
495 for (
int l = 0; l < 4; l++ )
498 int idx1_1 = 4 * i + k;
499 int idx1_2 = 4 * i + l;
500 int idx1_3 = 4 * i + j;
502 int idx2_1 = 4 * j + l;
503 int idx2_2 = 4 * j + k;
504 int idx2_3 = 4 * k + l;
506 double temp = ( 1.0 / 2.0 ) * ( proj_uv[idx1_1] * proj_uv[idx2_1] +
507 proj_uv[idx1_2] * proj_uv[idx2_2] ) -
508 ( 1.0 / 3.0 ) * proj_uv[idx1_3] * proj_uv[idx2_3];
509 proj_uvmn.push_back( temp );
518 cout <<
"rank>2: please add it by yourself!!!" << endl;
522double D0Topipipi0::fundecaymomentum(
double mr2,
double m1_2,
double m2_2 ) {
523 double mr = sqrt( mr2 );
524 double poly = mr2 * mr2 + m1_2 * m1_2 + m2_2 * m2_2 - 2 * m1_2 * mr2 - 2 * m2_2 * mr2 -
526 double ret = sqrt( poly ) / ( 2 * mr );
533complex<double> D0Topipipi0::breitwigner(
double mx2,
double mr,
double wr ) {
537 double mr2 = mr * mr;
538 double diff = mr2 - mx2;
539 double denom = diff * diff + wr * wr * mr2;
547 output_x = diff / denom;
548 output_y = wr * mr / denom;
555 complex<double>
output( output_x, output_y );
560double D0Topipipi0::h(
double m,
double q ) {
561 double h = 2.0 / math_pi *
q / m * log( ( m + 2.0 *
q ) / ( 2.0 * mass_Pion ) );
565double D0Topipipi0::dh(
double m0,
double q0 ) {
566 double dh = h( m0, q0 ) * ( 1.0 / ( 8.0 * q0 * q0 ) - 1.0 / ( 2.0 * m0 * m0 ) ) +
567 1.0 / ( 2.0 * math_pi * m0 * m0 );
571double D0Topipipi0::f(
double m0,
double sx,
double q0,
double q ) {
572 double m = sqrt( sx );
574 m0 * m0 / ( q0 * q0 * q0 ) *
575 (
q *
q * ( h( m,
q ) - h( m0, q0 ) ) + ( m0 * m0 - sx ) * q0 * q0 * dh( m0, q0 ) );
579double D0Topipipi0::d(
double m0,
double q0 ) {
580 double d = 3.0 / math_pi * mass_Pion * mass_Pion / ( q0 * q0 ) *
581 log( ( m0 + 2.0 * q0 ) / ( 2.0 * mass_Pion ) ) +
582 m0 / ( 2.0 * math_pi * q0 ) -
583 ( mass_Pion * mass_Pion * m0 ) / ( math_pi * q0 * q0 * q0 );
587double D0Topipipi0::fundecaymomentum2(
double mr2,
double m1_2,
double m2_2 ) {
588 double mr = sqrt( mr2 );
589 double poly = mr2 * mr2 + m1_2 * m1_2 + m2_2 * m2_2 - 2 * m1_2 * mr2 - 2 * m2_2 * mr2 -
591 double ret = poly / ( 4.0f * mr2 );
592 if ( poly < 0 ) ret = 0.0f;
596double D0Topipipi0::wid(
double mass,
double sa,
double sb,
double sc,
double r,
int l ) {
599 double m = sqrt( sa );
600 double q = fundecaymomentum2( sa, sb, sc );
601 double q0 = fundecaymomentum2( sa0, sb, sc );
603 double z =
q * r * r;
604 double z0 = q0 * r * r;
606 if ( l == 0 ) F = 1.0;
607 if ( l == 1 ) F = sqrt( ( 1.0 + z0 ) / ( 1.0 + z ) );
608 if ( l == 2 ) F = sqrt( ( 9.0 + 3.0 * z0 + z0 * z0 ) / ( 9.0 + 3.0 * z + z * z ) );
610 F = sqrt( ( 225.0 + 45.0 * z0 + 6.0 * z0 * z0 + z0 * z0 * z0 ) /
611 ( 225.0 + 45.0 * z + 6.0 * z * z + z * z * z ) );
614 ( 11025.0 + 1575.0 * z0 + 135.0 * z0 * z0 + 10.0 * z0 * z0 * z0 + z0 * z0 * z0 * z0 ) /
615 ( 11025.0 + 1575.0 * z + 135.0 * z * z + 10.0 * z * z * z + z * z * z * z ) );
616 double t = sqrt(
q / q0 );
620 for ( i = 0; i < ( 2 * l + 1 ); i++ ) { widm *=
t; }
621 widm *= (
mass / m * F * F );
626complex<double> D0Topipipi0::GS(
double mx2,
double mr,
double wr,
double m1_2,
double m2_2,
629 double mr2 = mr * mr;
630 double q = fundecaymomentum( mx2, m1_2, m2_2 );
631 double q0 = fundecaymomentum( mr2, m1_2, m2_2 );
632 double numer = 1.0 + d( mr, q0 ) * wr / mr;
633 double denom_real = mr2 - mx2 + wr * f( mr, mx2, q0,
q );
634 double denom_imag = mr * wr * wid( mr, mx2, m1_2, m2_2, r, l );
636 double denom = denom_real * denom_real + denom_imag * denom_imag;
637 double output_x = denom_real * numer / denom;
638 double output_y = denom_imag * numer / denom;
640 complex<double>
output( output_x, output_y );
644complex<double> D0Topipipi0::irho(
double mr2,
double m1_2,
double m2_2 ) {
645 double mr = sqrt( mr2 );
646 double poly = mr2 * mr2 + m1_2 * m1_2 + m2_2 * m2_2 - 2 * m1_2 * mr2 - 2 * m2_2 * mr2 -
652 ret_real = 2.0f * sqrt( poly ) / ( 2.0f * mr2 );
658 ret_imag = 2.0f * sqrt( -1.0f * poly ) / ( 2.0f * mr2 );
660 complex<double> ret( ret_real, ret_imag );
664complex<double> D0Topipipi0::Flatte(
double mx2,
double mr,
double g1,
double g2,
double m1a,
665 double m1b,
double m2a,
double m2b ) {
667 double mr2 = mr * mr;
668 double diff = mr2 - mx2;
669 double g22 = g2 *
g1;
670 complex<double> ps1 = irho( mx2, m1a * m1a, m1b * m1b );
671 complex<double> ps2 = irho( mx2, m2a * m2a, m2b * m2b );
672 complex<double> iws =
g1 * ps1 + g22 * ps2;
674 double denom_real = diff + iws.imag();
675 double denom_imag = iws.real();
676 double denom = denom_real * denom_real + denom_imag * denom_imag;
678 double output_x = denom_real / denom;
679 double output_y = denom_imag / denom;
681 complex<double>
output( output_x, output_y );
685complex<double> D0Topipipi0::RBW(
double mx2,
double mr,
double wr,
double m1_2,
double m2_2,
687 double mx = sqrt( mx2 );
688 double mr2 = mr * mr;
689 double denom_real = mr2 - mx2;
690 double denom_imag = 0;
691 if ( m1_2 > 0 && m2_2 > 0 )
693 denom_imag = mr * wr * wid( mr, mx2, m1_2, m2_2, r, l );
695 else { denom_imag = mr * wr; }
697 double denom = denom_real * denom_real + denom_imag * denom_imag;
698 double output_x = denom_real / denom;
699 double output_y = denom_imag / denom;
701 complex<double>
output( output_x, output_y );
706double D0Topipipi0::rho22(
double sc ) {
708 3.70024e-18, 8.52763e-15, 1.87159e-13, 1.3311e-12, 5.61842e-12, 1.75224e-11,
709 4.48597e-11, 9.99162e-11, 2.00641e-10, 3.71995e-10, 6.47093e-10, 1.06886e-09,
710 1.69124e-09, 2.58031e-09, 3.8168e-09, 5.49601e-09, 7.72996e-09, 1.06509e-08,
711 1.44078e-08, 1.91741e-08, 2.51445e-08, 3.25345e-08, 4.15946e-08, 5.25949e-08,
712 6.58316e-08, 8.16443e-08, 1.00389e-07, 1.22455e-07, 1.48291e-07, 1.78348e-07,
713 2.1313e-07, 2.53192e-07, 2.99086e-07, 3.51462e-07, 4.10993e-07, 4.78349e-07,
714 5.54327e-07, 6.3972e-07, 7.35316e-07, 8.42099e-07, 9.61004e-07, 1.09295e-06,
715 1.2391e-06, 1.40051e-06, 1.57824e-06, 1.77367e-06, 1.98805e-06, 2.22257e-06,
716 2.47877e-06, 2.7581e-06, 3.06186e-06, 3.39182e-06, 3.74971e-06, 4.137e-06,
717 4.5555e-06, 5.00725e-06, 5.4939e-06, 6.01725e-06, 6.57992e-06, 7.18371e-06,
718 7.83044e-06, 8.52301e-06, 9.26342e-06, 1.00535e-05, 1.08967e-05, 1.17953e-05,
719 1.27514e-05, 1.37679e-05, 1.48482e-05, 1.59943e-05, 1.72088e-05, 1.84961e-05,
720 1.98586e-05, 2.12987e-05, 2.28207e-05, 2.44279e-05, 2.61228e-05, 2.79084e-05,
721 2.97906e-05, 3.17718e-05, 3.38544e-05, 3.60443e-05, 3.8345e-05, 4.07591e-05,
722 4.32903e-05, 4.59459e-05, 4.87285e-05, 5.16403e-05, 5.46887e-05, 5.7878e-05,
723 6.12111e-05, 6.46908e-05, 6.83274e-05, 7.21231e-05, 7.60817e-05, 8.0208e-05,
724 8.45102e-05, 8.89919e-05, 9.36544e-05, 9.85082e-05, 0.000103559, 0.000108812,
725 0.000114267, 0.000119938, 0.000125827, 0.00013194, 0.000138278, 0.000144857,
726 0.000151681, 0.000158752, 0.000166074, 0.000173663, 0.000181521, 0.000189652,
727 0.000198059, 0.000206761, 0.000215761, 0.000225063, 0.00023467, 0.000244599,
728 0.000254855, 0.00026544, 0.000276357, 0.000287629, 0.00029926, 0.000311253,
729 0.000323609, 0.000336351, 0.000349483, 0.000363009, 0.000376926, 0.000391264,
730 0.000406029, 0.000421225, 0.000436848, 0.000452921, 0.000469458, 0.000486461,
731 0.00050393, 0.00052187, 0.000540322, 0.000559278, 0.000578746, 0.00059872,
732 0.000619236, 0.0006403, 0.000661911, 0.000684074, 0.000706799, 0.000730127,
733 0.00075405, 0.000778569, 0.000803686, 0.000829443, 0.000855839, 0.000882879,
734 0.000910561, 0.000938898, 0.000967939, 0.000997674, 0.00102811, 0.00105923,
735 0.0010911, 0.0011237, 0.00115706, 0.00119117, 0.00122601, 0.00126168,
736 0.00129815, 0.00133543, 0.00137351, 0.00141242, 0.00145219, 0.00149283,
737 0.00153434, 0.0015767, 0.00161995, 0.00166415, 0.00170928, 0.00175534,
738 0.00180232, 0.00185028, 0.00189924, 0.00194919, 0.00200014, 0.00205207,
739 0.00210503, 0.0021591, 0.00221421, 0.0022704, 0.00232766, 0.00238602,
740 0.00244554, 0.00250619, 0.00256799, 0.0026309, 0.002695, 0.00276033,
741 0.00282689, 0.00289467, 0.00296367, 0.00303389, 0.00310543, 0.0031783,
742 0.00325244, 0.0033279, 0.0034046, 0.00348275, 0.00356229, 0.00364322,
743 0.00372555, 0.00380924, 0.00389438, 0.00398104, 0.00406914, 0.00415877,
744 0.00424985, 0.00434235, 0.00443651, 0.00453224, 0.00462954, 0.00472848,
745 0.00482894, 0.00493102, 0.00503483, 0.00514029, 0.00524749, 0.0053563,
746 0.00546675, 0.00557905, 0.0056931, 0.00580901, 0.0059267, 0.00604613,
747 0.00616735, 0.00629049, 0.00641557, 0.00654254, 0.00667142, 0.00680216,
748 0.00693472, 0.00706946, 0.00720621, 0.00734497, 0.0074858, 0.00762855,
749 0.00777338, 0.00792036, 0.00806957, 0.00822087, 0.00837426, 0.00852982,
750 0.0086875, 0.00884756, 0.00900991, 0.00917447, 0.00934137, 0.00951052,
751 0.00968194, 0.0098558, 0.010032, 0.0102108, 0.0103919, 0.0105754,
752 0.0107612, 0.0109496, 0.0111406, 0.0113343, 0.0115305, 0.0117293,
753 0.0119303, 0.0121343, 0.0123409, 0.0125502, 0.0127623, 0.0129771,
754 0.0131944, 0.0134145, 0.0136376, 0.0138636, 0.0140924, 0.0143241,
755 0.0145587, 0.0147959, 0.0150363, 0.0152797, 0.0155262, 0.0157758,
756 0.0160283, 0.0162838, 0.0165421, 0.016804, 0.0170691, 0.0173374,
757 0.0176087, 0.0178835, 0.0181612, 0.0184423, 0.0187269, 0.0190149,
758 0.0193063, 0.0196009, 0.0198991, 0.0202003, 0.0205052, 0.0208137,
759 0.0211259, 0.0214418, 0.0217611, 0.0220841, 0.0224105, 0.0227406,
760 0.0230746, 0.0234125, 0.0237542, 0.0240996, 0.0244486, 0.0248012,
761 0.025158, 0.0255188, 0.0258837, 0.0262527, 0.0266256, 0.0270025,
762 0.0273833, 0.027768, 0.0281572, 0.0285505, 0.0289483, 0.0293503,
763 0.0297564, 0.0301665, 0.0305808, 0.0309997, 0.0314231, 0.0318511,
764 0.0322835, 0.0327205, 0.0331616, 0.0336073, 0.0340576, 0.0345128,
765 0.0349727, 0.0354373, 0.0359066, 0.0363807, 0.0368589, 0.0373419,
766 0.0378302, 0.0383234, 0.0388218, 0.0393252, 0.0398336, 0.040347,
767 0.0408652, 0.041388, 0.0419165, 0.0424502, 0.0429893, 0.0435338,
768 0.0440833, 0.044638, 0.0451976, 0.0457627, 0.0463338, 0.0469103,
769 0.047492, 0.0480797, 0.0486729, 0.0492716, 0.0498757, 0.0504852,
770 0.0511009, 0.0517229, 0.0523503, 0.0529838, 0.0536231, 0.0542678,
771 0.054918, 0.0555743, 0.0562372, 0.0569065, 0.0575818, 0.0582634,
772 0.0589511, 0.0596454, 0.0603451, 0.061051, 0.0617635, 0.0624826,
773 0.0632084, 0.0639409, 0.06468, 0.0654254, 0.0661772, 0.0669346,
774 0.0676994, 0.0684714, 0.0692503, 0.0700354, 0.0708285, 0.0716277,
775 0.0724347, 0.0732479, 0.0740671, 0.0748947, 0.0757299, 0.0765715,
776 0.0774207, 0.0782771, 0.0791407, 0.0800119, 0.0808897, 0.0817743,
777 0.0826672, 0.0835684, 0.0844769, 0.0853938, 0.0863179, 0.0872493,
778 0.0881882, 0.0891349, 0.090089, 0.0910523, 0.0920236, 0.093002,
779 0.0939894, 0.094985, 0.0959887, 0.0970003, 0.0980191, 0.0990454,
780 0.100081, 0.101126, 0.10218, 0.103242, 0.104312, 0.105392,
781 0.10648, 0.107576, 0.10868, 0.109793, 0.110916, 0.112048,
782 0.113188, 0.114339, 0.115498, 0.116666, 0.117843, 0.119028,
783 0.120223, 0.121427, 0.122641, 0.123865, 0.125098, 0.126342,
784 0.127595, 0.128857, 0.130128, 0.131409, 0.132701, 0.134002,
785 0.135314, 0.136635, 0.137966, 0.139308, 0.14066, 0.142022,
786 0.143394, 0.144774, 0.146166, 0.14757, 0.148985, 0.15041,
787 0.151845, 0.153291, 0.154749, 0.156215, 0.157694, 0.159182,
788 0.160682, 0.162194, 0.163718, 0.165251, 0.166797, 0.168354,
789 0.169921, 0.1715, 0.17309, 0.17469, 0.176304, 0.177929,
790 0.179566, 0.181216, 0.182878, 0.184553, 0.186238, 0.187934,
791 0.189642, 0.191362, 0.193096, 0.194842, 0.196602, 0.198374,
792 0.200158, 0.201954, 0.203764, 0.205586, 0.207421, 0.209266,
793 0.211124, 0.212997, 0.214882, 0.216783, 0.218697, 0.220624,
794 0.222565, 0.224518, 0.226486, 0.228466, 0.230458, 0.232463,
795 0.234484, 0.23652, 0.238569, 0.240633, 0.242711, 0.244803,
796 0.246909, 0.249031, 0.251165, 0.253313, 0.255475, 0.257649,
797 0.259841, 0.262051, 0.264274, 0.266514, 0.268768, 0.271036,
798 0.273319, 0.275618, 0.277932, 0.280259, 0.282602, 0.28496,
799 0.287338, 0.28973, 0.292138, 0.294563, 0.297003, 0.299458,
800 0.30193, 0.304417, 0.306919, 0.309437, 0.311972, 0.314526,
801 0.317095, 0.319684, 0.322289, 0.324911, 0.327551, 0.330205,
802 0.332876, 0.335567, 0.338271, 0.340993, 0.343736, 0.346496,
803 0.349272, 0.352065, 0.354878, 0.35771, 0.360561, 0.363426,
804 0.366311, 0.369212, 0.372128, 0.375067, 0.378027, 0.381006,
805 0.384001, 0.387014, 0.39005, 0.393106, 0.396181, 0.399271,
806 0.402384, 0.405513, 0.408661, 0.41183, 0.41502, 0.418233,
807 0.421462, 0.424709, 0.42798, 0.43127, 0.434583, 0.437914,
808 0.441267, 0.444637, 0.448022, 0.451434, 0.454868, 0.458328,
809 0.461805, 0.465302, 0.468821, 0.472364, 0.475928, 0.47951,
810 0.483119, 0.486748, 0.490397, 0.494066, 0.497758, 0.501477,
811 0.505217, 0.508977, 0.512762, 0.516567, 0.520394, 0.524247,
812 0.528125, 0.532027, 0.535947, 0.53989, 0.543852, 0.547844,
813 0.551863, 0.555904, 0.559966, 0.56406, 0.568177, 0.572312,
814 0.576471, 0.580662, 0.584875, 0.58911, 0.593373, 0.597653,
815 0.601965, 0.606301, 0.610663, 0.615051, 0.619465, 0.623907,
816 0.62837, 0.632863, 0.637383, 0.641924, 0.646494, 0.651091,
817 0.655708, 0.660356, 0.665027, 0.669732, 0.674464, 0.679227,
818 0.684016, 0.688827, 0.693664, 0.698532, 0.703428, 0.708353,
819 0.713307, 0.718283, 0.72329, 0.728322, 0.733387, 0.738479,
820 0.743605, 0.748763, 0.753949, 0.759163, 0.764407, 0.769674,
821 0.774973, 0.780311, 0.78567, 0.791057, 0.796476, 0.801922,
822 0.8074, 0.812919, 0.818466, 0.824044 };
824 double m2 = 0.13957 * 0.13957;
825 double smin = ( 0.13957 * 4 ) * ( 0.13957 * 4 );
827 int od = ( sc - 0.312 ) / dh;
828 double sc_m = 0.312 + od * dh;
830 if ( sc >= 0.312 && sc < 1 )
831 { rhouse = ( ( sc - sc_m ) / dh ) * ( rho[od + 1] - rho[od] ) + rho[od]; }
832 else if ( sc < 0.312 && sc >= smin )
833 { rhouse = ( ( sc - smin ) / ( 0.312 - smin ) ) * rho[0]; }
837 rhouse = sqrt( 1 - 16 *
m2 / sc );
847 double mpi = 0.13957;
848 if ( i == j && i == 0 )
850 double m2 = 0.13957 * 0.13957;
851 if ( ( 1 - ( 4 *
m2 ) /
s ) > 0 )
853 rhoijx = sqrt( 1.0f - ( 4 *
m2 ) /
s );
858 rhoijy = sqrt( ( 4 *
m2 ) /
s - 1.0f );
862 if ( i == j && i == 1 )
864 double m2 = 0.493677 * 0.493677;
865 if ( ( 1 - ( 4 *
m2 ) /
s ) > 0 )
867 rhoijx = sqrt( 1.0f - ( 4 *
m2 ) /
s );
872 rhoijy = sqrt( ( 4 *
m2 ) /
s - 1.0f );
876 if ( i == j && i == 2 )
881 if ( i == j && i == 3 )
883 double m2 = 0.547862 * 0.547862;
884 if ( ( 1 - ( 4 *
m2 ) /
s ) > 0 )
886 rhoijx = sqrt( 1.0f - ( 4 *
m2 ) /
s );
891 rhoijy = sqrt( ( 4 *
m2 ) /
s - 1.0f );
895 if ( i == j && i == 4 )
897 double m_1 = 0.547862;
898 double m_2 = 0.95778;
899 double mp2 = ( m_1 + m_2 ) * ( m_1 + m_2 );
900 double mm2 = ( m_1 - m_2 ) * ( m_1 - m_2 );
901 if ( ( 1 - mp2 /
s ) > 0 )
903 rhoijx = sqrt( 1.0f - mp2 /
s );
908 rhoijy = sqrt( mp2 /
s - 1.0f );
918 complex<double> rhoij( rhoijx, rhoijy );
927 double mpi = 0.13957;
928 double m[5] = { 0.65100, 1.20360, 1.55817, 1.21000, 1.82206 };
930 double g1[5] = { 0.22889, -0.55377, 0.00000, -0.39899, -0.34639 };
931 double g2[5] = { 0.94128, 0.55095, 0.00000, 0.39065, 0.31503 };
932 double g3[5] = { 0.36856, 0.23888, 0.55639, 0.18340, 0.18681 };
933 double g4[5] = { 0.33650, 0.40907, 0.85679, 0.19906, -0.00984 };
934 double g5[5] = { 0.18171, -0.17558, -0.79658, -0.00355, 0.22358 };
936 double f1[5] = { 0.23399, 0.15044, -0.20545, 0.32825, 0.35412 };
940 double down[5] = { 0, 0, 0, 0, 0 };
941 double upreal[5] = { 0, 0, 0, 0, 0 };
942 double upimag[5] = { 0, 0, 0, 0, 0 };
944 for (
int k = 0; k < 5; k++ )
951 double dm2 = m[k] * m[k] -
s;
952 if ( fabs( dm2 ) <
eps && dm2 <= 0 ) dm2 = -
eps;
953 if ( fabs( dm2 ) <
eps && dm2 > 0 ) dm2 =
eps;
954 upreal[k] = 1.0f / dm2;
958 double tmp1x =
g1[i] *
g1[j] * upreal[0] + g2[i] * g2[j] * upreal[1] +
959 g3[i] * g3[j] * upreal[2] + g4[i] * g4[j] * upreal[3] +
960 g5[i] * g5[j] * upreal[4];
961 double tmp1y =
g1[i] *
g1[j] * upimag[0] + g2[i] * g2[j] * upimag[1] +
962 g3[i] * g3[j] * upimag[2] + g4[i] * g4[j] * upimag[3] +
963 g5[i] * g5[j] * upimag[4];
966 if ( i == 0 ) { tmp2 =
f1[j] * ( 1 + 3.92637 ) / (
s + 3.92637 ); }
967 if ( j == 0 ) { tmp2 =
f1[i] * ( 1 + 3.92637 ) / (
s + 3.92637 ); }
968 double tmp3 = (
s - 0.5 *
mpi *
mpi ) * ( 1 + 0.15 ) / (
s + 0.15 );
970 Kijx = ( tmp1x + tmp2 ) * tmp3;
973 complex<double> Kij( Kijx, Kijy );
991 complex<double> Iij( Iijx, Iijy );
996complex<double> D0Topipipi0::FMTX(
double Kijx,
double Kijy,
double rhojjx,
double rhojjy,
1002 double tmpx = rhojjx * Kijx - rhojjy * Kijy;
1003 double tmpy = rhojjx * Kijy + rhojjy * Kijx;
1005 Fijx = IMTX( i, j ).real() + tmpy;
1008 complex<double> Fij( Fijx, Fijy );
1013double D0Topipipi0::FINVMTX(
double s,
double* FINVx,
double* FINVy ) {
1015 int P[5] = { 0, 1, 2, 3, 4 };
1030 for (
int k = 0; k < 5; k++ )
1032 double rhokkx = rhoMTX( k, k,
s ).real();
1033 double rhokky = rhoMTX( k, k,
s ).imag();
1036 for (
int l = k; l < 5; l++ )
1038 double Kklx = KMTX( k, l,
s ).real();
1039 double Kkly = KMTX( k, l,
s ).imag();
1042 Lx[l][k] = Lx[k][l];
1043 Ly[l][k] = Ly[k][l];
1047 for (
int k = 0; k < 5; k++ )
1049 for (
int l = 0; l < 5; l++ )
1051 double Fklx = FMTX( Lx[k][l], Ly[k][l], Ux[l][l], Uy[l][l], k, l ).real();
1052 double Fkly = FMTX( Lx[k][l], Ly[k][l], Ux[l][l], Uy[l][l], k, l ).imag();
1058 for (
int k = 0; k < 5; k++ )
1060 double tmprM = ( Fx[k][k] * Fx[k][k] + Fy[k][k] * Fy[k][k] );
1062 for (
int l = k; l < 5; l++ )
1064 double tmprF = ( Fx[l][k] * Fx[l][k] + Fy[l][k] * Fy[l][k] );
1065 if ( tmprM <= tmprF )
1076 for (
int l = 0; l < 5; l++ )
1079 double tmpFx = Fx[k][l];
1080 double tmpFy = Fy[k][l];
1082 Fx[k][l] = Fx[tmpID][l];
1083 Fy[k][l] = Fy[tmpID][l];
1085 Fx[tmpID][l] = tmpFx;
1086 Fy[tmpID][l] = tmpFy;
1089 for (
int l = k + 1; l < 5; l++ )
1091 double rFkk = Fx[k][k] * Fx[k][k] + Fy[k][k] * Fy[k][k];
1092 double Fxlk = Fx[l][k];
1093 double Fylk = Fy[l][k];
1094 double Fxkk = Fx[k][k];
1095 double Fykk = Fy[k][k];
1096 Fx[l][k] = ( Fxlk * Fxkk + Fylk * Fykk ) / rFkk;
1097 Fy[l][k] = ( Fylk * Fxkk - Fxlk * Fykk ) / rFkk;
1098 for (
int m = k + 1; m < 5; m++ )
1100 Fx[l][m] = Fx[l][m] - ( Fx[l][k] * Fx[k][m] - Fy[l][k] * Fy[k][m] );
1101 Fy[l][m] = Fy[l][m] - ( Fx[l][k] * Fy[k][m] + Fy[l][k] * Fx[k][m] );
1106 for (
int k = 0; k < 5; k++ )
1108 for (
int l = 0; l < 5; l++ )
1114 Ux[k][k] = Fx[k][k];
1115 Uy[k][k] = Fy[k][k];
1119 Lx[k][l] = Fx[k][l];
1120 Ly[k][l] = Fy[k][l];
1126 Ux[k][l] = Fx[k][l];
1127 Uy[k][l] = Fy[k][l];
1135 for (
int k = 0; k < 5; k++ )
1141 double rUkk = Ux[k][k] * Ux[k][k] + Uy[k][k] * Uy[k][k];
1142 UIx[k][k] = Ux[k][k] / rUkk;
1143 UIy[k][k] = -1.0f * Uy[k][k] / rUkk;
1145 for (
int l = ( k + 1 ); l < 5; l++ )
1153 for (
int l = ( k - 1 ); l >= 0; l-- )
1159 for (
int m = l + 1; m <= k; m++ )
1162 double sx_tmp = sx + Ux[l][m] * UIx[m][k] - Uy[l][m] * UIy[m][k];
1163 c_sx = ( sx_tmp - sx ) - ( Ux[l][m] * UIx[m][k] - Uy[l][m] * UIy[m][k] );
1167 double sy_tmp = sy + Ux[l][m] * UIy[m][k] + Uy[l][m] * UIx[m][k];
1168 c_sy = ( sy_tmp - sy ) - ( Ux[l][m] * UIy[m][k] + Uy[l][m] * UIx[m][k] );
1171 UIx[l][k] = -1.0f * ( UIx[l][l] * sx - UIy[l][l] * sy );
1172 UIy[l][k] = -1.0f * ( UIy[l][l] * sx + UIx[l][l] * sy );
1175 for (
int l = k + 1; l < 5; l++ )
1181 for (
int m = k; m < l; m++ )
1184 double sx_tmp = sx + Lx[l][m] * LIx[m][k] - Ly[l][m] * LIy[m][k];
1185 c_sx = ( sx_tmp - sx ) - ( Lx[l][m] * LIx[m][k] - Ly[l][m] * LIy[m][k] );
1189 double sy_tmp = sy + Lx[l][m] * LIy[m][k] + Ly[l][m] * LIx[m][k];
1190 c_sy = ( sy_tmp - sy ) - ( Lx[l][m] * LIy[m][k] + Ly[l][m] * LIx[m][k] );
1193 LIx[l][k] = -1.0f * sx;
1194 LIy[l][k] = -1.0f * sy;
1198 for (
int m = 0; m < 5; m++ )
1204 for (
int k = 0; k < 5; k++ )
1206 for (
int l = 0; l < 5; l++ )
1209 if (
P[l] == m ) Plm = 1;
1211 resX = resX - c_resX;
1212 double resX_tmp = resX + ( UIx[0][k] * LIx[k][l] - UIy[0][k] * LIy[k][l] ) * Plm;
1214 ( resX_tmp - resX ) - ( ( UIx[0][k] * LIx[k][l] - UIy[0][k] * LIy[k][l] ) * Plm );
1217 resY = resY - c_resY;
1218 double resY_tmp = resY + ( UIx[0][k] * LIy[k][l] + UIy[0][k] * LIx[k][l] ) * Plm;
1220 ( resY_tmp - resY ) - ( ( UIx[0][k] * LIy[k][l] + UIy[0][k] * LIx[k][l] ) * Plm );
1235 double m[5] = { 0.65100, 1.20360, 1.55817, 1.21000, 1.82206 };
1243 double dm2 = m[ID] * m[ID] -
s;
1245 if ( fabs( dm2 ) <
eps && dm2 <= 0 ) dm2 = -
eps;
1246 if ( fabs( dm2 ) <
eps && dm2 > 0 ) dm2 =
eps;
1251 complex<double> VPi( VPix, VPiy );
1260 double FINVx[5] = { 0, 0, 0, 0, 0 };
1261 double FINVy[5] = { 0, 0, 0, 0, 0 };
1263 double tmpFLAG = FINVMTX( sa, FINVx, FINVy );
1267 double g[5][5] = { { 0.22889, -0.55377, 0.00000, -0.39899, -0.34639 },
1268 { 0.94128, 0.55095, 0.00000, 0.39065, 0.31503 },
1269 { 0.36856, 0.23888, 0.55639, 0.18340, 0.18681 },
1270 { 0.33650, 0.40907, 0.85679, 0.19906, -0.00984 },
1271 { 0.18171, -0.17558, -0.79658, -0.00355, 0.22358 } };
1276 double Plx = PVTR( l, sa ).real();
1277 double Ply = PVTR( l, sa ).imag();
1278 for (
int j = 0; j < 5; j++ )
1280 resx = resx - c_resx;
1281 double resx_tmp = resx + ( FINVx[j] * g[l][j] * Plx - FINVy[j] * g[l][j] * Ply );
1282 c_resx = ( resx_tmp - resx ) - ( FINVx[j] * g[l][j] * Plx - FINVy[j] * g[l][j] * Ply );
1285 resy = resy - c_resy;
1286 double resy_tmp = resy + ( FINVx[j] * g[l][j] * Ply + FINVy[j] * g[l][j] * Plx );
1287 c_resy = ( resy_tmp - resy ) - ( FINVx[j] * g[l][j] * Ply + FINVy[j] * g[l][j] * Plx );
1297 double ds = sa - s0;
1298 if ( fabs( ds ) <
eps && ds <= 0 ) ds = -
eps;
1299 if ( fabs( ds ) <
eps && ds > 0 ) ds =
eps;
1300 double tmp = ( 1 - s0 ) / ds;
1301 outputx = FINVx[idx] * tmp;
1302 outputy = FINVy[idx] * tmp;
1305 complex<double>
output( outputx, outputy );
1312 vector<double> cpPip;
1314 vector<double> cpPim;
1316 vector<double> cpPi0;
1319 cpPip.push_back( -p4_Pim[0] );
1320 cpPim.push_back( -p4_Pip[0] );
1321 cpPi0.push_back( -p4_Pi0[0] );
1322 cpPip.push_back( -p4_Pim[1] );
1323 cpPim.push_back( -p4_Pip[1] );
1324 cpPi0.push_back( -p4_Pi0[1] );
1325 cpPip.push_back( -p4_Pim[2] );
1326 cpPim.push_back( -p4_Pip[2] );
1327 cpPi0.push_back( -p4_Pi0[2] );
1328 cpPip.push_back( p4_Pim[3] );
1329 cpPim.push_back( p4_Pip[3] );
1330 cpPi0.push_back( p4_Pi0[3] );
1332 return ( -1.0 ) *
Amp( cpPip, cpPim, cpPi0 );
1336 vector<double>
Pi0 ) {
1338 if ( fitpara.size() != 14 )
1340 cout <<
"Error!!! number of para: " << fitpara.size() << endl;
1344 vector<double> PipPim;
1346 vector<double> PipPi0;
1348 vector<double> PimPi0;
1351 PipPim = sum_tensor( Pip, Pim );
1352 PipPi0 = sum_tensor( Pip,
Pi0 );
1353 PimPi0 = sum_tensor( Pim,
Pi0 );
1357 D0 = sum_tensor( PipPim,
Pi0 );
1359 double M2_PipPim = contract_11_0( PipPim, PipPim );
1360 double M2_PipPi0 = contract_11_0( PipPi0, PipPi0 );
1361 double M2_PimPi0 = contract_11_0( PimPi0, PimPi0 );
1363 double M2_D0 = contract_11_0( D0, D0 );
1365 complex<double> GS_rho770_z = GS( M2_PipPim, m0_rho7700, w0_rho7700, m2_Pi, m2_Pi, rRes, 1 );
1367 GS( M2_PipPi0, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1 );
1369 GS( M2_PimPi0, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1 );
1382 complex<double> RBW_f21270 = RBW( M2_PipPim, m0_f21270, w0_f21270, m2_Pi, m2_Pi, rRes, 2 );
1385 vector<double> T1_PipPim;
1387 vector<double> T1_PipPi0;
1389 vector<double> T1_PimPi0;
1392 T1_PipPim = OrbitalTensors( PipPim, Pip, Pim, rRes, 1 );
1393 T1_PipPi0 = OrbitalTensors( PipPi0, Pip,
Pi0, rRes, 1 );
1394 T1_PimPi0 = OrbitalTensors( PimPi0, Pim,
Pi0, rRes, 1 );
1396 vector<double> T2_PipPim;
1399 T2_PipPim = OrbitalTensors( PipPim, Pip, Pim, rRes, 2 );
1402 vector<double> T1_PipPimPi0;
1403 T1_PipPimPi0.clear();
1404 vector<double> T1_PipPi0Pim;
1405 T1_PipPi0Pim.clear();
1406 vector<double> T1_PimPi0Pip;
1407 T1_PimPi0Pip.clear();
1409 T1_PipPimPi0 = OrbitalTensors( D0, PipPim,
Pi0, rD, 1 );
1410 T1_PipPi0Pim = OrbitalTensors( D0, PipPi0, Pim, rD, 1 );
1411 T1_PimPi0Pip = OrbitalTensors( D0, PimPi0, Pip, rD, 1 );
1413 vector<double> T2_PipPimPi0;
1414 T2_PipPimPi0.clear();
1416 T2_PipPimPi0 = OrbitalTensors( D0, PipPim,
Pi0, rD, 2 );
1421 double SF_VpPm = contract_11_0( T1_PipPi0Pim, T1_PipPi0 );
1422 amplitude += fitpara[0] * ( SF_VpPm * GS_rho770_p );
1424 double SF_VmPp = contract_11_0( T1_PimPi0Pip, T1_PimPi0 );
1425 amplitude += fitpara[1] * ( SF_VmPp * GS_rho770_m );
1427 double SF_VzPz = contract_11_0( T1_PipPimPi0, T1_PipPim );
1428 amplitude += fitpara[2] * ( SF_VzPz * GS_rho770_z );
1431 amplitude += fitpara[3] * ( PiPiS_pm_0 );
1432 amplitude += fitpara[4] * ( PiPiS_pm_1 );
1433 amplitude += fitpara[5] * ( PiPiS_pm_2 );
1434 amplitude += fitpara[6] * ( PiPiS_pm_3 );
1435 amplitude += fitpara[7] * ( PiPiS_pm_4 );
1436 amplitude += fitpara[8] * ( PiPiS_pm_5 );
1437 amplitude += fitpara[9] * ( PiPiS_pm_6 );
1438 amplitude += fitpara[10] * ( PiPiS_pm_7 );
1439 amplitude += fitpara[11] * ( PiPiS_pm_8 );
1440 amplitude += fitpara[12] * ( PiPiS_pm_9 );
1443 double SF_TzPz = contract_22_0( T2_PipPimPi0, T2_PipPim );
1444 amplitude += fitpara[13] * ( SF_TzPz * RBW_f21270 );
1449int D0Topipipi0::CalAmp() {
1450 m_AmpD0 = CalD0Amp();
1451 m_AmpDb = CalDbAmp();
1456 double temp =
x.real() *
x.real() +
x.imag() *
x.imag();
1461 double temp = 2 * (
x.real() * y.real() +
x.imag() * y.imag() );
1466 double temp = atan(
x.imag() /
x.real() );
1467 if (
x.real() < 0 ) temp = temp +
PI;
1470double D0Topipipi0::Get_strongPhase() {
1471 double temp = arg( m_AmpD0 ) - arg( m_AmpDb );
1472 while ( temp < -
PI ) { temp += 2.0 *
PI; }
1473 while ( temp >
PI ) { temp -= 2.0 *
PI; }
double P(RecMdcKalTrack *trk)
EvtTensor3C eps(const EvtVector3R &v)
*******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 output
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
complex< double > Amp(vector< double > Pip, vector< double > Pim, vector< double > Pi0)