65 {
66
68
71
77
78
80 double theta=angles.getHelAng(1);
81 double phi =angles.getHelAng(2);
82 double gamma=0;
83 double costheta=
cos(theta);
84
85
90 double c1=pow(pv.
d3mag(),2.0);
91 double R=(mass_b1+pv.
get(0))*(mass_b2+ps.
get(0));
92 u=pow((R-c1)/(R+c1),2.0);
93 alpha=(pow(4+
u,2.0)-
u*pow(2+3*
u,2.0))/(pow(4+
u,2.0)+
u*pow(2+3*
u,2.0));}
94
95 double F01=sqrt((1+
alpha)/2);
96 double F00=sqrt((1-
alpha)/4);
97 double F10=F01;
98 double F11=F00;
99
100 vertex(0,0,0,
Djmn(1, 1, 0,phi,theta,gamma)*F00);
101 vertex(0,0,1,
Djmn(1, 1, 1,phi,theta,gamma)*F01);
102 vertex(0,1,0,
Djmn(1, 1,-1,phi,theta,gamma)*F10);
103 vertex(0,1,1,
Djmn(1, 1, 0,phi,theta,gamma)*F11);
104 vertex(1,0,0,
Djmn(1,-1, 0,phi,theta,gamma)*F00);
105 vertex(1,0,1,
Djmn(1,-1, 1,phi,theta,gamma)*F01);
106 vertex(1,1,0,
Djmn(1,-1,-1,phi,theta,gamma)*F10);
107 vertex(1,1,1,
Djmn(1,-1, 0,phi,theta,gamma)*F11);
108 vertex(2,0,0,
Djmn(1, 0, 0,phi,theta,gamma)*F00);
109 vertex(2,0,1,
Djmn(1, 0, 1,phi,theta,gamma)*F01);
110 vertex(2,1,0,
Djmn(1, 0,-1,phi,theta,gamma)*F10);
111 vertex(2,1,1,
Djmn(1, 0, 0,phi,theta,gamma)*F11);
112
113
114 return ;
115
116}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
double cos(const BesAngle a)
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
void vertex(const EvtComplex &)
static double getMass(EvtId i)
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)