34 model_name=
"D0ToKpipi0pi0";
53 mod[0]= 1; rho[0]= 2.02; phi[0]= -0.75;
54 mod[1]= 1; rho[1]= 1.66; phi[1]= -2.90;
55 mod[2]= 0; rho[2]= 0; phi[2]= 0;
56 mod[3]= 0; rho[3]= 0; phi[3]= 0;
57 mod[4]= 0; rho[4]= 0; phi[4]= 0;
58 mod[5]= 0; rho[5]= 0; phi[5]= 0;
59 mod[6]= 0; rho[6]= 0; phi[6]= 0;
60 mod[7]= 1; rho[7]= 1; phi[7]= 0;
61 mod[8]= 1; rho[8]= 0.842; phi[8]= -2.05;
62 mod[9]= 1; rho[9]= 0.0218; phi[9]= 1.84;
63 mod[10]=0; rho[10]= 0; phi[10]= 0;
64 mod[11]=0; rho[11]= 0; phi[11]= 0;
65 mod[12]=0; rho[12]= 0; phi[12]= 0;
66 mod[13]=1; rho[13]= 0.0336; phi[13]= -1.55;
67 mod[14]=1; rho[14]= 0.109; phi[14]= -1.35;
68 mod[15]=1; rho[15]= 0.196; phi[15]= -2.07;
69 mod[16]=0; rho[16]= 0; phi[16]= 0;
70 mod[17]=0; rho[17]= 0; phi[17]= 0;
71 mod[18]=0; rho[18]= 0; phi[18]= 0;
72 mod[19]=1; rho[19]= 0.363; phi[19]= 1.93;
73 mod[20]=0; rho[20]= 0; phi[20]= 0;
74 mod[21]=0; rho[21]= 0; phi[21]= 0;
75 mod[22]=0; rho[22]= 0; phi[22]= 0;
76 mod[23]=1; rho[23]= 0.555; phi[23]= 0.44;
77 mod[24]=1; rho[24]= 0.526; phi[24]= -1.84;
78 mod[25]=0; rho[25]= 0; phi[25]= 0;
79 mod[26]=1; rho[26]= 1; phi[26]= 0.64;
80 mod[27]=0; rho[27]= 0; phi[27]= 0;
81 mod[28]=0; rho[28]= 0; phi[28]= 0;
82 mod[29]=1; rho[29]= 3.34; phi[29]= -0.02;
83 mod[30]=0; rho[30]= 0; phi[30]= 0;
84 mod[31]=0; rho[31]= 0; phi[31]= 0;
85 mod[32]=0; rho[32]= 0; phi[32]= 0;
86 mod[33]=0; rho[33]= 0; phi[33]= 0;
87 mod[34]=1; rho[34]= 1.76; phi[34]= -2.39;
88 mod[35]=1; rho[35]= 0.175; phi[35]= 1.59;
89 mod[36]=1; rho[36]= 0.397; phi[36]= 1.45;
90 mod[37]=0; rho[37]= 0; phi[37]= 0;
91 mod[38]=0; rho[38]= 0; phi[38]= 0;
92 mod[39]=0; rho[39]= 0; phi[39]= 0;
93 mod[40]=0; rho[40]= 0; phi[40]= 0;
94 mod[41]=1; rho[41]= 1.02; phi[41]= 0.52;
95 mod[42]=0; rho[42]= 0; phi[42]= 0;
96 mod[43]=0; rho[43]= 0; phi[43]= 0;
97 mod[44]=0; rho[44]= 0; phi[44]= 0;
98 mod[45]=0; rho[45]= 0; phi[45]= 0;
99 mod[46]=1; rho[46]= 0.146; phi[46]= 1.24;
100 mod[47]=1; rho[47]= 0.0978; phi[47]= -2.89;
101 mod[48]=1; rho[48]= 0.233; phi[48]= 2.41;
102 mod[49]=0; rho[49]= 0; phi[49]= 0;
103 mod[50]=1; rho[50]= 0.424; phi[50]= -0.94;
104 mod[51]=1; rho[51]= 1.03; phi[51]= -1.93;
105 mod[52]=0; rho[52]= 0; phi[52]= 0;
106 mod[53]=0; rho[53]= 0; phi[53]= 0;
107 mod[54]=1; rho[54]= 0.474; phi[54]= -1.17;
108 mod[55]=0; rho[55]= 0; phi[55]= 0;
109 mod[56]=0; rho[56]= 0; phi[56]= 0;
110 mod[57]=0; rho[57]= 0; phi[57]= 0;
111 mod[58]=0; rho[58]= 0; phi[58]= 0;
112 mod[59]=0; rho[59]= 0; phi[59]= 0;
113 mod[60]=0; rho[60]= 0; phi[60]= 0;
114 mod[61]=1; rho[61]= 6.74; phi[61]= -1.74;
115 mod[62]=0; rho[62]= 0; phi[62]= 0;
116 mod[63]=0; rho[63]= 0; phi[63]= 0;
117 mod[64]=0; rho[64]= 0; phi[64]= 0;
118 mod[65]=0; rho[65]= 0; phi[65]= 0;
119 mod[66]=1; rho[66]= 1.54; phi[66]= -2.93;
120 mod[67]=1; rho[67]= 1.36; phi[67]= 2.23;
122 mass[0]= 1.23; width[0]= 0.50204;
123 mass[1]= 1.2723; width[1]= 0.09;
124 mass[2]= 0.89166; width[2]= 0.0508;
125 mass[3]= 0.89581; width[3]= 0.0474;
126 mass[4]= 0.77511; width[4]= 0.1491;
139 mass_Pi0 = 0.1349766;
148 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
150 { { {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
151 {{0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,-1,0}},
152 {{0,0,0,0}, {0,0,0,-1}, {0,0,0,0}, {0,1,0,0} },
153 {{0,0,0,0}, {0,0,1,0}, {0,-1,0,0}, {0,0,0,0} } },
154 { {{0,0,0,0}, {0,0,0,0}, {0,0,0,-1}, {0,0,1,0} },
155 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
156 {{0,0,0,1}, {0,0,0,0}, {0,0,0,0}, {-1,0,0,0}},
157 {{0,0,-1,0}, {0,0,0,0}, {1,0,0,0}, {0,0,0,0} } },
158 { {{0,0,0,0}, {0,0,0,1}, {0,0,0,0}, {0,-1,0,0}},
159 {{0,0,0,-1}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0} },
160 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
161 {{0,1,0,0}, {-1,0,0,0}, {0,0,0,0}, {0,0,0,0} } },
162 { {{0,0,0,0}, {0,0,-1,0}, {0,1,0,0}, {0,0,0,0} },
163 {{0,0,1,0}, {0,0,0,0}, {-1,0,0,0}, {0,0,0,0} },
164 {{0,-1,0,0}, {1,0,0,0}, {0,0,0,0}, {0,0,0,0} },
165 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} } } };
166 for (
int i=0; i<4; i++) {
167 for (
int j=0; j<4; j++) {
169 for (
int k=0; k<4; k++) {
170 for (
int l=0; l<4; l++) {
171 E[i][j][k][l] = EE[i][j][k][l];
210 double Km[4],Pip[4],Pi01[4],Pi02[4];
211 Km[0] = Km0.
get(0); Pip[0] = pi1.
get(0); Pi01[0] = pi2.
get(0); Pi02[0] = pi3.
get(0);
212 Km[1] = Km0.
get(1); Pip[1] = pi1.
get(1); Pi01[1] = pi2.
get(1); Pi02[1] = pi3.
get(1);
213 Km[2] = Km0.
get(2); Pip[2] = pi1.
get(2); Pi01[2] = pi2.
get(2); Pi02[2] = pi3.
get(2);
214 Km[3] = Km0.
get(3); Pip[3] = pi1.
get(3); Pi01[3] = pi2.
get(3); Pi02[3] = pi3.
get(3);
215 double prob = calPDF(Km, Pip, Pi01, Pi02);
220double EvtD0ToKpipi0pi0::calPDF(
double Km[],
double Pip[],
double Pi01[],
double Pi02[])
222 Km[0] = sqrt(mass_Kaon*mass_Kaon + Km[1]*Km[1] + Km[2]*Km[2] + Km[3]*Km[3]);
223 Pip[0] = sqrt(mass_Pion*mass_Pion + Pip[1]*Pip[1] + Pip[2]*Pip[2] + Pip[3]*Pip[3]);
224 Pi01[0] = sqrt(mass_Pi0*mass_Pi0 + Pi01[1]*Pi01[1] + Pi01[2]*Pi01[2] + Pi01[3]*Pi01[3]);
225 Pi02[0] = sqrt(mass_Pi0*mass_Pi0 + Pi02[1]*Pi02[1] + Pi02[2]*Pi02[2] + Pi02[3]*Pi02[3]);
230 PDF[0] = PHSP(Km,Pip) + PHSP(Km,Pip);
231 PDF[1] = PHSP(Km,Pi01)+PHSP(Km,Pi02);
239 g[0] = 1; g[1] = 1; g[2] = 0;
240 PDF[7] = D2AP_A2VP(Km,Pi01,Pip,Pi02,g,0) + D2AP_A2VP(Km,Pi02,Pip,Pi01,g,0);
242 PDF[8] = D2AP_A2VP(Km,Pi01,Pip,Pi02,g,0) + D2AP_A2VP(Km,Pi02,Pip,Pi01,g,0);
244 PDF[9] = D2AP_A2VP(Pip,Pi01,Km,Pi02,g,1) + D2AP_A2VP(Pip,Pi02,Km,Pi01,g,1);
252 PDF[13] = D2AP_A2VP(Pi01,Pi02,Km,Pip,g,31) + D2AP_A2VP(Pi02,Pi01,Km,Pip,g,31);
254 PDF[14] = D2AP_A2VP(Pi01,Pi02,Km,Pip,g,31) + D2AP_A2VP(Pi02,Pi01,Km,Pip,g,31);
256 PDF[15] = D2AP_A2VP(Pi01,Km,Pip,Pi02,g,3) + D2AP_A2VP(Pi02,Km,Pip,Pi01,g,3);
259 g[0] = 1; g[1] = 0; g[2] = 0;
264 PDF[19] = D2AP_A2VP(Pip,Pi01,Km,Pi02,g,1) + D2AP_A2VP(Pip,Pi02,Km,Pi01,g,1);
272 PDF[23] = D2AP_A2VP(Pi01,Pi02,Km,Pip,g,31) + D2AP_A2VP(Pi02,Pi01,Km,Pip,g,31);
274 PDF[24] = D2AP_A2VP(Pi01,Pi02,Km,Pip,g,31) + D2AP_A2VP(Pi02,Pi01,Km,Pip,g,31);
278 PDF[26] = D2AP_A2VP(Pi01,Km,Pip,Pi02,g,3) + D2AP_A2VP(Pi02,Km,Pip,Pi01,g,3);
282 PDF[29] = D2AP_A2SP(Pi01,Pi02,Km,Pip,1) + D2AP_A2SP(Pi02,Pi01,Km,Pip,1);
288 PDF[34] = D2VS(Pip,Pi01,Km,Pi02,1,0) + D2VS(Pip,Pi02,Km,Pi01,1,0);
289 PDF[35] = D2VS(Km,Pi01,Pip,Pi02,1,1) + D2VS(Km,Pi02,Pip,Pi01,1,1);
290 PDF[36] = D2VS(Km,Pip,Pi01,Pi02,1,11) + D2VS(Km,Pip,Pi02,Pi01,1,11);
296 PDF[41] = D2VP_V2VP(Pi01,Pip,Km,Pi02,0) + D2VP_V2VP(Pi02,Pip,Km,Pi01,0);
302 g[0] = 1; g[1] = 1; g[2] = 0;
303 PDF[46] = D2VV(Km,Pi01,Pip,Pi02,g,0) + D2VV(Km,Pi02,Pip,Pi01,g,0);
305 PDF[47] = D2VV(Km,Pi01,Pip,Pi02,g,0) + D2VV(Km,Pi02,Pip,Pi01,g,0);
307 PDF[48] = D2VV(Km,Pi01,Pip,Pi02,g,0) + D2VV(Km,Pi02,Pip,Pi01,g,0);
308 g[0] = 0; g[1] = 1; g[2] = 0;
311 PDF[50] = D2VV(Km,Pi01,Pip,Pi02,g,0) + D2VV(Km,Pi02,Pip,Pi01,g,0);
313 PDF[51] = D2VV(Km,Pi01,Pip,Pi02,g,0) + D2VV(Km,Pi02,Pip,Pi01,g,0);
314 g[0] = 1; g[1] = 0; g[2] = 0;
319 PDF[54] = D2VV(Km,Pi01,Pip,Pi02,g,0) + D2VV(Km,Pi02,Pip,Pi01,g,0);
320 g[0] = 1; g[1] = 0; g[2] = 0;
326 g[0] = 0; g[1] = 0; g[2] = 0;
332 g[0] = 0; g[1] = 0; g[2] = 0;
333 PDF[61] = D2VV(Km,Pi01,Pip,Pi02,g,0) + D2VV(Km,Pi02,Pip,Pi01,g,0);
341 PDF[66] = D2TS(Pi02,Pi01,Km,Pip,1) + D2TS(Pi01,Pi02,Km,Pip,1);
342 PDF[67] = D2TS(Pip,Pi01,Km,Pi02,11) + D2TS(Pip,Pi02,Km,Pi01,11);
348 for(
int i=0; i < 68; i++){
349 if (mod[i]==0)
continue;
351 pdf = pdf + cof*PDF[i];
353 module = conj(pdf)*pdf;
355 value =
real(module);
356 return (value <= 0) ? 1e-20 : value;
358EvtComplex EvtD0ToKpipi0pi0::KPiSFormfactor(
double sa,
double sb,
double sc,
double r)
360 double m1430 = 1.463;
361 double sa0 = m1430*m1430;
362 double w1430 = 0.233;
363 double q0 = (sa0+sb-sc)*(sa0+sb-sc)/(4*sa0)-sb;
365 double qs = (sa+sb-sc)*(sa+sb-sc)/(4*sa)-sb;
367 double width = w1430*
q*m1430/sqrt(sa*q0);
368 double temp_R = atan(m1430*width/(sa0-sa));
369 if(temp_R<0) temp_R += math_pi;
370 double deltaR = -5.31 + temp_R;
371 double temp_F = atan(2*1.07*
q/(2+(-1.8)*1.07*qs));
372 if(temp_F<0) temp_F += math_pi;
373 double deltaF = 2.33 + temp_F;
379EvtComplex EvtD0ToKpipi0pi0::D2VV(
double P1[],
double P2[],
double P3[],
double P4[],
int g[],
int flag)
381 double t1V1[4], t1V2[4], t1D[4], t2D[4][4];
386 double sa[3], sb[3], sc[3],
B[3];
387 double pV1[4], pV2[4], pD[4];
388 for(
int i=0; i!=4; i++){
389 pV1[i] = P1[i] + P2[i];
390 pV2[i] = P3[i] + P4[i];
391 pD[i] = pV1[i] + pV2[i];
393 sa[0] = dot(pV1,pV1);
396 sa[1] = dot(pV2,pV2);
403 if(
flag == 0)pro[0] = propagatorRBW(mass[2],width[2],sa[0],sb[0],sc[0],rRes,1);
404 if(
flag == 1)pro[0] = propagatorRBW(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
407 if(
flag == 0) pro[1] = propagatorGS(mass[4],width[4],sa[1],sb[1],sc[1],rRes,1);
408 if(
flag == 1) pro[1] = 1;
410 if(g[0] == 0) pro[0] = 1;
411 if(g[1] == 0) pro[1] = 1;
412 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
413 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
417 for(
int i=0; i!=4; i++){
418 temp_PDF += (G[i][i])*t1V1[i]*t1V2[i];
424 for(
int i=0; i!=4; i++){
425 for(
int j=0; j!=4; j++){
426 for(
int k=0; k!=4; k++){
427 for(
int l=0; l!=4; l++){
428 temp_PDF += E[i][j][k][l]*pD[i]*t1D[j]*t1V1[k]*t1V2[l]*(G[i][i])*(G[j][j])*(G[l][l])*(G[k][k]);
433 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
437 for(
int i=0; i!=4; i++){
438 for(
int j=0; j!=4; j++){
439 temp_PDF += t2D[i][j]*t1V1[i]*t1V2[j]*(G[i][i])*(G[j][j]);
442 B[2] = barrier(2,sa[2],sb[2],sc[2],rD);
444 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro[0]*pro[1];
448EvtComplex EvtD0ToKpipi0pi0::D2AP_A2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int g[],
int flag)
453 double t1V[4], t1D[4], t2A[4][4];
454 double sa[3], sb[3], sc[3],
B[3];
455 double pV[4],pA[4],pD[4];
456 for(
int i=0; i!=4; i++){
457 pV[i] = P3[i] + P4[i];
458 pA[i] = pV[i] + P2[i];
459 pD[i] = pA[i] + P1[i];
471 if(
flag == 0 ||
flag == 3) pro[0] = propagatorGS(mass[4],width[4],sa[0],sb[0],sc[0],rRes,1);
472 else if(
flag == 1 ||
flag == 21) pro[0] = propagatorRBW(mass[2],width[2],sa[0],sb[0],sc[0],rRes,1);
473 else if(
flag == 31) pro[0] = propagatorRBW(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
475 else if(g[0] == 0) pro[0] = 1;
477 if(
flag == 0) pro[1] = propagatorRBW(mass[0],width[0],sa[1],sb[1],sc[1],rRes,g[2]);
478 if(
flag == 1 ||
flag == 21 ||
flag == 31 ||
flag == 3) pro[1] = propagatorRBW(mass[1],width[1],sa[1],sb[1],sc[1],rRes,g[2]);
480 else if(g[1] == 0) pro[1] = 1;
481 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
482 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
486 for(
int i=0; i!=4; i++){
487 for(
int j=0; j!=4; j++){
488 temp_PDF += t1D[i]*(G[i][j] - pA[i]*pA[j]/sa[1])*t1V[j]*(G[i][i])*(G[j][j]);
495 for(
int i=0; i!=4; i++){
496 for(
int j=0; j!=4; j++){
497 temp_PDF += t1D[i]*t2A[i][j]*t1V[j]*(G[i][i])*(G[j][j]);
500 B[1] = barrier(2,sa[1],sb[1],sc[1],rRes);
502 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro[0]*pro[1];
506EvtComplex EvtD0ToKpipi0pi0::D2AP_A2SP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
512 double sa[3], sb[3], sc[3],
B[3];
513 double t1D[4], t1A[4];
514 double pS[4], pA[4], pD[4];
515 for(
int i=0; i!=4; i++){
516 pS[i] = P3[i] + P4[i];
517 pA[i] = pS[i] + P2[i];
518 pD[i] = pA[i] + P1[i];
529 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
530 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
533 for(
int i=0; i!=4; i++){
534 temp_PDF += t1D[i]*t1A[i]*(G[i][i]);
536 amp_PDF = temp_PDF*
B[1]*
B[2];
537 if(
flag == 1 ||
flag == 11 ||
flag == 21 ) amp_PDF = amp_PDF*KPiSFormfactor(sa[0],sb[0],sc[0],rRes);
541EvtComplex EvtD0ToKpipi0pi0::D2PP_P2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
551 double sa[3], sb[3], sc[3],
B[3];
553 double pV[4], pP[4], pD[4];
554 for(
int i=0; i!=4; i++){
555 pV[i] = P3[i] + P4[i];
556 pP[i] = pV[i] + P2[i];
557 pD[i] = pP[i] + P1[i];
568 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
569 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
570 if(
flag == 0) prop = propagatorRBW(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
571 else if(
flag == 10 || 20) prop = propagatorRBW(mass[2],width[2],sa[0],sb[0],sc[0],rRes,1);
572 else if(
flag == 1 || 11) prop = propagatorGS(mass[4],width[4],sa[0],sb[0],sc[0],rRes,1);
574 for(
int i=0; i!=4; i++){
575 temp_PDF += P2[i]*t1V[i]*(G[i][i]);
577 amp = temp_PDF*
B[0]*
B[1]*prop;
581EvtComplex EvtD0ToKpipi0pi0::D2VP_V2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
586 double sa[3], sb[3], sc[3],
B[3];
587 double pV1[4], pV2[4], qV1[4], qV2[4], pD[4];
588 for(
int i=0; i!=4; i++){
589 pV2[i] = P3[i] + P4[i];
590 qV2[i] = P3[i] - P4[i];
591 pV1[i] = pV2[i] + P2[i];
592 qV1[i] = pV2[i] - P2[i];
593 pD[i] = pV1[i] + P1[i];
595 for(
int i=0; i!=4; i++){
596 for(
int j=0; j!=4; j++){
597 for(
int k=0; k!=4; k++){
598 for(
int l=0; l!=4; l++){
599 temp_PDF += E[i][j][k][l]*pV1[i]*qV1[j]*P1[k]*qV2[l]*(G[i][i])*(G[j][j])*(G[k][k])*(G[l][l]);
604 sa[0] = dot(pV2,pV2);
607 sa[1] = dot(pV1,pV1);
613 if(
flag == 0 ||
flag == 10) pro = propagatorRBW(mass[2],width[2],sa[0],sb[0],sc[0],rRes,1);
614 else if(
flag == 20) pro = propagatorRBW(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
615 else if(
flag == 1 ||
flag == 2) pro = propagatorGS(mass[4],width[4],sa[0],sb[0],sc[0],rRes,1);
616 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
617 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
618 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
619 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro;
623EvtComplex EvtD0ToKpipi0pi0::D2VS(
double P1[],
double P2[],
double P3[],
double P4[],
int g,
int flag)
628 double sa[3], sb[3], sc[3],
B[3];
629 double t1D[4], t1V[4];
630 double pS[4], pV[4], pD[4];
631 for(
int i=0; i!=4; i++){
632 pS[i] = P3[i] + P4[i];
633 pV[i] = P1[i] + P2[i];
634 pD[i] = pS[i] + pV[i];
646 if(
flag == 0 ) pro = propagatorGS(mass[4],width[4],sa[1],sb[1],sc[1],rRes,1);
647 else if(
flag == 1) pro = propagatorRBW(mass[2],width[2],sa[1],sb[1],sc[1],rRes,1);
648 else if(
flag == 11) pro = propagatorRBW(mass[3],width[3],sa[1],sb[1],sc[1],rRes,1);
649 else if(
flag == 10 ) pro = 1;
651 else if(g == 0) pro = 1;
652 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
653 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
656 for(
int i=0; i!=4; i++){
657 temp_PDF += G[i][i]*t1D[i]*t1V[i];
659 amp_PDF = temp_PDF*
B[1]*
B[2]*pro;
660 if(
flag == 0 ||
flag == 10) amp_PDF *= KPiSFormfactor(sa[0],sb[0],sc[0],rRes);
665EvtComplex EvtD0ToKpipi0pi0::D2TS(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
670 double sa[3], sb[3], sc[3],
B[3];
671 double t2D[4][4], t2T[4][4];
672 double pS[4], pT[4], pD[4];
673 for(
int i=0; i!=4; i++){
674 pS[i] = P3[i] + P4[i];
675 pT[i] = P1[i] + P2[i];
676 pD[i] = pT[i] + pS[i];
687 B[0] = barrier(2,sa[0],sb[0],sc[0],rRes);
688 B[2] = barrier(2,sa[2],sb[2],sc[2],rD);
691 for(
int i=0; i!=4; i++){
692 for(
int j=0; j!=4; j++){
693 temp_PDF += t2D[i][j]*t2T[j][i]*(G[i][i])*(G[j][j]);
696 amp_PDF = temp_PDF*
B[0]*
B[2];
697 if(
flag == 1 ||
flag == 11){ amp_PDF = amp_PDF*KPiSFormfactor(sa[1],sb[1],sc[1],rRes);}
701EvtComplex EvtD0ToKpipi0pi0::PHSP(
double P1[],
double P2[])
706 for(
int i=0; i!=4; i++){
707 KPi[i] = P1[i] + P2[i];
712 amp_PDF = KPiSFormfactor(sa,sb,sc,rRes);
716EvtComplex EvtD0ToKpipi0pi0::propogator(
double mass,
double width,
double sx)
const
722double EvtD0ToKpipi0pi0::wid(
double mass,
double sa,
double sb,
double sc,
double r,
int l)
const
724 double widm(0.),
q(0.), q0(0.);
728 q0 = Qabcs(sa0,sb,sc);
735 if(l == 1) F = sqrt((1+z0)/(1+z));
736 if(l == 2) F = sqrt((9+3*z0+z0*z0)/(9+3*z+z*z));
737 widm = pow(
t,l+0.5)*
mass/m*F*F;
740double EvtD0ToKpipi0pi0::h(
double m,
double q)
const
743 h = 2/pi*
q/m*log((m+2*
q)/(2*mpi));
746double EvtD0ToKpipi0pi0::dh(
double mass,
double q0)
const
748 double dh = h(mass,q0)*(1.0/(8*q0*q0)-1.0/(2*
mass*
mass))+1.0/(2*pi*mass*mass);
751double EvtD0ToKpipi0pi0::f(
double mass,
double sx,
double q0,
double q)
const
754 double f =
mass*
mass/(pow(q0,3))*(
q*
q*(h(m,
q)-h(mass,q0))+(mass*mass-sx)*q0*q0*dh(mass,q0));
757double EvtD0ToKpipi0pi0::d(
double mass,
double q0)
const
759 double d = 3.0/pi*mpi*mpi/(q0*q0)*log((mass+2*q0)/(2*mpi))+
mass/(2*pi*q0) - (mpi*mpi*mass)/(pi*pow(q0,3));
762EvtComplex EvtD0ToKpipi0pi0::propagatorRBW(
double mass,
double width,
double sa,
double sb,
double sc,
double r,
int l)
const
768EvtComplex EvtD0ToKpipi0pi0::propagatorGS(
double mass,
double width,
double sa,
double sb,
double sc,
double r,
int l)
const
771 double q = Qabcs(sa,sb,sc);
773 double q0 = Qabcs(sa0,sb,sc);
776 EvtComplex prop = (1+d(mass,q0)*width/
mass)/(mass*mass-sa+width*
f(mass,sa,q0,
q)-ci*mass*width*wid(mass,sa,sb,sc,r,l));
779double EvtD0ToKpipi0pi0::Flatte_rhoab(
double sa,
double sb,
double sc)
const
781 double q = Qabcs(sa,sb,sc);
782 double rho = sqrt(
q/sa);
785EvtComplex EvtD0ToKpipi0pi0::propagatorFlatte(
double mass,
double width,
double sx,
double *sb,
double *sc)
const
788 double rho1 = Flatte_rhoab(sx,sb[0],sc[0]);
789 double rho2 = Flatte_rhoab(sx,sb[1],sc[1]);
793double EvtD0ToKpipi0pi0::dot(
double *a1,
double *a2)
const
796 for(
int i=0; i!=4; i++){
797 dot += a1[i]*a2[i]*G[i][i];
801double EvtD0ToKpipi0pi0::Qabcs(
double sa,
double sb,
double sc)
const
803 double Qabcs = (sa+sb-sc)*(sa+sb-sc)/(4*sa)-sb;
804 if(Qabcs < 0) Qabcs = 1e-16;
807double EvtD0ToKpipi0pi0::barrier(
double l,
double sa,
double sb,
double sc,
double r)
const
809 double q = Qabcs(sa,sb,sc);
818 F = sqrt((2*z)/(1+z));
821 F = sqrt((13*z*z)/(9+3*z+z*z));
825void EvtD0ToKpipi0pi0::calt1(
double daug1[],
double daug2[],
double t1[])
const
829 for(
int i=0; i!=4; i++){
830 pa[i] = daug1[i] + daug2[i];
831 qa[i] = daug1[i] - daug2[i];
835 for(
int i=0; i!=4; i++){
836 t1[i] = qa[i] - pq/p*pa[i];
839void EvtD0ToKpipi0pi0::calt2(
double daug1[],
double daug2[],
double t2[][4])
const
843 calt1(daug1,daug2,t1);
845 for(
int i=0; i!=4; i++){
846 pa[i] = daug1[i] + daug2[i];
849 for(
int i=0; i!=4; i++){
850 for(
int j=0; j!=4; j++){
851 t2[i][j] = t1[i]*t1[j] - 1.0/3*r*(G[i][j]-pa[i]*pa[j]/p);
double sin(const BesAngle a)
double cos(const BesAngle a)
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
void decay(EvtParticle *p)
void getName(std::string &name)
virtual ~EvtD0ToKpipi0pi0()
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void setProb(double prob)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)