34 model_name=
"D0ToKpipipi";
54 width[1] = 0.044183653178315;
55 width[2] = 0.541879469380012;
56 width[3] = 0.148423336450619;
58 mass[1] = 0.894781734682169;
59 mass[2] = 1.3622013558915;
60 mass[3] = 0.779143408171384;
62 phi[0] = 2.34794687054858;
63 rho[0] = 0.0759345115620669;
64 phi[1] = -2.24641399153466;
65 rho[1] = 0.0383327604903577;
66 phi[2] = 2.48955684856045;
67 rho[2] = 0.0931445480476023;
72 phi[4] = -2.10558220063012;
73 rho[4] = 0.347041869435286;
74 phi[5] = 1.47445088061872;
75 phi[6] = 3.00243265559304;
76 rho[5] = 0.00965088341753795;
77 rho[6] = 0.120536507325731;
78 phi[7] = -2.45477499325158;
79 rho[7] = 0.101419048440676;
80 phi[8] = -1.35809992343491;
81 rho[8] = 4.28149643321317;
82 phi[9] = -2.45149221243198;
83 rho[9] = 0.339492272598394;
84 phi[10] = -0.17419389225461;
85 rho[10] = -0.143619437541254;
87 phi[11] = -2.08744386934208;
88 rho[11] = 0.296286583716349;
91 phi[13] = -0.432190571560873;
92 rho[13] = 0.657344690733276;
93 phi[14] = -1.39790294886865;
94 rho[14] = 1.71208007006123;
95 phi[15] = 1.58945300476228;
96 rho[15] = 3.58248347683687;
97 phi[16] = 2.58249107256307;
98 rho[16] = -1.10728829503506;
99 phi[17] = -0.163623135170955;
100 rho[17] = 1.70863070178363;
101 phi[18] = -0.134699023080211;
102 rho[18] = 0.567531283682344;
103 phi[19] = -2.12670610368279;
104 rho[19] = 0.276571752504914;
105 phi[20] = -1.3352622107357;
106 rho[20] = 0.416634203151278;
108 phi[21] = -2.91571684221842;
109 rho[21] = 0.423062298489176;
110 phi[22] = 2.4544220004327;
111 rho[22] = 1.4017194038459;
112 phi[23] = -2.23388390670423;
113 rho[23] = 4.11110400629068;
127 mass_Pi0 = 0.1349766;
135 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
137 { { {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
138 {{0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,-1,0}},
139 {{0,0,0,0}, {0,0,0,-1}, {0,0,0,0}, {0,1,0,0} },
140 {{0,0,0,0}, {0,0,1,0}, {0,-1,0,0}, {0,0,0,0} } },
141 { {{0,0,0,0}, {0,0,0,0}, {0,0,0,-1}, {0,0,1,0} },
142 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
143 {{0,0,0,1}, {0,0,0,0}, {0,0,0,0}, {-1,0,0,0}},
144 {{0,0,-1,0}, {0,0,0,0}, {1,0,0,0}, {0,0,0,0} } },
145 { {{0,0,0,0}, {0,0,0,1}, {0,0,0,0}, {0,-1,0,0}},
146 {{0,0,0,-1}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0} },
147 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
148 {{0,1,0,0}, {-1,0,0,0}, {0,0,0,0}, {0,0,0,0} } },
149 { {{0,0,0,0}, {0,0,-1,0}, {0,1,0,0}, {0,0,0,0} },
150 {{0,0,1,0}, {0,0,0,0}, {-1,0,0,0}, {0,0,0,0} },
151 {{0,-1,0,0}, {1,0,0,0}, {0,0,0,0}, {0,0,0,0} },
152 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} } } };
153 for (
int i=0; i<4; i++) {
154 for (
int j=0; j<4; j++) {
156 for (
int k=0; k<4; k++) {
157 for (
int l=0; l<4; l++) {
158 E[i][j][k][l] = EE[i][j][k][l];
197 double Km[4],Pip1[4],Pip2[4],Pim[4];
198 Km[0] = Km0.
get(0); Pip1[0] = pi1.
get(0); Pip2[0] = pi2.
get(0); Pim[0] = pi3.
get(0);
199 Km[1] = Km0.
get(1); Pip1[1] = pi1.
get(1); Pip2[1] = pi2.
get(1); Pim[1] = pi3.
get(1);
200 Km[2] = Km0.
get(2); Pip1[2] = pi1.
get(2); Pip2[2] = pi2.
get(2); Pim[2] = pi3.
get(2);
201 Km[3] = Km0.
get(3); Pip1[3] = pi1.
get(3); Pip2[3] = pi2.
get(3); Pim[3] = pi3.
get(3);
202 double prob = calPDF(Km, Pip1, Pip2, Pim);
207double EvtD0ToKpipipi::calPDF(
double Km[],
double Pip1[],
double Pip2[],
double Pim[]) {
208 Km[0] = sqrt(mass_Kaon*mass_Kaon + Km[1]*Km[1] + Km[2]*Km[2] + Km[3]*Km[3]);
209 Pip1[0] = sqrt(mass_Pion*mass_Pion + Pip1[1]*Pip1[1] + Pip1[2]*Pip1[2] + Pip1[3]*Pip1[3]);
210 Pip2[0] = sqrt(mass_Pion*mass_Pion + Pip2[1]*Pip2[1] + Pip2[2]*Pip2[2] + Pip2[3]*Pip2[3]);
211 Pim[0] = sqrt(mass_Pion*mass_Pion + Pim[1]*Pim[1] + Pim[2]*Pim[2] + Pim[3]*Pim[3]);
219 PDF[0] = D2VV(Km,Pip1,Pip2,Pim,g) + D2VV(Km,Pip2,Pip1,Pim,g);
221 PDF[1] = D2VV(Km,Pip1,Pip2,Pim,g) + D2VV(Km,Pip2,Pip1,Pim,g);
223 PDF[2] = D2VV(Km,Pip1,Pip2,Pim,g) + D2VV(Km,Pip2,Pip1,Pim,g);
227 PDF[3] = D2AP_A2VP(Km,Pip2,Pip1,Pim,g,2) + D2AP_A2VP(Km,Pip1,Pip2,Pim,g,2);
229 PDF[4] = D2AP_A2VP(Km,Pip2,Pip1,Pim,g,2) + D2AP_A2VP(Km,Pip1,Pip2,Pim,g,2);
233 PDF[5] = D2AP_A2VP(Pip2,Pim,Km,Pip1,g,1) + D2AP_A2VP(Pip1,Pim,Km,Pip2,g,1);
235 PDF[6] = D2AP_A2VP(Pip2,Pim,Km,Pip1,g,1) + D2AP_A2VP(Pip1,Pim,Km,Pip2,g,1);
239 PDF[7] = D2AP_A2VP(Pip2,Km,Pip1,Pim,g,3) + D2AP_A2VP(Pip1,Km,Pip2,Pim,g,3);
242 PDF[8] = D2AP_A2SP(Pip2,Pim,Km,Pip1,1) + D2AP_A2SP(Pip1,Pim,Km,Pip2,1);
246 PDF[9] = D2VS(Pip1,Pim,Km,Pip2,1,2) + D2VS(Pip2,Pim,Km,Pip1,1,2);
248 PDF[10] = D2VS(Km,Pip1,Pip2,Pim,1,1) + D2VS(Km,Pip2,Pip1,Pim,1,1);
250 PDF[11] = D2PP_P2VP(Pip2,Pim,Km,Pip1,1) + D2PP_P2VP(Pip1,Pim,Km,Pip2,1);
256 PDF[13] = D2AP_A2VP(Pip2,Km,Pip1,Pim,g,3) + D2AP_A2VP(Pip1,Km,Pip2,Pim,g,3);
258 PDF[14] = PHSP(Km,Pip1) + PHSP(Km,Pip2);
260 g[0] = 0; g[1] = 0; g[2] = 0;
261 PDF[15] = D2VV(Km,Pip1,Pip2,Pim,g) + D2VV(Km,Pip2,Pip1,Pim,g);
263 PDF[16] = D2VS(Km,Pip1,Pip2,Pim,0,1) + D2VS(Km,Pip2,Pip1,Pim,0,1);
265 PDF[17] = D2VS(Pip1,Pim,Km,Pip2,0,2) + D2VS(Pip2,Pim,Km,Pip1,0,2);
267 PDF[18] = D2PP_P2VP(Pip2,Km,Pip1,Pim,2) + D2PP_P2VP(Pip1,Km,Pip2,Pim,2);
269 PDF[19] = D2VP_V2VP(Pip2,Pim,Km,Pip1,1) + D2VP_V2VP(Pip1,Pim,Km,Pip2,1);
271 PDF[20] = D2VP_V2VP(Pip2,Km,Pip1,Pim,2) + D2VP_V2VP(Pip1,Km,Pip2,Pim,2);
273 PDF[21] = D2TS(Km,Pip1,Pip2,Pim,1) + D2TS(Km,Pip2,Pip1,Pim,1);
274 PDF[22] = D2TS(Pip1,Pim,Km,Pip2,2) + D2TS(Pip2,Pim,Km,Pip1,2);
275 PDF[23] = D2AP_A2SP(Km,Pip2,Pip1,Pim,2) + D2AP_A2SP(Km,Pip1,Pip2,Pim,2);
280 for(
int i=0; i!=24; i++){
283 pdf = pdf + cof*PDF[i];
285 module =
conj(pdf)*pdf;
287 value =
real(module);
288 return (value <= 0) ? 1e-20 : value;
291EvtComplex EvtD0ToKpipipi::KPiSFormfactor(
double sa,
double sb,
double sc,
double r)
293 double m1430 = 1.463;
294 double sa0 = m1430*m1430;
295 double w1430 = 0.233;
296 double q0 = (sa0+sb-sc)*(sa0+sb-sc)/(4*sa0)-sb;
298 double qs = (sa+sb-sc)*(sa+sb-sc)/(4*sa)-sb;
300 double width = w1430*
q*m1430/sqrt(sa*q0);
301 double temp_R = atan(m1430*width/(sa0-sa));
302 if(temp_R<0) temp_R += math_pi;
303 double deltaR = -5.31 + temp_R;
304 double temp_F = atan(2*1.07*
q/(2+(-1.8)*1.07*qs));
305 if(temp_F<0) temp_F += math_pi;
306 double deltaF = 2.33 + temp_F;
313EvtComplex EvtD0ToKpipipi::D2VV(
double P1[],
double P2[],
double P3[],
double P4[],
int g[])
315 double t1V1[4], t1V2[4], t1D[4], t2D[4][4];
320 double sa[3], sb[3], sc[3],
B[3];
321 double pV1[4], pV2[4], pD[4];
322 for(
int i=0; i!=4; i++){
323 pV1[i] = P1[i] + P2[i];
324 pV2[i] = P3[i] + P4[i];
325 pD[i] = pV1[i] + pV2[i];
327 sa[0] = dot(pV1,pV1);
330 sa[1] = dot(pV2,pV2);
337 pro[1] = propagatorGS(mass[3],width[3],sa[1],sb[1],sc[1],rRes,1);
340 pro[0] = propagatorRBW(mass[1],width[1],sa[0],sb[0],sc[0],rRes,1);
342 if(g[0] == 0) pro[0] = 1;
343 if(g[1] == 0) pro[1] = 1;
344 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
345 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
349 for(
int i=0; i!=4; i++){
350 temp_PDF += (G[i][i])*t1V1[i]*t1V2[i];
356 for(
int i=0; i!=4; i++){
357 for(
int j=0; j!=4; j++){
358 for(
int k=0; k!=4; k++){
359 for(
int l=0; l!=4; l++){
360 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]);
365 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
369 for(
int i=0; i!=4; i++){
370 for(
int j=0; j!=4; j++){
371 temp_PDF += t2D[i][j]*t1V1[i]*t1V2[j]*(G[i][i])*(G[j][j]);
374 B[2] = barrier(2,sa[2],sb[2],sc[2],rD);
376 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro[0]*pro[1];
380EvtComplex EvtD0ToKpipipi::D2AP_A2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int g[],
int flag)
387 double t1V[4], t1D[4], t2A[4][4];
388 double sa[3], sb[3], sc[3],
B[3];
389 double pV[4],pA[4],pD[4];
390 for(
int i=0; i!=4; i++){
391 pV[i] = P3[i] + P4[i];
392 pA[i] = pV[i] + P2[i];
393 pD[i] = pA[i] + P1[i];
405 if(
flag == 1) pro[0] = propagatorRBW(mass[1],width[1],sa[0],sb[0],sc[0],rRes,1);
406 if(
flag == 2 ||
flag == 3) pro[0] = propagatorGS(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
409 if(
flag == 1) pro[1] = propogator(mass[0],width[0],sa[1]);
410 if(
flag == 2) pro[1] = propagatorRBW(mass[2],width[2],sa[1],sb[1],sc[1],rRes,g[2]);
411 if(
flag == 3) pro[1] = propogator(mass[0],width[0],sa[1]);
413 if(g[0] == 0) pro[0] = 1;
414 if(g[1] == 0) pro[1] = 1;
415 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
416 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
420 for(
int i=0; i!=4; i++){
421 for(
int j=0; j!=4; j++){
422 temp_PDF += t1D[i]*(G[i][j] - pA[i]*pA[j]/sa[1])*t1V[j]*(G[i][i])*(G[j][j]);
429 for(
int i=0; i!=4; i++){
430 for(
int j=0; j!=4; j++){
431 temp_PDF += t1D[i]*t2A[i][j]*t1V[j]*(G[i][i])*(G[j][j]);
434 B[1] = barrier(2,sa[1],sb[1],sc[1],rRes);
436 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro[0]*pro[1];
439EvtComplex EvtD0ToKpipipi::D2AP_A2SP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
445 double sa[3], sb[3], sc[3],
B[3];
446 double t1D[4], t1A[4];
447 double pS[4], pA[4], pD[4];
448 for(
int i=0; i!=4; i++){
449 pS[i] = P3[i] + P4[i];
450 pA[i] = pS[i] + P2[i];
451 pD[i] = pA[i] + P1[i];
462 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
463 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
466 for(
int i=0; i!=4; i++){
467 temp_PDF += t1D[i]*t1A[i]*(G[i][i]);
469 amp_PDF = temp_PDF*
B[1]*
B[2];
470 if(
flag == 1) amp_PDF *= KPiSFormfactor(sa[0],sb[0],sc[0],rRes);
473EvtComplex EvtD0ToKpipipi::D2PP_P2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
479 double sa[3], sb[3], sc[3],
B[3];
481 double pV[4], pP[4], pD[4];
482 for(
int i=0; i!=4; i++){
483 pV[i] = P3[i] + P4[i];
484 pP[i] = pV[i] + P2[i];
485 pD[i] = pP[i] + P1[i];
496 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
497 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
498 if(
flag == 1) pro = propagatorRBW(mass[1],width[1],sa[0],sb[0],sc[0],rRes,1);
499 if(
flag == 2) pro = propagatorGS(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
501 for(
int i=0; i!=4; i++){
502 temp_PDF += P2[i]*t1V[i]*(G[i][i]);
504 amp_PDF = temp_PDF*
B[0]*
B[1]*pro;
507EvtComplex EvtD0ToKpipipi::D2VP_V2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
513 double sa[3], sb[3], sc[3],
B[3];
514 double pV1[4], pV2[4], qV1[4], qV2[4], pD[4];
515 for(
int i=0; i!=4; i++){
516 pV2[i] = P3[i] + P4[i];
517 qV2[i] = P3[i] - P4[i];
518 pV1[i] = pV2[i] + P2[i];
519 qV1[i] = pV2[i] - P2[i];
520 pD[i] = pV1[i] + P1[i];
522 for(
int i=0; i!=4; i++){
523 for(
int j=0; j!=4; j++){
524 for(
int k=0; k!=4; k++){
525 for(
int l=0; l!=4; l++){
526 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]);
531 sa[0] = dot(pV2,pV2);
534 sa[1] = dot(pV1,pV1);
540 if(
flag == 1) pro = propagatorRBW(mass[1],width[1],sa[0],sb[0],sc[0],rRes,1);
541 if(
flag == 2) pro = propagatorGS(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
542 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
543 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
544 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
545 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro;
548EvtComplex EvtD0ToKpipipi::D2VS(
double P1[],
double P2[],
double P3[],
double P4[],
int g,
int flag)
554 double sa[3], sb[3], sc[3],
B[3];
555 double t1D[4], t1V[4];
556 double pS[4], pV[4], pD[4];
557 for(
int i=0; i!=4; i++){
558 pS[i] = P3[i] + P4[i];
559 pV[i] = P1[i] + P2[i];
560 pD[i] = pS[i] + pV[i];
572 if(
flag == 2) pro = propagatorGS(mass[3],width[3],sa[1],sb[1],sc[1],rRes,1);
573 if(
flag == 1) pro = propagatorRBW(mass[1],width[1],sa[1],sb[1],sc[1],rRes,1);
576 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
577 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
580 for(
int i=0; i!=4; i++){
581 temp_PDF += G[i][i]*t1D[i]*t1V[i];
583 amp_PDF = temp_PDF*
B[1]*
B[2]*pro;
584 if(
flag == 2) amp_PDF *= KPiSFormfactor(sa[0],sb[0],sc[0],rRes);
587EvtComplex EvtD0ToKpipipi::D2TS(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
592 double sa[3], sb[3], sc[3],
B[3];
593 double t2D[4][4], t2T[4][4];
594 double pS[4], pT[4], pD[4];
595 for(
int i=0; i!=4; i++){
596 pS[i] = P3[i] + P4[i];
597 pT[i] = P1[i] + P2[i];
598 pD[i] = pT[i] + pS[i];
609 B[0] = barrier(2,sa[0],sb[0],sc[0],rRes);
610 B[2] = barrier(2,sa[2],sb[2],sc[2],rD);
613 for(
int i=0; i!=4; i++){
614 for(
int j=0; j!=4; j++){
615 temp_PDF += t2D[i][j]*t2T[j][i]*(G[i][i])*(G[j][j]);
618 amp_PDF = temp_PDF*
B[0]*
B[2];
619 if(
flag == 2) amp_PDF *= KPiSFormfactor(sa[1],sb[1],sc[1],rRes);
622EvtComplex EvtD0ToKpipipi::PHSP(
double Km[],
double Pip[])
627 for(
int i=0; i!=4; i++){
628 KPi[i] = Km[i] + Pip[i];
633 amp_PDF = KPiSFormfactor(sa,sb,sc,rRes);
636double EvtD0ToKpipipi::calDalEva(
double P1[],
double P2[],
double P3[])
643 for(
int i=0; i<4; i++){
648 PDF[0] = Spin_factor(
P[1],
P[2],
P[0],0) + Spin_factor(
P[2],
P[1],
P[0],0);
649 PDF[1] = Spin_factor(
P[1],
P[2],
P[0],10) + Spin_factor(
P[2],
P[1],
P[0],10);
650 PDF[2] = Spin_factor(
P[1],
P[2],
P[0],100) + Spin_factor(
P[2],
P[1],
P[0],100);
652 PDF[3] = Spin_factor(
P[0],
P[1],
P[2],1) + Spin_factor(
P[0],
P[2],
P[1],1);
653 PDF[4] = Spin_factor(
P[0],
P[1],
P[2],11) + Spin_factor(
P[0],
P[2],
P[1],11);
655 PDF[5] = Spin_factor(
P[1],
P[2],
P[0],2) + Spin_factor(
P[2],
P[1],
P[0],2);
656 PDF[6] = Spin_factor(
P[0],
P[1],
P[2],12) + Spin_factor(
P[0],
P[2],
P[1],12);
658 rho[0] = 4.2551e-01; phi[0] = 3.7370e+00;
659 rho[1] = -1.0086e+00; phi[1] = 6.9153e+00;
660 rho[2] = 6.5290e-01; phi[2] = 2.8041e+00;
661 rho[3] = 1.0; phi[3] = 0.0;
662 rho[4] = -2.5079e-01; phi[4] = 6.3740e-01;
663 rho[5] = -4.1640e-01; phi[5] = 7.7850e+00;
664 rho[6] = 2.1281e-01; phi[6] = 5.3474e+00;
667 for(
int i=0; i<7; i++){
671 module =
conj(pdf)*pdf;
673 value =
real(module);
674 return (value <= 0) ? 1e-20 : value;
676EvtComplex EvtD0ToKpipipi::Spin_factor(
double P1[],
double P2[],
double P3[],
int spin)
679 double R[4],
s[3], sp2, sD,
B[2];
680 for(
int i=0; i<4; i++){
681 R[i] = P1[i] + P2[i];
689 prop = getProp(
s, spin);
694 else if(spin%10 == 1){
699 B[0] = barrier(1,
s[0],
s[1],
s[2],3.0);
700 B[1] = barrier(1,sD,
s[0],sp2,3.0);
701 for(
int i=0; i<4; i++){
702 tmp += T1[i]*t1[i]*G[i][i];
704 amp = tmp*prop*
B[0]*
B[1];
706 else if(spin%10 ==2){
708 double T2[4][4], t2[4][4];
711 B[0] = barrier(2,
s[0],
s[1],
s[2],3.0);
712 B[1] = barrier(2,sD,
s[0],sp2,3.0);
713 for(
int i=0; i<4; i++){
714 for(
int j=0; j<4; j++){
715 tmp += T2[i][j]*t2[j][i]*G[j][j]*G[i][i];
718 amp = tmp*prop*
B[0]*
B[1];
721 cout<<
"Only S, P, D wave allowed"<<endl;
737 double snpi, scpi, snk, sck;
738 snpi = mass_Pi0*mass_Pi0;
739 scpi = mass_Pion*mass_Pion;
740 sck = mass_Kaon*mass_Kaon;
743 double mass, gpipi, gkk;
749 rhokk = 0.5*(rhofactor(
s[0],sck)+rhofactor(
s[0],snk));
750 rhopipi = 1.0/3.0 * (2.0 * rhofactor(
s[0],scpi) + rhofactor(
s[0],snpi));
751 prop = 1.0/(
mass*
mass -
s[0] - ci*(gpipi*gpipi*rhopipi+gkk*gkk*rhokk));
754 prop = propagatorRBW(1.35,0.265,
s[0],
s[1],
s[2],3.0,0);
757 prop = propagatorRBW(1.505,0.109,
s[0],
s[1],
s[2],3.0,0);
760 prop = propagatorRBW(0.896,0.0503,
s[0],
s[1],
s[2],3.0,1);
763 prop = propagatorRBW(1.717,0.322,
s[0],
s[1],
s[2],3.0,1);
766 prop = propagatorRBW(1.2751,0.185,
s[0],
s[1],
s[2],3.0,2);
769 prop = propagatorRBW(1.4324,0.109,
s[0],
s[1],
s[2],3.0,2);
773 prop = 1.0/(
s[0] - pole*pole);
777EvtComplex EvtD0ToKpipipi::rhofactor(
double sx,
double sdau)
784 if(tmp>0) res =
one*sqrt(tmp);
785 if(tmp<0) res = ci*sqrt(fabs(tmp));
788EvtComplex EvtD0ToKpipipi::propogator(
double mass,
double width,
double sx)
const
794double EvtD0ToKpipipi::wid(
double mass,
double sa,
double sb,
double sc,
double r,
int l)
const
796 double widm(0.),
q(0.), q0(0.);
800 q0 = Qabcs(sa0,sb,sc);
807 if(l == 1) F = sqrt((1+z0)/(1+z));
808 if(l == 2) F = sqrt((9+3*z0+z0*z0)/(9+3*z+z*z));
809 widm = pow(
t,l+0.5)*
mass/m*F*F;
812double EvtD0ToKpipipi::h(
double m,
double q)
const
815 h = 2/pi*
q/m*log((m+2*
q)/(2*mpi));
818double EvtD0ToKpipipi::dh(
double mass,
double q0)
const
820 double dh = h(mass,q0)*(1.0/(8*q0*q0)-1.0/(2*mass*mass))+1.0/(2*pi*mass*mass);
823double EvtD0ToKpipipi::f(
double mass,
double sx,
double q0,
double q)
const
826 double f =
mass*
mass/(pow(q0,3))*(
q*
q*(h(m,
q)-h(mass,q0))+(
mass*
mass-sx)*q0*q0*dh(mass,q0));
829double EvtD0ToKpipipi::d(
double mass,
double q0)
const
831 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));
834EvtComplex EvtD0ToKpipipi::propagatorRBW(
double mass,
double width,
double sa,
double sb,
double sc,
double r,
int l)
const
840EvtComplex EvtD0ToKpipipi::propagatorGS(
double mass,
double width,
double sa,
double sb,
double sc,
double r,
int l)
const
843 double q = Qabcs(sa,sb,sc);
845 double q0 = Qabcs(sa0,sb,sc);
848 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));
851double EvtD0ToKpipipi::Flatte_rhoab(
double sa,
double sb,
double sc)
const
853 double q = Qabcs(sa,sb,sc);
854 double rho = sqrt(
q/sa);
857EvtComplex EvtD0ToKpipipi::propagatorFlatte(
double mass,
double width,
double sx,
double *sb,
double *sc)
const
860 double rho1 = Flatte_rhoab(sx,sb[0],sc[0]);
861 double rho2 = Flatte_rhoab(sx,sb[1],sc[1]);
865double EvtD0ToKpipipi::dot(
double *a1,
double *a2)
const
868 for(
int i=0; i!=4; i++){
869 dot += a1[i]*a2[i]*G[i][i];
873double EvtD0ToKpipipi::Qabcs(
double sa,
double sb,
double sc)
const
875 double Qabcs = (sa+sb-sc)*(sa+sb-sc)/(4*sa)-sb;
876 if(Qabcs < 0) Qabcs = 1e-16;
879double EvtD0ToKpipipi::barrier(
double l,
double sa,
double sb,
double sc,
double r)
const
881 double q = Qabcs(sa,sb,sc);
890 F = sqrt((2*z)/(1+z));
893 F = sqrt((13*z*z)/(9+3*z+z*z));
897void EvtD0ToKpipipi::calt1(
double daug1[],
double daug2[],
double t1[])
const
901 for(
int i=0; i!=4; i++){
902 pa[i] = daug1[i] + daug2[i];
903 qa[i] = daug1[i] - daug2[i];
907 for(
int i=0; i!=4; i++){
908 t1[i] = qa[i] - pq/p*pa[i];
911void EvtD0ToKpipipi::calt2(
double daug1[],
double daug2[],
double t2[][4])
const
915 calt1(daug1,daug2,t1);
917 for(
int i=0; i!=4; i++){
918 pa[i] = daug1[i] + daug2[i];
921 for(
int i=0; i!=4; i++){
922 for(
int j=0; j!=4; j++){
923 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)
double P(RecMdcKalTrack *trk)
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
Evt3Rank3C conj(const Evt3Rank3C &t2)
****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 getName(std::string &name)
void decay(EvtParticle *p)
virtual ~EvtD0ToKpipipi()
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)
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)
double precision pisqo6 one