23#include "RooComplex.h"
49 double lamb(
double a,
double b,
double c);
63 double m2=(_pd[0]+_pd[1]).mass2();
64 double m=(_pd[0]+_pd[1]).
mass();
69 double coshel_pi = pi_rhocms.
dot(etap_rhocms)/pi_rhocms.
d3mag()/etap_rhocms.
d3mag();
74 double ang_part = 1-coshel_pi*coshel_pi;
78 double Mrho = 7.72929e-01;
79 double Grho = 1.50184e-01;
80 double delta = 1.58745e-03;
81 double argdelta=6.25729e+00;
82 double delta2= 2.58505e-01;
83 double argdelta2=3.28230e+00;
84 double Eetap=0.000000;
86 double Momega = 0.78265;
87 double Gomega = 0.00849;
91 double PI = 3.14159265;
92 double mpi=0.13957018;
96 if(m<0.95778) kgamma = (0.95778*0.95778-m*m)/(2*0.95778);
98 if(m>2*
mpi) qpim = sqrt(0.25*m*m - pow(
mpi,2));
100 double qpimrho = sqrt(0.25*Mrho*Mrho - pow(
mpi,2));
101 double qpimrhop = sqrt(0.25*Mrhop*Mrhop - pow(
mpi,2));
103 double hm = (2./
PI)*(qpim/m)*log((m+2*qpim)/(2*
mpi));
105 double hmrho = (2./
PI)*(qpimrho/Mrho)*log((Mrho+2*qpimrho)/(2.*
mpi));
106 double hmrhop = (2./
PI)*(qpimrhop/Mrhop)*log((Mrhop+2*qpimrhop)/(2.*
mpi));
108 double d=(3./
PI)*(
mpi*
mpi/pow(qpimrho,2))*log((Mrho+2*qpimrho)/(2*
mpi))+(Mrho/(2*
PI*qpimrho))-((
mpi*
mpi*Mrho)/(
PI*pow(qpimrho,3)));
109 double drhop=(3./
PI)*(
mpi*
mpi/pow(qpimrhop,2))*log((Mrhop+2*qpimrhop)/(2*
mpi))+(Mrhop/(2*
PI*qpimrhop))-((
mpi*
mpi*Mrhop)/(
PI*pow(qpimrhop,3)));
111 double dhds = hmrho*(pow(8*pow(qpimrho,2),-1)-pow(2*Mrho*Mrho,-1))+pow(2*
PI*Mrho*Mrho,-1);
112 double dhdsrhop = hmrhop*(pow(8*pow(qpimrhop,2),-1)-pow(2*Mrhop*Mrhop,-1))+pow(2*
PI*Mrhop*Mrhop,-1);
114 double fm2 = Grho*(Mrho*Mrho/pow(qpimrho,3))*(qpim*qpim*(hm-hmrho)+(Mrho*Mrho-m*m)*qpimrho*qpimrho*(dhds));
115 double fm2rhop = Grhop*(Mrhop*Mrhop/pow(qpimrhop,3))*(qpim*qpim*(hm-hmrhop)+(Mrhop*Mrhop-m*m)*qpimrhop*qpimrhop*(dhdsrhop));
117 double Grhom = Grho*pow((qpim/qpimrho),3)*(Mrho/m);
118 double Grhopm = Grhop*pow((qpim/qpimrhop),3)*(Mrhop/m);
120 double coefficient = (1./(48*
PI*
PI*
PI))*pow(kgamma,2)*pow(qpim,2);
121 double coe1= pow((2*sqrt(48*
PI*pow(Mrho,-4))),2);
123 RooComplex denomGrhom(Mrho*Mrho-m*m+fm2,-1*Mrho*Grhom);
124 RooComplex
real(Mrho*Mrho*(1+d*Grho/Mrho),0);
125 RooComplex BWrho=
real/denomGrhom;
127 RooComplex denomBWomega(Momega*Momega-m*m,-Momega*Gomega);
128 RooComplex real1(Momega*Momega,0);
129 RooComplex BWomega = real1/denomBWomega;
131 RooComplex part2=BWrho*cdelta*BWomega*(m*m)/(Momega*Momega);
133 RooComplex denomGrhopm(Mrhop*Mrhop-m*m+fm2rhop,-1*Mrhop*Grhopm);
134 RooComplex realpm(Mrhop*Mrhop*(1+drhop*Grhop/Mrhop),0);
135 RooComplex BWrhop = realpm/denomGrhopm;
136 RooComplex cdelta2(delta2*
cos(argdelta2),delta2*
sin(argdelta2));
137 RooComplex denom(delta2*
cos(argdelta2)+1.0,delta2*
sin(argdelta2));
138 RooComplex part3=cdelta2*BWrhop;
140 RooComplex eof(Eetap,0);
141 RooComplex amp=(( BWrho* (cdelta*BWomega*(m*m)/(Momega*Momega)+1.0) + cdelta2*BWrhop)/(cdelta2+1)*sqrt(coe1)+ eof);
143 if(
flag==0) total=coefficient* amp.abs2();
146 else if(
flag==1) total=coefficient*coe1* (BWrho/(cdelta2+1)).abs2();
149 else if(
flag==2) total=coefficient*coe1* (part2/(cdelta2+1)).abs2();
152 else if(
flag==3) total=coefficient*coe1* (part3/(cdelta2+1)).abs2();
156 if(ang_on) amp2 = total*ang_part;
176 return Rho2pipi.
amps(xbd);
185 return tmp.
amps(xbd);
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
double sin(const BesAngle a)
double cos(const BesAngle a)
EvtVector4R GetDaugMomCM(int i)
double AmplitudeSquare_p()
double dot(const EvtVector4R &v2) const
angular_rho2(EvtVector4R pd1, EvtVector4R pd2, EvtVector4R pd3, bool type_switch)
double lamb(double a, double b, double c)