17 double mag[35], pha[35];
18 mag[0]= 100.0; pha[0]= 0.0;
19 mag[1]= 7.95507; pha[1]= -0.0687407;
20 mag[2]= 37.5559; pha[2]= -1.74946;
21 mag[3]= 61.2172; pha[3]= 2.98079;
22 mag[4]= 187.79; pha[4]= 2.64471;
23 mag[5]= 385.474; pha[5]= -0.137107;
24 mag[6]= 0.330788; pha[6]= 0.268133;
25 mag[7]= 0.584175; pha[7]= -2.89693;
26 mag[8]= 127.158; pha[8]= -2.47773;
27 mag[9]= 339.914; pha[9]= 2.22856;
28 mag[10]=0.320888; pha[10]=-2.6194;
29 mag[11]=0.366283; pha[11]=-0.26867;
30 mag[12]=14.1344; pha[12]=-0.41164;
31 mag[13]=86.0865; pha[13]=-2.49649;
32 mag[14]=6.1541; pha[14]=-1.18299;
33 mag[15]=56.6067; pha[15]=0.142977;
34 mag[16]=92.3073; pha[16]=-2.15881;
35 mag[17]=80.9453; pha[17]=0.825815;
36 mag[18]=16.9555; pha[18]=-2.98994;
37 mag[19]=9.72524; pha[19]=-1.39929;
38 mag[20]=5.71448; pha[20]=0.271902;
39 mag[21]=21.4195; pha[21]=-1.23701;
40 mag[22]=56.8867; pha[22]=-0.385837;
41 mag[23]=231.626; pha[23]=2.14842;
42 mag[24]=2938.45; pha[24]=-0.693491;
43 mag[25]=7252.7; pha[25]=2.23659;
44 mag[26]=5165.87; pha[26]=0.913557;
45 mag[27]=11508.6; pha[27]=-1.07187;
46 mag[28]=2461.86; pha[28]=1.8709;
47 mag[29]=8757.75; pha[29]=2.40756;
48 mag[30]=19.7413; pha[30]=-1.0753;
49 mag[31]=66.3826; pha[31]=2.34666;
50 mag[32]=11.2904; pha[32]=-0.822345;
51 mag[33]=2.04576; pha[33]=-0.281429;
52 mag[34]=0.57927; pha[34]=2.7182;
55 for(
int i=0; i<35; i++){
57 fitpara.push_back(ctemp);
61 for(
int i=0; i<4; i++){
62 for(
int j=0; j<4; j++){
74 for(
int i=0; i<4; i++){
75 for(
int j=0; j<4; j++){
76 for(
int k=0; k<4; k++){
77 for(
int l=0; l<4; l++){
78 if(i==j || i==k || i==l || j==k || j==l || k==l){
79 epsilon_uvmn.push_back(0.0);
81 if(i==0 && j==1 && k==2 && l==3) epsilon_uvmn.push_back(1.0);
82 if(i==0 && j==1 && k==3 && l==2) epsilon_uvmn.push_back(-1.0);
83 if(i==0 && j==2 && k==1 && l==3) epsilon_uvmn.push_back(-1.0);
84 if(i==0 && j==2 && k==3 && l==1) epsilon_uvmn.push_back(1.0);
85 if(i==0 && j==3 && k==1 && l==2) epsilon_uvmn.push_back(1.0);
86 if(i==0 && j==3 && k==2 && l==1) epsilon_uvmn.push_back(-1.0);
88 if(i==1 && j==0 && k==2 && l==3) epsilon_uvmn.push_back(-1.0);
89 if(i==1 && j==0 && k==3 && l==2) epsilon_uvmn.push_back(1.0);
90 if(i==1 && j==2 && k==0 && l==3) epsilon_uvmn.push_back(1.0);
91 if(i==1 && j==2 && k==3 && l==0) epsilon_uvmn.push_back(-1.0);
92 if(i==1 && j==3 && k==0 && l==2) epsilon_uvmn.push_back(-1.0);
93 if(i==1 && j==3 && k==2 && l==0) epsilon_uvmn.push_back(1.0);
95 if(i==2 && j==0 && k==1 && l==3) epsilon_uvmn.push_back(1.0);
96 if(i==2 && j==0 && k==3 && l==1) epsilon_uvmn.push_back(-1.0);
97 if(i==2 && j==1 && k==0 && l==3) epsilon_uvmn.push_back(-1.0);
98 if(i==2 && j==1 && k==3 && l==0) epsilon_uvmn.push_back(1.0);
99 if(i==2 && j==3 && k==0 && l==1) epsilon_uvmn.push_back(1.0);
100 if(i==2 && j==3 && k==1 && l==0) epsilon_uvmn.push_back(-1.0);
102 if(i==3 && j==0 && k==1 && l==2) epsilon_uvmn.push_back(-1.0);
103 if(i==3 && j==0 && k==2 && l==1) epsilon_uvmn.push_back(1.0);
104 if(i==3 && j==1 && k==0 && l==2) epsilon_uvmn.push_back(1.0);
105 if(i==3 && j==1 && k==2 && l==0) epsilon_uvmn.push_back(-1.0);
106 if(i==3 && j==2 && k==0 && l==1) epsilon_uvmn.push_back(-1.0);
107 if(i==3 && j==2 && k==1 && l==0) epsilon_uvmn.push_back(1.0);
116 math_pi = 3.1415926f;
117 mass_Pion = 0.13957f;
124 m2_Pi0 = m_Pi0*m_Pi0;
126 m0_rho7700 = 0.77526;
129 m0_rho770p = 0.77511;
173vector<double> D0Topippim2pi0::sum_tensor(vector<double> pa, vector<double> pb)
175 if(pa.size()!=pb.size()){
176 cout<<
"error sum tensor"<<endl;
179 vector<double> temp; temp.clear();
180 for(
int i=0; i<pa.size(); i++){
181 double sum = pa[i] + pb[i];
187double D0Topippim2pi0::contract_11_0(vector<double> pa, vector<double> pb){
188 if(pa.size()!=pb.size() || pa.size()!=4) {
189 cout<<
"error contract 11->0"<<endl;
192 double temp = pa[3]*pb[3] - pa[0]*pb[0] - pa[1]*pb[1] - pa[2]*pb[2];
197vector<double> D0Topippim2pi0::contract_21_1(vector<double> pa, vector<double> pb){
198 if(pa.size()!=16 || pb.size()!=4) {
199 cout<<
"error contract 21->1"<<endl;
202 vector<double> temp; temp.clear();
203 for(
int i=0; i<4; i++){
205 for(
int j=0; j<4; j++){
207 sum += pa[idx]*pb[j]*g_uv[4*j+j];
215double D0Topippim2pi0::contract_22_0(vector<double> pa, vector<double> pb){
216 if(pa.size()!=pb.size() || pa.size()!=16) {
217 cout<<
"error contract 22->0"<<endl;
221 for(
int i=0; i<4; i++){
222 for(
int j=0; j<4; j++){
224 temp += pa[idx]*pb[idx]*g_uv[4*i+i]*g_uv[4*j+j];
231vector<double> D0Topippim2pi0::contract_31_2(vector<double> pa, vector<double> pb){
232 if(pa.size()!=64 || pb.size()!=4) {
233 cout<<
"error contract 31->2"<<endl;
236 vector<double> temp; temp.clear();
237 for(
int i=0; i<16; i++){
239 for(
int j=0; j<4; j++){
241 sum += pa[idx]*pb[j]*g_uv[4*j+j];
249vector<double> D0Topippim2pi0::contract_41_3(vector<double> pa, vector<double> pb){
250 if(pa.size()!=256|| pb.size()!=4) {
251 cout<<
"error contract 41->3"<<endl;
254 vector<double> temp; temp.clear();
255 for(
int i=0; i<64; i++){
257 for(
int j=0; j<4; j++){
259 sum += pa[idx]*pb[j]*g_uv[4*j+j];
267vector<double> D0Topippim2pi0::contract_42_2(vector<double> pa, vector<double> pb){
268 if(pa.size()!=256|| pb.size()!=16) {
269 cout<<
"error contract 42->2"<<endl;
272 vector<double> temp; temp.clear();
273 for(
int i=0; i<16; i++){
275 for(
int j=0; j<4; j++){
276 for(
int k=0; k<4; k++){
277 int idxa = i*16+j*4+k;
279 sum += pa[idxa] * pb[idxb] * g_uv[4*j+j] * g_uv[4*k+k];
288vector<double> D0Topippim2pi0::contract_22_2(vector<double> pa, vector<double> pb){
289 if(pa.size()!=16|| pb.size()!=16) {
290 cout<<
"error contract 42->2"<<endl;
293 vector<double> temp; temp.clear();
294 for(
int i=0; i<4; i++){
295 for(
int j=0; j<4; j++){
297 for(
int k=0; k<4; k++){
300 sum += pa[idxa] * pb[idxb] * g_uv[4*k+k];
342vector<double> D0Topippim2pi0::OrbitalTensors(vector<double> pa, vector<double> pb, vector<double> pc,
double r,
int rank)
344 if(pa.size()!=4 || pb.size()!=4 || pc.size()!=4) {
345 cout<<
"Error: pa, pb, pc"<<endl;
349 cout<<
"Error: L<0 !!!"<<endl;
354 vector<double> mr; mr.clear();
356 for(
int i=0; i<4; i++){
357 double temp = pb[i] - pc[i];
362 double msa = contract_11_0(pa, pa);
363 double msb = contract_11_0(pb, pb);
364 double msc = contract_11_0(pc, pc);
367 double top = msa + msb - msc;
368 double Q2abc = top*top/(4.0*msa) - msb;
371 double Q_0 = 0.197321f/r;
372 double Q_02 = Q_0*Q_0;
373 double Q_04 = Q_02*Q_02;
377 double Q4abc = Q2abc*Q2abc;
381 double mB1 = sqrt(2.0f/(Q2abc + Q_02));
382 double mB2 = sqrt(13.0f/(Q4abc + (3.0f*Q_02)*Q2abc + 9.0f*Q_04));
387 vector<double> proj_uv; proj_uv.clear();
388 for(
int i=0; i<4; i++){
389 for(
int j=0; j<4; j++){
391 double temp = -g_uv[idx] + pa[i]*pa[j]/msa;
392 proj_uv.push_back(temp);
399 vector<double>
t;
t.clear();
405 vector<double> t_u; t_u.clear();
406 vector<double> Bt_u; Bt_u.clear();
407 for(
int i=0; i<4; i++){
409 for(
int j=0; j<4; j++){
411 temp += -proj_uv[idx]*mr[j]*g_uv[j*4+j];
414 Bt_u.push_back(temp*mB1);
416 if(rank==1)
return Bt_u;
418 double t_u2 = contract_11_0(t_u,t_u);
420 vector<double> Bt_uv; Bt_uv.clear();
421 for(
int i=0; i<4; i++){
422 for(
int j=0; j<4; j++){
424 double temp = t_u[i]*t_u[j] + (1.0/3.0)*proj_uv[idx]*t_u2;
425 Bt_uv.push_back(temp*mB2);
428 if(rank==2)
return Bt_uv;
432 cout<<
"rank>2: please add it by yourself!!!"<<endl;
438vector<double> D0Topippim2pi0::ProjectionTensors(vector<double> pa,
int rank)
441 cout<<
"Error: pa"<<endl;
445 cout<<
"Error: L<0 !!!"<<endl;
449 double msa = contract_11_0(pa, pa);
452 vector<double> proj_uv; proj_uv.clear();
453 for(
int i=0; i<4; i++){
454 for(
int j=0; j<4; j++){
456 double temp = -g_uv[idx] + pa[i]*pa[j]/msa;
457 proj_uv.push_back(temp);
464 vector<double>
t;
t.clear();
473 vector<double> proj_uvmn; proj_uvmn.clear();
474 for(
int i=0; i<4; i++){
475 for(
int j=0; j<4; j++){
476 for(
int k=0; k<4; k++){
477 for(
int l=0; l<4; l++){
479 int idx1_1 = 4*i + k;
480 int idx1_2 = 4*i + l;
481 int idx1_3 = 4*i + j;
483 int idx2_1 = 4*j + l;
484 int idx2_2 = 4*j + k;
485 int idx2_3 = 4*k + l;
487 double temp = (1.0/2.0)*(proj_uv[idx1_1]*proj_uv[idx2_1] + proj_uv[idx1_2]*proj_uv[idx2_2]) - (1.0/3.0)*proj_uv[idx1_3]*proj_uv[idx2_3];
488 proj_uvmn.push_back(temp);
497 cout<<
"rank>2: please add it by yourself!!!"<<endl;
501double D0Topippim2pi0::fundecaymomentum(
double mr2,
double m1_2,
double m2_2){
502 double mr = sqrt(mr2);
503 double poly = mr2*mr2 + m1_2*m1_2 + m2_2*m2_2 - 2*m1_2*mr2 -2*m2_2*mr2 -2*m1_2*m2_2;
504 double ret = sqrt(poly)/(2*mr);
511complex<double> D0Topippim2pi0::breitwigner(
double mx2,
double mr,
double wr)
517 double diff = mr2-mx2;
518 double denom = diff*diff + wr*wr*mr2;
524 output_x = diff/denom;
525 output_y = wr*mr/denom;
536double D0Topippim2pi0::h(
double m,
double q){
537 double h = 2.0/math_pi*
q/m*log((m+2.0*
q)/(2.0*mass_Pion));
541double D0Topippim2pi0::dh(
double m0,
double q0){
542 double dh = h(m0,q0)*(1.0/(8.0*q0*q0)-1.0/(2.0*m0*m0))+1.0/(2.0*math_pi*m0*m0);
546double D0Topippim2pi0::f(
double m0,
double sx,
double q0,
double q){
548 double f = m0*m0/(q0*q0*q0)*(
q*
q*(h(m,
q)-h(m0,q0))+(m0*m0-sx)*q0*q0*dh(m0,q0));
552double D0Topippim2pi0::d(
double m0,
double q0){
553 double d = 3.0/math_pi*mass_Pion*mass_Pion/(q0*q0)*log((m0+2.0*q0)/(2.0*mass_Pion)) + m0/(2.0*math_pi*q0) - (mass_Pion*mass_Pion*m0)/(math_pi*q0*q0*q0);
557double D0Topippim2pi0::fundecaymomentum2(
double mr2,
double m1_2,
double m2_2){
558 double mr = sqrt(mr2);
559 double poly = mr2*mr2 + m1_2*m1_2 + m2_2*m2_2 - 2*m1_2*mr2 -2*m2_2*mr2 -2*m1_2*m2_2;
560 double ret = poly/(4.0f*mr2);
566double D0Topippim2pi0::wid(
double mass,
double sa,
double sb,
double sc,
double r,
int l){
570 double q = fundecaymomentum2(sa,sb,sc);
571 double q0 = fundecaymomentum2(sa0,sb,sc);
576 if(l == 1) F = sqrt((1.0+z0)/(1.0+z));
577 if(l == 2) F = sqrt((9.0+3.0*z0+z0*z0)/(9.0+3.0*z+z*z));
578 if(l == 3) F = sqrt((225.0+45.0*z0+6.0*z0*z0+z0*z0*z0)/(225.0+45.0*z+6.0*z*z+z*z*z));
579 if(l == 4) F = sqrt((11025.0+1575.0*z0+135.0*z0*z0+10.0*z0*z0*z0+z0*z0*z0*z0)/(11025.0+1575.0*z+135.0*z*z+10.0*z*z*z+z*z*z*z));
580 double t = sqrt(
q/q0);
583 for(i=0; i<(2*l+1); i++) {
586 widm *= (
mass/m*F*F);
591complex<double> D0Topippim2pi0::GS(
double mx2,
double mr,
double wr,
double m1_2,
double m2_2,
double r,
int l){
594 double q = fundecaymomentum(mx2, m1_2, m2_2);
595 double q0 = fundecaymomentum(mr2, m1_2, m2_2);
596 double numer = 1.0+d(mr,q0)*wr/mr;
597 double denom_real = mr2-mx2+wr*
f(mr,mx2,q0,
q);
598 double denom_imag = mr*wr*wid(mr,mx2,m1_2,m2_2,r,l);
600 double denom = denom_real*denom_real+denom_imag*denom_imag;
601 double output_x = denom_real*numer/denom;
602 double output_y = denom_imag*numer/denom;
608complex<double> D0Topippim2pi0::RBW(
double mx2,
double mr,
double wr,
double m1_2,
double m2_2,
double r,
int l){
609 double mx = sqrt(mx2);
611 double denom_real = mr2-mx2;
612 double denom_imag = 0;
613 if(m1_2>0 && m2_2>0){
614 denom_imag = mr*wr*wid(mr,mx2,m1_2,m2_2,r,l);
619 double denom = denom_real*denom_real+denom_imag*denom_imag;
620 double output_x = denom_real/denom;
621 double output_y = denom_imag/denom;
628double D0Topippim2pi0::widT1260(
int i,
double g1,
double g2){
630 double wid1[300] = { 0.00100302, 0.0069383, 0.0223132, 0.0504984, 0.093998, 0.154569, 0.233464, 0.331844, 0.450141, 0.589068,
631 0.748192, 0.928578, 1.13001, 1.35227, 1.59548, 1.86005, 2.14633, 2.45252, 2.78199, 3.13055,
632 3.50351, 3.89773, 4.31274, 4.75409, 5.21133, 5.69991, 6.20735, 6.74638, 7.30128, 7.8858,
633 8.50289, 9.14654, 9.82395, 10.5209, 11.2643, 12.0436, 12.8585, 13.692, 14.598, 15.5291,
634 16.5158, 17.5337, 18.6289, 19.7599, 20.9847, 22.2557, 23.5959, 25.0095, 26.5123, 28.0789,
635 29.7542, 31.5143, 33.3769, 35.3462, 37.3911, 39.5988, 41.874, 44.2815, 46.7975, 49.401,
636 52.0553, 54.7753, 57.5932, 60.4542, 63.3049, 66.0665, 68.8987, 71.6282, 74.2613, 76.8713,
637 79.3528, 81.722, 84.1212, 86.227, 88.4243, 90.3478, 92.2478, 94.1483, 95.8541, 97.5086,
638 99.0092, 100.48, 101.861, 103.153, 104.338, 105.576, 106.696, 107.647, 108.761, 109.725,
639 110.625, 111.529, 112.426, 113.01, 113.877, 114.647, 115.086, 115.856, 116.533, 117.076,
640 117.646, 118.25, 118.653, 119.023, 119.554, 119.958, 120.384, 121.036, 121.402, 121.686,
641 122.44, 122.592, 122.979, 123.39, 123.819, 123.957, 124.459, 124.681, 125.071, 125.405,
642 125.769, 125.978, 126.542, 126.817, 127.017, 127.292, 127.765, 127.989, 128.542, 128.66,
643 128.923, 129.094, 129.441, 129.716, 130.23, 130.506, 130.658, 131.12, 131.308, 131.579,
644 131.994, 132.28, 132.594, 132.79, 133.107, 133.589, 133.935, 134.242, 134.484, 134.765,
645 135.208, 135.58, 135.922, 136.236, 136.545, 136.949, 137.216, 137.503, 137.994, 138.35,
646 138.62, 138.912, 139.413, 139.831, 140.137, 140.478, 141, 141.3, 141.807, 142.291,
647 142.864, 143.315, 143.678, 144.215, 144.587, 145.122, 145.8, 145.885, 146.583, 147.226,
648 147.661, 148.187, 148.698, 149.227, 149.832, 150.548, 151.122, 151.674, 152.074, 152.666,
649 153.295, 153.899, 154.661, 155.364, 155.908, 156.495, 157.36, 157.719, 158.533, 159.287,
650 159.79, 160.654, 161.257, 161.93, 162.437, 163.468, 163.957, 164.631, 165.414, 166.203,
651 166.738, 167.61, 168.453, 169.101, 170.111, 170.333, 171.123, 171.958, 173.018, 173.663,
652 174.213, 175.241, 175.579, 176.435, 177.291, 178.071, 178.969, 179.635, 180.118, 181.078,
653 182.007, 182.73, 183.282, 184.161, 184.981, 185.695, 186.506, 187.16, 187.996, 188.439,
654 189.416, 190.104, 190.759, 191.786, 192.331, 193.318, 193.836, 194.981, 195.634, 196.231,
655 196.832, 197.835, 198.608, 199.273, 199.854, 200.695, 201.719, 202.105, 202.958, 203.707,
656 204.306, 205.319, 205.977, 206.875, 207.687, 208.352, 209.04, 209.352, 210.313, 211.322,
657 212.02, 212.458, 213.246, 214.331, 214.923, 215.466, 216.536, 217.346, 217.867, 218.463,
658 219.201, 219.88, 220.829, 221.461, 222.399, 223.068, 223.712, 224.174, 224.837, 225.838,
659 227.019, 227.171, 227.797, 228.663, 229.429, 230.323, 230.845, 231.574, 232.417, 232.677 };
660 double wid2[300] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
671 1.87136e-06, 1.50063e-05, 5.10425e-05, 0.000122121, 0.000240853, 0.000420318, 0.000675161, 0.0010173, 0.00146434, 0.00203321,
672 0.00273489, 0.0035927, 0.00462579, 0.00584255, 0.00727372, 0.00895462, 0.0108831, 0.013085, 0.0156197, 0.0184865,
673 0.0217078, 0.0253423, 0.0294103, 0.0339191, 0.0389837, 0.0446351, 0.0508312, 0.0577268, 0.0653189, 0.0737049,
674 0.0829819, 0.0930611, 0.104328, 0.116663, 0.130105, 0.144922, 0.16122, 0.179091, 0.198759, 0.220133,
675 0.243916, 0.269803, 0.298861, 0.330061, 0.365741, 0.40437, 0.447191, 0.49501, 0.548576, 0.606445,
676 0.674414, 0.748353, 0.831686, 0.929938, 1.03771, 1.16187, 1.30387, 1.47341, 1.65629, 1.88318,
677 2.14353, 2.44169, 2.79831, 3.2009, 3.65522, 4.16317, 4.69597, 5.2585, 5.85965, 6.44984,
678 7.04202, 7.60113, 8.14571, 8.73195, 9.24537, 9.75717, 10.2093, 10.6731, 11.1487, 11.5819,
679 12.0158, 12.4253, 12.8113, 13.2073, 13.5995, 13.9317, 14.312, 14.6595, 14.9511, 15.2668,
680 15.6092, 15.9349, 16.1873, 16.5049, 16.819, 17.0743, 17.3621, 17.6094, 17.8418, 18.0681,
681 18.3141, 18.5914, 18.8187, 19.0562, 19.2282, 19.4918, 19.7326, 19.9112, 20.134, 20.3386,
682 20.511, 20.6865, 20.8958, 21.0518, 21.2967, 21.44, 21.6361, 21.8012, 21.9523, 22.1736,
683 22.2615, 22.4207, 22.6056, 22.7198, 22.9299, 23.0605, 23.2959, 23.3808, 23.4961, 23.6793,
684 23.7843, 23.9697, 24.0689, 24.1919, 24.405, 24.3898, 24.6018, 24.7294, 24.789, 24.9978,
685 25.0626, 25.1728, 25.2809, 25.3579, 25.5444, 25.5995, 25.7644, 25.8397, 25.9229, 26.095,
686 26.1495, 26.2899, 26.3871, 26.54, 26.6603, 26.7008, 26.7836, 26.907, 26.9653, 26.9969,
687 27.1226, 27.226, 27.3543, 27.4686, 27.4887, 27.6163, 27.6986, 27.7506, 27.7884, 27.8662,
688 27.9886, 28.0573, 28.1238, 28.2612, 28.3209, 28.3457, 28.4392, 28.5086, 28.6399, 28.7603,
689 28.788, 28.8502, 28.9038, 28.9667, 28.975, 29.0032, 29.2681, 29.2392, 29.2572, 29.3364 };
691 return wid1[i]*
g1+wid2[i]*g2;
694double D0Topippim2pi0::anywid1260(
double sc,
double g1,
double g2){
696 double smin = (0.13957*3)*(0.13957*3);
698 int od = (sc - 0.18)/dh;
699 double sc_m = 0.18 + od*dh;
701 if(sc>=0.18 && sc<=3.17){
702 widuse = ((sc-sc_m)/dh)*(widT1260(od+1,
g1,g2)-widT1260(od,
g1,g2))+widT1260(od,
g1,g2);
703 }
else if(sc<0.18 && sc>smin){
704 widuse = ((sc - smin)/(0.18-smin))*widT1260(0,
g1,g2);
706 widuse = widT1260(299,
g1,g2);
714complex<double> D0Topippim2pi0::RBWa1260(
double mx2,
double mr,
double g1,
double g2){
716 double mx = sqrt(mx2);
718 double wid0 = anywid1260(mx2,
g1,g2);
720 double denom_real = mr2-mx2;
721 double denom_imag = mr*wid0;
723 double denom = denom_real*denom_real+denom_imag*denom_imag;
724 double output_x = denom_real/denom;
725 double output_y = denom_imag/denom;
733double D0Topippim2pi0::widT1300(
int i){
734 double wid1[300] = { 0.0702928, 0.399073, 0.991742, 1.82025, 2.85953, 4.08606, 5.48082, 7.02683, 8.70496, 10.5007,
735 12.4053, 14.4026, 16.4831, 18.6423, 20.8642, 23.1544, 25.4896, 27.8703, 30.3015, 32.7861,
736 35.2622, 37.8173, 40.3819, 42.974, 45.5732, 48.2303, 50.8659, 53.5741, 56.28, 59.0242,
737 61.738, 64.5642, 67.377, 70.1605, 73.0155, 75.8849, 78.7611, 81.7366, 84.7156, 87.7527,
738 90.7217, 93.8402, 96.8516, 100.036, 103.168, 106.483, 109.772, 113.098, 116.491, 120.013,
739 123.618, 127.069, 130.983, 134.868, 138.605, 142.625, 147.007, 151.154, 155.625, 160.1,
740 164.776, 169.651, 174.646, 179.669, 185.084, 190.409, 196.147, 201.788, 207.901, 214.041,
741 220.327, 226.505, 233.334, 239.816, 246.878, 253.563, 260.393, 267.453, 274.5, 282.15,
742 289.014, 296.45, 303.808, 311.427, 318.649, 326.965, 334.298, 341.576, 349.715, 356.89,
743 365.029, 372.677, 379.882, 387.677, 395.178, 402.445, 410.353, 418.649, 424.994, 432.156,
744 440.002, 448.394, 454.382, 460.97, 468.446, 475.847, 481.956, 489.729, 496.094, 501.22,
745 509.278, 514.618, 521.06, 528.247, 534.246, 540.312, 547.316, 552.549, 559.193, 566.059,
746 572.882, 578.147, 585.118, 589.989, 596.717, 601.222, 607.749, 613.96, 621.107, 625.218,
747 630.396, 635.57, 641.175, 646.024, 651.984, 657.156, 661.385, 666.804, 672.088, 675.939,
748 681.207, 685.072, 690.63, 694.767, 699.469, 704.1, 709.445, 713.704, 716.909, 720.681,
749 726.12, 730.403, 733.553, 739.123, 742.156, 746.6, 750.027, 753.462, 757.426, 761.595,
750 764.336, 768.251, 772.371, 775.963, 778.886, 781.905, 784.798, 788.825, 792.372, 796.27,
751 800.361, 803.544, 806.544, 808.819, 812.146, 814.989, 819.234, 820.073, 824.067, 828.047,
752 830.277, 833.013, 835.374, 838.463, 840.82, 844.655, 846.391, 849.408, 851.659, 853.977,
753 856.409, 860.029, 862.128, 866.104, 866.864, 869.24, 872.133, 872.591, 876.528, 879.029,
754 880.786, 883.8, 886.065, 887.511, 890.301, 892.086, 894.429, 895.666, 897.961, 900.712,
755 901.559, 904.787, 906.882, 908.034, 911.366, 911.249, 914.274, 916.238, 918.105, 920.585,
756 920.473, 924.468, 923.888, 926.046, 928.648, 930.3, 931.861, 934.253, 934.081, 936.95,
757 938.319, 940.464, 940.539, 943.393, 944.729, 946.944, 947.712, 948.948, 951.026, 952.121,
758 954.114, 955.146, 956.206, 959.056, 960.316, 962.919, 961.946, 964.324, 966.134, 967.689,
759 968.612, 970.357, 972.302, 973.514, 976.512, 975.815, 979.043, 979.486, 981.285, 983.173,
760 983.96, 985.947, 987.447, 988.455, 991.739, 992.1, 993.045, 995.918, 997.377, 999.136,
761 1001.51, 1001.12, 1002.46, 1004.57, 1005.76, 1007.12, 1009.23, 1011.7, 1012.48, 1014.84,
762 1014.21, 1017.28, 1017.22, 1018.95, 1021.8, 1021.94, 1023.22, 1025.13, 1026.01, 1027.8,
763 1030.04, 1030.12, 1031.54, 1033.2, 1034.62, 1035.83, 1037.33, 1037.92, 1038.9, 1041.69 };
767double D0Topippim2pi0::anywid1300(
double sc){
769 double smin = (0.13957*3)*(0.13957*3);
771 int od = (sc - 0.18)/dh;
772 double sc_m = 0.18 + od*dh;
774 if(sc>=0.18 && sc<=3.17){
775 widuse = ((sc-sc_m)/dh)*(widT1300(od+1)-widT1300(od))+widT1300(od);
776 }
else if(sc<0.18 && sc>smin){
777 widuse = ((sc - smin)/(0.18-smin))*widT1300(0);
779 widuse = widT1300(299);
786complex<double> D0Topippim2pi0::RBWpi1300(
double mx2,
double mr,
double wr){
788 double mx = sqrt(mx2);
790 double g1 = wr/anywid1300(mr2);
791 double wid0 = anywid1300(mx2)*
g1;
793 double denom_real = mr2-mx2;
794 double denom_imag = mr*wid0;
796 double denom = denom_real*denom_real+denom_imag*denom_imag;
797 double output_x = denom_real/denom;
798 double output_y = denom_imag/denom;
806double D0Topippim2pi0::widT1640(
int i){
807 double wid1[300] = { 1.38316e-05, 0.000403892, 0.00181814, 0.0048161, 0.00982907, 0.0172548, 0.0273979, 0.040567, 0.0569061, 0.0768551,
808 0.100513, 0.128031, 0.159729, 0.195626, 0.236099, 0.280881, 0.330745, 0.386095, 0.446448, 0.511879,
809 0.583827, 0.66167, 0.745453, 0.835386, 0.934317, 1.0386, 1.1513, 1.26975, 1.39901, 1.53362,
810 1.68291, 1.84163, 2.0066, 2.18366, 2.37394, 2.57742, 2.7905, 3.02463, 3.27434, 3.53467,
811 3.80737, 4.10838, 4.41975, 4.76341, 5.12572, 5.51301, 5.91839, 6.36597, 6.8457, 7.33806,
812 7.87328, 8.45901, 9.08869, 9.74744, 10.464, 11.2096, 12.0103, 12.8556, 13.7563, 14.7352,
813 15.7336, 16.7432, 17.8117, 18.9327, 20.0186, 21.1632, 22.3549, 23.5172, 24.6518, 25.7808,
814 26.9103, 28.016, 29.1542, 30.0458, 31.0808, 32.1018, 33.0395, 33.9151, 34.8873, 35.7289,
815 36.5603, 37.2489, 38.023, 38.7983, 39.55, 40.2977, 40.8819, 41.4564, 42.1864, 42.7368,
816 43.3923, 43.8651, 44.4667, 44.8108, 45.3935, 45.9551, 46.2652, 46.8683, 47.1943, 47.6864,
817 48.1666, 48.5599, 48.8894, 49.1867, 49.6234, 49.9326, 50.4594, 50.6707, 51.005, 51.2612,
818 51.7638, 51.8946, 52.3176, 52.5107, 52.7378, 52.9418, 53.4019, 53.3571, 53.7937, 54.137,
819 54.2265, 54.3471, 54.6637, 54.897, 55.2174, 55.1577, 55.7098, 55.8616, 55.8862, 56.2106,
820 56.3357, 56.5165, 56.6819, 56.7906, 56.9814, 57.0507, 57.3059, 57.4898, 57.5848, 57.5792,
821 57.7696, 58.0302, 58.1915, 58.3319, 58.3892, 58.4671, 58.6736, 58.7872, 58.7949, 58.8366,
822 59.0247, 59.0881, 59.2675, 59.479, 59.6261, 59.6111, 59.6055, 59.7286, 59.8806, 60.0424,
823 60.1126, 60.0742, 60.2066, 60.2253, 60.565, 60.6557, 60.7359, 60.6405, 60.6429, 60.8521,
824 60.8098, 61.0699, 61.1678, 61.0329, 61.0522, 61.1792, 61.3671, 61.4394, 61.5152, 61.6122,
825 61.584, 61.711, 61.707, 61.7254, 61.816, 61.9248, 61.9748, 61.9498, 62.0014, 62.0634,
826 62.2929, 62.2349, 62.2101, 62.4434, 62.4281, 62.4166, 62.4905, 62.6055, 62.5097, 62.5994,
827 62.6637, 62.6794, 62.7068, 62.7908, 62.8135, 63.0085, 62.8848, 62.8159, 63.047, 62.8632,
828 63.1119, 63.0864, 63.1423, 63.2334, 63.0695, 63.2902, 63.3719, 63.1882, 63.2649, 63.3338,
829 63.4709, 63.4662, 63.3746, 63.623, 63.6402, 63.5632, 63.6611, 63.6012, 63.5904, 63.7467,
830 63.5535, 63.7792, 63.5213, 63.829, 63.8696, 63.8047, 63.9557, 63.9433, 63.9363, 63.9436,
831 63.9804, 64.0707, 64.0105, 63.96, 64.0437, 64.0235, 64.1795, 64.1377, 64.073, 64.2282,
832 64.2933, 64.4369, 64.3887, 64.2474, 64.2373, 64.3553, 64.425, 64.4401, 64.3197, 64.4212,
833 64.5787, 64.4919, 64.6878, 64.4998, 64.5788, 64.6628, 64.6658, 64.5072, 64.7227, 64.7327,
834 64.4472, 64.6792, 64.7801, 64.5715, 64.7263, 64.8505, 64.7488, 64.6448, 64.8962, 64.8815,
835 64.821, 64.902, 64.8944, 64.8959, 64.8957, 64.7882, 65.0725, 64.8787, 64.797, 65.1112,
836 65.1212, 65.157, 64.9412, 65.2601, 65.0662, 65.0093, 65.0899, 65.1035, 65.0865, 65.3276 };
840double D0Topippim2pi0::anywid1640(
double sc){
842 double smin = (0.13957*3)*(0.13957*3);
844 int od = (sc - 0.18)/dh;
845 double sc_m = 0.18 + od*dh;
847 if(sc>=0.18 && sc<=3.17){
848 widuse = ((sc-sc_m)/dh)*(widT1640(od+1)-widT1640(od))+widT1640(od);
849 }
else if(sc<0.18 && sc>smin){
850 widuse = ((sc - smin)/(0.18-smin))*widT1640(0);
852 widuse = widT1640(299);
859complex<double> D0Topippim2pi0::RBWa1640(
double mx2,
double mr,
double wr){
861 double mx = sqrt(mx2);
863 double g1 = wr/anywid1640(mr2);
864 double wid0 = anywid1640(mx2)*
g1;
866 double denom_real = mr2-mx2;
867 double denom_imag = mr*wid0;
869 double denom = denom_real*denom_real+denom_imag*denom_imag;
870 double output_x = denom_real/denom;
871 double output_y = denom_imag/denom;
879double D0Topippim2pi0::rho22(
double sc){
880 double rho[689] = { 3.70024e-18, 8.52763e-15, 1.87159e-13, 1.3311e-12, 5.61842e-12, 1.75224e-11, 4.48597e-11, 9.99162e-11, 2.00641e-10, 3.71995e-10,
881 6.47093e-10, 1.06886e-09, 1.69124e-09, 2.58031e-09, 3.8168e-09, 5.49601e-09, 7.72996e-09, 1.06509e-08, 1.44078e-08, 1.91741e-08,
882 2.51445e-08, 3.25345e-08, 4.15946e-08, 5.25949e-08, 6.58316e-08, 8.16443e-08, 1.00389e-07, 1.22455e-07, 1.48291e-07, 1.78348e-07,
883 2.1313e-07, 2.53192e-07, 2.99086e-07, 3.51462e-07, 4.10993e-07, 4.78349e-07, 5.54327e-07, 6.3972e-07, 7.35316e-07, 8.42099e-07,
884 9.61004e-07, 1.09295e-06, 1.2391e-06, 1.40051e-06, 1.57824e-06, 1.77367e-06, 1.98805e-06, 2.22257e-06, 2.47877e-06, 2.7581e-06,
885 3.06186e-06, 3.39182e-06, 3.74971e-06, 4.137e-06, 4.5555e-06, 5.00725e-06, 5.4939e-06, 6.01725e-06, 6.57992e-06, 7.18371e-06,
886 7.83044e-06, 8.52301e-06, 9.26342e-06, 1.00535e-05, 1.08967e-05, 1.17953e-05, 1.27514e-05, 1.37679e-05, 1.48482e-05, 1.59943e-05,
887 1.72088e-05, 1.84961e-05, 1.98586e-05, 2.12987e-05, 2.28207e-05, 2.44279e-05, 2.61228e-05, 2.79084e-05, 2.97906e-05, 3.17718e-05,
888 3.38544e-05, 3.60443e-05, 3.8345e-05, 4.07591e-05, 4.32903e-05, 4.59459e-05, 4.87285e-05, 5.16403e-05, 5.46887e-05, 5.7878e-05,
889 6.12111e-05, 6.46908e-05, 6.83274e-05, 7.21231e-05, 7.60817e-05, 8.0208e-05, 8.45102e-05, 8.89919e-05, 9.36544e-05, 9.85082e-05,
890 0.000103559, 0.000108812, 0.000114267, 0.000119938, 0.000125827, 0.00013194, 0.000138278, 0.000144857, 0.000151681, 0.000158752,
891 0.000166074, 0.000173663, 0.000181521, 0.000189652, 0.000198059, 0.000206761, 0.000215761, 0.000225063, 0.00023467, 0.000244599,
892 0.000254855, 0.00026544, 0.000276357, 0.000287629, 0.00029926, 0.000311253, 0.000323609, 0.000336351, 0.000349483, 0.000363009,
893 0.000376926, 0.000391264, 0.000406029, 0.000421225, 0.000436848, 0.000452921, 0.000469458, 0.000486461, 0.00050393, 0.00052187,
894 0.000540322, 0.000559278, 0.000578746, 0.00059872, 0.000619236, 0.0006403, 0.000661911, 0.000684074, 0.000706799, 0.000730127,
895 0.00075405, 0.000778569, 0.000803686, 0.000829443, 0.000855839, 0.000882879, 0.000910561, 0.000938898, 0.000967939, 0.000997674,
896 0.00102811, 0.00105923, 0.0010911, 0.0011237, 0.00115706, 0.00119117, 0.00122601, 0.00126168, 0.00129815, 0.00133543,
897 0.00137351, 0.00141242, 0.00145219, 0.00149283, 0.00153434, 0.0015767, 0.00161995, 0.00166415, 0.00170928, 0.00175534,
898 0.00180232, 0.00185028, 0.00189924, 0.00194919, 0.00200014, 0.00205207, 0.00210503, 0.0021591, 0.00221421, 0.0022704,
899 0.00232766, 0.00238602, 0.00244554, 0.00250619, 0.00256799, 0.0026309, 0.002695, 0.00276033, 0.00282689, 0.00289467,
900 0.00296367, 0.00303389, 0.00310543, 0.0031783, 0.00325244, 0.0033279, 0.0034046, 0.00348275, 0.00356229, 0.00364322,
901 0.00372555, 0.00380924, 0.00389438, 0.00398104, 0.00406914, 0.00415877, 0.00424985, 0.00434235, 0.00443651, 0.00453224,
902 0.00462954, 0.00472848, 0.00482894, 0.00493102, 0.00503483, 0.00514029, 0.00524749, 0.0053563, 0.00546675, 0.00557905,
903 0.0056931, 0.00580901, 0.0059267, 0.00604613, 0.00616735, 0.00629049, 0.00641557, 0.00654254, 0.00667142, 0.00680216,
904 0.00693472, 0.00706946, 0.00720621, 0.00734497, 0.0074858, 0.00762855, 0.00777338, 0.00792036, 0.00806957, 0.00822087,
905 0.00837426, 0.00852982, 0.0086875, 0.00884756, 0.00900991, 0.00917447, 0.00934137, 0.00951052, 0.00968194, 0.0098558,
906 0.010032, 0.0102108, 0.0103919, 0.0105754, 0.0107612, 0.0109496, 0.0111406, 0.0113343, 0.0115305, 0.0117293,
907 0.0119303, 0.0121343, 0.0123409, 0.0125502, 0.0127623, 0.0129771, 0.0131944, 0.0134145, 0.0136376, 0.0138636,
908 0.0140924, 0.0143241, 0.0145587, 0.0147959, 0.0150363, 0.0152797, 0.0155262, 0.0157758, 0.0160283, 0.0162838,
909 0.0165421, 0.016804, 0.0170691, 0.0173374, 0.0176087, 0.0178835, 0.0181612, 0.0184423, 0.0187269, 0.0190149,
910 0.0193063, 0.0196009, 0.0198991, 0.0202003, 0.0205052, 0.0208137, 0.0211259, 0.0214418, 0.0217611, 0.0220841,
911 0.0224105, 0.0227406, 0.0230746, 0.0234125, 0.0237542, 0.0240996, 0.0244486, 0.0248012, 0.025158, 0.0255188,
912 0.0258837, 0.0262527, 0.0266256, 0.0270025, 0.0273833, 0.027768, 0.0281572, 0.0285505, 0.0289483, 0.0293503,
913 0.0297564, 0.0301665, 0.0305808, 0.0309997, 0.0314231, 0.0318511, 0.0322835, 0.0327205, 0.0331616, 0.0336073,
914 0.0340576, 0.0345128, 0.0349727, 0.0354373, 0.0359066, 0.0363807, 0.0368589, 0.0373419, 0.0378302, 0.0383234,
915 0.0388218, 0.0393252, 0.0398336, 0.040347, 0.0408652, 0.041388, 0.0419165, 0.0424502, 0.0429893, 0.0435338,
916 0.0440833, 0.044638, 0.0451976, 0.0457627, 0.0463338, 0.0469103, 0.047492, 0.0480797, 0.0486729, 0.0492716,
917 0.0498757, 0.0504852, 0.0511009, 0.0517229, 0.0523503, 0.0529838, 0.0536231, 0.0542678, 0.054918, 0.0555743,
918 0.0562372, 0.0569065, 0.0575818, 0.0582634, 0.0589511, 0.0596454, 0.0603451, 0.061051, 0.0617635, 0.0624826,
919 0.0632084, 0.0639409, 0.06468, 0.0654254, 0.0661772, 0.0669346, 0.0676994, 0.0684714, 0.0692503, 0.0700354,
920 0.0708285, 0.0716277, 0.0724347, 0.0732479, 0.0740671, 0.0748947, 0.0757299, 0.0765715, 0.0774207, 0.0782771,
921 0.0791407, 0.0800119, 0.0808897, 0.0817743, 0.0826672, 0.0835684, 0.0844769, 0.0853938, 0.0863179, 0.0872493,
922 0.0881882, 0.0891349, 0.090089, 0.0910523, 0.0920236, 0.093002, 0.0939894, 0.094985, 0.0959887, 0.0970003,
923 0.0980191, 0.0990454, 0.100081, 0.101126, 0.10218, 0.103242, 0.104312, 0.105392, 0.10648, 0.107576,
924 0.10868, 0.109793, 0.110916, 0.112048, 0.113188, 0.114339, 0.115498, 0.116666, 0.117843, 0.119028,
925 0.120223, 0.121427, 0.122641, 0.123865, 0.125098, 0.126342, 0.127595, 0.128857, 0.130128, 0.131409,
926 0.132701, 0.134002, 0.135314, 0.136635, 0.137966, 0.139308, 0.14066, 0.142022, 0.143394, 0.144774,
927 0.146166, 0.14757, 0.148985, 0.15041, 0.151845, 0.153291, 0.154749, 0.156215, 0.157694, 0.159182,
928 0.160682, 0.162194, 0.163718, 0.165251, 0.166797, 0.168354, 0.169921, 0.1715, 0.17309, 0.17469,
929 0.176304, 0.177929, 0.179566, 0.181216, 0.182878, 0.184553, 0.186238, 0.187934, 0.189642, 0.191362,
930 0.193096, 0.194842, 0.196602, 0.198374, 0.200158, 0.201954, 0.203764, 0.205586, 0.207421, 0.209266,
931 0.211124, 0.212997, 0.214882, 0.216783, 0.218697, 0.220624, 0.222565, 0.224518, 0.226486, 0.228466,
932 0.230458, 0.232463, 0.234484, 0.23652, 0.238569, 0.240633, 0.242711, 0.244803, 0.246909, 0.249031,
933 0.251165, 0.253313, 0.255475, 0.257649, 0.259841, 0.262051, 0.264274, 0.266514, 0.268768, 0.271036,
934 0.273319, 0.275618, 0.277932, 0.280259, 0.282602, 0.28496, 0.287338, 0.28973, 0.292138, 0.294563,
935 0.297003, 0.299458, 0.30193, 0.304417, 0.306919, 0.309437, 0.311972, 0.314526, 0.317095, 0.319684,
936 0.322289, 0.324911, 0.327551, 0.330205, 0.332876, 0.335567, 0.338271, 0.340993, 0.343736, 0.346496,
937 0.349272, 0.352065, 0.354878, 0.35771, 0.360561, 0.363426, 0.366311, 0.369212, 0.372128, 0.375067,
938 0.378027, 0.381006, 0.384001, 0.387014, 0.39005, 0.393106, 0.396181, 0.399271, 0.402384, 0.405513,
939 0.408661, 0.41183, 0.41502, 0.418233, 0.421462, 0.424709, 0.42798, 0.43127, 0.434583, 0.437914,
940 0.441267, 0.444637, 0.448022, 0.451434, 0.454868, 0.458328, 0.461805, 0.465302, 0.468821, 0.472364,
941 0.475928, 0.47951, 0.483119, 0.486748, 0.490397, 0.494066, 0.497758, 0.501477, 0.505217, 0.508977,
942 0.512762, 0.516567, 0.520394, 0.524247, 0.528125, 0.532027, 0.535947, 0.53989, 0.543852, 0.547844,
943 0.551863, 0.555904, 0.559966, 0.56406, 0.568177, 0.572312, 0.576471, 0.580662, 0.584875, 0.58911,
944 0.593373, 0.597653, 0.601965, 0.606301, 0.610663, 0.615051, 0.619465, 0.623907, 0.62837, 0.632863,
945 0.637383, 0.641924, 0.646494, 0.651091, 0.655708, 0.660356, 0.665027, 0.669732, 0.674464, 0.679227,
946 0.684016, 0.688827, 0.693664, 0.698532, 0.703428, 0.708353, 0.713307, 0.718283, 0.72329, 0.728322,
947 0.733387, 0.738479, 0.743605, 0.748763, 0.753949, 0.759163, 0.764407, 0.769674, 0.774973, 0.780311,
948 0.78567, 0.791057, 0.796476, 0.801922, 0.8074, 0.812919, 0.818466, 0.824044 };
950 double m2 = 0.13957*0.13957;
951 double smin = (0.13957*4)*(0.13957*4);
953 int od = (sc - 0.312)/dh;
954 double sc_m = 0.312 + od*dh;
956 if(sc>=0.312 && sc<1){
957 rhouse = ((sc-sc_m)/dh)*(rho[od+1]-rho[od])+rho[od];
958 }
else if(sc<0.312 && sc>=smin){
959 rhouse = ((sc - smin)/(0.312-smin))*rho[0];
962 rhouse = sqrt(1-16*
m2/sc);
973 double mpi = 0.13957;
975 double m2 = 0.13957*0.13957;
977 rhoijx = sqrt(1.0f - (4*
m2)/
s);
980 rhoijy = sqrt((4*
m2)/
s - 1.0f);
985 double m2 = 0.493677*0.493677;
987 rhoijx = sqrt(1.0f - (4*
m2)/
s);
990 rhoijy = sqrt((4*
m2)/
s - 1.0f);
999 double m2 = 0.547862*0.547862;
1001 rhoijx = sqrt(1.0f - (4*
m2)/
s);
1004 rhoijy = sqrt((4*
m2)/
s - 1.0f);
1009 double m_1 = 0.547862;
1010 double m_2 = 0.95778;
1011 double mp2 = (m_1+m_2)*(m_1+m_2);
1012 double mm2 = (m_1-m_2)*(m_1-m_2);
1014 rhoijx = sqrt(1.0f - mp2/
s);
1017 rhoijy = sqrt(mp2/
s - 1.0f);
1035 double mpi = 0.13957;
1036 double m[5] = { 0.65100, 1.20360, 1.55817, 1.21000, 1.82206};
1038 double g1[5] = { 0.22889,-0.55377, 0.00000,-0.39899,-0.34639};
1039 double g2[5] = { 0.94128, 0.55095, 0.00000, 0.39065, 0.31503};
1040 double g3[5] = { 0.36856, 0.23888, 0.55639, 0.18340, 0.18681};
1041 double g4[5] = { 0.33650, 0.40907, 0.85679, 0.19906,-0.00984};
1042 double g5[5] = { 0.18171,-0.17558,-0.79658,-0.00355, 0.22358};
1044 double f1[5] = { 0.23399, 0.15044,-0.20545, 0.32825, 0.35412};
1048 double down[5] = { 0,0,0,0,0};
1049 double upreal[5] = { 0,0,0,0,0};
1050 double upimag[5] = { 0,0,0,0,0};
1052 for(
int k=0; k<5; k++){
1058 double dm2 = m[k]*m[k]-
s;
1059 if(fabs(dm2)<
eps && dm2<=0) dm2 = -
eps;
1060 if(fabs(dm2)<
eps && dm2>0) dm2 =
eps;
1061 upreal[k] = 1.0f/dm2;
1065 double tmp1x =
g1[i]*
g1[j]*upreal[0] + g2[i]*g2[j]*upreal[1] + g3[i]*g3[j]*upreal[2] + g4[i]*g4[j]*upreal[3] + g5[i]*g5[j]*upreal[4];
1066 double tmp1y =
g1[i]*
g1[j]*upimag[0] + g2[i]*g2[j]*upimag[1] + g3[i]*g3[j]*upimag[2] + g4[i]*g4[j]*upimag[3] + g5[i]*g5[j]*upimag[4];
1070 tmp2 =
f1[j]*(1+3.92637)/(
s+3.92637);
1073 tmp2 =
f1[i]*(1+3.92637)/(
s+3.92637);
1075 double tmp3 = (
s-0.5*
mpi*
mpi)*(1+0.15)/(
s+0.15);
1077 Kijx = (tmp1x+tmp2)*tmp3;
1078 Kijy = (tmp1y)*tmp3;
1101complex<double> D0Topippim2pi0::FMTX(
double Kijx,
double Kijy,
double rhojjx,
double rhojjy,
int i,
int j){
1106 double tmpx = rhojjx*Kijx - rhojjy*Kijy;
1107 double tmpy = rhojjx*Kijy + rhojjy*Kijx;
1109 Fijx = IMTX(i,j).real() + tmpy;
1117double D0Topippim2pi0::FINVMTX(
double s,
double *FINVx,
double *FINVy){
1119 int P[5] = { 0,1,2,3,4};
1134 for(
int k=0; k<5; k++){
1135 double rhokkx = rhoMTX(k,k,
s).real();
1136 double rhokky = rhoMTX(k,k,
s).imag();
1139 for(
int l=k; l<5; l++){
1140 double Kklx = KMTX(k,l,
s).real();
1141 double Kkly = KMTX(k,l,
s).imag();
1144 Lx[l][k] = Lx[k][l];
1145 Ly[l][k] = Ly[k][l];
1149 for(
int k=0; k<5; k++){
1150 for(
int l=0; l<5; l++){
1151 double Fklx = FMTX(Lx[k][l],Ly[k][l],Ux[l][l],Uy[l][l],k,l).real();
1152 double Fkly = FMTX(Lx[k][l],Ly[k][l],Ux[l][l],Uy[l][l],k,l).imag();
1158 for(
int k=0; k<5; k++){
1159 double tmprM = (Fx[k][k]*Fx[k][k]+Fy[k][k]*Fy[k][k]);
1161 for(
int l=k; l<5; l++){
1162 double tmprF = (Fx[l][k]*Fx[l][k]+Fy[l][k]*Fy[l][k]);
1173 for(
int l=0; l<5; l++){
1175 double tmpFx = Fx[k][l];
1176 double tmpFy = Fy[k][l];
1178 Fx[k][l] = Fx[tmpID][l];
1179 Fy[k][l] = Fy[tmpID][l];
1181 Fx[tmpID][l] = tmpFx;
1182 Fy[tmpID][l] = tmpFy;
1186 for(
int l=k+1; l<5; l++){
1187 double rFkk = Fx[k][k]*Fx[k][k] + Fy[k][k]*Fy[k][k];
1188 double Fxlk = Fx[l][k];
1189 double Fylk = Fy[l][k];
1190 double Fxkk = Fx[k][k];
1191 double Fykk = Fy[k][k];
1192 Fx[l][k] = (Fxlk*Fxkk + Fylk*Fykk)/rFkk;
1193 Fy[l][k] = (Fylk*Fxkk - Fxlk*Fykk)/rFkk;
1194 for(
int m=k+1; m<5; m++){
1195 Fx[l][m] = Fx[l][m] - (Fx[l][k]*Fx[k][m] - Fy[l][k]*Fy[k][m]);
1196 Fy[l][m] = Fy[l][m] - (Fx[l][k]*Fy[k][m] + Fy[l][k]*Fx[k][m]);
1201 for(
int k=0; k<5; k++){
1202 for(
int l=0; l<5 ;l++){
1206 Ux[k][k] = Fx[k][k];
1207 Uy[k][k] = Fy[k][k];
1210 Lx[k][l] = Fx[k][l];
1211 Ly[k][l] = Fy[k][l];
1216 Ux[k][l] = Fx[k][l];
1217 Uy[k][l] = Fy[k][l];
1225 for(
int k=0; k<5; k++){
1230 double rUkk = Ux[k][k]*Ux[k][k] + Uy[k][k]*Uy[k][k];
1231 UIx[k][k] = Ux[k][k]/rUkk;
1232 UIy[k][k] = -1.0f * Uy[k][k]/rUkk ;
1234 for(
int l=(k+1); l<5; l++){
1241 for(
int l=(k-1); l>=0; l--){
1246 for(
int m=l+1; m<=k; m++){
1248 double sx_tmp = sx + Ux[l][m]*UIx[m][k] - Uy[l][m]*UIy[m][k];
1249 c_sx = (sx_tmp - sx) - (Ux[l][m]*UIx[m][k] - Uy[l][m]*UIy[m][k]);
1253 double sy_tmp = sy + Ux[l][m]*UIy[m][k] + Uy[l][m]*UIx[m][k];
1254 c_sy = (sy_tmp - sy) - (Ux[l][m]*UIy[m][k] + Uy[l][m]*UIx[m][k]);
1257 UIx[l][k] = -1.0f * (UIx[l][l]*sx - UIy[l][l]*sy);
1258 UIy[l][k] = -1.0f * (UIy[l][l]*sx + UIx[l][l]*sy);
1261 for(
int l=k+1; l<5; l++){
1266 for(
int m=k; m<l; m++){
1268 double sx_tmp = sx + Lx[l][m]*LIx[m][k] - Ly[l][m]*LIy[m][k];
1269 c_sx = (sx_tmp - sx) - (Lx[l][m]*LIx[m][k] - Ly[l][m]*LIy[m][k]);
1273 double sy_tmp = sy + Lx[l][m]*LIy[m][k] + Ly[l][m]*LIx[m][k];
1274 c_sy = (sy_tmp - sy) - (Lx[l][m]*LIy[m][k] + Ly[l][m]*LIx[m][k]);
1277 LIx[l][k] = -1.0f * sx;
1278 LIy[l][k] = -1.0f * sy;
1282 for(
int m=0; m<5; m++){
1287 for(
int k=0; k<5; k++){
1288 for(
int l=0; l<5; l++){
1290 if(
P[l] == m) Plm = 1;
1292 resX = resX - c_resX;
1293 double resX_tmp = resX + (UIx[0][k]*LIx[k][l] - UIy[0][k]*LIy[k][l])*Plm;
1294 c_resX = (resX_tmp - resX) - ((UIx[0][k]*LIx[k][l] - UIy[0][k]*LIy[k][l])*Plm);
1297 resY = resY - c_resY;
1298 double resY_tmp = resY + (UIx[0][k]*LIy[k][l] + UIy[0][k]*LIx[k][l])*Plm;
1299 c_resY = (resY_tmp - resY) - ((UIx[0][k]*LIy[k][l] + UIy[0][k]*LIx[k][l])*Plm);
1314 double m[5] = { 0.65100, 1.20360, 1.55817, 1.21000, 1.82206};
1322 double dm2 = m[
ID]*m[
ID]-
s;
1324 if(fabs(dm2)<
eps && dm2<=0) dm2 = -
eps;
1325 if(fabs(dm2)<
eps && dm2>0) dm2 =
eps;
1339 double FINVx[5] = {0,0,0,0,0};
1340 double FINVy[5] = {0,0,0,0,0};
1342 double tmpFLAG = FINVMTX(sa,FINVx,FINVy);
1345 double g[5][5] = {{ 0.22889,-0.55377, 0.00000,-0.39899,-0.34639},
1346 { 0.94128, 0.55095, 0.00000, 0.39065, 0.31503},
1347 { 0.36856, 0.23888, 0.55639, 0.18340, 0.18681},
1348 { 0.33650, 0.40907, 0.85679, 0.19906,-0.00984},
1349 { 0.18171,-0.17558,-0.79658,-0.00355, 0.22358}};
1354 double Plx = PVTR(l,sa).real();
1355 double Ply = PVTR(l,sa).imag();
1356 for(
int j=0; j<5; j++){
1357 resx = resx - c_resx;
1358 double resx_tmp = resx + (FINVx[j]*g[l][j]*Plx - FINVy[j]*g[l][j]*Ply);
1359 c_resx = (resx_tmp - resx) - (FINVx[j]*g[l][j]*Plx - FINVy[j]*g[l][j]*Ply);
1362 resy = resy - c_resy;
1363 double resy_tmp = resy + (FINVx[j]*g[l][j]*Ply + FINVy[j]*g[l][j]*Plx);
1364 c_resy = (resy_tmp - resy) - (FINVx[j]*g[l][j]*Ply + FINVy[j]*g[l][j]*Plx);
1373 if(fabs(ds)<
eps && ds<=0) ds = -
eps;
1374 if(fabs(ds)<
eps && ds>0) ds =
eps;
1375 double tmp = (1-s0)/ds;
1376 outputx = FINVx[idx]*tmp;
1377 outputy = FINVy[idx]*tmp;
1387 vector<double> PipPim; PipPim.clear();
1388 vector<double> PipPi01; PipPi01.clear();
1389 vector<double> PipPi02; PipPi02.clear();
1390 vector<double> PimPi01; PimPi01.clear();
1391 vector<double> PimPi02; PimPi02.clear();
1392 vector<double> Pi01Pi02; Pi01Pi02.clear();
1394 PipPim = sum_tensor(Pip, Pim);
1395 PipPi01 = sum_tensor(Pip, Pi01);
1396 PipPi02 = sum_tensor(Pip, Pi02);
1397 PimPi01 = sum_tensor(Pim, Pi01);
1398 PimPi02 = sum_tensor(Pim, Pi02);
1399 Pi01Pi02 = sum_tensor(Pi01, Pi02);
1401 vector<double> PipPimPi01; PipPimPi01.clear();
1402 vector<double> PipPimPi02; PipPimPi02.clear();
1403 vector<double> PipPi01Pi02; PipPi01Pi02.clear();
1404 vector<double> PimPi01Pi02; PimPi01Pi02.clear();
1406 PipPimPi01 = sum_tensor(PipPim, Pi01);
1407 PipPimPi02 = sum_tensor(PipPim, Pi02);
1408 PipPi01Pi02 = sum_tensor(PipPi01, Pi02);
1409 PimPi01Pi02 = sum_tensor(PimPi01, Pi02);
1411 vector<double> D0; D0.clear();
1412 D0 = sum_tensor(PipPimPi01, Pi02);
1414 double M2_PipPim = contract_11_0(PipPim, PipPim);
1415 double M2_PipPi01 = contract_11_0(PipPi01, PipPi01);
1416 double M2_PipPi02 = contract_11_0(PipPi02, PipPi02);
1417 double M2_PimPi01 = contract_11_0(PimPi01, PimPi01);
1418 double M2_PimPi02 = contract_11_0(PimPi02, PimPi02);
1419 double M2_Pi01Pi02 = contract_11_0(Pi01Pi02, Pi01Pi02);
1421 double M2_PipPimPi01 = contract_11_0(PipPimPi01, PipPimPi01);
1422 double M2_PipPimPi02 = contract_11_0(PipPimPi02, PipPimPi02);
1423 double M2_PipPi01Pi02 = contract_11_0(PipPi01Pi02, PipPi01Pi02);
1424 double M2_PimPi01Pi02 = contract_11_0(PimPi01Pi02, PimPi01Pi02);
1425 double M2_D0 = contract_11_0(D0, D0);
1427 complex<double> GS_rho770_pm = GS(M2_PipPim, m0_rho7700, w0_rho7700, m2_Pi, m2_Pi, rRes, 1);
1428 complex<double> GS_rho770_p1 = GS(M2_PipPi01, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1);
1429 complex<double> GS_rho770_p2 = GS(M2_PipPi02, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1);
1430 complex<double> GS_rho770_m1 = GS(M2_PimPi01, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1);
1431 complex<double> GS_rho770_m2 = GS(M2_PimPi02, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1);
1433 complex<double> RBW_f21270_pm = RBW(M2_PipPim, m0_f21270, w0_f21270, m2_Pi, m2_Pi, rRes, 2);
1434 complex<double> RBW_f21270_00 = RBW(M2_Pi01Pi02, m0_f21270, w0_f21270, m2_Pi0, m2_Pi0, rRes, 2);
1448 complex<double> RBW_a11260_p = RBWa1260(M2_PipPi01Pi02, m0_a11260, g1_a11260, g2_a11260);
1449 complex<double> RBW_a11260_m = RBWa1260(M2_PimPi01Pi02, m0_a11260, g1_a11260, g2_a11260);
1450 complex<double> RBW_a11260_01 = RBWa1260(M2_PipPimPi01, m0_a11260, g1_a11260, g2_a11260);
1451 complex<double> RBW_a11260_02 = RBWa1260(M2_PipPimPi02, m0_a11260, g1_a11260, g2_a11260);
1453 complex<double> RBW_a11420_p = RBW(M2_PipPi01Pi02, m0_a11420, w0_a11420,-1,-1,-1,-1);
1454 complex<double> RBW_a11420_m = RBW(M2_PimPi01Pi02, m0_a11420, w0_a11420,-1,-1,-1,-1);
1455 complex<double> RBW_a11420_01 = RBW(M2_PipPimPi01, m0_a11420, w0_a11420,-1,-1,-1,-1);
1456 complex<double> RBW_a11420_02 = RBW(M2_PipPimPi02, m0_a11420, w0_a11420,-1,-1,-1,-1);
1458 complex<double> RBW_omega_01 = RBW(M2_PipPimPi01, m0_omega, w0_omega,-1,-1,-1,-1);
1459 complex<double> RBW_omega_02 = RBW(M2_PipPimPi02, m0_omega, w0_omega,-1,-1,-1,-1);
1461 complex<double> RBW_phi_01 = RBW(M2_PipPimPi01, m0_phi, w0_phi,-1,-1,-1,-1);
1462 complex<double> RBW_phi_02 = RBW(M2_PipPimPi02, m0_phi, w0_phi,-1,-1,-1,-1);
1464 complex<double> RBW_a21320_p = RBW(M2_PipPi01Pi02, m0_a21320, w0_a21320,-1,-1,-1,-1);
1465 complex<double> RBW_a21320_m = RBW(M2_PimPi01Pi02, m0_a21320, w0_a21320,-1,-1,-1,-1);
1467 complex<double> RBW_pi1300_p = RBWpi1300(M2_PipPi01Pi02, m0_pi1300, w0_pi1300);
1468 complex<double> RBW_pi1300_m = RBWpi1300(M2_PimPi01Pi02, m0_pi1300, w0_pi1300);
1469 complex<double> RBW_pi1300_01 = RBWpi1300(M2_PipPimPi01, m0_pi1300, w0_pi1300);
1470 complex<double> RBW_pi1300_02 = RBWpi1300(M2_PipPimPi02, m0_pi1300, w0_pi1300);
1472 complex<double> RBW_h11170_01 = RBW(M2_PipPimPi01, m0_h11170, w0_h11170,-1,-1,-1,-1);
1473 complex<double> RBW_h11170_02 = RBW(M2_PipPimPi02, m0_h11170, w0_h11170,-1,-1,-1,-1);
1475 complex<double> RBW_pi21670_01 = RBW(M2_PipPimPi01, m0_pi21670, w0_pi21670,-1,-1,-1,-1);
1476 complex<double> RBW_pi21670_02 = RBW(M2_PipPimPi02, m0_pi21670, w0_pi21670,-1,-1,-1,-1);
1479 vector<double> Proj1_3p; Proj1_3p.clear();
1480 vector<double> Proj1_3m; Proj1_3m.clear();
1481 vector<double> Proj1_3z1; Proj1_3z1.clear();
1482 vector<double> Proj1_3z2; Proj1_3z2.clear();
1484 Proj1_3p = ProjectionTensors(PipPi01Pi02,1);
1485 Proj1_3m = ProjectionTensors(PimPi01Pi02,1);
1486 Proj1_3z1 = ProjectionTensors(PipPimPi01,1);
1487 Proj1_3z2 = ProjectionTensors(PipPimPi02,1);
1489 vector<double> Proj2_3p; Proj2_3p.clear();
1490 vector<double> Proj2_3m; Proj2_3m.clear();
1491 vector<double> Proj2_3z1; Proj2_3z1.clear();
1492 vector<double> Proj2_3z2; Proj2_3z2.clear();
1494 Proj2_3p = ProjectionTensors(PipPi01Pi02,2);
1495 Proj2_3m = ProjectionTensors(PimPi01Pi02,2);
1496 Proj2_3z1 = ProjectionTensors(PipPimPi01,2);
1497 Proj2_3z2 = ProjectionTensors(PipPimPi02,2);
1500 vector<double> T1_PipPim; T1_PipPim.clear();
1501 vector<double> T1_PipPi01; T1_PipPi01.clear();
1502 vector<double> T1_PipPi02; T1_PipPi02.clear();
1503 vector<double> T1_PimPi01; T1_PimPi01.clear();
1504 vector<double> T1_PimPi02; T1_PimPi02.clear();
1505 vector<double> T1_Pi01Pi02; T1_Pi01Pi02.clear();
1507 T1_PipPim = OrbitalTensors(PipPim, Pip, Pim, rRes, 1);
1508 T1_PipPi01 = OrbitalTensors(PipPi01, Pip, Pi01, rRes, 1);
1509 T1_PipPi02 = OrbitalTensors(PipPi02, Pip, Pi02, rRes, 1);
1510 T1_PimPi01 = OrbitalTensors(PimPi01, Pim, Pi01, rRes, 1);
1511 T1_PimPi02 = OrbitalTensors(PimPi02, Pim, Pi02, rRes, 1);
1512 T1_Pi01Pi02 = OrbitalTensors(Pi01Pi02, Pi01, Pi02, rRes, 1);
1514 vector<double> T2_PipPim; T2_PipPim.clear();
1515 vector<double> T2_Pi01Pi02; T2_Pi01Pi02.clear();
1517 T2_PipPim = OrbitalTensors(PipPim, Pip, Pim, rRes, 2);
1518 T2_Pi01Pi02 = OrbitalTensors(Pi01Pi02, Pi01, Pi02, rRes, 2);
1521 vector<double> T1_PipPimPi01; T1_PipPimPi01.clear();
1522 vector<double> T1_PipPimPi02; T1_PipPimPi02.clear();
1523 vector<double> T1_PipPi01Pi02; T1_PipPi01Pi02.clear();
1524 vector<double> T1_PipPi02Pi01; T1_PipPi02Pi01.clear();
1525 vector<double> T1_PimPi01Pi02; T1_PimPi01Pi02.clear();
1526 vector<double> T1_PimPi02Pi01; T1_PimPi02Pi01.clear();
1527 vector<double> T1_PipPi01Pim; T1_PipPi01Pim.clear();
1528 vector<double> T1_PipPi02Pim; T1_PipPi02Pim.clear();
1529 vector<double> T1_PimPi01Pip; T1_PimPi01Pip.clear();
1530 vector<double> T1_PimPi02Pip; T1_PimPi02Pip.clear();
1531 vector<double> T1_Pi01Pi02Pip; T1_Pi01Pi02Pip.clear();
1532 vector<double> T1_Pi01Pi02Pim; T1_Pi01Pi02Pim.clear();
1534 T1_PipPimPi01 = OrbitalTensors(PipPimPi01, PipPim, Pi01, rRes, 1);
1535 T1_PipPimPi02 = OrbitalTensors(PipPimPi02, PipPim, Pi02, rRes, 1);
1536 T1_PipPi01Pi02 = OrbitalTensors(PipPi01Pi02, PipPi01, Pi02, rRes, 1);
1537 T1_PipPi02Pi01 = OrbitalTensors(PipPi01Pi02, PipPi02, Pi01, rRes, 1);
1538 T1_PimPi01Pi02 = OrbitalTensors(PimPi01Pi02, PimPi01, Pi02, rRes, 1);
1539 T1_PimPi02Pi01 = OrbitalTensors(PimPi01Pi02, PimPi02, Pi01, rRes, 1);
1540 T1_PipPi01Pim = OrbitalTensors(PipPimPi01, PipPi01, Pim, rRes, 1);
1541 T1_PipPi02Pim = OrbitalTensors(PipPimPi02, PipPi02, Pim, rRes, 1);
1542 T1_PimPi01Pip = OrbitalTensors(PipPimPi01, PimPi01, Pip, rRes, 1);
1543 T1_PimPi02Pip = OrbitalTensors(PipPimPi02, PimPi02, Pip, rRes, 1);
1544 T1_Pi01Pi02Pip = OrbitalTensors(PipPi01Pi02, Pi01Pi02, Pip, rRes, 1);
1545 T1_Pi01Pi02Pim = OrbitalTensors(PimPi01Pi02, Pi01Pi02, Pim, rRes, 1);
1547 vector<double> T2_PipPimPi01; T2_PipPimPi01.clear();
1548 vector<double> T2_PipPimPi02; T2_PipPimPi02.clear();
1549 vector<double> T2_PipPi01Pi02; T2_PipPi01Pi02.clear();
1550 vector<double> T2_PipPi02Pi01; T2_PipPi02Pi01.clear();
1551 vector<double> T2_PimPi01Pi02; T2_PimPi01Pi02.clear();
1552 vector<double> T2_PimPi02Pi01; T2_PimPi02Pi01.clear();
1553 vector<double> T2_PipPi01Pim; T2_PipPi01Pim.clear();
1554 vector<double> T2_PipPi02Pim; T2_PipPi02Pim.clear();
1555 vector<double> T2_PimPi01Pip; T2_PimPi01Pip.clear();
1556 vector<double> T2_PimPi02Pip; T2_PimPi02Pip.clear();
1557 vector<double> T2_Pi01Pi02Pip; T2_Pi01Pi02Pip.clear();
1558 vector<double> T2_Pi01Pi02Pim; T2_Pi01Pi02Pim.clear();
1560 T2_PipPimPi01 = OrbitalTensors(PipPimPi01, PipPim, Pi01, rRes, 2);
1561 T2_PipPimPi02 = OrbitalTensors(PipPimPi02, PipPim, Pi02, rRes, 2);
1562 T2_PipPi01Pi02 = OrbitalTensors(PipPi01Pi02, PipPi01, Pi02, rRes, 2);
1563 T2_PipPi02Pi01 = OrbitalTensors(PipPi01Pi02, PipPi02, Pi01, rRes, 2);
1564 T2_PimPi01Pi02 = OrbitalTensors(PimPi01Pi02, PimPi01, Pi02, rRes, 2);
1565 T2_PimPi02Pi01 = OrbitalTensors(PimPi01Pi02, PimPi02, Pi01, rRes, 2);
1566 T2_PipPi01Pim = OrbitalTensors(PipPimPi01, PipPi01, Pim, rRes, 2);
1567 T2_PipPi02Pim = OrbitalTensors(PipPimPi02, PipPi02, Pim, rRes, 2);
1568 T2_PimPi01Pip = OrbitalTensors(PipPimPi01, PimPi01, Pip, rRes, 2);
1569 T2_PimPi02Pip = OrbitalTensors(PipPimPi02, PimPi02, Pip, rRes, 2);
1570 T2_Pi01Pi02Pip = OrbitalTensors(PipPi01Pi02, Pi01Pi02, Pip, rRes, 2);
1571 T2_Pi01Pi02Pim = OrbitalTensors(PimPi01Pi02, Pi01Pi02, Pim, rRes, 2);
1574 vector<double> T1_2pm12; T1_2pm12.clear();
1575 vector<double> T1_2p1m2; T1_2p1m2.clear();
1576 vector<double> T1_2p2m1; T1_2p2m1.clear();
1578 T1_2pm12 = OrbitalTensors(D0, PipPim, Pi01Pi02, rD, 1);
1579 T1_2p1m2 = OrbitalTensors(D0, PipPi01, PimPi02, rD, 1);
1580 T1_2p2m1 = OrbitalTensors(D0, PipPi02, PimPi01, rD, 1);
1582 vector<double> T2_2pm12; T2_2pm12.clear();
1583 vector<double> T2_2p1m2; T2_2p1m2.clear();
1584 vector<double> T2_2p2m1; T2_2p2m1.clear();
1586 T2_2pm12 = OrbitalTensors(D0, PipPim, Pi01Pi02, rD, 2);
1587 T2_2p1m2 = OrbitalTensors(D0, PipPi01, PimPi02, rD, 2);
1588 T2_2p2m1 = OrbitalTensors(D0, PipPi02, PimPi01, rD, 2);
1591 vector<double> T1_3pm; T1_3pm.clear();
1592 vector<double> T1_3mp; T1_3mp.clear();
1593 vector<double> T1_3z12; T1_3z12.clear();
1594 vector<double> T1_3z21; T1_3z21.clear();
1596 T1_3pm = OrbitalTensors(D0, PipPi01Pi02, Pim, rD, 1);
1597 T1_3mp = OrbitalTensors(D0, PimPi01Pi02, Pip, rD, 1);
1598 T1_3z12 = OrbitalTensors(D0, PipPimPi01, Pi02, rD, 1);
1599 T1_3z21 = OrbitalTensors(D0, PipPimPi02, Pi01, rD, 1);
1601 vector<double> T2_3pm; T2_3pm.clear();
1602 vector<double> T2_3mp; T2_3mp.clear();
1603 vector<double> T2_3z12; T2_3z12.clear();
1604 vector<double> T2_3z21; T2_3z21.clear();
1606 T2_3pm = OrbitalTensors(D0, PipPi01Pi02, Pim, rD, 2);
1607 T2_3mp = OrbitalTensors(D0, PimPi01Pi02, Pip, rD, 2);
1608 T2_3z12 = OrbitalTensors(D0, PipPimPi01, Pi02, rD, 2);
1609 T2_3z21 = OrbitalTensors(D0, PipPimPi02, Pi01, rD, 2);
1614 double SF_Ap_S_Vp1P = contract_11_0(contract_21_1(Proj1_3p, T1_PipPi01), T1_3pm);
1615 double SF_Ap_S_Vp2P = contract_11_0(contract_21_1(Proj1_3p, T1_PipPi02), T1_3pm);
1617 amplitude += fitpara[0]*(SF_Ap_S_Vp1P*RBW_a11260_p*GS_rho770_p1 + SF_Ap_S_Vp2P*RBW_a11260_p*GS_rho770_p2);
1620 double SF_Ap_D_Vp1P = contract_11_0(contract_21_1(T2_PipPi01Pi02, T1_PipPi01), T1_3pm);
1621 double SF_Ap_D_Vp2P = contract_11_0(contract_21_1(T2_PipPi02Pi01, T1_PipPi02), T1_3pm);
1625 amplitude += fitpara[1]*(SF_Ap_D_Vp1P*RBW_a11260_p*GS_rho770_p1 + SF_Ap_D_Vp2P*RBW_a11260_p*GS_rho770_p2);
1628 double SF_Ap_P_TP = contract_11_0(contract_21_1(contract_42_2(Proj2_3p, T2_Pi01Pi02), T1_Pi01Pi02Pip), T1_3pm);
1630 amplitude += fitpara[2]*(SF_Ap_P_TP*RBW_a11260_p*RBW_f21270_00);
1633 double SF_Ap_P_SP = contract_11_0(T1_3pm, T1_Pi01Pi02Pip);
1635 amplitude += fitpara[3]*(SF_Ap_P_SP*RBW_a11260_p*PiPiS_00_0);
1636 amplitude += fitpara[4]*(SF_Ap_P_SP*RBW_a11260_p*PiPiS_00_1);
1637 amplitude += fitpara[5]*(SF_Ap_P_SP*RBW_a11260_p*PiPiS_00_5);
1640 double SF_Am_S_Vm1P = contract_11_0(contract_21_1(Proj1_3m, T1_PimPi01), T1_3mp);
1641 double SF_Am_S_Vm2P = contract_11_0(contract_21_1(Proj1_3m, T1_PimPi02), T1_3mp);
1643 amplitude += fitpara[6]*fitpara[0]*(SF_Am_S_Vm1P*RBW_a11260_m*GS_rho770_m1 + SF_Am_S_Vm2P*RBW_a11260_m*GS_rho770_m2);
1646 double SF_Am_D_Vm1P = contract_11_0(contract_21_1(T2_PimPi01Pi02, T1_PimPi01), T1_3mp);
1647 double SF_Am_D_Vm2P = contract_11_0(contract_21_1(T2_PimPi02Pi01, T1_PimPi02), T1_3mp);
1649 amplitude += fitpara[6]*fitpara[1]*(SF_Am_D_Vm1P*RBW_a11260_m*GS_rho770_m1 + SF_Am_D_Vm2P*RBW_a11260_m*GS_rho770_m2);
1652 double SF_Am_P_TP = contract_11_0(contract_21_1(contract_42_2(Proj2_3m, T2_Pi01Pi02), T1_Pi01Pi02Pim), T1_3mp);
1654 amplitude += fitpara[6]*fitpara[2]*(SF_Am_P_TP*RBW_a11260_m*RBW_f21270_00);
1657 double SF_Am_P_SP = contract_11_0(T1_3mp, T1_Pi01Pi02Pim);
1659 amplitude += fitpara[6]*fitpara[3]*(SF_Am_P_SP*RBW_a11260_m*PiPiS_00_0);
1660 amplitude += fitpara[6]*fitpara[4]*(SF_Am_P_SP*RBW_a11260_m*PiPiS_00_1);
1661 amplitude += fitpara[6]*fitpara[5]*(SF_Am_P_SP*RBW_a11260_m*PiPiS_00_5);
1664 double SF_A01_S_Vp1P = contract_11_0(contract_21_1(Proj1_3z1, T1_PipPi01), T1_3z12);
1665 double SF_A02_S_Vp2P = contract_11_0(contract_21_1(Proj1_3z2, T1_PipPi02), T1_3z21);
1666 double SF_A01_S_Vm1P = contract_11_0(contract_21_1(Proj1_3z1, T1_PimPi01), T1_3z12);
1667 double SF_A02_S_Vm2P = contract_11_0(contract_21_1(Proj1_3z2, T1_PimPi02), T1_3z21);
1668 double SF_A01_S_VzP = contract_11_0(contract_21_1(Proj1_3z1, T1_PipPim), T1_3z12);
1669 double SF_A02_S_VzP = contract_11_0(contract_21_1(Proj1_3z2, T1_PipPim), T1_3z21);
1671 amplitude += fitpara[7]*fitpara[0]*(SF_A01_S_Vp1P*RBW_a11260_01*GS_rho770_p1 + SF_A02_S_Vp2P*RBW_a11260_02*GS_rho770_p2 + SF_A01_S_Vm1P*RBW_a11260_01*GS_rho770_m1 + SF_A02_S_Vm2P*RBW_a11260_02*GS_rho770_m2);
1673 double SF_A01_D_Vp1P = contract_11_0(contract_21_1(T2_PipPi01Pim, T1_PipPi01), T1_3z12);
1674 double SF_A02_D_Vp2P = contract_11_0(contract_21_1(T2_PipPi02Pim, T1_PipPi02), T1_3z21);
1675 double SF_A01_D_Vm1P = contract_11_0(contract_21_1(T2_PimPi01Pip, T1_PimPi01), T1_3z12);
1676 double SF_A02_D_Vm2P = contract_11_0(contract_21_1(T2_PimPi02Pip, T1_PimPi02), T1_3z21);
1678 amplitude += fitpara[7]*fitpara[1]*(SF_A01_D_Vp1P*RBW_a11260_01*GS_rho770_p1 + SF_A02_D_Vp2P*RBW_a11260_02*GS_rho770_p2 + SF_A01_D_Vm1P*RBW_a11260_01*GS_rho770_m1 + SF_A02_D_Vm2P*RBW_a11260_02*GS_rho770_m2);
1680 double SF_A01_P_TP = contract_11_0(contract_21_1(contract_42_2(Proj2_3z1,T2_PipPim), T1_PipPimPi01), T1_3z12);
1681 double SF_A02_P_TP = contract_11_0(contract_21_1(contract_42_2(Proj2_3z2,T2_PipPim), T1_PipPimPi02), T1_3z21);
1683 amplitude += fitpara[7]*fitpara[2]*(-1.0)*(SF_A01_P_TP*RBW_a11260_01*RBW_f21270_pm + SF_A02_P_TP*RBW_a11260_02*RBW_f21270_pm);
1685 double SF_A01_P_SP = contract_11_0(T1_3z12, T1_PipPimPi01);
1686 double SF_A02_P_SP = contract_11_0(T1_3z21, T1_PipPimPi02);
1688 amplitude += fitpara[7]*fitpara[3]*(-1.0)*(SF_A01_P_SP*RBW_a11260_01*PiPiS_pm_0 + SF_A02_P_SP*RBW_a11260_02*PiPiS_pm_0);
1689 amplitude += fitpara[7]*fitpara[4]*(-1.0)*(SF_A01_P_SP*RBW_a11260_01*PiPiS_pm_1 + SF_A02_P_SP*RBW_a11260_02*PiPiS_pm_1);
1690 amplitude += fitpara[7]*fitpara[5]*(-1.0)*(SF_A01_P_SP*RBW_a11260_01*PiPiS_pm_5 + SF_A02_P_SP*RBW_a11260_02*PiPiS_pm_5);
1697 amplitude += fitpara[8]*(SF_Ap_P_SP*RBW_a11420_p*PiPiS_00_5);
1698 amplitude += fitpara[9]*(SF_Ap_P_SP*RBW_a11420_p*PiPiS_00_6);
1701 double SF_Tp_D_Vp1P = contract_22_0(contract_22_2(contract_31_2(contract_41_3(epsilon_uvmn, contract_21_1(Proj1_3p, T1_PipPi01)), PipPi01Pi02), contract_42_2(Proj2_3p, T2_3pm)), T2_PipPi01Pi02);
1702 double SF_Tp_D_Vp2P = contract_22_0(contract_22_2(contract_31_2(contract_41_3(epsilon_uvmn, contract_21_1(Proj1_3p, T1_PipPi02)), PipPi01Pi02), contract_42_2(Proj2_3p, T2_3pm)), T2_PipPi02Pi01);
1704 amplitude += fitpara[10]*(SF_Tp_D_Vp1P*GS_rho770_p1*RBW_a21320_p + SF_Tp_D_Vp2P*GS_rho770_p2*RBW_a21320_p);
1707 double SF_Tm_D_Vm1P = contract_22_0(contract_22_2(contract_31_2(contract_41_3(epsilon_uvmn, contract_21_1(Proj1_3m, T1_PimPi01)), PimPi01Pi02), contract_42_2(Proj2_3m, T2_3mp)), T2_PimPi01Pi02);
1708 double SF_Tm_D_Vm2P = contract_22_0(contract_22_2(contract_31_2(contract_41_3(epsilon_uvmn, contract_21_1(Proj1_3m, T1_PimPi02)), PimPi01Pi02), contract_42_2(Proj2_3m, T2_3mp)), T2_PimPi02Pi01);
1709 amplitude += fitpara[11]*(SF_Tm_D_Vm1P*GS_rho770_m1*RBW_a21320_m + SF_Tm_D_Vm2P*GS_rho770_m2*RBW_a21320_m);
1712 amplitude += fitpara[12]*(SF_A01_S_Vp1P*RBW_h11170_01*GS_rho770_p1 + SF_A02_S_Vp2P*RBW_h11170_02*GS_rho770_p2 - SF_A01_S_Vm1P*RBW_h11170_01*GS_rho770_m1 - SF_A02_S_Vm2P*RBW_h11170_02*GS_rho770_m2 - SF_A01_S_VzP*RBW_h11170_01*GS_rho770_pm - SF_A02_S_VzP*RBW_h11170_02*GS_rho770_pm);
1715 double SF_Pm_P_Vm1P = contract_11_0(T1_PimPi01,T1_PimPi01Pi02);
1716 double SF_Pm_P_Vm2P = contract_11_0(T1_PimPi02,T1_PimPi02Pi01);
1718 amplitude += fitpara[13]*(SF_Pm_P_Vm1P*GS_rho770_m1*RBW_pi1300_m + SF_Pm_P_Vm2P*GS_rho770_m2*RBW_pi1300_m);
1725 amplitude += fitpara[14]*fitpara[13]*(RBW_pi1300_m*PiPiS_00_0);
1727 amplitude += fitpara[15]*fitpara[13]*(RBW_pi1300_m*PiPiS_00_6);
1730 double SF_Pp_P_Vp1P = contract_11_0(T1_PipPi01,T1_PipPi01Pi02);
1731 double SF_Pp_P_Vp2P = contract_11_0(T1_PipPi02,T1_PipPi02Pi01);
1733 amplitude += fitpara[16]*(SF_Pp_P_Vp1P*GS_rho770_p1*RBW_pi1300_p + SF_Pp_P_Vp2P*GS_rho770_p2*RBW_pi1300_p);
1740 amplitude += fitpara[14]*fitpara[16]*(RBW_pi1300_p*PiPiS_00_0);
1742 amplitude += fitpara[15]*fitpara[16]*(RBW_pi1300_p*PiPiS_00_6);
1745 double SF_P01_P_Vp1P = contract_11_0(T1_PipPi01,T1_PipPi01Pim);
1746 double SF_P02_P_Vp2P = contract_11_0(T1_PipPi02,T1_PipPi02Pim);
1747 double SF_P01_P_Vm1P = contract_11_0(T1_PimPi01,T1_PimPi01Pip);
1748 double SF_P02_P_Vm2P = contract_11_0(T1_PimPi02,T1_PimPi02Pip);
1750 amplitude += fitpara[17]*(SF_P01_P_Vp1P*RBW_pi1300_01*GS_rho770_p1 + SF_P02_P_Vp2P*RBW_pi1300_02*GS_rho770_p2 + SF_P01_P_Vm1P*RBW_pi1300_01*GS_rho770_m1 + SF_P02_P_Vm2P*RBW_pi1300_02*GS_rho770_m2);
1757 amplitude += fitpara[14]*fitpara[17]*(-1.0)*(RBW_pi1300_01*PiPiS_pm_0 + RBW_pi1300_02*PiPiS_pm_0);
1759 amplitude += fitpara[15]*fitpara[17]*(-1.0)*(RBW_pi1300_01*PiPiS_pm_6 + RBW_pi1300_02*PiPiS_pm_6);
1762 double SF_Vp1Vm2_S = contract_11_0(T1_PipPi01, T1_PimPi02);
1763 double SF_Vp2Vm1_S = contract_11_0(T1_PipPi02, T1_PimPi01);
1765 amplitude += fitpara[18]*(SF_Vp1Vm2_S*GS_rho770_p1*GS_rho770_m2 + SF_Vp2Vm1_S*GS_rho770_p2*GS_rho770_m1);
1768 double SF_Vp1Vm2_P = contract_11_0(contract_21_1(contract_31_2(contract_41_3(epsilon_uvmn, T1_PipPi01),T1_PimPi02),T1_2p1m2), D0);
1769 double SF_Vp2Vm1_P = contract_11_0(contract_21_1(contract_31_2(contract_41_3(epsilon_uvmn, T1_PipPi02),T1_PimPi01),T1_2p2m1), D0);
1771 amplitude += fitpara[19]*(SF_Vp1Vm2_P*GS_rho770_p1*GS_rho770_m2 + SF_Vp2Vm1_P*GS_rho770_p2*GS_rho770_m1);
1774 double SF_Vp1Vm2_D = contract_11_0(contract_21_1(T2_2p1m2,T1_PipPi01), T1_PimPi02);
1775 double SF_Vp2Vm1_D = contract_11_0(contract_21_1(T2_2p2m1,T1_PipPi02), T1_PimPi01);
1776 amplitude += fitpara[20]*(SF_Vp1Vm2_D*GS_rho770_p1*GS_rho770_m2 + SF_Vp2Vm1_D*GS_rho770_p2*GS_rho770_m1);
1779 double SF_VpmS12_P = contract_11_0(T1_PipPim,T1_2pm12);
1781 amplitude += fitpara[21]*(SF_VpmS12_P*GS_rho770_pm*PiPiS_00_0);
1782 amplitude += fitpara[22]*(SF_VpmS12_P*GS_rho770_pm*PiPiS_00_5);
1783 amplitude += fitpara[23]*(SF_VpmS12_P*GS_rho770_pm*PiPiS_00_6);
1787 amplitude += fitpara[24]*(PiPiS_pm_0*PiPiS_00_0 + PiPiS_00_0*PiPiS_pm_0);
1788 amplitude += fitpara[25]*(PiPiS_pm_0*PiPiS_00_1 + PiPiS_00_0*PiPiS_pm_1);
1789 amplitude += fitpara[26]*(PiPiS_pm_1*PiPiS_00_1 + PiPiS_00_1*PiPiS_pm_1);
1790 amplitude += fitpara[27]*(PiPiS_pm_1*PiPiS_00_5 + PiPiS_00_1*PiPiS_pm_5);
1791 amplitude += fitpara[28]*(PiPiS_pm_5*PiPiS_00_5 + PiPiS_00_5*PiPiS_pm_5);
1792 amplitude += fitpara[29]*(PiPiS_pm_5*PiPiS_00_6 + PiPiS_00_5*PiPiS_pm_6);
1795 double SF_TpmS00_D = contract_22_0(T2_PipPim, T2_2pm12);
1796 double SF_T00Spm_D = contract_22_0(T2_Pi01Pi02, T2_2pm12);
1798 amplitude += fitpara[30]*(SF_TpmS00_D*RBW_f21270_pm*PiPiS_00_5 + SF_T00Spm_D*RBW_f21270_00*PiPiS_pm_5);
1799 amplitude += fitpara[31]*(SF_TpmS00_D*RBW_f21270_pm*PiPiS_00_6 + SF_T00Spm_D*RBW_f21270_00*PiPiS_pm_6);
1802 double SF_PT01_S_TP = contract_22_0(contract_42_2(Proj2_3z1, T2_PipPim), T2_3z12);
1803 double SF_PT02_S_TP = contract_22_0(contract_42_2(Proj2_3z2, T2_PipPim), T2_3z21);
1805 amplitude += fitpara[32]*(-1.0)*(SF_PT01_S_TP*RBW_f21270_pm*RBW_pi21670_01 + SF_PT02_S_TP*RBW_f21270_pm*RBW_pi21670_02);
1808 double SF_V1_Vz = contract_11_0(contract_21_1(contract_31_2(contract_41_3(epsilon_uvmn, PipPimPi01), T1_PipPimPi01), T1_PipPim), contract_21_1(Proj1_3z1, T1_3z12));
1809 double SF_V1_Vp1 = contract_11_0(contract_21_1(contract_31_2(contract_41_3(epsilon_uvmn, PipPimPi01), T1_PipPi01Pim), T1_PipPi01), contract_21_1(Proj1_3z1, T1_3z12));
1810 double SF_V1_Vm1 = contract_11_0(contract_21_1(contract_31_2(contract_41_3(epsilon_uvmn, PipPimPi01), T1_PimPi01Pip), T1_PimPi01), contract_21_1(Proj1_3z1, T1_3z12));
1812 double SF_V2_Vz = contract_11_0(contract_21_1(contract_31_2(contract_41_3(epsilon_uvmn, PipPimPi02), T1_PipPimPi02), T1_PipPim), contract_21_1(Proj1_3z2, T1_3z21));
1813 double SF_V2_Vp2 = contract_11_0(contract_21_1(contract_31_2(contract_41_3(epsilon_uvmn, PipPimPi02), T1_PipPi02Pim), T1_PipPi02), contract_21_1(Proj1_3z2, T1_3z21));
1814 double SF_V1_Vm2 = contract_11_0(contract_21_1(contract_31_2(contract_41_3(epsilon_uvmn, PipPimPi02), T1_PimPi02Pip), T1_PimPi02), contract_21_1(Proj1_3z2, T1_3z21));
1818 amplitude += (-1.0) * fitpara[33]*(SF_V1_Vp1*RBW_omega_01*GS_rho770_p1 - SF_V1_Vz*RBW_omega_01*GS_rho770_pm - SF_V1_Vm1*RBW_omega_01*GS_rho770_m1 + SF_V2_Vp2*RBW_omega_02*GS_rho770_p2 - SF_V2_Vz*RBW_omega_02*GS_rho770_pm - SF_V1_Vm2*RBW_omega_02*GS_rho770_m2);
1822 amplitude += (-1.0) * fitpara[34]*(SF_V1_Vp1*RBW_phi_01*GS_rho770_p1 - SF_V1_Vz*RBW_phi_01*GS_rho770_pm - SF_V1_Vm1*RBW_phi_01*GS_rho770_m1 + SF_V2_Vp2*RBW_phi_02*GS_rho770_p2 - SF_V2_Vz*RBW_phi_02*GS_rho770_pm - SF_V1_Vm2*RBW_phi_02*GS_rho770_m2);
double sin(const BesAngle a)
double cos(const BesAngle a)
double P(RecMdcKalTrack *trk)
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
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
****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
virtual ~D0Topippim2pi0()
complex< double > Amp(vector< double > Pip, vector< double > Pim, vector< double > Pi01, vector< double > Pi02)