20#include "EvtGenBase/EvtPatches.hh"
21#include "EvtGenBase/EvtParticle.hh"
22#include "EvtGenBase/EvtGenKine.hh"
23#include "EvtGenBase/EvtPDL.hh"
24#include "EvtGenBase/EvtReport.hh"
25#include "EvtGenModels/EvtD0ToKpipipi.hh"
26#include "EvtGenBase/EvtComplex.hh"
27#include "EvtGenBase/EvtDecayTable.hh"
33 model_name=
"D0ToKpipipi";
50 std::cout <<
"EvtD0ToKpipipi ==> Initialization !" << std::endl;
53 width[1] = 0.044183653178315;
54 width[2] = 0.541879469380012;
55 width[3] = 0.148423336450619;
57 mass[1] = 0.894781734682169;
58 mass[2] = 1.3622013558915;
59 mass[3] = 0.779143408171384;
61 phi[0] = 2.34794687054858;
62 rho[0] = 0.0759345115620669;
63 phi[1] = -2.24641399153466;
64 rho[1] = 0.0383327604903577;
65 phi[2] = 2.48955684856045;
66 rho[2] = 0.0931445480476023;
71 phi[4] = -2.10558220063012;
72 rho[4] = 0.347041869435286;
73 phi[5] = 1.47445088061872;
74 phi[6] = 3.00243265559304;
75 rho[5] = 0.00965088341753795;
76 rho[6] = 0.120536507325731;
77 phi[7] = -2.45477499325158;
78 rho[7] = 0.101419048440676;
79 phi[8] = -1.35809992343491;
80 rho[8] = 4.28149643321317;
81 phi[9] = -2.45149221243198;
82 rho[9] = 0.339492272598394;
83 phi[10] = -0.17419389225461;
84 rho[10] = -0.143619437541254;
86 phi[11] = -2.08744386934208;
87 rho[11] = 0.296286583716349;
90 phi[13] = -0.432190571560873;
91 rho[13] = 0.657344690733276;
92 phi[14] = -1.39790294886865;
93 rho[14] = 1.71208007006123;
94 phi[15] = 1.58945300476228;
95 rho[15] = 3.58248347683687;
96 phi[16] = 2.58249107256307;
97 rho[16] = -1.10728829503506;
98 phi[17] = -0.163623135170955;
99 rho[17] = 1.70863070178363;
100 phi[18] = -0.134699023080211;
101 rho[18] = 0.567531283682344;
102 phi[19] = -2.12670610368279;
103 rho[19] = 0.276571752504914;
104 phi[20] = -1.3352622107357;
105 rho[20] = 0.416634203151278;
107 phi[21] = -2.91571684221842;
108 rho[21] = 0.423062298489176;
109 phi[22] = 2.4544220004327;
110 rho[22] = 1.4017194038459;
111 phi[23] = -2.23388390670423;
112 rho[23] = 4.11110400629068;
114 for (
int i=0; i<24; i++) {
115 cout << i <<
"rho,phi = " << rho[i] <<
", "<< phi[i] << endl;
126 mass_Pi0 = 0.1349766;
134 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
136 { { {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
137 {{0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,-1,0}},
138 {{0,0,0,0}, {0,0,0,-1}, {0,0,0,0}, {0,1,0,0} },
139 {{0,0,0,0}, {0,0,1,0}, {0,-1,0,0}, {0,0,0,0} } },
140 { {{0,0,0,0}, {0,0,0,0}, {0,0,0,-1}, {0,0,1,0} },
141 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
142 {{0,0,0,1}, {0,0,0,0}, {0,0,0,0}, {-1,0,0,0}},
143 {{0,0,-1,0}, {0,0,0,0}, {1,0,0,0}, {0,0,0,0} } },
144 { {{0,0,0,0}, {0,0,0,1}, {0,0,0,0}, {0,-1,0,0}},
145 {{0,0,0,-1}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0} },
146 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
147 {{0,1,0,0}, {-1,0,0,0}, {0,0,0,0}, {0,0,0,0} } },
148 { {{0,0,0,0}, {0,0,-1,0}, {0,1,0,0}, {0,0,0,0} },
149 {{0,0,1,0}, {0,0,0,0}, {-1,0,0,0}, {0,0,0,0} },
150 {{0,-1,0,0}, {1,0,0,0}, {0,0,0,0}, {0,0,0,0} },
151 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} } } };
152 for (
int i=0; i<4; i++) {
153 for (
int j=0; j<4; j++) {
155 for (
int k=0; k<4; k++) {
156 for (
int l=0; l<4; l++) {
157 E[i][j][k][l] = EE[i][j][k][l];
196 double Km[4],Pip1[4],Pip2[4],Pim[4];
197 Km[0] = Km0.
get(0); Pip1[0] = pi1.
get(0); Pip2[0] = pi2.
get(0); Pim[0] = pi3.
get(0);
198 Km[1] = Km0.
get(1); Pip1[1] = pi1.
get(1); Pip2[1] = pi2.
get(1); Pim[1] = pi3.
get(1);
199 Km[2] = Km0.
get(2); Pip1[2] = pi1.
get(2); Pip2[2] = pi2.
get(2); Pim[2] = pi3.
get(2);
200 Km[3] = Km0.
get(3); Pip1[3] = pi1.
get(3); Pip2[3] = pi2.
get(3); Pim[3] = pi3.
get(3);
201 double prob = calPDF(Km, Pip1, Pip2, Pim);
206double EvtD0ToKpipipi::calPDF(
double Km[],
double Pip1[],
double Pip2[],
double Pim[]) {
207 Km[0] = sqrt(mass_Kaon*mass_Kaon + Km[1]*Km[1] + Km[2]*Km[2] + Km[3]*Km[3]);
208 Pip1[0] = sqrt(mass_Pion*mass_Pion + Pip1[1]*Pip1[1] + Pip1[2]*Pip1[2] + Pip1[3]*Pip1[3]);
209 Pip2[0] = sqrt(mass_Pion*mass_Pion + Pip2[1]*Pip2[1] + Pip2[2]*Pip2[2] + Pip2[3]*Pip2[3]);
210 Pim[0] = sqrt(mass_Pion*mass_Pion + Pim[1]*Pim[1] + Pim[2]*Pim[2] + Pim[3]*Pim[3]);
218 PDF[0] = D2VV(Km,Pip1,Pip2,Pim,g) + D2VV(Km,Pip2,Pip1,Pim,g);
220 PDF[1] = D2VV(Km,Pip1,Pip2,Pim,g) + D2VV(Km,Pip2,Pip1,Pim,g);
222 PDF[2] = D2VV(Km,Pip1,Pip2,Pim,g) + D2VV(Km,Pip2,Pip1,Pim,g);
226 PDF[3] = D2AP_A2VP(Km,Pip2,Pip1,Pim,g,2) + D2AP_A2VP(Km,Pip1,Pip2,Pim,g,2);
228 PDF[4] = D2AP_A2VP(Km,Pip2,Pip1,Pim,g,2) + D2AP_A2VP(Km,Pip1,Pip2,Pim,g,2);
232 PDF[5] = D2AP_A2VP(Pip2,Pim,Km,Pip1,g,1) + D2AP_A2VP(Pip1,Pim,Km,Pip2,g,1);
234 PDF[6] = D2AP_A2VP(Pip2,Pim,Km,Pip1,g,1) + D2AP_A2VP(Pip1,Pim,Km,Pip2,g,1);
238 PDF[7] = D2AP_A2VP(Pip2,Km,Pip1,Pim,g,3) + D2AP_A2VP(Pip1,Km,Pip2,Pim,g,3);
241 PDF[8] = D2AP_A2SP(Pip2,Pim,Km,Pip1,1) + D2AP_A2SP(Pip1,Pim,Km,Pip2,1);
245 PDF[9] = D2VS(Pip1,Pim,Km,Pip2,1,2) + D2VS(Pip2,Pim,Km,Pip1,1,2);
247 PDF[10] = D2VS(Km,Pip1,Pip2,Pim,1,1) + D2VS(Km,Pip2,Pip1,Pim,1,1);
249 PDF[11] = D2PP_P2VP(Pip2,Pim,Km,Pip1,1) + D2PP_P2VP(Pip1,Pim,Km,Pip2,1);
255 PDF[13] = D2AP_A2VP(Pip2,Km,Pip1,Pim,g,3) + D2AP_A2VP(Pip1,Km,Pip2,Pim,g,3);
257 PDF[14] = PHSP(Km,Pip1) + PHSP(Km,Pip2);
259 g[0] = 0; g[1] = 0; g[2] = 0;
260 PDF[15] = D2VV(Km,Pip1,Pip2,Pim,g) + D2VV(Km,Pip2,Pip1,Pim,g);
262 PDF[16] = D2VS(Km,Pip1,Pip2,Pim,0,1) + D2VS(Km,Pip2,Pip1,Pim,0,1);
264 PDF[17] = D2VS(Pip1,Pim,Km,Pip2,0,2) + D2VS(Pip2,Pim,Km,Pip1,0,2);
266 PDF[18] = D2PP_P2VP(Pip2,Km,Pip1,Pim,2) + D2PP_P2VP(Pip1,Km,Pip2,Pim,2);
268 PDF[19] = D2VP_V2VP(Pip2,Pim,Km,Pip1,1) + D2VP_V2VP(Pip1,Pim,Km,Pip2,1);
270 PDF[20] = D2VP_V2VP(Pip2,Km,Pip1,Pim,2) + D2VP_V2VP(Pip1,Km,Pip2,Pim,2);
272 PDF[21] = D2TS(Km,Pip1,Pip2,Pim,1) + D2TS(Km,Pip2,Pip1,Pim,1);
273 PDF[22] = D2TS(Pip1,Pim,Km,Pip2,2) + D2TS(Pip2,Pim,Km,Pip1,2);
274 PDF[23] = D2AP_A2SP(Km,Pip2,Pip1,Pim,2) + D2AP_A2SP(Km,Pip1,Pip2,Pim,2);
279 for(
int i=0; i!=24; i++){
282 pdf = pdf + cof*PDF[i];
284 module =
conj(pdf)*pdf;
286 value =
real(module);
287 return (value <= 0) ? 1e-20 : value;
290EvtComplex EvtD0ToKpipipi::KPiSFormfactor(
double sa,
double sb,
double sc,
double r)
292 double m1430 = 1.463;
293 double sa0 = m1430*m1430;
294 double w1430 = 0.233;
295 double q0 = (sa0+sb-sc)*(sa0+sb-sc)/(4*sa0)-sb;
297 double qs = (sa+sb-sc)*(sa+sb-sc)/(4*sa)-sb;
299 double width = w1430*
q*m1430/sqrt(sa*q0);
300 double temp_R = atan(m1430*width/(sa0-sa));
301 if(temp_R<0) temp_R += math_pi;
302 double deltaR = -5.31 + temp_R;
303 double temp_F = atan(2*1.07*
q/(2+(-1.8)*1.07*qs));
304 if(temp_F<0) temp_F += math_pi;
305 double deltaF = 2.33 + temp_F;
312EvtComplex EvtD0ToKpipipi::D2VV(
double P1[],
double P2[],
double P3[],
double P4[],
int g[])
314 double t1V1[4], t1V2[4], t1D[4], t2D[4][4];
319 double sa[3], sb[3], sc[3],
B[3];
320 double pV1[4], pV2[4], pD[4];
321 for(
int i=0; i!=4; i++){
322 pV1[i] = P1[i] + P2[i];
323 pV2[i] = P3[i] + P4[i];
324 pD[i] = pV1[i] + pV2[i];
326 sa[0] = dot(pV1,pV1);
329 sa[1] = dot(pV2,pV2);
336 pro[1] = propagatorGS(mass[3],width[3],sa[1],sb[1],sc[1],rRes,1);
339 pro[0] = propagatorRBW(mass[1],width[1],sa[0],sb[0],sc[0],rRes,1);
341 if(g[0] == 0) pro[0] = 1;
342 if(g[1] == 0) pro[1] = 1;
343 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
344 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
348 for(
int i=0; i!=4; i++){
349 temp_PDF += (G[i][i])*t1V1[i]*t1V2[i];
355 for(
int i=0; i!=4; i++){
356 for(
int j=0; j!=4; j++){
357 for(
int k=0; k!=4; k++){
358 for(
int l=0; l!=4; l++){
359 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]);
364 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
368 for(
int i=0; i!=4; i++){
369 for(
int j=0; j!=4; j++){
370 temp_PDF += t2D[i][j]*t1V1[i]*t1V2[j]*(G[i][i])*(G[j][j]);
373 B[2] = barrier(2,sa[2],sb[2],sc[2],rD);
375 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro[0]*pro[1];
379EvtComplex EvtD0ToKpipipi::D2AP_A2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int g[],
int flag)
386 double t1V[4], t1D[4], t2A[4][4];
387 double sa[3], sb[3], sc[3],
B[3];
388 double pV[4],pA[4],pD[4];
389 for(
int i=0; i!=4; i++){
390 pV[i] = P3[i] + P4[i];
391 pA[i] = pV[i] + P2[i];
392 pD[i] = pA[i] + P1[i];
404 if(
flag == 1) pro[0] = propagatorRBW(mass[1],width[1],sa[0],sb[0],sc[0],rRes,1);
405 if(
flag == 2 ||
flag == 3) pro[0] = propagatorGS(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
408 if(
flag == 1) pro[1] = propogator(mass[0],width[0],sa[1]);
409 if(
flag == 2) pro[1] = propagatorRBW(mass[2],width[2],sa[1],sb[1],sc[1],rRes,g[2]);
410 if(
flag == 3) pro[1] = propogator(mass[0],width[0],sa[1]);
412 if(g[0] == 0) pro[0] = 1;
413 if(g[1] == 0) pro[1] = 1;
414 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
415 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
419 for(
int i=0; i!=4; i++){
420 for(
int j=0; j!=4; j++){
421 temp_PDF += t1D[i]*(G[i][j] - pA[i]*pA[j]/sa[1])*t1V[j]*(G[i][i])*(G[j][j]);
428 for(
int i=0; i!=4; i++){
429 for(
int j=0; j!=4; j++){
430 temp_PDF += t1D[i]*t2A[i][j]*t1V[j]*(G[i][i])*(G[j][j]);
433 B[1] = barrier(2,sa[1],sb[1],sc[1],rRes);
435 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro[0]*pro[1];
438EvtComplex EvtD0ToKpipipi::D2AP_A2SP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
444 double sa[3], sb[3], sc[3],
B[3];
445 double t1D[4], t1A[4];
446 double pS[4], pA[4], pD[4];
447 for(
int i=0; i!=4; i++){
448 pS[i] = P3[i] + P4[i];
449 pA[i] = pS[i] + P2[i];
450 pD[i] = pA[i] + P1[i];
461 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
462 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
465 for(
int i=0; i!=4; i++){
466 temp_PDF += t1D[i]*t1A[i]*(G[i][i]);
468 amp_PDF = temp_PDF*
B[1]*
B[2];
469 if(
flag == 1) amp_PDF *= KPiSFormfactor(sa[0],sb[0],sc[0],rRes);
472EvtComplex EvtD0ToKpipipi::D2PP_P2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
478 double sa[3], sb[3], sc[3],
B[3];
480 double pV[4], pP[4], pD[4];
481 for(
int i=0; i!=4; i++){
482 pV[i] = P3[i] + P4[i];
483 pP[i] = pV[i] + P2[i];
484 pD[i] = pP[i] + P1[i];
495 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
496 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
497 if(
flag == 1) pro = propagatorRBW(mass[1],width[1],sa[0],sb[0],sc[0],rRes,1);
498 if(
flag == 2) pro = propagatorGS(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
500 for(
int i=0; i!=4; i++){
501 temp_PDF += P2[i]*t1V[i]*(G[i][i]);
503 amp_PDF = temp_PDF*
B[0]*
B[1]*pro;
506EvtComplex EvtD0ToKpipipi::D2VP_V2VP(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
512 double sa[3], sb[3], sc[3],
B[3];
513 double pV1[4], pV2[4], qV1[4], qV2[4], pD[4];
514 for(
int i=0; i!=4; i++){
515 pV2[i] = P3[i] + P4[i];
516 qV2[i] = P3[i] - P4[i];
517 pV1[i] = pV2[i] + P2[i];
518 qV1[i] = pV2[i] - P2[i];
519 pD[i] = pV1[i] + P1[i];
521 for(
int i=0; i!=4; i++){
522 for(
int j=0; j!=4; j++){
523 for(
int k=0; k!=4; k++){
524 for(
int l=0; l!=4; l++){
525 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]);
530 sa[0] = dot(pV2,pV2);
533 sa[1] = dot(pV1,pV1);
539 if(
flag == 1) pro = propagatorRBW(mass[1],width[1],sa[0],sb[0],sc[0],rRes,1);
540 if(
flag == 2) pro = propagatorGS(mass[3],width[3],sa[0],sb[0],sc[0],rRes,1);
541 B[0] = barrier(1,sa[0],sb[0],sc[0],rRes);
542 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
543 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
544 amp_PDF = temp_PDF*
B[0]*
B[1]*
B[2]*pro;
547EvtComplex EvtD0ToKpipipi::D2VS(
double P1[],
double P2[],
double P3[],
double P4[],
int g,
int flag)
553 double sa[3], sb[3], sc[3],
B[3];
554 double t1D[4], t1V[4];
555 double pS[4], pV[4], pD[4];
556 for(
int i=0; i!=4; i++){
557 pS[i] = P3[i] + P4[i];
558 pV[i] = P1[i] + P2[i];
559 pD[i] = pS[i] + pV[i];
571 if(
flag == 2) pro = propagatorGS(mass[3],width[3],sa[1],sb[1],sc[1],rRes,1);
572 if(
flag == 1) pro = propagatorRBW(mass[1],width[1],sa[1],sb[1],sc[1],rRes,1);
575 B[1] = barrier(1,sa[1],sb[1],sc[1],rRes);
576 B[2] = barrier(1,sa[2],sb[2],sc[2],rD);
579 for(
int i=0; i!=4; i++){
580 temp_PDF += G[i][i]*t1D[i]*t1V[i];
582 amp_PDF = temp_PDF*
B[1]*
B[2]*pro;
583 if(
flag == 2) amp_PDF *= KPiSFormfactor(sa[0],sb[0],sc[0],rRes);
586EvtComplex EvtD0ToKpipipi::D2TS(
double P1[],
double P2[],
double P3[],
double P4[],
int flag)
591 double sa[3], sb[3], sc[3],
B[3];
592 double t2D[4][4], t2T[4][4];
593 double pS[4], pT[4], pD[4];
594 for(
int i=0; i!=4; i++){
595 pS[i] = P3[i] + P4[i];
596 pT[i] = P1[i] + P2[i];
597 pD[i] = pT[i] + pS[i];
608 B[0] = barrier(2,sa[0],sb[0],sc[0],rRes);
609 B[2] = barrier(2,sa[2],sb[2],sc[2],rD);
612 for(
int i=0; i!=4; i++){
613 for(
int j=0; j!=4; j++){
614 temp_PDF += t2D[i][j]*t2T[j][i]*(G[i][i])*(G[j][j]);
617 amp_PDF = temp_PDF*
B[0]*
B[2];
618 if(
flag == 2) amp_PDF *= KPiSFormfactor(sa[1],sb[1],sc[1],rRes);
621EvtComplex EvtD0ToKpipipi::PHSP(
double Km[],
double Pip[])
626 for(
int i=0; i!=4; i++){
627 KPi[i] = Km[i] + Pip[i];
632 amp_PDF = KPiSFormfactor(sa,sb,sc,rRes);
635double EvtD0ToKpipipi::calDalEva(
double P1[],
double P2[],
double P3[])
642 for(
int i=0; i<4; i++){
647 PDF[0] = Spin_factor(
P[1],
P[2],
P[0],0) + Spin_factor(
P[2],
P[1],
P[0],0);
648 PDF[1] = Spin_factor(
P[1],
P[2],
P[0],10) + Spin_factor(
P[2],
P[1],
P[0],10);
649 PDF[2] = Spin_factor(
P[1],
P[2],
P[0],100) + Spin_factor(
P[2],
P[1],
P[0],100);
651 PDF[3] = Spin_factor(
P[0],
P[1],
P[2],1) + Spin_factor(
P[0],
P[2],
P[1],1);
652 PDF[4] = Spin_factor(
P[0],
P[1],
P[2],11) + Spin_factor(
P[0],
P[2],
P[1],11);
654 PDF[5] = Spin_factor(
P[1],
P[2],
P[0],2) + Spin_factor(
P[2],
P[1],
P[0],2);
655 PDF[6] = Spin_factor(
P[0],
P[1],
P[2],12) + Spin_factor(
P[0],
P[2],
P[1],12);
657 rho[0] = 4.2551e-01; phi[0] = 3.7370e+00;
658 rho[1] = -1.0086e+00; phi[1] = 6.9153e+00;
659 rho[2] = 6.5290e-01; phi[2] = 2.8041e+00;
660 rho[3] = 1.0; phi[3] = 0.0;
661 rho[4] = -2.5079e-01; phi[4] = 6.3740e-01;
662 rho[5] = -4.1640e-01; phi[5] = 7.7850e+00;
663 rho[6] = 2.1281e-01; phi[6] = 5.3474e+00;
666 for(
int i=0; i<7; i++){
670 module =
conj(pdf)*pdf;
672 value =
real(module);
673 return (value <= 0) ? 1e-20 : value;
675EvtComplex EvtD0ToKpipipi::Spin_factor(
double P1[],
double P2[],
double P3[],
int spin)
678 double R[4],
s[3], sp2, sD,
B[2];
679 for(
int i=0; i<4; i++){
680 R[i] = P1[i] + P2[i];
688 prop = getProp(
s, spin);
693 else if(spin%10 == 1){
698 B[0] = barrier(1,
s[0],
s[1],
s[2],3.0);
699 B[1] = barrier(1,sD,
s[0],sp2,3.0);
700 for(
int i=0; i<4; i++){
701 tmp += T1[i]*t1[i]*G[i][i];
703 amp = tmp*prop*
B[0]*
B[1];
705 else if(spin%10 ==2){
707 double T2[4][4], t2[4][4];
710 B[0] = barrier(2,
s[0],
s[1],
s[2],3.0);
711 B[1] = barrier(2,sD,
s[0],sp2,3.0);
712 for(
int i=0; i<4; i++){
713 for(
int j=0; j<4; j++){
714 tmp += T2[i][j]*t2[j][i]*G[j][j]*G[i][i];
717 amp = tmp*prop*
B[0]*
B[1];
720 cout<<
"Only S, P, D wave allowed"<<endl;
736 double snpi, scpi, snk, sck;
737 snpi = mass_Pi0*mass_Pi0;
738 scpi = mass_Pion*mass_Pion;
739 sck = mass_Kaon*mass_Kaon;
742 double mass, gpipi, gkk;
748 rhokk = 0.5*(rhofactor(
s[0],sck)+rhofactor(
s[0],snk));
749 rhopipi = 1.0/3.0 * (2.0 * rhofactor(
s[0],scpi) + rhofactor(
s[0],snpi));
750 prop = 1.0/(
mass*
mass -
s[0] - ci*(gpipi*gpipi*rhopipi+gkk*gkk*rhokk));
753 prop = propagatorRBW(1.35,0.265,
s[0],
s[1],
s[2],3.0,0);
756 prop = propagatorRBW(1.505,0.109,
s[0],
s[1],
s[2],3.0,0);
759 prop = propagatorRBW(0.896,0.0503,
s[0],
s[1],
s[2],3.0,1);
762 prop = propagatorRBW(1.717,0.322,
s[0],
s[1],
s[2],3.0,1);
765 prop = propagatorRBW(1.2751,0.185,
s[0],
s[1],
s[2],3.0,2);
768 prop = propagatorRBW(1.4324,0.109,
s[0],
s[1],
s[2],3.0,2);
772 prop = 1.0/(
s[0] - pole*pole);
776EvtComplex EvtD0ToKpipipi::rhofactor(
double sx,
double sdau)
783 if(tmp>0) res =
one*sqrt(tmp);
784 if(tmp<0) res = ci*sqrt(fabs(tmp));
787EvtComplex EvtD0ToKpipipi::propogator(
double mass,
double width,
double sx)
const
793double EvtD0ToKpipipi::wid(
double mass,
double sa,
double sb,
double sc,
double r,
int l)
const
795 double widm(0.),
q(0.), q0(0.);
799 q0 = Qabcs(sa0,sb,sc);
806 if(l == 1) F = sqrt((1+z0)/(1+z));
807 if(l == 2) F = sqrt((9+3*z0+z0*z0)/(9+3*z+z*z));
808 widm = pow(
t,l+0.5)*
mass/m*F*F;
811double EvtD0ToKpipipi::h(
double m,
double q)
const
814 h = 2/pi*
q/m*log((m+2*
q)/(2*mpi));
817double EvtD0ToKpipipi::dh(
double mass,
double q0)
const
819 double dh = h(mass,q0)*(1.0/(8*q0*q0)-1.0/(2*mass*mass))+1.0/(2*pi*mass*mass);
822double EvtD0ToKpipipi::f(
double mass,
double sx,
double q0,
double q)
const
825 double f =
mass*
mass/(pow(q0,3))*(
q*
q*(h(m,
q)-h(mass,q0))+(
mass*
mass-sx)*q0*q0*dh(mass,q0));
828double EvtD0ToKpipipi::d(
double mass,
double q0)
const
830 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));
833EvtComplex EvtD0ToKpipipi::propagatorRBW(
double mass,
double width,
double sa,
double sb,
double sc,
double r,
int l)
const
839EvtComplex EvtD0ToKpipipi::propagatorGS(
double mass,
double width,
double sa,
double sb,
double sc,
double r,
int l)
const
842 double q = Qabcs(sa,sb,sc);
844 double q0 = Qabcs(sa0,sb,sc);
847 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));
850double EvtD0ToKpipipi::Flatte_rhoab(
double sa,
double sb,
double sc)
const
852 double q = Qabcs(sa,sb,sc);
853 double rho = sqrt(
q/sa);
856EvtComplex EvtD0ToKpipipi::propagatorFlatte(
double mass,
double width,
double sx,
double *sb,
double *sc)
const
859 double rho1 = Flatte_rhoab(sx,sb[0],sc[0]);
860 double rho2 = Flatte_rhoab(sx,sb[1],sc[1]);
864double EvtD0ToKpipipi::dot(
double *a1,
double *a2)
const
867 for(
int i=0; i!=4; i++){
868 dot += a1[i]*a2[i]*G[i][i];
872double EvtD0ToKpipipi::Qabcs(
double sa,
double sb,
double sc)
const
874 double Qabcs = (sa+sb-sc)*(sa+sb-sc)/(4*sa)-sb;
875 if(Qabcs < 0) Qabcs = 1e-16;
878double EvtD0ToKpipipi::barrier(
double l,
double sa,
double sb,
double sc,
double r)
const
880 double q = Qabcs(sa,sb,sc);
889 F = sqrt((2*z)/(1+z));
892 F = sqrt((13*z*z)/(9+3*z+z*z));
896void EvtD0ToKpipipi::calt1(
double daug1[],
double daug2[],
double t1[])
const
900 for(
int i=0; i!=4; i++){
901 pa[i] = daug1[i] + daug2[i];
902 qa[i] = daug1[i] - daug2[i];
906 for(
int i=0; i!=4; i++){
907 t1[i] = qa[i] - pq/p*pa[i];
910void EvtD0ToKpipipi::calt2(
double daug1[],
double daug2[],
double t2[][4])
const
914 calt1(daug1,daug2,t1);
916 for(
int i=0; i!=4; i++){
917 pa[i] = daug1[i] + daug2[i];
920 for(
int i=0; i!=4; i++){
921 for(
int j=0; j!=4; j++){
922 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")
****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
Evt3Rank3C conj(const Evt3Rank3C &t2)
double precision pisqo6 one
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)