51 double mag[30], pha[30];
114 for (
int i = 0; i < 30; i++ )
117 fitpara.push_back( ctemp );
121 for (
int i = 0; i < 4; i++ )
123 for (
int j = 0; j < 4; j++ )
125 if ( i != j ) { g_uv.push_back( 0.0 ); }
126 else if ( i < 3 ) { g_uv.push_back( -1.0 ); }
127 else if ( i == 3 ) { g_uv.push_back( 1.0 ); }
131 epsilon_uvmn.clear();
132 for (
int i = 0; i < 4; i++ )
134 for (
int j = 0; j < 4; j++ )
136 for (
int k = 0; k < 4; k++ )
138 for (
int l = 0; l < 4; l++ )
140 if ( i == j || i == k || i == l || j == k || j == l || k == l )
141 { epsilon_uvmn.push_back( 0.0 ); }
144 if ( i == 0 && j == 1 && k == 2 && l == 3 ) epsilon_uvmn.push_back( 1.0 );
145 if ( i == 0 && j == 1 && k == 3 && l == 2 ) epsilon_uvmn.push_back( -1.0 );
146 if ( i == 0 && j == 2 && k == 1 && l == 3 ) epsilon_uvmn.push_back( -1.0 );
147 if ( i == 0 && j == 2 && k == 3 && l == 1 ) epsilon_uvmn.push_back( 1.0 );
148 if ( i == 0 && j == 3 && k == 1 && l == 2 ) epsilon_uvmn.push_back( 1.0 );
149 if ( i == 0 && j == 3 && k == 2 && l == 1 ) epsilon_uvmn.push_back( -1.0 );
151 if ( i == 1 && j == 0 && k == 2 && l == 3 ) epsilon_uvmn.push_back( -1.0 );
152 if ( i == 1 && j == 0 && k == 3 && l == 2 ) epsilon_uvmn.push_back( 1.0 );
153 if ( i == 1 && j == 2 && k == 0 && l == 3 ) epsilon_uvmn.push_back( 1.0 );
154 if ( i == 1 && j == 2 && k == 3 && l == 0 ) epsilon_uvmn.push_back( -1.0 );
155 if ( i == 1 && j == 3 && k == 0 && l == 2 ) epsilon_uvmn.push_back( -1.0 );
156 if ( i == 1 && j == 3 && k == 2 && l == 0 ) epsilon_uvmn.push_back( 1.0 );
158 if ( i == 2 && j == 0 && k == 1 && l == 3 ) epsilon_uvmn.push_back( 1.0 );
159 if ( i == 2 && j == 0 && k == 3 && l == 1 ) epsilon_uvmn.push_back( -1.0 );
160 if ( i == 2 && j == 1 && k == 0 && l == 3 ) epsilon_uvmn.push_back( -1.0 );
161 if ( i == 2 && j == 1 && k == 3 && l == 0 ) epsilon_uvmn.push_back( 1.0 );
162 if ( i == 2 && j == 3 && k == 0 && l == 1 ) epsilon_uvmn.push_back( 1.0 );
163 if ( i == 2 && j == 3 && k == 1 && l == 0 ) epsilon_uvmn.push_back( -1.0 );
165 if ( i == 3 && j == 0 && k == 1 && l == 2 ) epsilon_uvmn.push_back( -1.0 );
166 if ( i == 3 && j == 0 && k == 2 && l == 1 ) epsilon_uvmn.push_back( 1.0 );
167 if ( i == 3 && j == 1 && k == 0 && l == 2 ) epsilon_uvmn.push_back( 1.0 );
168 if ( i == 3 && j == 1 && k == 2 && l == 0 ) epsilon_uvmn.push_back( -1.0 );
169 if ( i == 3 && j == 2 && k == 0 && l == 1 ) epsilon_uvmn.push_back( -1.0 );
170 if ( i == 3 && j == 2 && k == 1 && l == 0 ) epsilon_uvmn.push_back( 1.0 );
178 math_pi = 3.1415926f;
179 mass_Pion = 0.13957f;
181 rRes = 3.0 * 0.197321;
239 for (
int i = 0; i < _nd; i++ )
244 double prob = AmplitudeSquare( charm, tagmode );
249void EvtD0To2pip2pim::setInput(
double* pip1,
double* pim1,
double* pip2,
double* pim2 ) {
254 m_Pip1.push_back( pip1[0] );
255 m_Pim1.push_back( pim1[0] );
256 m_Pip2.push_back( pip2[0] );
257 m_Pim2.push_back( pim2[0] );
258 m_Pip1.push_back( pip1[1] );
259 m_Pim1.push_back( pim1[1] );
260 m_Pip2.push_back( pip2[1] );
261 m_Pim2.push_back( pim2[1] );
262 m_Pip1.push_back( pip1[2] );
263 m_Pim1.push_back( pim1[2] );
264 m_Pip2.push_back( pip2[2] );
265 m_Pim2.push_back( pim2[2] );
266 m_Pip1.push_back( pip1[3] );
267 m_Pim1.push_back( pim1[3] );
268 m_Pip2.push_back( pip2[3] );
269 m_Pim2.push_back( pim2[3] );
272vector<double> EvtD0To2pip2pim::sum_tensor( vector<double> pa, vector<double> pb ) {
273 if ( pa.size() != pb.size() )
275 cout <<
"error sum tensor" << endl;
280 for (
int i = 0; i < pa.size(); i++ )
282 double sum = pa[i] + pb[i];
283 temp.push_back( sum );
288double EvtD0To2pip2pim::contract_11_0( vector<double> pa, vector<double> pb ) {
289 if ( pa.size() != pb.size() || pa.size() != 4 )
291 cout <<
"error contract 11->0" << endl;
294 double temp = pa[3] * pb[3] - pa[0] * pb[0] - pa[1] * pb[1] - pa[2] * pb[2];
298vector<double> EvtD0To2pip2pim::contract_21_1( vector<double> pa, vector<double> pb ) {
299 if ( pa.size() != 16 || pb.size() != 4 )
301 cout <<
"error contract 21->1" << endl;
306 for (
int i = 0; i < 4; i++ )
309 for (
int j = 0; j < 4; j++ )
312 sum += pa[idx] * pb[j] * g_uv[4 * j + j];
314 temp.push_back( sum );
319double EvtD0To2pip2pim::contract_22_0( vector<double> pa, vector<double> pb ) {
320 if ( pa.size() != pb.size() || pa.size() != 16 )
322 cout <<
"error contract 22->0" << endl;
326 for (
int i = 0; i < 4; i++ )
328 for (
int j = 0; j < 4; j++ )
331 temp += pa[idx] * pb[idx] * g_uv[4 * i + i] * g_uv[4 * j + j];
337vector<double> EvtD0To2pip2pim::contract_31_2( vector<double> pa, vector<double> pb ) {
338 if ( pa.size() != 64 || pb.size() != 4 )
340 cout <<
"error contract 31->2" << endl;
345 for (
int i = 0; i < 16; i++ )
348 for (
int j = 0; j < 4; j++ )
351 sum += pa[idx] * pb[j] * g_uv[4 * j + j];
353 temp.push_back( sum );
358vector<double> EvtD0To2pip2pim::contract_41_3( vector<double> pa, vector<double> pb ) {
359 if ( pa.size() != 256 || pb.size() != 4 )
361 cout <<
"error contract 41->3" << endl;
366 for (
int i = 0; i < 64; i++ )
369 for (
int j = 0; j < 4; j++ )
372 sum += pa[idx] * pb[j] * g_uv[4 * j + j];
374 temp.push_back( sum );
379vector<double> EvtD0To2pip2pim::contract_42_2( vector<double> pa, vector<double> pb ) {
380 if ( pa.size() != 256 || pb.size() != 16 )
382 cout <<
"error contract 42->2" << endl;
387 for (
int i = 0; i < 16; i++ )
390 for (
int j = 0; j < 4; j++ )
392 for (
int k = 0; k < 4; k++ )
394 int idxa = i * 16 + j * 4 + k;
395 int idxb = j * 4 + k;
396 sum += pa[idxa] * pb[idxb] * g_uv[4 * j + j] * g_uv[4 * k + k];
399 temp.push_back( sum );
404vector<double> EvtD0To2pip2pim::contract_22_2( vector<double> pa, vector<double> pb ) {
405 if ( pa.size() != 16 || pb.size() != 16 )
407 cout <<
"error contract 42->2" << endl;
412 for (
int i = 0; i < 4; i++ )
414 for (
int j = 0; j < 4; j++ )
417 for (
int k = 0; k < 4; k++ )
419 int idxa = i * 4 + k;
420 int idxb = j * 4 + k;
421 sum += pa[idxa] * pb[idxb] * g_uv[4 * k + k];
423 temp.push_back( sum );
462vector<double> EvtD0To2pip2pim::OrbitalTensors( vector<double> pa, vector<double> pb,
463 vector<double> pc,
double r,
int rank ) {
464 if ( pa.size() != 4 || pb.size() != 4 || pc.size() != 4 )
466 cout <<
"Error: pa, pb, pc" << endl;
471 cout <<
"Error: L<0 !!!" << endl;
479 for (
int i = 0; i < 4; i++ )
481 double temp = pb[i] - pc[i];
482 mr.push_back( temp );
486 double msa = contract_11_0( pa, pa );
487 double msb = contract_11_0( pb, pb );
488 double msc = contract_11_0( pc, pc );
491 double top = msa + msb - msc;
492 double Q2abc = top * top / ( 4.0 * msa ) - msb;
495 double Q_0 = 0.197321f / r;
496 double Q_02 = Q_0 * Q_0;
497 double Q_04 = Q_02 * Q_02;
501 double Q4abc = Q2abc * Q2abc;
505 double mB1 = sqrt( 2.0f / ( Q2abc + Q_02 ) );
506 double mB2 = sqrt( 13.0f / ( Q4abc + ( 3.0f * Q_02 ) * Q2abc + 9.0f * Q_04 ) );
512 vector<double> proj_uv;
514 for (
int i = 0; i < 4; i++ )
516 for (
int j = 0; j < 4; j++ )
519 double temp = -g_uv[idx] + pa[i] * pa[j] / msa;
520 proj_uv.push_back( temp );
538 for (
int i = 0; i < 4; i++ )
541 for (
int j = 0; j < 4; j++ )
544 temp += -proj_uv[idx] * mr[j] * g_uv[j * 4 + j];
546 t_u.push_back( temp );
547 Bt_u.push_back( temp * mB1 );
549 if ( rank == 1 )
return Bt_u;
551 double t_u2 = contract_11_0( t_u, t_u );
553 vector<double> Bt_uv;
555 for (
int i = 0; i < 4; i++ )
557 for (
int j = 0; j < 4; j++ )
560 double temp = t_u[i] * t_u[j] + ( 1.0 / 3.0 ) * proj_uv[idx] * t_u2;
561 Bt_uv.push_back( temp * mB2 );
564 if ( rank == 2 )
return Bt_uv;
568 cout <<
"rank>2: please add it by yourself!!!" << endl;
572 std::cerr << __FILE__ <<
":" << __LINE__ <<
": should not reach here" << std::endl;
577vector<double> EvtD0To2pip2pim::ProjectionTensors( vector<double> pa,
int rank ) {
578 if ( pa.size() != 4 )
580 cout <<
"Error: pa" << endl;
585 cout <<
"Error: L<0 !!!" << endl;
589 double msa = contract_11_0( pa, pa );
592 vector<double> proj_uv;
594 for (
int i = 0; i < 4; i++ )
596 for (
int j = 0; j < 4; j++ )
599 double temp = -g_uv[idx] + pa[i] * pa[j] / msa;
600 proj_uv.push_back( temp );
612 else if ( rank == 1 ) {
return proj_uv; }
613 else if ( rank == 2 )
615 vector<double> proj_uvmn;
617 for (
int i = 0; i < 4; i++ )
619 for (
int j = 0; j < 4; j++ )
621 for (
int k = 0; k < 4; k++ )
623 for (
int l = 0; l < 4; l++ )
626 int idx1_1 = 4 * i + k;
627 int idx1_2 = 4 * i + l;
628 int idx1_3 = 4 * i + j;
630 int idx2_1 = 4 * j + l;
631 int idx2_2 = 4 * j + k;
632 int idx2_3 = 4 * k + l;
634 double temp = ( 1.0 / 2.0 ) * ( proj_uv[idx1_1] * proj_uv[idx2_1] +
635 proj_uv[idx1_2] * proj_uv[idx2_2] ) -
636 ( 1.0 / 3.0 ) * proj_uv[idx1_3] * proj_uv[idx2_3];
637 proj_uvmn.push_back( temp );
646 cout <<
"rank>2: please add it by yourself!!!" << endl;
650double EvtD0To2pip2pim::fundecaymomentum(
double mr2,
double m1_2,
double m2_2 ) {
651 double mr = sqrt( mr2 );
652 double poly = mr2 * mr2 + m1_2 * m1_2 + m2_2 * m2_2 - 2 * m1_2 * mr2 - 2 * m2_2 * mr2 -
654 double ret = sqrt( poly ) / ( 2 * mr );
661complex<double> EvtD0To2pip2pim::breitwigner(
double mx2,
double mr,
double wr ) {
665 double mr2 = mr * mr;
666 double diff = mr2 - mx2;
667 double denom = diff * diff + wr * wr * mr2;
675 output_x = diff / denom;
676 output_y = wr * mr / denom;
683 complex<double>
output( output_x, output_y );
688double EvtD0To2pip2pim::h(
double m,
double q ) {
689 double h = 2.0 / math_pi *
q / m * log( ( m + 2.0 *
q ) / ( 2.0 * mass_Pion ) );
693double EvtD0To2pip2pim::dh(
double m0,
double q0 ) {
694 double dh = h( m0, q0 ) * ( 1.0 / ( 8.0 * q0 * q0 ) - 1.0 / ( 2.0 * m0 * m0 ) ) +
695 1.0 / ( 2.0 * math_pi * m0 * m0 );
699double EvtD0To2pip2pim::f(
double m0,
double sx,
double q0,
double q ) {
700 double m = sqrt( sx );
702 m0 * m0 / ( q0 * q0 * q0 ) *
703 (
q *
q * ( h( m,
q ) - h( m0, q0 ) ) + ( m0 * m0 - sx ) * q0 * q0 * dh( m0, q0 ) );
707double EvtD0To2pip2pim::d(
double m0,
double q0 ) {
708 double d = 3.0 / math_pi * mass_Pion * mass_Pion / ( q0 * q0 ) *
709 log( ( m0 + 2.0 * q0 ) / ( 2.0 * mass_Pion ) ) +
710 m0 / ( 2.0 * math_pi * q0 ) -
711 ( mass_Pion * mass_Pion * m0 ) / ( math_pi * q0 * q0 * q0 );
715double EvtD0To2pip2pim::fundecaymomentum2(
double mr2,
double m1_2,
double m2_2 ) {
716 double mr = sqrt( mr2 );
717 double poly = mr2 * mr2 + m1_2 * m1_2 + m2_2 * m2_2 - 2 * m1_2 * mr2 - 2 * m2_2 * mr2 -
719 double ret = poly / ( 4.0f * mr2 );
720 if ( poly < 0 ) ret = 0.0f;
724double EvtD0To2pip2pim::wid(
double mass,
double sa,
double sb,
double sc,
double r,
int l ) {
727 double m = sqrt( sa );
728 double q = fundecaymomentum2( sa, sb, sc );
729 double q0 = fundecaymomentum2( sa0, sb, sc );
730 double z =
q * r * r;
731 double z0 = q0 * r * r;
733 if ( l == 0 ) F = 1.0;
734 if ( l == 1 ) F = sqrt( ( 1.0 + z0 ) / ( 1.0 + z ) );
735 if ( l == 2 ) F = sqrt( ( 9.0 + 3.0 * z0 + z0 * z0 ) / ( 9.0 + 3.0 * z + z * z ) );
737 F = sqrt( ( 225.0 + 45.0 * z0 + 6.0 * z0 * z0 + z0 * z0 * z0 ) /
738 ( 225.0 + 45.0 * z + 6.0 * z * z + z * z * z ) );
741 ( 11025.0 + 1575.0 * z0 + 135.0 * z0 * z0 + 10.0 * z0 * z0 * z0 + z0 * z0 * z0 * z0 ) /
742 ( 11025.0 + 1575.0 * z + 135.0 * z * z + 10.0 * z * z * z + z * z * z * z ) );
743 double t = sqrt(
q / q0 );
747 for ( i = 0; i < ( 2 * l + 1 ); i++ ) { widm *=
t; }
748 widm *= (
mass / m * F * F );
753complex<double> EvtD0To2pip2pim::GS(
double mx2,
double mr,
double wr,
double m1_2,
754 double m2_2,
double r,
int l ) {
756 double mr2 = mr * mr;
757 double q = fundecaymomentum( mx2, m1_2, m2_2 );
758 double q0 = fundecaymomentum( mr2, m1_2, m2_2 );
759 double numer = 1.0 + d( mr, q0 ) * wr / mr;
760 double denom_real = mr2 - mx2 + wr * f( mr, mx2, q0,
q );
761 double denom_imag = mr * wr * wid( mr, mx2, m1_2, m2_2, r, l );
763 double denom = denom_real * denom_real + denom_imag * denom_imag;
764 double output_x = denom_real * numer / denom;
765 double output_y = denom_imag * numer / denom;
767 complex<double>
output( output_x, output_y );
771complex<double> EvtD0To2pip2pim::RBW(
double mx2,
double mr,
double wr,
double m1_2,
772 double m2_2,
double r,
int l ) {
773 double mx = sqrt( mx2 );
774 double mr2 = mr * mr;
775 double denom_real = mr2 - mx2;
776 double denom_imag = 0;
777 if ( m1_2 > 0 && m2_2 > 0 )
779 denom_imag = mr * wr * wid( mr, mx2, m1_2, m2_2, r, l );
781 else { denom_imag = mr * wr; }
783 double denom = denom_real * denom_real + denom_imag * denom_imag;
784 double output_x = denom_real / denom;
785 double output_y = denom_imag / denom;
787 complex<double>
output( output_x, output_y );
792double EvtD0To2pip2pim::widT1260(
int i,
double g1,
double g2 ) {
795 0.00100302, 0.0069383, 0.0223132, 0.0504984, 0.093998, 0.154569, 0.233464, 0.331844,
796 0.450141, 0.589068, 0.748192, 0.928578, 1.13001, 1.35227, 1.59548, 1.86005,
797 2.14633, 2.45252, 2.78199, 3.13055, 3.50351, 3.89773, 4.31274, 4.75409,
798 5.21133, 5.69991, 6.20735, 6.74638, 7.30128, 7.8858, 8.50289, 9.14654,
799 9.82395, 10.5209, 11.2643, 12.0436, 12.8585, 13.692, 14.598, 15.5291,
800 16.5158, 17.5337, 18.6289, 19.7599, 20.9847, 22.2557, 23.5959, 25.0095,
801 26.5123, 28.0789, 29.7542, 31.5143, 33.3769, 35.3462, 37.3911, 39.5988,
802 41.874, 44.2815, 46.7975, 49.401, 52.0553, 54.7753, 57.5932, 60.4542,
803 63.3049, 66.0665, 68.8987, 71.6282, 74.2613, 76.8713, 79.3528, 81.722,
804 84.1212, 86.227, 88.4243, 90.3478, 92.2478, 94.1483, 95.8541, 97.5086,
805 99.0092, 100.48, 101.861, 103.153, 104.338, 105.576, 106.696, 107.647,
806 108.761, 109.725, 110.625, 111.529, 112.426, 113.01, 113.877, 114.647,
807 115.086, 115.856, 116.533, 117.076, 117.646, 118.25, 118.653, 119.023,
808 119.554, 119.958, 120.384, 121.036, 121.402, 121.686, 122.44, 122.592,
809 122.979, 123.39, 123.819, 123.957, 124.459, 124.681, 125.071, 125.405,
810 125.769, 125.978, 126.542, 126.817, 127.017, 127.292, 127.765, 127.989,
811 128.542, 128.66, 128.923, 129.094, 129.441, 129.716, 130.23, 130.506,
812 130.658, 131.12, 131.308, 131.579, 131.994, 132.28, 132.594, 132.79,
813 133.107, 133.589, 133.935, 134.242, 134.484, 134.765, 135.208, 135.58,
814 135.922, 136.236, 136.545, 136.949, 137.216, 137.503, 137.994, 138.35,
815 138.62, 138.912, 139.413, 139.831, 140.137, 140.478, 141, 141.3,
816 141.807, 142.291, 142.864, 143.315, 143.678, 144.215, 144.587, 145.122,
817 145.8, 145.885, 146.583, 147.226, 147.661, 148.187, 148.698, 149.227,
818 149.832, 150.548, 151.122, 151.674, 152.074, 152.666, 153.295, 153.899,
819 154.661, 155.364, 155.908, 156.495, 157.36, 157.719, 158.533, 159.287,
820 159.79, 160.654, 161.257, 161.93, 162.437, 163.468, 163.957, 164.631,
821 165.414, 166.203, 166.738, 167.61, 168.453, 169.101, 170.111, 170.333,
822 171.123, 171.958, 173.018, 173.663, 174.213, 175.241, 175.579, 176.435,
823 177.291, 178.071, 178.969, 179.635, 180.118, 181.078, 182.007, 182.73,
824 183.282, 184.161, 184.981, 185.695, 186.506, 187.16, 187.996, 188.439,
825 189.416, 190.104, 190.759, 191.786, 192.331, 193.318, 193.836, 194.981,
826 195.634, 196.231, 196.832, 197.835, 198.608, 199.273, 199.854, 200.695,
827 201.719, 202.105, 202.958, 203.707, 204.306, 205.319, 205.977, 206.875,
828 207.687, 208.352, 209.04, 209.352, 210.313, 211.322, 212.02, 212.458,
829 213.246, 214.331, 214.923, 215.466, 216.536, 217.346, 217.867, 218.463,
830 219.201, 219.88, 220.829, 221.461, 222.399, 223.068, 223.712, 224.174,
831 224.837, 225.838, 227.019, 227.171, 227.797, 228.663, 229.429, 230.323,
832 230.845, 231.574, 232.417, 232.677 };
852 0, 0, 1.87136e-06, 1.50063e-05, 5.10425e-05, 0.000122121,
853 0.000240853, 0.000420318, 0.000675161, 0.0010173, 0.00146434, 0.00203321,
854 0.00273489, 0.0035927, 0.00462579, 0.00584255, 0.00727372, 0.00895462,
855 0.0108831, 0.013085, 0.0156197, 0.0184865, 0.0217078, 0.0253423,
856 0.0294103, 0.0339191, 0.0389837, 0.0446351, 0.0508312, 0.0577268,
857 0.0653189, 0.0737049, 0.0829819, 0.0930611, 0.104328, 0.116663,
858 0.130105, 0.144922, 0.16122, 0.179091, 0.198759, 0.220133,
859 0.243916, 0.269803, 0.298861, 0.330061, 0.365741, 0.40437,
860 0.447191, 0.49501, 0.548576, 0.606445, 0.674414, 0.748353,
861 0.831686, 0.929938, 1.03771, 1.16187, 1.30387, 1.47341,
862 1.65629, 1.88318, 2.14353, 2.44169, 2.79831, 3.2009,
863 3.65522, 4.16317, 4.69597, 5.2585, 5.85965, 6.44984,
864 7.04202, 7.60113, 8.14571, 8.73195, 9.24537, 9.75717,
865 10.2093, 10.6731, 11.1487, 11.5819, 12.0158, 12.4253,
866 12.8113, 13.2073, 13.5995, 13.9317, 14.312, 14.6595,
867 14.9511, 15.2668, 15.6092, 15.9349, 16.1873, 16.5049,
868 16.819, 17.0743, 17.3621, 17.6094, 17.8418, 18.0681,
869 18.3141, 18.5914, 18.8187, 19.0562, 19.2282, 19.4918,
870 19.7326, 19.9112, 20.134, 20.3386, 20.511, 20.6865,
871 20.8958, 21.0518, 21.2967, 21.44, 21.6361, 21.8012,
872 21.9523, 22.1736, 22.2615, 22.4207, 22.6056, 22.7198,
873 22.9299, 23.0605, 23.2959, 23.3808, 23.4961, 23.6793,
874 23.7843, 23.9697, 24.0689, 24.1919, 24.405, 24.3898,
875 24.6018, 24.7294, 24.789, 24.9978, 25.0626, 25.1728,
876 25.2809, 25.3579, 25.5444, 25.5995, 25.7644, 25.8397,
877 25.9229, 26.095, 26.1495, 26.2899, 26.3871, 26.54,
878 26.6603, 26.7008, 26.7836, 26.907, 26.9653, 26.9969,
879 27.1226, 27.226, 27.3543, 27.4686, 27.4887, 27.6163,
880 27.6986, 27.7506, 27.7884, 27.8662, 27.9886, 28.0573,
881 28.1238, 28.2612, 28.3209, 28.3457, 28.4392, 28.5086,
882 28.6399, 28.7603, 28.788, 28.8502, 28.9038, 28.9667,
883 28.975, 29.0032, 29.2681, 29.2392, 29.2572, 29.3364 };
885 return wid1[i] *
g1 + wid2[i] * g2;
888double EvtD0To2pip2pim::anywid1260(
double sc,
double g1,
double g2 ) {
890 double smin = ( 0.13957 * 3 ) * ( 0.13957 * 3 );
892 int od = ( sc - 0.18 ) / dh;
893 double sc_m = 0.18 + od * dh;
895 if ( sc >= 0.18 && sc <= 3.17 )
897 widuse = ( ( sc - sc_m ) / dh ) * ( widT1260( od + 1,
g1, g2 ) - widT1260( od,
g1, g2 ) ) +
898 widT1260( od,
g1, g2 );
900 else if ( sc < 0.18 && sc > smin )
901 { widuse = ( ( sc - smin ) / ( 0.18 - smin ) ) * widT1260( 0,
g1, g2 ); }
902 else if ( sc > 3.17 ) { widuse = widT1260( 299,
g1, g2 ); }
907complex<double> EvtD0To2pip2pim::RBWa1260(
double mx2,
double mr,
double g1,
double g2 ) {
909 double mx = sqrt( mx2 );
910 double mr2 = mr * mr;
911 double wid0 = anywid1260( mx2,
g1, g2 );
913 double denom_real = mr2 - mx2;
914 double denom_imag = mr * wid0;
916 double denom = denom_real * denom_real + denom_imag * denom_imag;
917 double output_x = denom_real / denom;
918 double output_y = denom_imag / denom;
920 complex<double>
output( output_x, output_y );
925double EvtD0To2pip2pim::widT1300(
int i ) {
928 0.0702928, 0.399073, 0.991742, 1.82025, 2.85953, 4.08606, 5.48082, 7.02683, 8.70496,
929 10.5007, 12.4053, 14.4026, 16.4831, 18.6423, 20.8642, 23.1544, 25.4896, 27.8703,
930 30.3015, 32.7861, 35.2622, 37.8173, 40.3819, 42.974, 45.5732, 48.2303, 50.8659,
931 53.5741, 56.28, 59.0242, 61.738, 64.5642, 67.377, 70.1605, 73.0155, 75.8849,
932 78.7611, 81.7366, 84.7156, 87.7527, 90.7217, 93.8402, 96.8516, 100.036, 103.168,
933 106.483, 109.772, 113.098, 116.491, 120.013, 123.618, 127.069, 130.983, 134.868,
934 138.605, 142.625, 147.007, 151.154, 155.625, 160.1, 164.776, 169.651, 174.646,
935 179.669, 185.084, 190.409, 196.147, 201.788, 207.901, 214.041, 220.327, 226.505,
936 233.334, 239.816, 246.878, 253.563, 260.393, 267.453, 274.5, 282.15, 289.014,
937 296.45, 303.808, 311.427, 318.649, 326.965, 334.298, 341.576, 349.715, 356.89,
938 365.029, 372.677, 379.882, 387.677, 395.178, 402.445, 410.353, 418.649, 424.994,
939 432.156, 440.002, 448.394, 454.382, 460.97, 468.446, 475.847, 481.956, 489.729,
940 496.094, 501.22, 509.278, 514.618, 521.06, 528.247, 534.246, 540.312, 547.316,
941 552.549, 559.193, 566.059, 572.882, 578.147, 585.118, 589.989, 596.717, 601.222,
942 607.749, 613.96, 621.107, 625.218, 630.396, 635.57, 641.175, 646.024, 651.984,
943 657.156, 661.385, 666.804, 672.088, 675.939, 681.207, 685.072, 690.63, 694.767,
944 699.469, 704.1, 709.445, 713.704, 716.909, 720.681, 726.12, 730.403, 733.553,
945 739.123, 742.156, 746.6, 750.027, 753.462, 757.426, 761.595, 764.336, 768.251,
946 772.371, 775.963, 778.886, 781.905, 784.798, 788.825, 792.372, 796.27, 800.361,
947 803.544, 806.544, 808.819, 812.146, 814.989, 819.234, 820.073, 824.067, 828.047,
948 830.277, 833.013, 835.374, 838.463, 840.82, 844.655, 846.391, 849.408, 851.659,
949 853.977, 856.409, 860.029, 862.128, 866.104, 866.864, 869.24, 872.133, 872.591,
950 876.528, 879.029, 880.786, 883.8, 886.065, 887.511, 890.301, 892.086, 894.429,
951 895.666, 897.961, 900.712, 901.559, 904.787, 906.882, 908.034, 911.366, 911.249,
952 914.274, 916.238, 918.105, 920.585, 920.473, 924.468, 923.888, 926.046, 928.648,
953 930.3, 931.861, 934.253, 934.081, 936.95, 938.319, 940.464, 940.539, 943.393,
954 944.729, 946.944, 947.712, 948.948, 951.026, 952.121, 954.114, 955.146, 956.206,
955 959.056, 960.316, 962.919, 961.946, 964.324, 966.134, 967.689, 968.612, 970.357,
956 972.302, 973.514, 976.512, 975.815, 979.043, 979.486, 981.285, 983.173, 983.96,
957 985.947, 987.447, 988.455, 991.739, 992.1, 993.045, 995.918, 997.377, 999.136,
958 1001.51, 1001.12, 1002.46, 1004.57, 1005.76, 1007.12, 1009.23, 1011.7, 1012.48,
959 1014.84, 1014.21, 1017.28, 1017.22, 1018.95, 1021.8, 1021.94, 1023.22, 1025.13,
960 1026.01, 1027.8, 1030.04, 1030.12, 1031.54, 1033.2, 1034.62, 1035.83, 1037.33,
961 1037.92, 1038.9, 1041.69 };
965double EvtD0To2pip2pim::anywid1300(
double sc ) {
967 double smin = ( 0.13957 * 3 ) * ( 0.13957 * 3 );
969 int od = ( sc - 0.18 ) / dh;
970 double sc_m = 0.18 + od * dh;
972 if ( sc >= 0.18 && sc <= 3.17 )
974 widuse = ( ( sc - sc_m ) / dh ) * ( widT1300( od + 1 ) - widT1300( od ) ) + widT1300( od );
976 else if ( sc < 0.18 && sc > smin )
977 { widuse = ( ( sc - smin ) / ( 0.18 - smin ) ) * widT1300( 0 ); }
978 else if ( sc > 3.17 ) { widuse = widT1300( 299 ); }
983complex<double> EvtD0To2pip2pim::RBWpi1300(
double mx2,
double mr,
double wr ) {
985 double mx = sqrt( mx2 );
986 double mr2 = mr * mr;
987 double g1 = wr / anywid1300( mr2 );
988 double wid0 = anywid1300( mx2 ) *
g1;
990 double denom_real = mr2 - mx2;
991 double denom_imag = mr * wid0;
993 double denom = denom_real * denom_real + denom_imag * denom_imag;
994 double output_x = denom_real / denom;
995 double output_y = denom_imag / denom;
997 complex<double>
output( output_x, output_y );
1002double EvtD0To2pip2pim::widT1640(
int i ) {
1003 double wid1[300] = {
1004 1.38316e-05, 0.000403892, 0.00181814, 0.0048161, 0.00982907, 0.0172548, 0.0273979,
1005 0.040567, 0.0569061, 0.0768551, 0.100513, 0.128031, 0.159729, 0.195626,
1006 0.236099, 0.280881, 0.330745, 0.386095, 0.446448, 0.511879, 0.583827,
1007 0.66167, 0.745453, 0.835386, 0.934317, 1.0386, 1.1513, 1.26975,
1008 1.39901, 1.53362, 1.68291, 1.84163, 2.0066, 2.18366, 2.37394,
1009 2.57742, 2.7905, 3.02463, 3.27434, 3.53467, 3.80737, 4.10838,
1010 4.41975, 4.76341, 5.12572, 5.51301, 5.91839, 6.36597, 6.8457,
1011 7.33806, 7.87328, 8.45901, 9.08869, 9.74744, 10.464, 11.2096,
1012 12.0103, 12.8556, 13.7563, 14.7352, 15.7336, 16.7432, 17.8117,
1013 18.9327, 20.0186, 21.1632, 22.3549, 23.5172, 24.6518, 25.7808,
1014 26.9103, 28.016, 29.1542, 30.0458, 31.0808, 32.1018, 33.0395,
1015 33.9151, 34.8873, 35.7289, 36.5603, 37.2489, 38.023, 38.7983,
1016 39.55, 40.2977, 40.8819, 41.4564, 42.1864, 42.7368, 43.3923,
1017 43.8651, 44.4667, 44.8108, 45.3935, 45.9551, 46.2652, 46.8683,
1018 47.1943, 47.6864, 48.1666, 48.5599, 48.8894, 49.1867, 49.6234,
1019 49.9326, 50.4594, 50.6707, 51.005, 51.2612, 51.7638, 51.8946,
1020 52.3176, 52.5107, 52.7378, 52.9418, 53.4019, 53.3571, 53.7937,
1021 54.137, 54.2265, 54.3471, 54.6637, 54.897, 55.2174, 55.1577,
1022 55.7098, 55.8616, 55.8862, 56.2106, 56.3357, 56.5165, 56.6819,
1023 56.7906, 56.9814, 57.0507, 57.3059, 57.4898, 57.5848, 57.5792,
1024 57.7696, 58.0302, 58.1915, 58.3319, 58.3892, 58.4671, 58.6736,
1025 58.7872, 58.7949, 58.8366, 59.0247, 59.0881, 59.2675, 59.479,
1026 59.6261, 59.6111, 59.6055, 59.7286, 59.8806, 60.0424, 60.1126,
1027 60.0742, 60.2066, 60.2253, 60.565, 60.6557, 60.7359, 60.6405,
1028 60.6429, 60.8521, 60.8098, 61.0699, 61.1678, 61.0329, 61.0522,
1029 61.1792, 61.3671, 61.4394, 61.5152, 61.6122, 61.584, 61.711,
1030 61.707, 61.7254, 61.816, 61.9248, 61.9748, 61.9498, 62.0014,
1031 62.0634, 62.2929, 62.2349, 62.2101, 62.4434, 62.4281, 62.4166,
1032 62.4905, 62.6055, 62.5097, 62.5994, 62.6637, 62.6794, 62.7068,
1033 62.7908, 62.8135, 63.0085, 62.8848, 62.8159, 63.047, 62.8632,
1034 63.1119, 63.0864, 63.1423, 63.2334, 63.0695, 63.2902, 63.3719,
1035 63.1882, 63.2649, 63.3338, 63.4709, 63.4662, 63.3746, 63.623,
1036 63.6402, 63.5632, 63.6611, 63.6012, 63.5904, 63.7467, 63.5535,
1037 63.7792, 63.5213, 63.829, 63.8696, 63.8047, 63.9557, 63.9433,
1038 63.9363, 63.9436, 63.9804, 64.0707, 64.0105, 63.96, 64.0437,
1039 64.0235, 64.1795, 64.1377, 64.073, 64.2282, 64.2933, 64.4369,
1040 64.3887, 64.2474, 64.2373, 64.3553, 64.425, 64.4401, 64.3197,
1041 64.4212, 64.5787, 64.4919, 64.6878, 64.4998, 64.5788, 64.6628,
1042 64.6658, 64.5072, 64.7227, 64.7327, 64.4472, 64.6792, 64.7801,
1043 64.5715, 64.7263, 64.8505, 64.7488, 64.6448, 64.8962, 64.8815,
1044 64.821, 64.902, 64.8944, 64.8959, 64.8957, 64.7882, 65.0725,
1045 64.8787, 64.797, 65.1112, 65.1212, 65.157, 64.9412, 65.2601,
1046 65.0662, 65.0093, 65.0899, 65.1035, 65.0865, 65.3276 };
1050double EvtD0To2pip2pim::anywid1640(
double sc ) {
1052 double smin = ( 0.13957 * 3 ) * ( 0.13957 * 3 );
1054 int od = ( sc - 0.18 ) / dh;
1055 double sc_m = 0.18 + od * dh;
1057 if ( sc >= 0.18 && sc <= 3.17 )
1059 widuse = ( ( sc - sc_m ) / dh ) * ( widT1640( od + 1 ) - widT1640( od ) ) + widT1640( od );
1061 else if ( sc < 0.18 && sc > smin )
1062 { widuse = ( ( sc - smin ) / ( 0.18 - smin ) ) * widT1640( 0 ); }
1063 else if ( sc > 3.17 ) { widuse = widT1640( 299 ); }
1064 else { widuse = 0; }
1068complex<double> EvtD0To2pip2pim::RBWa1640(
double mx2,
double mr,
double wr ) {
1070 double mx = sqrt( mx2 );
1071 double mr2 = mr * mr;
1072 double g1 = wr / anywid1640( mr2 );
1073 double wid0 = anywid1640( mx2 ) *
g1;
1075 double denom_real = mr2 - mx2;
1076 double denom_imag = mr * wid0;
1078 double denom = denom_real * denom_real + denom_imag * denom_imag;
1079 double output_x = denom_real / denom;
1080 double output_y = denom_imag / denom;
1082 complex<double>
output( output_x, output_y );
1087double EvtD0To2pip2pim::rho22(
double sc ) {
1089 3.70024e-18, 8.52763e-15, 1.87159e-13, 1.3311e-12, 5.61842e-12, 1.75224e-11,
1090 4.48597e-11, 9.99162e-11, 2.00641e-10, 3.71995e-10, 6.47093e-10, 1.06886e-09,
1091 1.69124e-09, 2.58031e-09, 3.8168e-09, 5.49601e-09, 7.72996e-09, 1.06509e-08,
1092 1.44078e-08, 1.91741e-08, 2.51445e-08, 3.25345e-08, 4.15946e-08, 5.25949e-08,
1093 6.58316e-08, 8.16443e-08, 1.00389e-07, 1.22455e-07, 1.48291e-07, 1.78348e-07,
1094 2.1313e-07, 2.53192e-07, 2.99086e-07, 3.51462e-07, 4.10993e-07, 4.78349e-07,
1095 5.54327e-07, 6.3972e-07, 7.35316e-07, 8.42099e-07, 9.61004e-07, 1.09295e-06,
1096 1.2391e-06, 1.40051e-06, 1.57824e-06, 1.77367e-06, 1.98805e-06, 2.22257e-06,
1097 2.47877e-06, 2.7581e-06, 3.06186e-06, 3.39182e-06, 3.74971e-06, 4.137e-06,
1098 4.5555e-06, 5.00725e-06, 5.4939e-06, 6.01725e-06, 6.57992e-06, 7.18371e-06,
1099 7.83044e-06, 8.52301e-06, 9.26342e-06, 1.00535e-05, 1.08967e-05, 1.17953e-05,
1100 1.27514e-05, 1.37679e-05, 1.48482e-05, 1.59943e-05, 1.72088e-05, 1.84961e-05,
1101 1.98586e-05, 2.12987e-05, 2.28207e-05, 2.44279e-05, 2.61228e-05, 2.79084e-05,
1102 2.97906e-05, 3.17718e-05, 3.38544e-05, 3.60443e-05, 3.8345e-05, 4.07591e-05,
1103 4.32903e-05, 4.59459e-05, 4.87285e-05, 5.16403e-05, 5.46887e-05, 5.7878e-05,
1104 6.12111e-05, 6.46908e-05, 6.83274e-05, 7.21231e-05, 7.60817e-05, 8.0208e-05,
1105 8.45102e-05, 8.89919e-05, 9.36544e-05, 9.85082e-05, 0.000103559, 0.000108812,
1106 0.000114267, 0.000119938, 0.000125827, 0.00013194, 0.000138278, 0.000144857,
1107 0.000151681, 0.000158752, 0.000166074, 0.000173663, 0.000181521, 0.000189652,
1108 0.000198059, 0.000206761, 0.000215761, 0.000225063, 0.00023467, 0.000244599,
1109 0.000254855, 0.00026544, 0.000276357, 0.000287629, 0.00029926, 0.000311253,
1110 0.000323609, 0.000336351, 0.000349483, 0.000363009, 0.000376926, 0.000391264,
1111 0.000406029, 0.000421225, 0.000436848, 0.000452921, 0.000469458, 0.000486461,
1112 0.00050393, 0.00052187, 0.000540322, 0.000559278, 0.000578746, 0.00059872,
1113 0.000619236, 0.0006403, 0.000661911, 0.000684074, 0.000706799, 0.000730127,
1114 0.00075405, 0.000778569, 0.000803686, 0.000829443, 0.000855839, 0.000882879,
1115 0.000910561, 0.000938898, 0.000967939, 0.000997674, 0.00102811, 0.00105923,
1116 0.0010911, 0.0011237, 0.00115706, 0.00119117, 0.00122601, 0.00126168,
1117 0.00129815, 0.00133543, 0.00137351, 0.00141242, 0.00145219, 0.00149283,
1118 0.00153434, 0.0015767, 0.00161995, 0.00166415, 0.00170928, 0.00175534,
1119 0.00180232, 0.00185028, 0.00189924, 0.00194919, 0.00200014, 0.00205207,
1120 0.00210503, 0.0021591, 0.00221421, 0.0022704, 0.00232766, 0.00238602,
1121 0.00244554, 0.00250619, 0.00256799, 0.0026309, 0.002695, 0.00276033,
1122 0.00282689, 0.00289467, 0.00296367, 0.00303389, 0.00310543, 0.0031783,
1123 0.00325244, 0.0033279, 0.0034046, 0.00348275, 0.00356229, 0.00364322,
1124 0.00372555, 0.00380924, 0.00389438, 0.00398104, 0.00406914, 0.00415877,
1125 0.00424985, 0.00434235, 0.00443651, 0.00453224, 0.00462954, 0.00472848,
1126 0.00482894, 0.00493102, 0.00503483, 0.00514029, 0.00524749, 0.0053563,
1127 0.00546675, 0.00557905, 0.0056931, 0.00580901, 0.0059267, 0.00604613,
1128 0.00616735, 0.00629049, 0.00641557, 0.00654254, 0.00667142, 0.00680216,
1129 0.00693472, 0.00706946, 0.00720621, 0.00734497, 0.0074858, 0.00762855,
1130 0.00777338, 0.00792036, 0.00806957, 0.00822087, 0.00837426, 0.00852982,
1131 0.0086875, 0.00884756, 0.00900991, 0.00917447, 0.00934137, 0.00951052,
1132 0.00968194, 0.0098558, 0.010032, 0.0102108, 0.0103919, 0.0105754,
1133 0.0107612, 0.0109496, 0.0111406, 0.0113343, 0.0115305, 0.0117293,
1134 0.0119303, 0.0121343, 0.0123409, 0.0125502, 0.0127623, 0.0129771,
1135 0.0131944, 0.0134145, 0.0136376, 0.0138636, 0.0140924, 0.0143241,
1136 0.0145587, 0.0147959, 0.0150363, 0.0152797, 0.0155262, 0.0157758,
1137 0.0160283, 0.0162838, 0.0165421, 0.016804, 0.0170691, 0.0173374,
1138 0.0176087, 0.0178835, 0.0181612, 0.0184423, 0.0187269, 0.0190149,
1139 0.0193063, 0.0196009, 0.0198991, 0.0202003, 0.0205052, 0.0208137,
1140 0.0211259, 0.0214418, 0.0217611, 0.0220841, 0.0224105, 0.0227406,
1141 0.0230746, 0.0234125, 0.0237542, 0.0240996, 0.0244486, 0.0248012,
1142 0.025158, 0.0255188, 0.0258837, 0.0262527, 0.0266256, 0.0270025,
1143 0.0273833, 0.027768, 0.0281572, 0.0285505, 0.0289483, 0.0293503,
1144 0.0297564, 0.0301665, 0.0305808, 0.0309997, 0.0314231, 0.0318511,
1145 0.0322835, 0.0327205, 0.0331616, 0.0336073, 0.0340576, 0.0345128,
1146 0.0349727, 0.0354373, 0.0359066, 0.0363807, 0.0368589, 0.0373419,
1147 0.0378302, 0.0383234, 0.0388218, 0.0393252, 0.0398336, 0.040347,
1148 0.0408652, 0.041388, 0.0419165, 0.0424502, 0.0429893, 0.0435338,
1149 0.0440833, 0.044638, 0.0451976, 0.0457627, 0.0463338, 0.0469103,
1150 0.047492, 0.0480797, 0.0486729, 0.0492716, 0.0498757, 0.0504852,
1151 0.0511009, 0.0517229, 0.0523503, 0.0529838, 0.0536231, 0.0542678,
1152 0.054918, 0.0555743, 0.0562372, 0.0569065, 0.0575818, 0.0582634,
1153 0.0589511, 0.0596454, 0.0603451, 0.061051, 0.0617635, 0.0624826,
1154 0.0632084, 0.0639409, 0.06468, 0.0654254, 0.0661772, 0.0669346,
1155 0.0676994, 0.0684714, 0.0692503, 0.0700354, 0.0708285, 0.0716277,
1156 0.0724347, 0.0732479, 0.0740671, 0.0748947, 0.0757299, 0.0765715,
1157 0.0774207, 0.0782771, 0.0791407, 0.0800119, 0.0808897, 0.0817743,
1158 0.0826672, 0.0835684, 0.0844769, 0.0853938, 0.0863179, 0.0872493,
1159 0.0881882, 0.0891349, 0.090089, 0.0910523, 0.0920236, 0.093002,
1160 0.0939894, 0.094985, 0.0959887, 0.0970003, 0.0980191, 0.0990454,
1161 0.100081, 0.101126, 0.10218, 0.103242, 0.104312, 0.105392,
1162 0.10648, 0.107576, 0.10868, 0.109793, 0.110916, 0.112048,
1163 0.113188, 0.114339, 0.115498, 0.116666, 0.117843, 0.119028,
1164 0.120223, 0.121427, 0.122641, 0.123865, 0.125098, 0.126342,
1165 0.127595, 0.128857, 0.130128, 0.131409, 0.132701, 0.134002,
1166 0.135314, 0.136635, 0.137966, 0.139308, 0.14066, 0.142022,
1167 0.143394, 0.144774, 0.146166, 0.14757, 0.148985, 0.15041,
1168 0.151845, 0.153291, 0.154749, 0.156215, 0.157694, 0.159182,
1169 0.160682, 0.162194, 0.163718, 0.165251, 0.166797, 0.168354,
1170 0.169921, 0.1715, 0.17309, 0.17469, 0.176304, 0.177929,
1171 0.179566, 0.181216, 0.182878, 0.184553, 0.186238, 0.187934,
1172 0.189642, 0.191362, 0.193096, 0.194842, 0.196602, 0.198374,
1173 0.200158, 0.201954, 0.203764, 0.205586, 0.207421, 0.209266,
1174 0.211124, 0.212997, 0.214882, 0.216783, 0.218697, 0.220624,
1175 0.222565, 0.224518, 0.226486, 0.228466, 0.230458, 0.232463,
1176 0.234484, 0.23652, 0.238569, 0.240633, 0.242711, 0.244803,
1177 0.246909, 0.249031, 0.251165, 0.253313, 0.255475, 0.257649,
1178 0.259841, 0.262051, 0.264274, 0.266514, 0.268768, 0.271036,
1179 0.273319, 0.275618, 0.277932, 0.280259, 0.282602, 0.28496,
1180 0.287338, 0.28973, 0.292138, 0.294563, 0.297003, 0.299458,
1181 0.30193, 0.304417, 0.306919, 0.309437, 0.311972, 0.314526,
1182 0.317095, 0.319684, 0.322289, 0.324911, 0.327551, 0.330205,
1183 0.332876, 0.335567, 0.338271, 0.340993, 0.343736, 0.346496,
1184 0.349272, 0.352065, 0.354878, 0.35771, 0.360561, 0.363426,
1185 0.366311, 0.369212, 0.372128, 0.375067, 0.378027, 0.381006,
1186 0.384001, 0.387014, 0.39005, 0.393106, 0.396181, 0.399271,
1187 0.402384, 0.405513, 0.408661, 0.41183, 0.41502, 0.418233,
1188 0.421462, 0.424709, 0.42798, 0.43127, 0.434583, 0.437914,
1189 0.441267, 0.444637, 0.448022, 0.451434, 0.454868, 0.458328,
1190 0.461805, 0.465302, 0.468821, 0.472364, 0.475928, 0.47951,
1191 0.483119, 0.486748, 0.490397, 0.494066, 0.497758, 0.501477,
1192 0.505217, 0.508977, 0.512762, 0.516567, 0.520394, 0.524247,
1193 0.528125, 0.532027, 0.535947, 0.53989, 0.543852, 0.547844,
1194 0.551863, 0.555904, 0.559966, 0.56406, 0.568177, 0.572312,
1195 0.576471, 0.580662, 0.584875, 0.58911, 0.593373, 0.597653,
1196 0.601965, 0.606301, 0.610663, 0.615051, 0.619465, 0.623907,
1197 0.62837, 0.632863, 0.637383, 0.641924, 0.646494, 0.651091,
1198 0.655708, 0.660356, 0.665027, 0.669732, 0.674464, 0.679227,
1199 0.684016, 0.688827, 0.693664, 0.698532, 0.703428, 0.708353,
1200 0.713307, 0.718283, 0.72329, 0.728322, 0.733387, 0.738479,
1201 0.743605, 0.748763, 0.753949, 0.759163, 0.764407, 0.769674,
1202 0.774973, 0.780311, 0.78567, 0.791057, 0.796476, 0.801922,
1203 0.8074, 0.812919, 0.818466, 0.824044 };
1205 double m2 = 0.13957 * 0.13957;
1206 double smin = ( 0.13957 * 4 ) * ( 0.13957 * 4 );
1208 int od = ( sc - 0.312 ) / dh;
1209 double sc_m = 0.312 + od * dh;
1211 if ( sc >= 0.312 && sc < 1 )
1212 { rhouse = ( ( sc - sc_m ) / dh ) * ( rho[od + 1] - rho[od] ) + rho[od]; }
1213 else if ( sc < 0.312 && sc >= smin )
1214 { rhouse = ( ( sc - smin ) / ( 0.312 - smin ) ) * rho[0]; }
1218 rhouse = sqrt( 1 - 16 *
m2 / sc );
1220 else { rhouse = 0; }
1228 double mpi = 0.13957;
1229 if ( i == j && i == 0 )
1231 double m2 = 0.13957 * 0.13957;
1232 if ( ( 1 - ( 4 *
m2 ) /
s ) > 0 )
1234 rhoijx = sqrt( 1.0f - ( 4 *
m2 ) /
s );
1239 rhoijy = sqrt( ( 4 *
m2 ) /
s - 1.0f );
1243 if ( i == j && i == 1 )
1245 double m2 = 0.493677 * 0.493677;
1246 if ( ( 1 - ( 4 *
m2 ) /
s ) > 0 )
1248 rhoijx = sqrt( 1.0f - ( 4 *
m2 ) /
s );
1253 rhoijy = sqrt( ( 4 *
m2 ) /
s - 1.0f );
1257 if ( i == j && i == 2 )
1259 rhoijx = rho22(
s );
1262 if ( i == j && i == 3 )
1264 double m2 = 0.547862 * 0.547862;
1265 if ( ( 1 - ( 4 *
m2 ) /
s ) > 0 )
1267 rhoijx = sqrt( 1.0f - ( 4 *
m2 ) /
s );
1272 rhoijy = sqrt( ( 4 *
m2 ) /
s - 1.0f );
1276 if ( i == j && i == 4 )
1278 double m_1 = 0.547862;
1279 double m_2 = 0.95778;
1280 double mp2 = ( m_1 + m_2 ) * ( m_1 + m_2 );
1281 double mm2 = ( m_1 - m_2 ) * ( m_1 - m_2 );
1282 if ( ( 1 - mp2 /
s ) > 0 )
1284 rhoijx = sqrt( 1.0f - mp2 /
s );
1289 rhoijy = sqrt( mp2 /
s - 1.0f );
1299 complex<double> rhoij( rhoijx, rhoijy );
1307 double mpi = 0.13957;
1308 double m[5] = { 0.65100, 1.20360, 1.55817, 1.21000, 1.82206 };
1310 double g1[5] = { 0.22889, -0.55377, 0.00000, -0.39899, -0.34639 };
1311 double g2[5] = { 0.94128, 0.55095, 0.00000, 0.39065, 0.31503 };
1312 double g3[5] = { 0.36856, 0.23888, 0.55639, 0.18340, 0.18681 };
1313 double g4[5] = { 0.33650, 0.40907, 0.85679, 0.19906, -0.00984 };
1314 double g5[5] = { 0.18171, -0.17558, -0.79658, -0.00355, 0.22358 };
1316 double f1[5] = { 0.23399, 0.15044, -0.20545, 0.32825, 0.35412 };
1320 double down[5] = { 0, 0, 0, 0, 0 };
1321 double upreal[5] = { 0, 0, 0, 0, 0 };
1322 double upimag[5] = { 0, 0, 0, 0, 0 };
1324 for (
int k = 0; k < 5; k++ )
1331 double dm2 = m[k] * m[k] -
s;
1332 if ( fabs( dm2 ) <
eps && dm2 <= 0 ) dm2 = -
eps;
1333 if ( fabs( dm2 ) <
eps && dm2 > 0 ) dm2 =
eps;
1334 upreal[k] = 1.0f / dm2;
1338 double tmp1x =
g1[i] *
g1[j] * upreal[0] + g2[i] * g2[j] * upreal[1] +
1339 g3[i] * g3[j] * upreal[2] + g4[i] * g4[j] * upreal[3] +
1340 g5[i] * g5[j] * upreal[4];
1341 double tmp1y =
g1[i] *
g1[j] * upimag[0] + g2[i] * g2[j] * upimag[1] +
1342 g3[i] * g3[j] * upimag[2] + g4[i] * g4[j] * upimag[3] +
1343 g5[i] * g5[j] * upimag[4];
1346 if ( i == 0 ) { tmp2 =
f1[j] * ( 1 + 3.92637 ) / (
s + 3.92637 ); }
1347 if ( j == 0 ) { tmp2 =
f1[i] * ( 1 + 3.92637 ) / (
s + 3.92637 ); }
1348 double tmp3 = (
s - 0.5 *
mpi *
mpi ) * ( 1 + 0.15 ) / (
s + 0.15 );
1350 Kijx = ( tmp1x + tmp2 ) * tmp3;
1351 Kijy = (tmp1y)*tmp3;
1353 complex<double> Kij( Kijx, Kijy );
1371 complex<double> Iij( Iijx, Iijy );
1376complex<double> EvtD0To2pip2pim::FMTX(
double Kijx,
double Kijy,
double rhojjx,
double rhojjy,
1382 double tmpx = rhojjx * Kijx - rhojjy * Kijy;
1383 double tmpy = rhojjx * Kijy + rhojjy * Kijx;
1385 Fijx = IMTX( i, j ).real() + tmpy;
1388 complex<double> Fij( Fijx, Fijy );
1393double EvtD0To2pip2pim::FINVMTX(
double s,
double* FINVx,
double* FINVy ) {
1395 int P[5] = { 0, 1, 2, 3, 4 };
1410 for (
int k = 0; k < 5; k++ )
1412 double rhokkx = rhoMTX( k, k,
s ).real();
1413 double rhokky = rhoMTX( k, k,
s ).imag();
1416 for (
int l = k; l < 5; l++ )
1418 double Kklx = KMTX( k, l,
s ).real();
1419 double Kkly = KMTX( k, l,
s ).imag();
1422 Lx[l][k] = Lx[k][l];
1423 Ly[l][k] = Ly[k][l];
1427 for (
int k = 0; k < 5; k++ )
1429 for (
int l = 0; l < 5; l++ )
1431 double Fklx = FMTX( Lx[k][l], Ly[k][l], Ux[l][l], Uy[l][l], k, l ).real();
1432 double Fkly = FMTX( Lx[k][l], Ly[k][l], Ux[l][l], Uy[l][l], k, l ).imag();
1438 for (
int k = 0; k < 5; k++ )
1440 double tmprM = ( Fx[k][k] * Fx[k][k] + Fy[k][k] * Fy[k][k] );
1442 for (
int l = k; l < 5; l++ )
1444 double tmprF = ( Fx[l][k] * Fx[l][k] + Fy[l][k] * Fy[l][k] );
1445 if ( tmprM <= tmprF )
1456 for (
int l = 0; l < 5; l++ )
1459 double tmpFx = Fx[k][l];
1460 double tmpFy = Fy[k][l];
1462 Fx[k][l] = Fx[tmpID][l];
1463 Fy[k][l] = Fy[tmpID][l];
1465 Fx[tmpID][l] = tmpFx;
1466 Fy[tmpID][l] = tmpFy;
1469 for (
int l = k + 1; l < 5; l++ )
1471 double rFkk = Fx[k][k] * Fx[k][k] + Fy[k][k] * Fy[k][k];
1472 double Fxlk = Fx[l][k];
1473 double Fylk = Fy[l][k];
1474 double Fxkk = Fx[k][k];
1475 double Fykk = Fy[k][k];
1476 Fx[l][k] = ( Fxlk * Fxkk + Fylk * Fykk ) / rFkk;
1477 Fy[l][k] = ( Fylk * Fxkk - Fxlk * Fykk ) / rFkk;
1478 for (
int m = k + 1; m < 5; m++ )
1480 Fx[l][m] = Fx[l][m] - ( Fx[l][k] * Fx[k][m] - Fy[l][k] * Fy[k][m] );
1481 Fy[l][m] = Fy[l][m] - ( Fx[l][k] * Fy[k][m] + Fy[l][k] * Fx[k][m] );
1486 for (
int k = 0; k < 5; k++ )
1488 for (
int l = 0; l < 5; l++ )
1494 Ux[k][k] = Fx[k][k];
1495 Uy[k][k] = Fy[k][k];
1499 Lx[k][l] = Fx[k][l];
1500 Ly[k][l] = Fy[k][l];
1506 Ux[k][l] = Fx[k][l];
1507 Uy[k][l] = Fy[k][l];
1515 for (
int k = 0; k < 5; k++ )
1521 double rUkk = Ux[k][k] * Ux[k][k] + Uy[k][k] * Uy[k][k];
1522 UIx[k][k] = Ux[k][k] / rUkk;
1523 UIy[k][k] = -1.0f * Uy[k][k] / rUkk;
1525 for (
int l = ( k + 1 ); l < 5; l++ )
1533 for (
int l = ( k - 1 ); l >= 0; l-- )
1539 for (
int m = l + 1; m <= k; m++ )
1542 double sx_tmp = sx + Ux[l][m] * UIx[m][k] - Uy[l][m] * UIy[m][k];
1543 c_sx = ( sx_tmp - sx ) - ( Ux[l][m] * UIx[m][k] - Uy[l][m] * UIy[m][k] );
1547 double sy_tmp = sy + Ux[l][m] * UIy[m][k] + Uy[l][m] * UIx[m][k];
1548 c_sy = ( sy_tmp - sy ) - ( Ux[l][m] * UIy[m][k] + Uy[l][m] * UIx[m][k] );
1551 UIx[l][k] = -1.0f * ( UIx[l][l] * sx - UIy[l][l] * sy );
1552 UIy[l][k] = -1.0f * ( UIy[l][l] * sx + UIx[l][l] * sy );
1555 for (
int l = k + 1; l < 5; l++ )
1561 for (
int m = k; m < l; m++ )
1564 double sx_tmp = sx + Lx[l][m] * LIx[m][k] - Ly[l][m] * LIy[m][k];
1565 c_sx = ( sx_tmp - sx ) - ( Lx[l][m] * LIx[m][k] - Ly[l][m] * LIy[m][k] );
1569 double sy_tmp = sy + Lx[l][m] * LIy[m][k] + Ly[l][m] * LIx[m][k];
1570 c_sy = ( sy_tmp - sy ) - ( Lx[l][m] * LIy[m][k] + Ly[l][m] * LIx[m][k] );
1573 LIx[l][k] = -1.0f * sx;
1574 LIy[l][k] = -1.0f * sy;
1578 for (
int m = 0; m < 5; m++ )
1584 for (
int k = 0; k < 5; k++ )
1586 for (
int l = 0; l < 5; l++ )
1589 if (
P[l] == m ) Plm = 1;
1591 resX = resX - c_resX;
1592 double resX_tmp = resX + ( UIx[0][k] * LIx[k][l] - UIy[0][k] * LIy[k][l] ) * Plm;
1594 ( resX_tmp - resX ) - ( ( UIx[0][k] * LIx[k][l] - UIy[0][k] * LIy[k][l] ) * Plm );
1597 resY = resY - c_resY;
1598 double resY_tmp = resY + ( UIx[0][k] * LIy[k][l] + UIy[0][k] * LIx[k][l] ) * Plm;
1600 ( resY_tmp - resY ) - ( ( UIx[0][k] * LIy[k][l] + UIy[0][k] * LIx[k][l] ) * Plm );
1615 double m[5] = { 0.65100, 1.20360, 1.55817, 1.21000, 1.82206 };
1623 double dm2 = m[ID] * m[ID] -
s;
1625 if ( fabs( dm2 ) <
eps && dm2 <= 0 ) dm2 = -
eps;
1626 if ( fabs( dm2 ) <
eps && dm2 > 0 ) dm2 =
eps;
1631 complex<double> VPi( VPix, VPiy );
1635complex<double> EvtD0To2pip2pim::Fvector(
double sa,
double s0,
int l ) {
1640 double FINVx[5] = { 0, 0, 0, 0, 0 };
1641 double FINVy[5] = { 0, 0, 0, 0, 0 };
1643 double tmpFLAG = FINVMTX( sa, FINVx, FINVy );
1647 double g[5][5] = { { 0.22889, -0.55377, 0.00000, -0.39899, -0.34639 },
1648 { 0.94128, 0.55095, 0.00000, 0.39065, 0.31503 },
1649 { 0.36856, 0.23888, 0.55639, 0.18340, 0.18681 },
1650 { 0.33650, 0.40907, 0.85679, 0.19906, -0.00984 },
1651 { 0.18171, -0.17558, -0.79658, -0.00355, 0.22358 } };
1656 double Plx = PVTR( l, sa ).real();
1657 double Ply = PVTR( l, sa ).imag();
1658 for (
int j = 0; j < 5; j++ )
1660 resx = resx - c_resx;
1661 double resx_tmp = resx + ( FINVx[j] * g[l][j] * Plx - FINVy[j] * g[l][j] * Ply );
1662 c_resx = ( resx_tmp - resx ) - ( FINVx[j] * g[l][j] * Plx - FINVy[j] * g[l][j] * Ply );
1665 resy = resy - c_resy;
1666 double resy_tmp = resy + ( FINVx[j] * g[l][j] * Ply + FINVy[j] * g[l][j] * Plx );
1667 c_resy = ( resy_tmp - resy ) - ( FINVx[j] * g[l][j] * Ply + FINVy[j] * g[l][j] * Plx );
1677 double ds = sa - s0;
1678 if ( fabs( ds ) <
eps && ds <= 0 ) ds = -
eps;
1679 if ( fabs( ds ) <
eps && ds > 0 ) ds =
eps;
1680 double tmp = ( 1 - s0 ) / ds;
1681 outputx = FINVx[idx] * tmp;
1682 outputy = FINVy[idx] * tmp;
1685 complex<double>
output( outputx, outputy );
1689complex<double> EvtD0To2pip2pim::CalD0Amp() {
return Amp( m_Pip1, m_Pim1, m_Pip2, m_Pim2 ); }
1692 vector<double> cpPip1;
1694 vector<double> cpPip2;
1696 vector<double> cpPim1;
1698 vector<double> cpPim2;
1701 cpPip1.push_back( -m_Pim1[0] );
1702 cpPim1.push_back( -m_Pip1[0] );
1703 cpPip2.push_back( -m_Pim2[0] );
1704 cpPim2.push_back( -m_Pip2[0] );
1705 cpPip1.push_back( -m_Pim1[1] );
1706 cpPim1.push_back( -m_Pip1[1] );
1707 cpPip2.push_back( -m_Pim2[1] );
1708 cpPim2.push_back( -m_Pip2[1] );
1709 cpPip1.push_back( -m_Pim1[2] );
1710 cpPim1.push_back( -m_Pip1[2] );
1711 cpPip2.push_back( -m_Pim2[2] );
1712 cpPim2.push_back( -m_Pip2[2] );
1713 cpPip1.push_back( m_Pim1[3] );
1714 cpPim1.push_back( m_Pip1[3] );
1715 cpPip2.push_back( m_Pim2[3] );
1716 cpPim2.push_back( m_Pip2[3] );
1718 return Amp( cpPip1, cpPim1, cpPip2, cpPim2 );
1721complex<double> EvtD0To2pip2pim::Amp( vector<double> Pip1, vector<double> Pim1,
1722 vector<double> Pip2, vector<double> Pim2 ) {
1724 vector<double> Pip1Pim1;
1726 vector<double> Pip1Pim2;
1728 vector<double> Pip2Pim1;
1730 vector<double> Pip2Pim2;
1733 Pip1Pim1 = sum_tensor( Pip1, Pim1 );
1734 Pip1Pim2 = sum_tensor( Pip1, Pim2 );
1735 Pip2Pim1 = sum_tensor( Pip2, Pim1 );
1736 Pip2Pim2 = sum_tensor( Pip2, Pim2 );
1738 vector<double> Pip1Pip2Pim1;
1739 Pip1Pip2Pim1.clear();
1740 vector<double> Pip1Pip2Pim2;
1741 Pip1Pip2Pim2.clear();
1742 vector<double> Pim1Pim2Pip1;
1743 Pim1Pim2Pip1.clear();
1744 vector<double> Pim1Pim2Pip2;
1745 Pim1Pim2Pip2.clear();
1747 Pip1Pip2Pim1 = sum_tensor( Pip1Pim1, Pip2 );
1748 Pip1Pip2Pim2 = sum_tensor( Pip1Pim2, Pip2 );
1749 Pim1Pim2Pip1 = sum_tensor( Pip1Pim1, Pim2 );
1750 Pim1Pim2Pip2 = sum_tensor( Pip2Pim1, Pim2 );
1754 D0 = sum_tensor( Pip1Pip2Pim1, Pim2 );
1756 double M2_Pip1Pim1 = contract_11_0( Pip1Pim1, Pip1Pim1 );
1757 double M2_Pip1Pim2 = contract_11_0( Pip1Pim2, Pip1Pim2 );
1758 double M2_Pip2Pim1 = contract_11_0( Pip2Pim1, Pip2Pim1 );
1759 double M2_Pip2Pim2 = contract_11_0( Pip2Pim2, Pip2Pim2 );
1761 double M2_Pip1Pip2Pim1 = contract_11_0( Pip1Pip2Pim1, Pip1Pip2Pim1 );
1762 double M2_Pip1Pip2Pim2 = contract_11_0( Pip1Pip2Pim2, Pip1Pip2Pim2 );
1763 double M2_Pim1Pim2Pip1 = contract_11_0( Pim1Pim2Pip1, Pim1Pim2Pip1 );
1764 double M2_Pim1Pim2Pip2 = contract_11_0( Pim1Pim2Pip2, Pim1Pim2Pip2 );
1765 double M2_D0 = contract_11_0( D0, D0 );
1767 complex<double> GS_rho770_11 =
1768 GS( M2_Pip1Pim1, m0_rho770, w0_rho770, m2_Pi, m2_Pi, rRes, 1 );
1769 complex<double> GS_rho770_12 =
1770 GS( M2_Pip1Pim2, m0_rho770, w0_rho770, m2_Pi, m2_Pi, rRes, 1 );
1771 complex<double> GS_rho770_21 =
1772 GS( M2_Pip2Pim1, m0_rho770, w0_rho770, m2_Pi, m2_Pi, rRes, 1 );
1773 complex<double> GS_rho770_22 =
1774 GS( M2_Pip2Pim2, m0_rho770, w0_rho770, m2_Pi, m2_Pi, rRes, 1 );
1776 complex<double> GS_rho1450_11 =
1777 GS( M2_Pip1Pim1, m0_rho1450, w0_rho1450, m2_Pi, m2_Pi, rRes, 1 );
1778 complex<double> GS_rho1450_12 =
1779 GS( M2_Pip1Pim2, m0_rho1450, w0_rho1450, m2_Pi, m2_Pi, rRes, 1 );
1780 complex<double> GS_rho1450_21 =
1781 GS( M2_Pip2Pim1, m0_rho1450, w0_rho1450, m2_Pi, m2_Pi, rRes, 1 );
1782 complex<double> GS_rho1450_22 =
1783 GS( M2_Pip2Pim2, m0_rho1450, w0_rho1450, m2_Pi, m2_Pi, rRes, 1 );
1785 complex<double> RBW_f21270_11 =
1786 RBW( M2_Pip1Pim1, m0_f21270, w0_f21270, m2_Pi, m2_Pi, rRes, 2 );
1787 complex<double> RBW_f21270_12 =
1788 RBW( M2_Pip1Pim2, m0_f21270, w0_f21270, m2_Pi, m2_Pi, rRes, 2 );
1789 complex<double> RBW_f21270_21 =
1790 RBW( M2_Pip2Pim1, m0_f21270, w0_f21270, m2_Pi, m2_Pi, rRes, 2 );
1791 complex<double> RBW_f21270_22 =
1792 RBW( M2_Pip2Pim2, m0_f21270, w0_f21270, m2_Pi, m2_Pi, rRes, 2 );
1794 complex<double> PiPiS_11_0 = Fvector( M2_Pip1Pim1, s0_prod, 0 );
1795 complex<double> PiPiS_12_0 = Fvector( M2_Pip1Pim2, s0_prod, 0 );
1796 complex<double> PiPiS_21_0 = Fvector( M2_Pip2Pim1, s0_prod, 0 );
1797 complex<double> PiPiS_22_0 = Fvector( M2_Pip2Pim2, s0_prod, 0 );
1799 complex<double> PiPiS_11_1 = Fvector( M2_Pip1Pim1, s0_prod, 1 );
1800 complex<double> PiPiS_12_1 = Fvector( M2_Pip1Pim2, s0_prod, 1 );
1801 complex<double> PiPiS_21_1 = Fvector( M2_Pip2Pim1, s0_prod, 1 );
1802 complex<double> PiPiS_22_1 = Fvector( M2_Pip2Pim2, s0_prod, 1 );
1804 complex<double> PiPiS_11_5 = Fvector( M2_Pip1Pim1, s0_prod, 5 );
1805 complex<double> PiPiS_12_5 = Fvector( M2_Pip1Pim2, s0_prod, 5 );
1806 complex<double> PiPiS_21_5 = Fvector( M2_Pip2Pim1, s0_prod, 5 );
1807 complex<double> PiPiS_22_5 = Fvector( M2_Pip2Pim2, s0_prod, 5 );
1809 complex<double> PiPiS_11_6 = Fvector( M2_Pip1Pim1, s0_prod, 6 );
1810 complex<double> PiPiS_12_6 = Fvector( M2_Pip1Pim2, s0_prod, 6 );
1811 complex<double> PiPiS_21_6 = Fvector( M2_Pip2Pim1, s0_prod, 6 );
1812 complex<double> PiPiS_22_6 = Fvector( M2_Pip2Pim2, s0_prod, 6 );
1814 complex<double> RBW_a11260p_1 = RBWa1260( M2_Pip1Pip2Pim1, m0_a11260, g1_a11260, g2_a11260 );
1815 complex<double> RBW_a11260p_2 = RBWa1260( M2_Pip1Pip2Pim2, m0_a11260, g1_a11260, g2_a11260 );
1816 complex<double> RBW_a11260m_1 = RBWa1260( M2_Pim1Pim2Pip1, m0_a11260, g1_a11260, g2_a11260 );
1817 complex<double> RBW_a11260m_2 = RBWa1260( M2_Pim1Pim2Pip2, m0_a11260, g1_a11260, g2_a11260 );
1819 complex<double> RBW_a21320p_1 =
1820 RBW( M2_Pip1Pip2Pim1, m0_a21320, w0_a21320, -1.0, -1.0, -1, -1 );
1821 complex<double> RBW_a21320p_2 =
1822 RBW( M2_Pip1Pip2Pim2, m0_a21320, w0_a21320, -1.0, -1.0, -1, -1 );
1823 complex<double> RBW_a21320m_1 =
1824 RBW( M2_Pim1Pim2Pip1, m0_a21320, w0_a21320, -1.0, -1.0, -1, -1 );
1825 complex<double> RBW_a21320m_2 =
1826 RBW( M2_Pim1Pim2Pip2, m0_a21320, w0_a21320, -1.0, -1.0, -1, -1 );
1828 complex<double> RBW_pi1300p_1 = RBWpi1300( M2_Pip1Pip2Pim1, m0_pi1300, w0_pi1300 );
1829 complex<double> RBW_pi1300p_2 = RBWpi1300( M2_Pip1Pip2Pim2, m0_pi1300, w0_pi1300 );
1830 complex<double> RBW_pi1300m_1 = RBWpi1300( M2_Pim1Pim2Pip1, m0_pi1300, w0_pi1300 );
1831 complex<double> RBW_pi1300m_2 = RBWpi1300( M2_Pim1Pim2Pip2, m0_pi1300, w0_pi1300 );
1833 complex<double> RBW_a11420p_1 =
1834 RBW( M2_Pip1Pip2Pim1, m0_a11420, w0_a11420, -1.0, -1.0, -1, -1 );
1835 complex<double> RBW_a11420p_2 =
1836 RBW( M2_Pip1Pip2Pim2, m0_a11420, w0_a11420, -1.0, -1.0, -1, -1 );
1837 complex<double> RBW_a11420m_1 =
1838 RBW( M2_Pim1Pim2Pip1, m0_a11420, w0_a11420, -1.0, -1.0, -1, -1 );
1839 complex<double> RBW_a11420m_2 =
1840 RBW( M2_Pim1Pim2Pip2, m0_a11420, w0_a11420, -1.0, -1.0, -1, -1 );
1843 vector<double> Proj1_3p1;
1845 vector<double> Proj1_3p2;
1847 vector<double> Proj1_3m1;
1849 vector<double> Proj1_3m2;
1852 Proj1_3p1 = ProjectionTensors( Pip1Pip2Pim1, 1 );
1853 Proj1_3p2 = ProjectionTensors( Pip1Pip2Pim2, 1 );
1854 Proj1_3m1 = ProjectionTensors( Pim1Pim2Pip1, 1 );
1855 Proj1_3m2 = ProjectionTensors( Pim1Pim2Pip2, 1 );
1858 vector<double> Proj2_3p1;
1860 vector<double> Proj2_3p2;
1862 vector<double> Proj2_3m1;
1864 vector<double> Proj2_3m2;
1867 Proj2_3p1 = ProjectionTensors( Pip1Pip2Pim1, 2 );
1868 Proj2_3p2 = ProjectionTensors( Pip1Pip2Pim2, 2 );
1869 Proj2_3m1 = ProjectionTensors( Pim1Pim2Pip1, 2 );
1870 Proj2_3m2 = ProjectionTensors( Pim1Pim2Pip2, 2 );
1873 vector<double> T1_Pip1Pim1;
1874 T1_Pip1Pim1.clear();
1875 vector<double> T1_Pip1Pim2;
1876 T1_Pip1Pim2.clear();
1877 vector<double> T1_Pip2Pim1;
1878 T1_Pip2Pim1.clear();
1879 vector<double> T1_Pip2Pim2;
1880 T1_Pip2Pim1.clear();
1882 T1_Pip1Pim1 = OrbitalTensors( Pip1Pim1, Pip1, Pim1, rRes, 1 );
1883 T1_Pip1Pim2 = OrbitalTensors( Pip1Pim2, Pip1, Pim2, rRes, 1 );
1884 T1_Pip2Pim1 = OrbitalTensors( Pip2Pim1, Pip2, Pim1, rRes, 1 );
1885 T1_Pip2Pim2 = OrbitalTensors( Pip2Pim2, Pip2, Pim2, rRes, 1 );
1887 vector<double> T1_Pim1Pip1;
1888 T1_Pim1Pip1.clear();
1889 vector<double> T1_Pim1Pip2;
1890 T1_Pim1Pip2.clear();
1891 vector<double> T1_Pim2Pip1;
1892 T1_Pim2Pip1.clear();
1893 vector<double> T1_Pim2Pip2;
1894 T1_Pim2Pip2.clear();
1896 T1_Pim1Pip1 = OrbitalTensors( Pip1Pim1, Pim1, Pip1, rRes, 1 );
1897 T1_Pim1Pip2 = OrbitalTensors( Pip2Pim1, Pim1, Pip2, rRes, 1 );
1898 T1_Pim2Pip1 = OrbitalTensors( Pip1Pim2, Pim2, Pip1, rRes, 1 );
1899 T1_Pim2Pip2 = OrbitalTensors( Pip2Pim2, Pim2, Pip2, rRes, 1 );
1901 vector<double> T2_Pip1Pim1;
1902 T2_Pip1Pim1.clear();
1903 vector<double> T2_Pip1Pim2;
1904 T2_Pip1Pim2.clear();
1905 vector<double> T2_Pip2Pim1;
1906 T2_Pip2Pim1.clear();
1907 vector<double> T2_Pip2Pim2;
1908 T2_Pip2Pim1.clear();
1910 T2_Pip1Pim1 = OrbitalTensors( Pip1Pim1, Pip1, Pim1, rRes, 2 );
1911 T2_Pip1Pim2 = OrbitalTensors( Pip1Pim2, Pip1, Pim2, rRes, 2 );
1912 T2_Pip2Pim1 = OrbitalTensors( Pip2Pim1, Pip2, Pim1, rRes, 2 );
1913 T2_Pip2Pim2 = OrbitalTensors( Pip2Pim2, Pip2, Pim2, rRes, 2 );
1916 vector<double> T1_Pip1Pim1Pip2;
1917 T1_Pip1Pim1Pip2.clear();
1918 vector<double> T1_Pip2Pim1Pip1;
1919 T1_Pip2Pim1Pip1.clear();
1920 vector<double> T1_Pip1Pim2Pip2;
1921 T1_Pip1Pim2Pip2.clear();
1922 vector<double> T1_Pip2Pim2Pip1;
1923 T1_Pip2Pim2Pip1.clear();
1924 vector<double> T1_Pip1Pim1Pim2;
1925 T1_Pip1Pim1Pim2.clear();
1926 vector<double> T1_Pip1Pim2Pim1;
1927 T1_Pip1Pim2Pim1.clear();
1928 vector<double> T1_Pip2Pim1Pim2;
1929 T1_Pip2Pim1Pim2.clear();
1930 vector<double> T1_Pip2Pim2Pim1;
1931 T1_Pip2Pim2Pim1.clear();
1933 T1_Pip1Pim1Pip2 = OrbitalTensors( Pip1Pip2Pim1, Pip1Pim1, Pip2, rRes, 1 );
1934 T1_Pip2Pim1Pip1 = OrbitalTensors( Pip1Pip2Pim1, Pip2Pim1, Pip1, rRes, 1 );
1935 T1_Pip1Pim2Pip2 = OrbitalTensors( Pip1Pip2Pim2, Pip1Pim2, Pip2, rRes, 1 );
1936 T1_Pip2Pim2Pip1 = OrbitalTensors( Pip1Pip2Pim2, Pip2Pim2, Pip1, rRes, 1 );
1937 T1_Pip1Pim1Pim2 = OrbitalTensors( Pim1Pim2Pip1, Pip1Pim1, Pim2, rRes, 1 );
1938 T1_Pip2Pim1Pim2 = OrbitalTensors( Pim1Pim2Pip2, Pip2Pim1, Pim2, rRes, 1 );
1939 T1_Pip1Pim2Pim1 = OrbitalTensors( Pim1Pim2Pip1, Pip1Pim2, Pim1, rRes, 1 );
1940 T1_Pip2Pim2Pim1 = OrbitalTensors( Pim1Pim2Pip2, Pip2Pim2, Pim1, rRes, 1 );
1942 vector<double> T2_Pip1Pim1Pip2;
1943 T2_Pip1Pim1Pip2.clear();
1944 vector<double> T2_Pip2Pim1Pip1;
1945 T2_Pip2Pim1Pip1.clear();
1946 vector<double> T2_Pip1Pim2Pip2;
1947 T2_Pip1Pim2Pip2.clear();
1948 vector<double> T2_Pip2Pim2Pip1;
1949 T2_Pip2Pim2Pip1.clear();
1950 vector<double> T2_Pip1Pim1Pim2;
1951 T2_Pip1Pim1Pim2.clear();
1952 vector<double> T2_Pip2Pim1Pim2;
1953 T2_Pip2Pim1Pim2.clear();
1954 vector<double> T2_Pip1Pim2Pim1;
1955 T2_Pip1Pim2Pim1.clear();
1956 vector<double> T2_Pip2Pim2Pim1;
1957 T2_Pip2Pim2Pim1.clear();
1959 T2_Pip1Pim1Pip2 = OrbitalTensors( Pip1Pip2Pim1, Pip1Pim1, Pip2, rRes, 2 );
1960 T2_Pip2Pim1Pip1 = OrbitalTensors( Pip1Pip2Pim1, Pip2Pim1, Pip1, rRes, 2 );
1961 T2_Pip1Pim2Pip2 = OrbitalTensors( Pip1Pip2Pim2, Pip1Pim2, Pip2, rRes, 2 );
1962 T2_Pip2Pim2Pip1 = OrbitalTensors( Pip1Pip2Pim2, Pip2Pim2, Pip1, rRes, 2 );
1963 T2_Pip1Pim1Pim2 = OrbitalTensors( Pim1Pim2Pip1, Pip1Pim1, Pim2, rRes, 2 );
1964 T2_Pip2Pim1Pim2 = OrbitalTensors( Pim1Pim2Pip2, Pip2Pim1, Pim2, rRes, 2 );
1965 T2_Pip1Pim2Pim1 = OrbitalTensors( Pim1Pim2Pip1, Pip1Pim2, Pim1, rRes, 2 );
1966 T2_Pip2Pim2Pim1 = OrbitalTensors( Pim1Pim2Pip2, Pip2Pim2, Pim1, rRes, 2 );
1969 vector<double> T1_2z11;
1971 vector<double> T1_2z12;
1973 vector<double> T1_2z21;
1975 vector<double> T1_2z22;
1978 T1_2z11 = OrbitalTensors( D0, Pip1Pim1, Pip2Pim2, rD, 1 );
1979 T1_2z12 = OrbitalTensors( D0, Pip2Pim2, Pip1Pim1, rD, 1 );
1980 T1_2z21 = OrbitalTensors( D0, Pip1Pim2, Pip2Pim1, rD, 1 );
1981 T1_2z22 = OrbitalTensors( D0, Pip2Pim1, Pip1Pim2, rD, 1 );
1983 vector<double> T2_2z11;
1985 vector<double> T2_2z12;
1987 vector<double> T2_2z21;
1989 vector<double> T2_2z22;
1992 T2_2z11 = OrbitalTensors( D0, Pip1Pim1, Pip2Pim2, rD, 2 );
1993 T2_2z12 = OrbitalTensors( D0, Pip2Pim2, Pip1Pim1, rD, 2 );
1994 T2_2z21 = OrbitalTensors( D0, Pip1Pim2, Pip2Pim1, rD, 2 );
1995 T2_2z22 = OrbitalTensors( D0, Pip2Pim1, Pip1Pim2, rD, 2 );
1998 vector<double> T1_3p1;
2000 vector<double> T1_3p2;
2002 vector<double> T1_3m1;
2004 vector<double> T1_3m2;
2007 T1_3p1 = OrbitalTensors( D0, Pip1Pip2Pim1, Pim2, rD, 1 );
2008 T1_3p2 = OrbitalTensors( D0, Pip1Pip2Pim2, Pim1, rD, 1 );
2009 T1_3m1 = OrbitalTensors( D0, Pim1Pim2Pip1, Pip2, rD, 1 );
2010 T1_3m2 = OrbitalTensors( D0, Pim1Pim2Pip2, Pip1, rD, 1 );
2012 vector<double> T2_3p1;
2014 vector<double> T2_3p2;
2016 vector<double> T2_3m1;
2018 vector<double> T2_3m2;
2021 T2_3p1 = OrbitalTensors( D0, Pip1Pip2Pim1, Pim2, rD, 2 );
2022 T2_3p2 = OrbitalTensors( D0, Pip1Pip2Pim2, Pim1, rD, 2 );
2023 T2_3m1 = OrbitalTensors( D0, Pim1Pim2Pip1, Pip2, rD, 2 );
2024 T2_3m2 = OrbitalTensors( D0, Pim1Pim2Pip2, Pip1, rD, 2 );
2026 complex<double> amplitude( 0, 0 );
2029 double SF_Ap_S_VP_1 = contract_11_0( contract_21_1( Proj1_3p1, T1_Pip2Pim1 ), T1_3p1 );
2030 double SF_Ap_S_VP_2 = contract_11_0( contract_21_1( Proj1_3p1, T1_Pip1Pim1 ), T1_3p1 );
2031 double SF_Ap_S_VP_3 = contract_11_0( contract_21_1( Proj1_3p2, T1_Pip2Pim2 ), T1_3p2 );
2032 double SF_Ap_S_VP_4 = contract_11_0( contract_21_1( Proj1_3p2, T1_Pip1Pim2 ), T1_3p2 );
2033 amplitude += fitpara[0] * ( SF_Ap_S_VP_1 * RBW_a11260p_1 * GS_rho770_21 +
2034 SF_Ap_S_VP_2 * RBW_a11260p_1 * GS_rho770_11 +
2035 SF_Ap_S_VP_3 * RBW_a11260p_2 * GS_rho770_22 +
2036 SF_Ap_S_VP_4 * RBW_a11260p_2 * GS_rho770_12 );
2039 double SF_Ap_D_VP_1 = contract_11_0( contract_21_1( T2_Pip2Pim1Pip1, T1_Pip2Pim1 ), T1_3p1 );
2040 double SF_Ap_D_VP_2 = contract_11_0( contract_21_1( T2_Pip1Pim1Pip2, T1_Pip1Pim1 ), T1_3p1 );
2041 double SF_Ap_D_VP_3 = contract_11_0( contract_21_1( T2_Pip2Pim2Pip1, T1_Pip2Pim2 ), T1_3p2 );
2042 double SF_Ap_D_VP_4 = contract_11_0( contract_21_1( T2_Pip1Pim2Pip2, T1_Pip1Pim2 ), T1_3p2 );
2044 amplitude += fitpara[1] * ( SF_Ap_D_VP_1 * RBW_a11260p_1 * GS_rho770_21 +
2045 SF_Ap_D_VP_2 * RBW_a11260p_1 * GS_rho770_11 +
2046 SF_Ap_D_VP_3 * RBW_a11260p_2 * GS_rho770_22 +
2047 SF_Ap_D_VP_4 * RBW_a11260p_2 * GS_rho770_12 );
2050 double SF_Ap_P_TP_1 = contract_11_0(
2051 contract_21_1( contract_42_2( Proj2_3p1, T2_Pip2Pim1 ), T1_Pip2Pim1Pip1 ), T1_3p1 );
2052 double SF_Ap_P_TP_2 = contract_11_0(
2053 contract_21_1( contract_42_2( Proj2_3p1, T2_Pip1Pim1 ), T1_Pip1Pim1Pip2 ), T1_3p1 );
2054 double SF_Ap_P_TP_3 = contract_11_0(
2055 contract_21_1( contract_42_2( Proj2_3p2, T2_Pip2Pim2 ), T1_Pip2Pim2Pip1 ), T1_3p2 );
2056 double SF_Ap_P_TP_4 = contract_11_0(
2057 contract_21_1( contract_42_2( Proj2_3p2, T2_Pip1Pim2 ), T1_Pip1Pim2Pip2 ), T1_3p2 );
2059 amplitude += fitpara[2] * ( SF_Ap_P_TP_1 * RBW_a11260p_1 * RBW_f21270_21 +
2060 SF_Ap_P_TP_2 * RBW_a11260p_1 * RBW_f21270_11 +
2061 SF_Ap_P_TP_3 * RBW_a11260p_2 * RBW_f21270_22 +
2062 SF_Ap_P_TP_4 * RBW_a11260p_2 * RBW_f21270_12 );
2065 double SF_Ap_P_SP_1 = contract_11_0( T1_3p1, T1_Pip2Pim1Pip1 );
2066 double SF_Ap_P_SP_2 = contract_11_0( T1_3p1, T1_Pip1Pim1Pip2 );
2067 double SF_Ap_P_SP_3 = contract_11_0( T1_3p2, T1_Pip2Pim2Pip1 );
2068 double SF_Ap_P_SP_4 = contract_11_0( T1_3p2, T1_Pip1Pim2Pip2 );
2070 amplitude += fitpara[3] * ( SF_Ap_P_SP_1 * RBW_a11260p_1 * PiPiS_21_0 +
2071 SF_Ap_P_SP_2 * RBW_a11260p_1 * PiPiS_11_0 +
2072 SF_Ap_P_SP_3 * RBW_a11260p_2 * PiPiS_22_0 +
2073 SF_Ap_P_SP_4 * RBW_a11260p_2 * PiPiS_12_0 );
2074 amplitude += fitpara[4] * ( SF_Ap_P_SP_1 * RBW_a11260p_1 * PiPiS_21_1 +
2075 SF_Ap_P_SP_2 * RBW_a11260p_1 * PiPiS_11_1 +
2076 SF_Ap_P_SP_3 * RBW_a11260p_2 * PiPiS_22_1 +
2077 SF_Ap_P_SP_4 * RBW_a11260p_2 * PiPiS_12_1 );
2078 amplitude += fitpara[5] * ( SF_Ap_P_SP_1 * RBW_a11260p_1 * PiPiS_21_5 +
2079 SF_Ap_P_SP_2 * RBW_a11260p_1 * PiPiS_11_5 +
2080 SF_Ap_P_SP_3 * RBW_a11260p_2 * PiPiS_22_5 +
2081 SF_Ap_P_SP_4 * RBW_a11260p_2 * PiPiS_12_5 );
2084 double SF_Am_S_VP_1 = contract_11_0( contract_21_1( Proj1_3m1, T1_Pim2Pip1 ), T1_3m1 );
2085 double SF_Am_S_VP_2 = contract_11_0( contract_21_1( Proj1_3m1, T1_Pim1Pip1 ), T1_3m1 );
2086 double SF_Am_S_VP_3 = contract_11_0( contract_21_1( Proj1_3m2, T1_Pim2Pip2 ), T1_3m2 );
2087 double SF_Am_S_VP_4 = contract_11_0( contract_21_1( Proj1_3m2, T1_Pim1Pip2 ), T1_3m2 );
2089 amplitude += fitpara[0] * fitpara[6] *
2090 ( SF_Am_S_VP_1 * RBW_a11260m_1 * GS_rho770_12 +
2091 SF_Am_S_VP_2 * RBW_a11260m_1 * GS_rho770_11 +
2092 SF_Am_S_VP_3 * RBW_a11260m_2 * GS_rho770_22 +
2093 SF_Am_S_VP_4 * RBW_a11260m_2 * GS_rho770_21 );
2096 double SF_Am_D_VP_1 = contract_11_0( contract_21_1( T2_Pip1Pim2Pim1, T1_Pim2Pip1 ), T1_3m1 );
2097 double SF_Am_D_VP_2 = contract_11_0( contract_21_1( T2_Pip1Pim1Pim2, T1_Pim1Pip1 ), T1_3m1 );
2098 double SF_Am_D_VP_3 = contract_11_0( contract_21_1( T2_Pip2Pim2Pim1, T1_Pim2Pip2 ), T1_3m2 );
2099 double SF_Am_D_VP_4 = contract_11_0( contract_21_1( T2_Pip2Pim1Pim2, T1_Pim1Pip2 ), T1_3m2 );
2101 amplitude += fitpara[1] * fitpara[6] *
2102 ( SF_Am_D_VP_1 * RBW_a11260m_1 * GS_rho770_12 +
2103 SF_Am_D_VP_2 * RBW_a11260m_1 * GS_rho770_11 +
2104 SF_Am_D_VP_3 * RBW_a11260m_2 * GS_rho770_22 +
2105 SF_Am_D_VP_4 * RBW_a11260m_2 * GS_rho770_21 );
2108 double SF_Am_P_TP_1 = contract_11_0(
2109 contract_21_1( contract_42_2( Proj2_3m1, T2_Pip1Pim2 ), T1_Pip1Pim2Pim1 ), T1_3m1 );
2110 double SF_Am_P_TP_2 = contract_11_0(
2111 contract_21_1( contract_42_2( Proj2_3m1, T2_Pip1Pim1 ), T1_Pip1Pim1Pim2 ), T1_3m1 );
2112 double SF_Am_P_TP_3 = contract_11_0(
2113 contract_21_1( contract_42_2( Proj2_3m2, T2_Pip2Pim2 ), T1_Pip2Pim2Pim1 ), T1_3m2 );
2114 double SF_Am_P_TP_4 = contract_11_0(
2115 contract_21_1( contract_42_2( Proj2_3m2, T2_Pip2Pim1 ), T1_Pip2Pim1Pim2 ), T1_3m2 );
2117 amplitude += fitpara[2] * fitpara[6] *
2118 ( SF_Am_P_TP_1 * RBW_a11260m_1 * RBW_f21270_12 +
2119 SF_Am_P_TP_2 * RBW_a11260m_1 * RBW_f21270_11 +
2120 SF_Am_P_TP_3 * RBW_a11260m_2 * RBW_f21270_22 +
2121 SF_Am_P_TP_4 * RBW_a11260m_2 * RBW_f21270_21 );
2124 double SF_Am_P_SP_1 = contract_11_0( T1_3m1, T1_Pip1Pim2Pim1 );
2125 double SF_Am_P_SP_2 = contract_11_0( T1_3m1, T1_Pip1Pim1Pim2 );
2126 double SF_Am_P_SP_3 = contract_11_0( T1_3m2, T1_Pip2Pim2Pim1 );
2127 double SF_Am_P_SP_4 = contract_11_0( T1_3m2, T1_Pip2Pim1Pim2 );
2130 fitpara[3] * fitpara[6] *
2131 ( SF_Am_P_SP_1 * RBW_a11260m_1 * PiPiS_12_0 + SF_Am_P_SP_2 * RBW_a11260m_1 * PiPiS_11_0 +
2132 SF_Am_P_SP_3 * RBW_a11260m_2 * PiPiS_22_0 +
2133 SF_Am_P_SP_4 * RBW_a11260m_2 * PiPiS_21_0 );
2135 fitpara[4] * fitpara[6] *
2136 ( SF_Am_P_SP_1 * RBW_a11260m_1 * PiPiS_12_1 + SF_Am_P_SP_2 * RBW_a11260m_1 * PiPiS_11_1 +
2137 SF_Am_P_SP_3 * RBW_a11260m_2 * PiPiS_22_1 +
2138 SF_Am_P_SP_4 * RBW_a11260m_2 * PiPiS_21_1 );
2140 fitpara[5] * fitpara[6] *
2141 ( SF_Am_P_SP_1 * RBW_a11260m_1 * PiPiS_12_5 + SF_Am_P_SP_2 * RBW_a11260m_1 * PiPiS_11_5 +
2142 SF_Am_P_SP_3 * RBW_a11260m_2 * PiPiS_22_5 +
2143 SF_Am_P_SP_4 * RBW_a11260m_2 * PiPiS_21_5 );
2151 amplitude += fitpara[7] * ( SF_Ap_P_SP_1 * RBW_a11420p_1 * PiPiS_21_5 +
2152 SF_Ap_P_SP_2 * RBW_a11420p_1 * PiPiS_11_5 +
2153 SF_Ap_P_SP_3 * RBW_a11420p_2 * PiPiS_22_5 +
2154 SF_Ap_P_SP_4 * RBW_a11420p_2 * PiPiS_12_5 );
2155 amplitude += fitpara[8] * ( SF_Ap_P_SP_1 * RBW_a11420p_1 * PiPiS_21_6 +
2156 SF_Ap_P_SP_2 * RBW_a11420p_1 * PiPiS_11_6 +
2157 SF_Ap_P_SP_3 * RBW_a11420p_2 * PiPiS_22_6 +
2158 SF_Ap_P_SP_4 * RBW_a11420p_2 * PiPiS_12_6 );
2161 double SF_Tp_D_VP_1 = contract_22_0(
2162 contract_22_2( contract_31_2( contract_41_3( epsilon_uvmn,
2163 contract_21_1( Proj1_3p1, T1_Pip2Pim1 ) ),
2165 contract_42_2( Proj2_3p1, T2_3p1 ) ),
2167 double SF_Tp_D_VP_2 = contract_22_0(
2168 contract_22_2( contract_31_2( contract_41_3( epsilon_uvmn,
2169 contract_21_1( Proj1_3p1, T1_Pip1Pim1 ) ),
2171 contract_42_2( Proj2_3p1, T2_3p1 ) ),
2173 double SF_Tp_D_VP_3 = contract_22_0(
2174 contract_22_2( contract_31_2( contract_41_3( epsilon_uvmn,
2175 contract_21_1( Proj1_3p2, T1_Pip2Pim2 ) ),
2177 contract_42_2( Proj2_3p2, T2_3p2 ) ),
2179 double SF_Tp_D_VP_4 = contract_22_0(
2180 contract_22_2( contract_31_2( contract_41_3( epsilon_uvmn,
2181 contract_21_1( Proj1_3p2, T1_Pip1Pim2 ) ),
2183 contract_42_2( Proj2_3p2, T2_3p2 ) ),
2186 amplitude += fitpara[9] * ( SF_Tp_D_VP_1 * RBW_a21320p_1 * GS_rho770_21 +
2187 SF_Tp_D_VP_2 * RBW_a21320p_1 * GS_rho770_11 +
2188 SF_Tp_D_VP_3 * RBW_a21320p_2 * GS_rho770_22 +
2189 SF_Tp_D_VP_4 * RBW_a21320p_2 * GS_rho770_12 );
2192 double SF_Tm_D_VP_1 = contract_22_0(
2193 contract_22_2( contract_31_2( contract_41_3( epsilon_uvmn,
2194 contract_21_1( Proj1_3m1, T1_Pim2Pip1 ) ),
2196 contract_42_2( Proj2_3m1, T2_3m1 ) ),
2198 double SF_Tm_D_VP_2 = contract_22_0(
2199 contract_22_2( contract_31_2( contract_41_3( epsilon_uvmn,
2200 contract_21_1( Proj1_3m1, T1_Pim1Pip1 ) ),
2202 contract_42_2( Proj2_3m1, T2_3m1 ) ),
2204 double SF_Tm_D_VP_3 = contract_22_0(
2205 contract_22_2( contract_31_2( contract_41_3( epsilon_uvmn,
2206 contract_21_1( Proj1_3m2, T1_Pim2Pip2 ) ),
2208 contract_42_2( Proj2_3m2, T2_3m2 ) ),
2210 double SF_Tm_D_VP_4 = contract_22_0(
2211 contract_22_2( contract_31_2( contract_41_3( epsilon_uvmn,
2212 contract_21_1( Proj1_3m2, T1_Pim1Pip2 ) ),
2214 contract_42_2( Proj2_3m2, T2_3m2 ) ),
2217 amplitude += fitpara[10] * ( SF_Tm_D_VP_1 * RBW_a21320m_1 * GS_rho770_12 +
2218 SF_Tm_D_VP_2 * RBW_a21320m_1 * GS_rho770_11 +
2219 SF_Tm_D_VP_3 * RBW_a21320m_2 * GS_rho770_22 +
2220 SF_Tm_D_VP_4 * RBW_a21320m_2 * GS_rho770_21 );
2223 double SF_Pm_P_VP_1 = contract_11_0( T1_Pim2Pip1, T1_Pip1Pim2Pim1 );
2224 double SF_Pm_P_VP_2 = contract_11_0( T1_Pim1Pip1, T1_Pip1Pim1Pim2 );
2225 double SF_Pm_P_VP_3 = contract_11_0( T1_Pim2Pip2, T1_Pip2Pim2Pim1 );
2226 double SF_Pm_P_VP_4 = contract_11_0( T1_Pim1Pip2, T1_Pip2Pim1Pim2 );
2228 amplitude += fitpara[11] * ( SF_Pm_P_VP_1 * GS_rho770_12 * RBW_pi1300m_1 +
2229 SF_Pm_P_VP_2 * GS_rho770_11 * RBW_pi1300m_1 +
2230 SF_Pm_P_VP_3 * GS_rho770_22 * RBW_pi1300m_2 +
2231 SF_Pm_P_VP_4 * GS_rho770_21 * RBW_pi1300m_2 );
2244 amplitude += fitpara[12] * fitpara[11] *
2245 ( RBW_pi1300m_1 * PiPiS_12_0 + RBW_pi1300m_1 * PiPiS_11_0 +
2246 RBW_pi1300m_2 * PiPiS_22_0 + RBW_pi1300m_2 * PiPiS_21_0 );
2250 amplitude += fitpara[13] * fitpara[11] *
2251 ( RBW_pi1300m_1 * PiPiS_12_6 + RBW_pi1300m_1 * PiPiS_11_6 +
2252 RBW_pi1300m_2 * PiPiS_22_6 + RBW_pi1300m_2 * PiPiS_21_6 );
2255 double SF_Pp_P_VP_1 = contract_11_0( T1_Pip2Pim1, T1_Pip2Pim1Pip1 );
2256 double SF_Pp_P_VP_2 = contract_11_0( T1_Pip1Pim1, T1_Pip1Pim1Pip2 );
2257 double SF_Pp_P_VP_3 = contract_11_0( T1_Pip2Pim2, T1_Pip2Pim2Pip1 );
2258 double SF_Pp_P_VP_4 = contract_11_0( T1_Pip1Pim2, T1_Pip1Pim2Pip2 );
2260 amplitude += fitpara[14] * ( SF_Pp_P_VP_1 * GS_rho770_21 * RBW_pi1300p_1 +
2261 SF_Pp_P_VP_2 * GS_rho770_11 * RBW_pi1300p_1 +
2262 SF_Pp_P_VP_3 * GS_rho770_22 * RBW_pi1300p_2 +
2263 SF_Pp_P_VP_4 * GS_rho770_12 * RBW_pi1300p_2 );
2276 amplitude += fitpara[12] * fitpara[14] *
2277 ( RBW_pi1300p_1 * PiPiS_21_0 + RBW_pi1300p_1 * PiPiS_11_0 +
2278 RBW_pi1300p_2 * PiPiS_22_0 + RBW_pi1300p_2 * PiPiS_12_0 );
2282 amplitude += fitpara[13] * fitpara[14] *
2283 ( RBW_pi1300p_1 * PiPiS_21_6 + RBW_pi1300p_1 * PiPiS_11_6 +
2284 RBW_pi1300p_2 * PiPiS_22_6 + RBW_pi1300p_2 * PiPiS_12_6 );
2287 double SF_VV_S_1 = contract_11_0( T1_Pip1Pim1, T1_Pip2Pim2 );
2288 double SF_VV_S_3 = contract_11_0( T1_Pip1Pim2, T1_Pip2Pim1 );
2290 amplitude += fitpara[15] * ( SF_VV_S_1 * GS_rho770_11 * GS_rho770_22 +
2291 SF_VV_S_3 * GS_rho770_12 * GS_rho770_21 );
2294 double SF_VV_P_1 = contract_11_0(
2295 contract_21_1( contract_31_2( contract_41_3( epsilon_uvmn, T1_Pip1Pim1 ), T1_Pip2Pim2 ),
2298 double SF_VV_P_2 = contract_11_0(
2299 contract_21_1( contract_31_2( contract_41_3( epsilon_uvmn, T1_Pip2Pim2 ), T1_Pip1Pim1 ),
2302 double SF_VV_P_3 = contract_11_0(
2303 contract_21_1( contract_31_2( contract_41_3( epsilon_uvmn, T1_Pip1Pim2 ), T1_Pip2Pim1 ),
2306 double SF_VV_P_4 = contract_11_0(
2307 contract_21_1( contract_31_2( contract_41_3( epsilon_uvmn, T1_Pip2Pim1 ), T1_Pip1Pim2 ),
2311 amplitude += fitpara[16] * ( SF_VV_P_1 * GS_rho770_11 * GS_rho770_22 +
2312 SF_VV_P_3 * GS_rho770_12 * GS_rho770_21 );
2315 double SF_VV_D_1 = contract_11_0( contract_21_1( T2_2z11, T1_Pip2Pim2 ), T1_Pip1Pim1 );
2316 double SF_VV_D_3 = contract_11_0( contract_21_1( T2_2z21, T1_Pip2Pim1 ), T1_Pip1Pim2 );
2318 amplitude += fitpara[17] * ( SF_VV_D_1 * GS_rho770_11 * GS_rho770_22 +
2319 SF_VV_D_3 * GS_rho770_12 * GS_rho770_21 );
2324 ( SF_VV_P_1 * GS_rho770_11 * GS_rho1450_22 + SF_VV_P_2 * GS_rho770_22 * GS_rho1450_11 +
2325 SF_VV_P_3 * GS_rho770_12 * GS_rho1450_21 + SF_VV_P_3 * GS_rho770_21 * GS_rho1450_12 );
2328 double SF_VS_P_1 = contract_11_0( T1_Pip1Pim1, T1_2z11 );
2329 double SF_VS_P_2 = contract_11_0( T1_Pip2Pim2, T1_2z12 );
2330 double SF_VS_P_3 = contract_11_0( T1_Pip1Pim2, T1_2z21 );
2331 double SF_VS_P_4 = contract_11_0( T1_Pip2Pim1, T1_2z22 );
2335 ( SF_VS_P_1 * GS_rho770_11 * PiPiS_22_0 + SF_VS_P_2 * GS_rho770_22 * PiPiS_11_0 +
2336 SF_VS_P_3 * GS_rho770_12 * PiPiS_21_0 + SF_VS_P_4 * GS_rho770_21 * PiPiS_12_0 );
2339 ( SF_VS_P_1 * GS_rho770_11 * PiPiS_22_5 + SF_VS_P_2 * GS_rho770_22 * PiPiS_11_5 +
2340 SF_VS_P_3 * GS_rho770_12 * PiPiS_21_5 + SF_VS_P_4 * GS_rho770_21 * PiPiS_12_5 );
2343 ( SF_VS_P_1 * GS_rho770_11 * PiPiS_22_6 + SF_VS_P_2 * GS_rho770_22 * PiPiS_11_6 +
2344 SF_VS_P_3 * GS_rho770_12 * PiPiS_21_6 + SF_VS_P_4 * GS_rho770_21 * PiPiS_12_6 );
2348 amplitude += fitpara[22] * ( PiPiS_11_0 * PiPiS_22_0 + PiPiS_12_0 * PiPiS_21_0 +
2349 PiPiS_22_0 * PiPiS_11_0 + PiPiS_21_0 * PiPiS_12_0 );
2350 amplitude += fitpara[23] * ( PiPiS_11_0 * PiPiS_22_1 + PiPiS_12_0 * PiPiS_21_1 +
2351 PiPiS_22_0 * PiPiS_11_1 + PiPiS_21_0 * PiPiS_12_1 );
2352 amplitude += fitpara[24] * ( PiPiS_11_1 * PiPiS_22_1 + PiPiS_12_1 * PiPiS_21_1 +
2353 PiPiS_22_1 * PiPiS_11_1 + PiPiS_21_1 * PiPiS_12_1 );
2354 amplitude += fitpara[25] * ( PiPiS_11_1 * PiPiS_22_5 + PiPiS_12_1 * PiPiS_21_5 +
2355 PiPiS_22_1 * PiPiS_11_5 + PiPiS_21_1 * PiPiS_12_5 );
2356 amplitude += fitpara[26] * ( PiPiS_11_5 * PiPiS_22_5 + PiPiS_12_5 * PiPiS_21_5 +
2357 PiPiS_22_5 * PiPiS_11_5 + PiPiS_21_5 * PiPiS_12_5 );
2358 amplitude += fitpara[27] * ( PiPiS_11_5 * PiPiS_22_6 + PiPiS_12_5 * PiPiS_21_6 +
2359 PiPiS_22_5 * PiPiS_11_6 + PiPiS_21_5 * PiPiS_12_6 );
2362 double SF_TS_D_1 = contract_22_0( T2_Pip1Pim1, T2_2z11 );
2363 double SF_TS_D_2 = contract_22_0( T2_Pip2Pim2, T2_2z12 );
2364 double SF_TS_D_3 = contract_22_0( T2_Pip1Pim2, T2_2z21 );
2365 double SF_TS_D_4 = contract_22_0( T2_Pip2Pim1, T2_2z22 );
2369 ( SF_TS_D_1 * RBW_f21270_11 * PiPiS_22_5 + SF_TS_D_2 * RBW_f21270_22 * PiPiS_11_5 +
2370 SF_TS_D_3 * RBW_f21270_12 * PiPiS_21_5 + SF_TS_D_4 * RBW_f21270_21 * PiPiS_12_5 );
2373 ( SF_TS_D_1 * RBW_f21270_11 * PiPiS_22_6 + SF_TS_D_2 * RBW_f21270_22 * PiPiS_11_6 +
2374 SF_TS_D_3 * RBW_f21270_12 * PiPiS_21_6 + SF_TS_D_4 * RBW_f21270_21 * PiPiS_12_6 );
2379int EvtD0To2pip2pim::CalAmp() {
2380 m_AmpD0 = CalD0Amp();
2381 m_AmpDb = CalDbAmp();
2386 double temp =
x.real() *
x.real() +
x.imag() *
x.imag();
2391 double temp = atan(
x.imag() /
x.real() );
2392 if (
x.real() < 0 ) temp = temp + TMath::Pi();
2395double EvtD0To2pip2pim::Get_strongPhase() {
2396 double temp = arg( m_AmpD0 ) - arg( m_AmpDb );
2397 while ( temp < -TMath::Pi() ) { temp += 2.0 * TMath::Pi(); }
2398 while ( temp > TMath::Pi() ) { temp -= 2.0 * TMath::Pi(); }
2402double EvtD0To2pip2pim::AmplitudeSquare(
int charm,
int tagmode ) {
2404 EvtVector4R dp1 = GetDaugMomLab( 0 ), dp2 = GetDaugMomLab( 1 ), dp3 = GetDaugMomLab( 2 ),
2405 dp4 = GetDaugMomLab( 3 );
2406 EvtVector4R
mp = dp1 + dp2 + dp3 + dp4;
2408 double emp =
mp.
get( 0 );
2409 EvtVector3R boostp3( -
mp.get( 1 ) / emp, -
mp.get( 2 ) / emp, -
mp.get( 3 ) / emp );
2411 EvtVector4R dp1bst =
boostTo( dp1, boostp3 );
2412 EvtVector4R dp2bst =
boostTo( dp2, boostp3 );
2413 EvtVector4R dp3bst =
boostTo( dp3, boostp3 );
2414 EvtVector4R dp4bst =
boostTo( dp4, boostp3 );
2416 double p4pip1[4], p4pip2[4], p4pim1[4], p4pim2[4];
2417 for (
int i = 0; i < 3; i++ )
2419 p4pip1[i] = dp1bst.
get( i + 1 );
2420 p4pip2[i] = dp2bst.
get( i + 1 );
2421 p4pim1[i] = dp3bst.
get( i + 1 );
2422 p4pim2[i] = dp4bst.
get( i + 1 );
2424 p4pip1[3] = dp1bst.
get( 0 );
2425 p4pip2[3] = dp2bst.
get( 0 );
2426 p4pim1[3] = dp3bst.
get( 0 );
2427 p4pim2[3] = dp4bst.
get( 0 );
2429 setInput( p4pip1, p4pim1, p4pip2, p4pim2 );
2431 complex<double> ampD0, ampDb;
2434 ampD0 = Get_AmpD0();
2435 ampDb = Get_AmpDb();
2439 ampD0 = Get_AmpDb();
2440 ampDb = Get_AmpD0();
2443 double ampsq = 1e-20;
2444 double r_tag = 0, R_tag = 0, delta_tag = 0;
2446 if ( tagmode == 1 || tagmode == 2 || tagmode == 3 )
2452 delta_tag = 192.1 / 180.0 * 3.1415926;
2454 else if ( tagmode == 2 )
2458 delta_tag = 196.0 / 180.0 * 3.1415926;
2460 else if ( tagmode == 3 )
2464 delta_tag = 161.0 / 180.0 * 3.1415926;
2466 complex<double> qcf( r_tag * R_tag *
cos( -delta_tag ),
2467 r_tag * R_tag *
sin( -delta_tag ) );
2468 complex<double> ampD0_part1 = ampD0 - qcf * ampDb;
2469 ampsq = mag2( ampD0_part1 ) + r_tag * r_tag * ( 1 - R_tag * R_tag ) * ( mag2( ampDb ) );
2471 else { ampsq = mag2( ampD0 ); }
2473 return ( ampsq <= 0 ) ? 1e-20 : ampsq;
double P(RecMdcKalTrack *trk)
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
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
void decay(EvtParticle *p)
virtual ~EvtD0To2pip2pim()
void getName(std::string &name)
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)