46 model_name=
"D0ToKKpi0";
62 for(
int i=0; i<4; i++){
63 for(
int j=0; j<4; j++){
75 for(
int i=0; i<4; i++){
76 for(
int j=0; j<4; j++){
77 for(
int k=0; k<4; k++){
78 for(
int l=0; l<4; l++){
79 if(i==j || i==k || i==l || j==k || j==l || k==l){
80 epsilon_uvmn.push_back(0.0);
82 if(i==0 && j==1 && k==2 && l==3) epsilon_uvmn.push_back(1.0);
83 if(i==0 && j==1 && k==3 && l==2) epsilon_uvmn.push_back(-1.0);
84 if(i==0 && j==2 && k==1 && l==3) epsilon_uvmn.push_back(-1.0);
85 if(i==0 && j==2 && k==3 && l==1) epsilon_uvmn.push_back(1.0);
86 if(i==0 && j==3 && k==1 && l==2) epsilon_uvmn.push_back(1.0);
87 if(i==0 && j==3 && k==2 && l==1) epsilon_uvmn.push_back(-1.0);
89 if(i==1 && j==0 && k==2 && l==3) epsilon_uvmn.push_back(-1.0);
90 if(i==1 && j==0 && k==3 && l==2) epsilon_uvmn.push_back(1.0);
91 if(i==1 && j==2 && k==0 && l==3) epsilon_uvmn.push_back(1.0);
92 if(i==1 && j==2 && k==3 && l==0) epsilon_uvmn.push_back(-1.0);
93 if(i==1 && j==3 && k==0 && l==2) epsilon_uvmn.push_back(-1.0);
94 if(i==1 && j==3 && k==2 && l==0) epsilon_uvmn.push_back(1.0);
96 if(i==2 && j==0 && k==1 && l==3) epsilon_uvmn.push_back(1.0);
97 if(i==2 && j==0 && k==3 && l==1) epsilon_uvmn.push_back(-1.0);
98 if(i==2 && j==1 && k==0 && l==3) epsilon_uvmn.push_back(-1.0);
99 if(i==2 && j==1 && k==3 && l==0) epsilon_uvmn.push_back(1.0);
100 if(i==2 && j==3 && k==0 && l==1) epsilon_uvmn.push_back(1.0);
101 if(i==2 && j==3 && k==1 && l==0) epsilon_uvmn.push_back(-1.0);
103 if(i==3 && j==0 && k==1 && l==2) epsilon_uvmn.push_back(-1.0);
104 if(i==3 && j==0 && k==2 && l==1) epsilon_uvmn.push_back(1.0);
105 if(i==3 && j==1 && k==0 && l==2) epsilon_uvmn.push_back(1.0);
106 if(i==3 && j==1 && k==2 && l==0) epsilon_uvmn.push_back(-1.0);
107 if(i==3 && j==2 && k==0 && l==1) epsilon_uvmn.push_back(-1.0);
108 if(i==3 && j==2 && k==1 && l==0) epsilon_uvmn.push_back(1.0);
125 m2_Pi0 = m_Pi0*m_Pi0;
135 m0_phi1020 = 1.019461;
136 w0_phi1020 = 0.004249;
181 for(
int i=0; i<_nd; i++){
185 double prob = AmplitudeSquare(charm, tagmode);
190void EvtD0ToKKpi0::setInput(
double* kap,
double* kam,
double* pi0){
191 p4_Kap.clear(); p4_Kam.clear(); p4_Pi0.clear();
192 p4_Kap.push_back(kap[0]); p4_Kam.push_back(kam[0]); p4_Pi0.push_back(pi0[0]);
193 p4_Kap.push_back(kap[1]); p4_Kam.push_back(kam[1]); p4_Pi0.push_back(pi0[1]);
194 p4_Kap.push_back(kap[2]); p4_Kam.push_back(kam[2]); p4_Pi0.push_back(pi0[2]);
195 p4_Kap.push_back(kap[3]); p4_Kam.push_back(kam[3]); p4_Pi0.push_back(pi0[3]);
198vector<double> EvtD0ToKKpi0::sum_tensor(vector<double> pa, vector<double> pb) {
199 if(pa.size()!=pb.size()){
200 cout<<
"error sum tensor"<<endl;
203 vector<double> temp; temp.clear();
204 for(
int i=0; i<pa.size(); i++){
205 double sum = pa[i] + pb[i];
211double EvtD0ToKKpi0::contract_11_0(vector<double> pa, vector<double> pb){
212 if(pa.size()!=pb.size() || pa.size()!=4) {
213 cout<<
"error contract 11->0"<<endl;
216 double temp = pa[3]*pb[3] - pa[0]*pb[0] - pa[1]*pb[1] - pa[2]*pb[2];
221vector<double> EvtD0ToKKpi0::contract_21_1(vector<double> pa, vector<double> pb){
222 if(pa.size()!=16 || pb.size()!=4) {
223 cout<<
"error contract 21->1"<<endl;
226 vector<double> temp; temp.clear();
227 for(
int i=0; i<4; i++){
229 for(
int j=0; j<4; j++){
231 sum += pa[idx]*pb[j]*g_uv[4*j+j];
239double EvtD0ToKKpi0::contract_22_0(vector<double> pa, vector<double> pb){
240 if(pa.size()!=pb.size() || pa.size()!=16) {
241 cout<<
"error contract 22->0"<<endl;
245 for(
int i=0; i<4; i++){
246 for(
int j=0; j<4; j++){
248 temp += pa[idx]*pb[idx]*g_uv[4*i+i]*g_uv[4*j+j];
255vector<double> EvtD0ToKKpi0::contract_31_2(vector<double> pa, vector<double> pb){
256 if(pa.size()!=64 || pb.size()!=4) {
257 cout<<
"error contract 31->2"<<endl;
260 vector<double> temp; temp.clear();
261 for(
int i=0; i<16; i++){
263 for(
int j=0; j<4; j++){
265 sum += pa[idx]*pb[j]*g_uv[4*j+j];
273vector<double> EvtD0ToKKpi0::contract_41_3(vector<double> pa, vector<double> pb){
274 if(pa.size()!=256|| pb.size()!=4) {
275 cout<<
"error contract 41->3"<<endl;
278 vector<double> temp; temp.clear();
279 for(
int i=0; i<64; i++){
281 for(
int j=0; j<4; j++){
283 sum += pa[idx]*pb[j]*g_uv[4*j+j];
291vector<double> EvtD0ToKKpi0::contract_42_2(vector<double> pa, vector<double> pb){
292 if(pa.size()!=256|| pb.size()!=16) {
293 cout<<
"error contract 42->2"<<endl;
296 vector<double> temp; temp.clear();
297 for(
int i=0; i<16; i++){
299 for(
int j=0; j<4; j++){
300 for(
int k=0; k<4; k++){
301 int idxa = i*16+j*4+k;
303 sum += pa[idxa] * pb[idxb] * g_uv[4*j+j] * g_uv[4*k+k];
313vector<double> EvtD0ToKKpi0::contract_22_2(vector<double> pa, vector<double> pb){
314 if(pa.size()!=16|| pb.size()!=16) {
315 cout<<
"error contract 42->2"<<endl;
318 vector<double> temp; temp.clear();
319 for(
int i=0; i<4; i++){
320 for(
int j=0; j<4; j++){
322 for(
int k=0; k<4; k++){
325 sum += pa[idxa] * pb[idxb] * g_uv[4*k+k];
368vector<double> EvtD0ToKKpi0::OrbitalTensors(vector<double> pa, vector<double> pb, vector<double> pc,
double r,
int rank)
371 if(pa.size()!=4 || pb.size()!=4 || pc.size()!=4) {
372 cout<<
"Error: pa, pb, pc"<<endl;
376 cout<<
"Error: L<0 !!!"<<endl;
381 vector<double> mr; mr.clear();
383 for(
int i=0; i<4; i++){
384 double temp = pb[i] - pc[i];
389 double msa = contract_11_0(pa, pa);
390 double msb = contract_11_0(pb, pb);
391 double msc = contract_11_0(pc, pc);
394 double top = msa + msb - msc;
395 double Q2abc = top*top/(4.0*msa) - msb;
398 double Q_0 = 0.197321f/r;
399 double Q_02 = Q_0*Q_0;
400 double Q_04 = Q_02*Q_02;
404 double Q4abc = Q2abc*Q2abc;
408 double mB1 = sqrt(2.0f/(Q2abc + Q_02));
409 double mB2 = sqrt(13.0f/(Q4abc + (3.0f*Q_02)*Q2abc + 9.0f*Q_04));
414 vector<double> proj_uv; proj_uv.clear();
415 for(
int i=0; i<4; i++){
416 for(
int j=0; j<4; j++){
418 double temp = -g_uv[idx] + pa[i]*pa[j]/msa;
419 proj_uv.push_back(temp);
426 vector<double>
t;
t.clear();
432 vector<double> t_u; t_u.clear();
433 vector<double> Bt_u; Bt_u.clear();
434 for(
int i=0; i<4; i++){
436 for(
int j=0; j<4; j++){
438 temp += -proj_uv[idx]*mr[j]*g_uv[j*4+j];
441 Bt_u.push_back(temp*mB1);
443 if(rank==1)
return Bt_u;
445 double t_u2 = contract_11_0(t_u,t_u);
447 vector<double> Bt_uv; Bt_uv.clear();
448 for(
int i=0; i<4; i++){
449 for(
int j=0; j<4; j++){
451 double temp = t_u[i]*t_u[j] + (1.0/3.0)*proj_uv[idx]*t_u2;
452 Bt_uv.push_back(temp*mB2);
455 if(rank==2)
return Bt_uv;
459 cout<<
"rank>2: please add it by yourself!!!"<<endl;
466vector<double> EvtD0ToKKpi0::ProjectionTensors(vector<double> pa,
int rank)
470 cout<<
"Error: pa"<<endl;
474 cout<<
"Error: L<0 !!!"<<endl;
478 double msa = contract_11_0(pa, pa);
481 vector<double> proj_uv; proj_uv.clear();
482 for(
int i=0; i<4; i++){
483 for(
int j=0; j<4; j++){
485 double temp = -g_uv[idx] + pa[i]*pa[j]/msa;
486 proj_uv.push_back(temp);
493 vector<double>
t;
t.clear();
502 vector<double> proj_uvmn; proj_uvmn.clear();
503 for(
int i=0; i<4; i++){
504 for(
int j=0; j<4; j++){
505 for(
int k=0; k<4; k++){
506 for(
int l=0; l<4; l++){
508 int idx1_1 = 4*i + k;
509 int idx1_2 = 4*i + l;
510 int idx1_3 = 4*i + j;
512 int idx2_1 = 4*j + l;
513 int idx2_2 = 4*j + k;
514 int idx2_3 = 4*k + l;
516 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];
517 proj_uvmn.push_back(temp);
526 cout<<
"rank>2: please add it by yourself!!!"<<endl;
531double EvtD0ToKKpi0::fundecaymomentum(
double mr2,
double m1_2,
double m2_2){
532 double mr = sqrt(mr2);
533 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;
534 double ret = sqrt(poly)/(2*mr);
541complex<double> EvtD0ToKKpi0::breitwigner(
double mx2,
double mr,
double wr)
547 double diff = mr2-mx2;
548 double denom = diff*diff + wr*wr*mr2;
554 output_x = diff/denom;
555 output_y = wr*mr/denom;
567double EvtD0ToKKpi0::h(
double m,
double q){
568 double h = 2.0/math_pi*
q/m*log((m+2.0*
q)/(2.0*mass_Pion));
572double EvtD0ToKKpi0::dh(
double m0,
double q0){
573 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);
577double EvtD0ToKKpi0::f(
double m0,
double sx,
double q0,
double q){
579 double f = m0*m0/(q0*q0*q0)*(
q*
q*(h(m,
q)-h(m0,q0))+(m0*m0-sx)*q0*q0*dh(m0,q0));
583double EvtD0ToKKpi0::d(
double m0,
double q0){
584 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);
588double EvtD0ToKKpi0::fundecaymomentum2(
double mr2,
double m1_2,
double m2_2){
589 double mr = sqrt(mr2);
590 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;
591 double ret = poly/(4.0f*mr2);
597double EvtD0ToKKpi0::wid(
double mass,
double sa,
double sb,
double sc,
double r,
int l){
601 double q = fundecaymomentum2(sa,sb,sc);
602 double q0 = fundecaymomentum2(sa0,sb,sc);
608 if(l == 1) F = sqrt((1.0+z0)/(1.0+z));
609 if(l == 2) F = sqrt((9.0+3.0*z0+z0*z0)/(9.0+3.0*z+z*z));
610 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));
611 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));
612 double t = sqrt(
q/q0);
615 for(i=0; i<(2*l+1); i++) {
618 widm *= (
mass/m*F*F);
623complex<double> EvtD0ToKKpi0::GS(
double mx2,
double mr,
double wr,
double m1_2,
double m2_2,
double r,
int l){
626 double q = fundecaymomentum(mx2, m1_2, m2_2);
627 double q0 = fundecaymomentum(mr2, m1_2, m2_2);
628 double numer = 1.0+d(mr,q0)*wr/mr;
629 double denom_real = mr2-mx2+wr*
f(mr,mx2,q0,
q);
630 double denom_imag = mr*wr*wid(mr,mx2,m1_2,m2_2,r,l);
632 double denom = denom_real*denom_real+denom_imag*denom_imag;
633 double output_x = denom_real*numer/denom;
634 double output_y = denom_imag*numer/denom;
640complex<double> EvtD0ToKKpi0::irho(
double mr2,
double m1_2,
double m2_2){
641 double mr = sqrt(mr2);
642 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;
646 ret_real = 2.0f*sqrt(poly)/(2.0f*mr2);
651 ret_imag = 2.0f*sqrt(-1.0f*poly)/(2.0f*mr2);
657complex<double> EvtD0ToKKpi0::Flatte(
double mx2,
double mr,
double g1,
double g2,
double m1a,
double m1b,
double m2a,
double m2b){
660 double diff = mr2-mx2;
666 double denom_real = diff + iws.imag();
667 double denom_imag = iws.real();
668 double denom = denom_real*denom_real+denom_imag*denom_imag;
670 double output_x = denom_real/denom;
671 double output_y = denom_imag/denom;
678complex<double> EvtD0ToKKpi0::RBW(
double mx2,
double mr,
double wr,
double m1_2,
double m2_2,
double r,
int l){
679 double mx = sqrt(mx2);
681 double denom_real = mr2-mx2;
682 double denom_imag = 0;
683 if(m1_2>0 && m2_2>0){
684 denom_imag = mr*wr*wid(mr,mx2,m1_2,m2_2,r,l);
689 double denom = denom_real*denom_real+denom_imag*denom_imag;
690 double output_x = denom_real/denom;
691 double output_y = denom_imag/denom;
697complex<double> EvtD0ToKKpi0::KPiSLass(
double mx2,
double mr,
double wr,
double a,
double r,
double R,
double phi_R,
double phi_F){
699 double mx = sqrt(mx2);
701 double q2abc = fundecaymomentum2(mx2, m2_Ka, m2_Pi0);
702 double q02abc = fundecaymomentum2(mr2, m2_Ka, m2_Pi0);
704 double qr2 = q2abc/q02abc;
706 double wid = wr*sqrt(qr2)*(mr/mx);
708 double alphaR = atan(mr*wid/(mr2 - mx2));
709 if((mr2 - mx2)<0) alphaR += math_pi;
711 double alphaF = atan(2.0*a*sqrt(q2abc)/(2.0 + a*r*q2abc));
712 if((2.0*a*sqrt(q2abc)/(2.0 + a*r*q2abc))<0) alphaF += math_pi;
714 double delta_R = phi_R + alphaR;
715 double delta_F = phi_F + alphaF;
717 double output_x =
R*
sin(delta_R)*
cos(delta_R+2.0*delta_F) +
sin(delta_F)*
cos(delta_F);
718 double output_y =
R*
sin(delta_R)*
sin(delta_R+2.0*delta_F) +
sin(delta_F)*
sin(delta_F);
725double EvtD0ToKKpi0::rho22(
double sc){
726 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,
727 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,
728 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,
729 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,
730 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,
731 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,
732 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,
733 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,
734 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,
735 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,
736 0.000103559, 0.000108812, 0.000114267, 0.000119938, 0.000125827, 0.00013194, 0.000138278, 0.000144857, 0.000151681, 0.000158752,
737 0.000166074, 0.000173663, 0.000181521, 0.000189652, 0.000198059, 0.000206761, 0.000215761, 0.000225063, 0.00023467, 0.000244599,
738 0.000254855, 0.00026544, 0.000276357, 0.000287629, 0.00029926, 0.000311253, 0.000323609, 0.000336351, 0.000349483, 0.000363009,
739 0.000376926, 0.000391264, 0.000406029, 0.000421225, 0.000436848, 0.000452921, 0.000469458, 0.000486461, 0.00050393, 0.00052187,
740 0.000540322, 0.000559278, 0.000578746, 0.00059872, 0.000619236, 0.0006403, 0.000661911, 0.000684074, 0.000706799, 0.000730127,
741 0.00075405, 0.000778569, 0.000803686, 0.000829443, 0.000855839, 0.000882879, 0.000910561, 0.000938898, 0.000967939, 0.000997674,
742 0.00102811, 0.00105923, 0.0010911, 0.0011237, 0.00115706, 0.00119117, 0.00122601, 0.00126168, 0.00129815, 0.00133543,
743 0.00137351, 0.00141242, 0.00145219, 0.00149283, 0.00153434, 0.0015767, 0.00161995, 0.00166415, 0.00170928, 0.00175534,
744 0.00180232, 0.00185028, 0.00189924, 0.00194919, 0.00200014, 0.00205207, 0.00210503, 0.0021591, 0.00221421, 0.0022704,
745 0.00232766, 0.00238602, 0.00244554, 0.00250619, 0.00256799, 0.0026309, 0.002695, 0.00276033, 0.00282689, 0.00289467,
746 0.00296367, 0.00303389, 0.00310543, 0.0031783, 0.00325244, 0.0033279, 0.0034046, 0.00348275, 0.00356229, 0.00364322,
747 0.00372555, 0.00380924, 0.00389438, 0.00398104, 0.00406914, 0.00415877, 0.00424985, 0.00434235, 0.00443651, 0.00453224,
748 0.00462954, 0.00472848, 0.00482894, 0.00493102, 0.00503483, 0.00514029, 0.00524749, 0.0053563, 0.00546675, 0.00557905,
749 0.0056931, 0.00580901, 0.0059267, 0.00604613, 0.00616735, 0.00629049, 0.00641557, 0.00654254, 0.00667142, 0.00680216,
750 0.00693472, 0.00706946, 0.00720621, 0.00734497, 0.0074858, 0.00762855, 0.00777338, 0.00792036, 0.00806957, 0.00822087,
751 0.00837426, 0.00852982, 0.0086875, 0.00884756, 0.00900991, 0.00917447, 0.00934137, 0.00951052, 0.00968194, 0.0098558,
752 0.010032, 0.0102108, 0.0103919, 0.0105754, 0.0107612, 0.0109496, 0.0111406, 0.0113343, 0.0115305, 0.0117293,
753 0.0119303, 0.0121343, 0.0123409, 0.0125502, 0.0127623, 0.0129771, 0.0131944, 0.0134145, 0.0136376, 0.0138636,
754 0.0140924, 0.0143241, 0.0145587, 0.0147959, 0.0150363, 0.0152797, 0.0155262, 0.0157758, 0.0160283, 0.0162838,
755 0.0165421, 0.016804, 0.0170691, 0.0173374, 0.0176087, 0.0178835, 0.0181612, 0.0184423, 0.0187269, 0.0190149,
756 0.0193063, 0.0196009, 0.0198991, 0.0202003, 0.0205052, 0.0208137, 0.0211259, 0.0214418, 0.0217611, 0.0220841,
757 0.0224105, 0.0227406, 0.0230746, 0.0234125, 0.0237542, 0.0240996, 0.0244486, 0.0248012, 0.025158, 0.0255188,
758 0.0258837, 0.0262527, 0.0266256, 0.0270025, 0.0273833, 0.027768, 0.0281572, 0.0285505, 0.0289483, 0.0293503,
759 0.0297564, 0.0301665, 0.0305808, 0.0309997, 0.0314231, 0.0318511, 0.0322835, 0.0327205, 0.0331616, 0.0336073,
760 0.0340576, 0.0345128, 0.0349727, 0.0354373, 0.0359066, 0.0363807, 0.0368589, 0.0373419, 0.0378302, 0.0383234,
761 0.0388218, 0.0393252, 0.0398336, 0.040347, 0.0408652, 0.041388, 0.0419165, 0.0424502, 0.0429893, 0.0435338,
762 0.0440833, 0.044638, 0.0451976, 0.0457627, 0.0463338, 0.0469103, 0.047492, 0.0480797, 0.0486729, 0.0492716,
763 0.0498757, 0.0504852, 0.0511009, 0.0517229, 0.0523503, 0.0529838, 0.0536231, 0.0542678, 0.054918, 0.0555743,
764 0.0562372, 0.0569065, 0.0575818, 0.0582634, 0.0589511, 0.0596454, 0.0603451, 0.061051, 0.0617635, 0.0624826,
765 0.0632084, 0.0639409, 0.06468, 0.0654254, 0.0661772, 0.0669346, 0.0676994, 0.0684714, 0.0692503, 0.0700354,
766 0.0708285, 0.0716277, 0.0724347, 0.0732479, 0.0740671, 0.0748947, 0.0757299, 0.0765715, 0.0774207, 0.0782771,
767 0.0791407, 0.0800119, 0.0808897, 0.0817743, 0.0826672, 0.0835684, 0.0844769, 0.0853938, 0.0863179, 0.0872493,
768 0.0881882, 0.0891349, 0.090089, 0.0910523, 0.0920236, 0.093002, 0.0939894, 0.094985, 0.0959887, 0.0970003,
769 0.0980191, 0.0990454, 0.100081, 0.101126, 0.10218, 0.103242, 0.104312, 0.105392, 0.10648, 0.107576,
770 0.10868, 0.109793, 0.110916, 0.112048, 0.113188, 0.114339, 0.115498, 0.116666, 0.117843, 0.119028,
771 0.120223, 0.121427, 0.122641, 0.123865, 0.125098, 0.126342, 0.127595, 0.128857, 0.130128, 0.131409,
772 0.132701, 0.134002, 0.135314, 0.136635, 0.137966, 0.139308, 0.14066, 0.142022, 0.143394, 0.144774,
773 0.146166, 0.14757, 0.148985, 0.15041, 0.151845, 0.153291, 0.154749, 0.156215, 0.157694, 0.159182,
774 0.160682, 0.162194, 0.163718, 0.165251, 0.166797, 0.168354, 0.169921, 0.1715, 0.17309, 0.17469,
775 0.176304, 0.177929, 0.179566, 0.181216, 0.182878, 0.184553, 0.186238, 0.187934, 0.189642, 0.191362,
776 0.193096, 0.194842, 0.196602, 0.198374, 0.200158, 0.201954, 0.203764, 0.205586, 0.207421, 0.209266,
777 0.211124, 0.212997, 0.214882, 0.216783, 0.218697, 0.220624, 0.222565, 0.224518, 0.226486, 0.228466,
778 0.230458, 0.232463, 0.234484, 0.23652, 0.238569, 0.240633, 0.242711, 0.244803, 0.246909, 0.249031,
779 0.251165, 0.253313, 0.255475, 0.257649, 0.259841, 0.262051, 0.264274, 0.266514, 0.268768, 0.271036,
780 0.273319, 0.275618, 0.277932, 0.280259, 0.282602, 0.28496, 0.287338, 0.28973, 0.292138, 0.294563,
781 0.297003, 0.299458, 0.30193, 0.304417, 0.306919, 0.309437, 0.311972, 0.314526, 0.317095, 0.319684,
782 0.322289, 0.324911, 0.327551, 0.330205, 0.332876, 0.335567, 0.338271, 0.340993, 0.343736, 0.346496,
783 0.349272, 0.352065, 0.354878, 0.35771, 0.360561, 0.363426, 0.366311, 0.369212, 0.372128, 0.375067,
784 0.378027, 0.381006, 0.384001, 0.387014, 0.39005, 0.393106, 0.396181, 0.399271, 0.402384, 0.405513,
785 0.408661, 0.41183, 0.41502, 0.418233, 0.421462, 0.424709, 0.42798, 0.43127, 0.434583, 0.437914,
786 0.441267, 0.444637, 0.448022, 0.451434, 0.454868, 0.458328, 0.461805, 0.465302, 0.468821, 0.472364,
787 0.475928, 0.47951, 0.483119, 0.486748, 0.490397, 0.494066, 0.497758, 0.501477, 0.505217, 0.508977,
788 0.512762, 0.516567, 0.520394, 0.524247, 0.528125, 0.532027, 0.535947, 0.53989, 0.543852, 0.547844,
789 0.551863, 0.555904, 0.559966, 0.56406, 0.568177, 0.572312, 0.576471, 0.580662, 0.584875, 0.58911,
790 0.593373, 0.597653, 0.601965, 0.606301, 0.610663, 0.615051, 0.619465, 0.623907, 0.62837, 0.632863,
791 0.637383, 0.641924, 0.646494, 0.651091, 0.655708, 0.660356, 0.665027, 0.669732, 0.674464, 0.679227,
792 0.684016, 0.688827, 0.693664, 0.698532, 0.703428, 0.708353, 0.713307, 0.718283, 0.72329, 0.728322,
793 0.733387, 0.738479, 0.743605, 0.748763, 0.753949, 0.759163, 0.764407, 0.769674, 0.774973, 0.780311,
794 0.78567, 0.791057, 0.796476, 0.801922, 0.8074, 0.812919, 0.818466, 0.824044 };
796 double m2 = 0.13957*0.13957;
797 double smin = (0.13957*4)*(0.13957*4);
799 int od = (sc - 0.312)/dh;
800 double sc_m = 0.312 + od*dh;
802 if(sc>=0.312 && sc<1){
803 rhouse = ((sc-sc_m)/dh)*(rho[od+1]-rho[od])+rho[od];
804 }
else if(sc<0.312 && sc>=smin){
805 rhouse = ((sc - smin)/(0.312-smin))*rho[0];
808 rhouse = sqrt(1-16*
m2/sc);
819 double mpi = 0.13957;
821 double m2 = 0.13957*0.13957;
823 rhoijx = sqrt(1.0f - (4*
m2)/
s);
826 rhoijy = sqrt((4*
m2)/
s - 1.0f);
831 double m2 = 0.493677*0.493677;
833 rhoijx = sqrt(1.0f - (4*
m2)/
s);
836 rhoijy = sqrt((4*
m2)/
s - 1.0f);
845 double m2 = 0.547862*0.547862;
847 rhoijx = sqrt(1.0f - (4*
m2)/
s);
850 rhoijy = sqrt((4*
m2)/
s - 1.0f);
855 double m_1 = 0.547862;
856 double m_2 = 0.95778;
857 double mp2 = (m_1+m_2)*(m_1+m_2);
858 double mm2 = (m_1-m_2)*(m_1-m_2);
860 rhoijx = sqrt(1.0f - mp2/
s);
863 rhoijy = sqrt(mp2/
s - 1.0f);
881 double mpi = 0.13957;
882 double m[5] = { 0.65100, 1.20360, 1.55817, 1.21000, 1.82206};
884 double g1[5] = { 0.22889,-0.55377, 0.00000,-0.39899,-0.34639};
885 double g2[5] = { 0.94128, 0.55095, 0.00000, 0.39065, 0.31503};
886 double g3[5] = { 0.36856, 0.23888, 0.55639, 0.18340, 0.18681};
887 double g4[5] = { 0.33650, 0.40907, 0.85679, 0.19906,-0.00984};
888 double g5[5] = { 0.18171,-0.17558,-0.79658,-0.00355, 0.22358};
890 double f1[5] = { 0.23399, 0.15044,-0.20545, 0.32825, 0.35412};
894 double down[5] = { 0,0,0,0,0};
895 double upreal[5] = { 0,0,0,0,0};
896 double upimag[5] = { 0,0,0,0,0};
898 for(
int k=0; k<5; k++){
904 double dm2 = m[k]*m[k]-
s;
905 if(fabs(dm2)<
eps && dm2<=0) dm2 = -
eps;
906 if(fabs(dm2)<
eps && dm2>0) dm2 =
eps;
907 upreal[k] = 1.0f/dm2;
911 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];
912 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];
916 tmp2 =
f1[j]*(1+3.92637)/(
s+3.92637);
919 tmp2 =
f1[i]*(1+3.92637)/(
s+3.92637);
921 double tmp3 = (
s-0.5*
mpi*
mpi)*(1+0.15)/(
s+0.15);
923 Kijx = (tmp1x+tmp2)*tmp3;
947complex<double> EvtD0ToKKpi0::FMTX(
double Kijx,
double Kijy,
double rhojjx,
double rhojjy,
int i,
int j){
952 double tmpx = rhojjx*Kijx - rhojjy*Kijy;
953 double tmpy = rhojjx*Kijy + rhojjy*Kijx;
955 Fijx = IMTX(i,j).real() + tmpy;
963double EvtD0ToKKpi0::FINVMTX(
double s,
double *FINVx,
double *FINVy){
965 int P[5] = { 0,1,2,3,4};
980 for(
int k=0; k<5; k++){
981 double rhokkx = rhoMTX(k,k,
s).real();
982 double rhokky = rhoMTX(k,k,
s).imag();
985 for(
int l=k; l<5; l++){
986 double Kklx = KMTX(k,l,
s).real();
987 double Kkly = KMTX(k,l,
s).imag();
995 for(
int k=0; k<5; k++){
996 for(
int l=0; l<5; l++){
997 double Fklx = FMTX(Lx[k][l],Ly[k][l],Ux[l][l],Uy[l][l],k,l).real();
998 double Fkly = FMTX(Lx[k][l],Ly[k][l],Ux[l][l],Uy[l][l],k,l).imag();
1004 for(
int k=0; k<5; k++){
1005 double tmprM = (Fx[k][k]*Fx[k][k]+Fy[k][k]*Fy[k][k]);
1007 for(
int l=k; l<5; l++){
1008 double tmprF = (Fx[l][k]*Fx[l][k]+Fy[l][k]*Fy[l][k]);
1019 for(
int l=0; l<5; l++){
1021 double tmpFx = Fx[k][l];
1022 double tmpFy = Fy[k][l];
1024 Fx[k][l] = Fx[tmpID][l];
1025 Fy[k][l] = Fy[tmpID][l];
1027 Fx[tmpID][l] = tmpFx;
1028 Fy[tmpID][l] = tmpFy;
1032 for(
int l=k+1; l<5; l++){
1033 double rFkk = Fx[k][k]*Fx[k][k] + Fy[k][k]*Fy[k][k];
1034 double Fxlk = Fx[l][k];
1035 double Fylk = Fy[l][k];
1036 double Fxkk = Fx[k][k];
1037 double Fykk = Fy[k][k];
1038 Fx[l][k] = (Fxlk*Fxkk + Fylk*Fykk)/rFkk;
1039 Fy[l][k] = (Fylk*Fxkk - Fxlk*Fykk)/rFkk;
1040 for(
int m=k+1; m<5; m++){
1041 Fx[l][m] = Fx[l][m] - (Fx[l][k]*Fx[k][m] - Fy[l][k]*Fy[k][m]);
1042 Fy[l][m] = Fy[l][m] - (Fx[l][k]*Fy[k][m] + Fy[l][k]*Fx[k][m]);
1047 for(
int k=0; k<5; k++){
1048 for(
int l=0; l<5 ;l++){
1052 Ux[k][k] = Fx[k][k];
1053 Uy[k][k] = Fy[k][k];
1056 Lx[k][l] = Fx[k][l];
1057 Ly[k][l] = Fy[k][l];
1062 Ux[k][l] = Fx[k][l];
1063 Uy[k][l] = Fy[k][l];
1071 for(
int k=0; k<5; k++){
1076 double rUkk = Ux[k][k]*Ux[k][k] + Uy[k][k]*Uy[k][k];
1077 UIx[k][k] = Ux[k][k]/rUkk;
1078 UIy[k][k] = -1.0f * Uy[k][k]/rUkk ;
1080 for(
int l=(k+1); l<5; l++){
1087 for(
int l=(k-1); l>=0; l--){
1092 for(
int m=l+1; m<=k; m++){
1094 double sx_tmp = sx + Ux[l][m]*UIx[m][k] - Uy[l][m]*UIy[m][k];
1095 c_sx = (sx_tmp - sx) - (Ux[l][m]*UIx[m][k] - Uy[l][m]*UIy[m][k]);
1099 double sy_tmp = sy + Ux[l][m]*UIy[m][k] + Uy[l][m]*UIx[m][k];
1100 c_sy = (sy_tmp - sy) - (Ux[l][m]*UIy[m][k] + Uy[l][m]*UIx[m][k]);
1103 UIx[l][k] = -1.0f * (UIx[l][l]*sx - UIy[l][l]*sy);
1104 UIy[l][k] = -1.0f * (UIy[l][l]*sx + UIx[l][l]*sy);
1107 for(
int l=k+1; l<5; l++){
1112 for(
int m=k; m<l; m++){
1114 double sx_tmp = sx + Lx[l][m]*LIx[m][k] - Ly[l][m]*LIy[m][k];
1115 c_sx = (sx_tmp - sx) - (Lx[l][m]*LIx[m][k] - Ly[l][m]*LIy[m][k]);
1119 double sy_tmp = sy + Lx[l][m]*LIy[m][k] + Ly[l][m]*LIx[m][k];
1120 c_sy = (sy_tmp - sy) - (Lx[l][m]*LIy[m][k] + Ly[l][m]*LIx[m][k]);
1123 LIx[l][k] = -1.0f * sx;
1124 LIy[l][k] = -1.0f * sy;
1128 for(
int m=0; m<5; m++){
1133 for(
int k=0; k<5; k++){
1134 for(
int l=0; l<5; l++){
1136 if(
P[l] == m) Plm = 1;
1138 resX = resX - c_resX;
1139 double resX_tmp = resX + (UIx[0][k]*LIx[k][l] - UIy[0][k]*LIy[k][l])*Plm;
1140 c_resX = (resX_tmp - resX) - ((UIx[0][k]*LIx[k][l] - UIy[0][k]*LIy[k][l])*Plm);
1143 resY = resY - c_resY;
1144 double resY_tmp = resY + (UIx[0][k]*LIy[k][l] + UIy[0][k]*LIx[k][l])*Plm;
1145 c_resY = (resY_tmp - resY) - ((UIx[0][k]*LIy[k][l] + UIy[0][k]*LIx[k][l])*Plm);
1161 double m[5] = { 0.65100, 1.20360, 1.55817, 1.21000, 1.82206};
1169 double dm2 = m[
ID]*m[
ID]-
s;
1171 if(fabs(dm2)<
eps && dm2<=0) dm2 = -
eps;
1172 if(fabs(dm2)<
eps && dm2>0) dm2 =
eps;
1186 double FINVx[5] = {0,0,0,0,0};
1187 double FINVy[5] = {0,0,0,0,0};
1189 double tmpFLAG = FINVMTX(sa,FINVx,FINVy);
1192 double g[5][5] = {{ 0.22889,-0.55377, 0.00000,-0.39899,-0.34639},
1193 { 0.94128, 0.55095, 0.00000, 0.39065, 0.31503},
1194 { 0.36856, 0.23888, 0.55639, 0.18340, 0.18681},
1195 { 0.33650, 0.40907, 0.85679, 0.19906,-0.00984},
1196 { 0.18171,-0.17558,-0.79658,-0.00355, 0.22358}};
1201 double Plx = PVTR(l,sa).real();
1202 double Ply = PVTR(l,sa).imag();
1203 for(
int j=0; j<5; j++){
1204 resx = resx - c_resx;
1205 double resx_tmp = resx + (FINVx[j]*g[l][j]*Plx - FINVy[j]*g[l][j]*Ply);
1206 c_resx = (resx_tmp - resx) - (FINVx[j]*g[l][j]*Plx - FINVy[j]*g[l][j]*Ply);
1209 resy = resy - c_resy;
1210 double resy_tmp = resy + (FINVx[j]*g[l][j]*Ply + FINVy[j]*g[l][j]*Plx);
1211 c_resy = (resy_tmp - resy) - (FINVx[j]*g[l][j]*Ply + FINVy[j]*g[l][j]*Plx);
1220 if(fabs(ds)<
eps && ds<=0) ds = -
eps;
1221 if(fabs(ds)<
eps && ds>0) ds =
eps;
1222 double tmp = (1-s0)/ds;
1223 outputx = FINVx[idx]*tmp;
1224 outputy = FINVy[idx]*tmp;
1232 return Amp(p4_Kap, p4_Kam, p4_Pi0);
1236 vector<double> cpKap; cpKap.clear();
1237 vector<double> cpKam; cpKam.clear();
1238 vector<double> cpPi0; cpPi0.clear();
1240 cpKap.push_back(-p4_Kam[0]); cpKam.push_back(-p4_Kap[0]); cpPi0.push_back(-p4_Pi0[0]);
1241 cpKap.push_back(-p4_Kam[1]); cpKam.push_back(-p4_Kap[1]); cpPi0.push_back(-p4_Pi0[1]);
1242 cpKap.push_back(-p4_Kam[2]); cpKam.push_back(-p4_Kap[2]); cpPi0.push_back(-p4_Pi0[2]);
1243 cpKap.push_back( p4_Kam[3]); cpKam.push_back( p4_Kap[3]); cpPi0.push_back( p4_Pi0[3]);
1245 return (-1.0)*Amp(cpKap, cpKam, cpPi0);
1249complex<double> EvtD0ToKKpi0::Amp(vector<double> Kap, vector<double> Kam, vector<double>
Pi0)
1252 if(fitpara.size()!=5) {
1253 cout<<
"Error!!! number of para: "<<fitpara.size()<<endl;
1257 vector<double> KapKam; KapKam.clear();
1258 vector<double> KapPi0; KapPi0.clear();
1259 vector<double> KamPi0; KamPi0.clear();
1261 KapKam = sum_tensor(Kap, Kam);
1262 KapPi0 = sum_tensor(Kap,
Pi0);
1263 KamPi0 = sum_tensor(Kam,
Pi0);
1265 vector<double> D0; D0.clear();
1266 D0 = sum_tensor(KapKam,
Pi0);
1268 double M2_KapKam = contract_11_0(KapKam, KapKam);
1269 double M2_KapPi0 = contract_11_0(KapPi0, KapPi0);
1270 double M2_KamPi0 = contract_11_0(KamPi0, KamPi0);
1272 double M2_D0 = contract_11_0(D0, D0);
1274 complex<double> RBW_Kst892_p = RBW(M2_KapPi0, m0_Kst892, w0_Kst892, m2_Ka, m2_Pi0, rRes, 1);
1275 complex<double> RBW_Kst892_m = RBW(M2_KamPi0, m0_Kst892, w0_Kst892, m2_Ka, m2_Pi0, rRes, 1);
1276 complex<double> RBW_Kst1410_m = RBW(M2_KamPi0, m0_Kst1410, w0_Kst1410, m2_Ka, m2_Pi0, rRes, 1);
1278 complex<double> RBW_phi1020 = RBW(M2_KapKam, m0_phi1020, w0_phi1020,-1, -1,-1,-1);
1280 complex<double> KpPi0S_Lass = KPiSLass(M2_KapPi0, m0_K01430, w0_K01430, a_lass, r_lass, 0.187955, 1.82603, -0.10329550);
1281 complex<double> FT_f0980 = Flatte(M2_KapKam, m0_f0980, g1_f0980, g2_f0980, m_Pi, m_Pi, m_Ka, m_Ka);
1284 vector<double> T1_KapKam; T1_KapKam.clear();
1285 vector<double> T1_KapPi0; T1_KapPi0.clear();
1286 vector<double> T1_KamPi0; T1_KamPi0.clear();
1288 T1_KapKam = OrbitalTensors(KapKam, Kap, Kam, rRes, 1);
1289 T1_KapPi0 = OrbitalTensors(KapPi0, Kap,
Pi0, rRes, 1);
1290 T1_KamPi0 = OrbitalTensors(KamPi0, Kam,
Pi0, rRes, 1);
1292 vector<double> T2_KapKam; T2_KapKam.clear();
1294 T2_KapKam = OrbitalTensors(KapKam, Kap, Kam, rRes, 2);
1297 vector<double> T1_KapKamPi0; T1_KapKamPi0.clear();
1298 vector<double> T1_KapPi0Kam; T1_KapPi0Kam.clear();
1299 vector<double> T1_KamPi0Kap; T1_KamPi0Kap.clear();
1301 T1_KapKamPi0 = OrbitalTensors(D0, KapKam,
Pi0, rD, 1);
1302 T1_KapPi0Kam = OrbitalTensors(D0, KapPi0, Kam, rD, 1);
1303 T1_KamPi0Kap = OrbitalTensors(D0, KamPi0, Kap, rD, 1);
1305 vector<double> T2_KapKamPi0; T2_KapKamPi0.clear();
1307 T2_KapKamPi0 = OrbitalTensors(D0, KapKam,
Pi0, rD, 2);
1313 double SF_VpPm = contract_11_0(T1_KapPi0Kam, T1_KapPi0);
1314 amplitude += fitpara[0]*(SF_VpPm*RBW_Kst892_p);
1316 double SF_VmPp = contract_11_0(T1_KamPi0Kap, T1_KamPi0);
1317 amplitude += fitpara[1]*(SF_VmPp*RBW_Kst892_m);
1319 double SF_VzPz = contract_11_0(T1_KapKamPi0, T1_KapKam);
1320 amplitude += fitpara[2]*(SF_VzPz*RBW_phi1020);
1322 amplitude += fitpara[3]*(SF_VmPp*RBW_Kst1410_m);
1325 amplitude += fitpara[4]*KpPi0S_Lass;
1332int EvtD0ToKKpi0::CalAmp()
1334 m_AmpD0 = CalD0Amp();
1335 m_AmpDb = CalDbAmp();
1341 double temp =
x.real()*
x.real() +
x.imag()*
x.imag();
1347 double temp = 2*(
x.real()*
y.real() +
x.imag()*
y.imag());
1353 double temp = atan(
x.imag()/
x.real());
1354 if(
x.real()<0) temp=temp+
PI;
1357double EvtD0ToKKpi0::Get_strongPhase()
1359 double temp = arg(m_AmpD0) - arg(m_AmpDb);
1369double EvtD0ToKKpi0::AmplitudeSquare(
int charm,
int tagmode){
1371 EvtVector4R dp1=GetDaugMomLab(0),dp2=GetDaugMomLab(1),dp3=GetDaugMomLab(2);
1374 double emp =
mp.
get(0);
1381 double p4kp[4], p4km[4], p4pi0[4];
1382 for(
int i=0; i<3; i++){
1383 p4kp[i] =dp1bst.
get(i+1);
1384 p4km[i] =dp2bst.
get(i+1);
1385 p4pi0[i]=dp3bst.
get(i+1);
1388 p4kp[3] =dp1bst.
get(0);
1389 p4km[3] =dp2bst.
get(0);
1390 p4pi0[3]=dp3bst.
get(0);
1392 setInput(p4kp, p4km, p4pi0);
1397 ampD0 = Get_AmpD0();
1398 ampDb = Get_AmpDb();
1400 ampD0 = Get_AmpDb();
1401 ampDb = Get_AmpD0();
1404 double ampsq = 1e-20;
1405 double r_tag = 0, R_tag = 0, delta_tag = 0;
1407 if (tagmode==1||tagmode==2||tagmode==3) {
1411 delta_tag = 192.1/180.0*3.1415926;
1412 }
else if(tagmode == 2){
1415 delta_tag = 196.0/180.0*3.1415926;
1416 }
else if(tagmode == 3){
1419 delta_tag = 161.0/180.0*3.1415926;
1423 ampsq = mag2(ampD0_part1) + r_tag*r_tag*(1-R_tag*R_tag)*(mag2(ampDb));
1425 ampsq = mag2(ampD0);
1428 return (ampsq <= 0) ? 1e-20 : ampsq;
double sin(const BesAngle a)
double cos(const BesAngle a)
double P(RecMdcKalTrack *trk)
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
EvtTensor3C eps(const EvtVector3R &v)
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per saves r n generator level $ !Flag for chat level in output
****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)
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)