56 {
57
59
61 EvtVector4R pv, ps, ppr;
62
68
69
70 EvtHelSys angles( ppr, pv );
71 double theta = angles.getHelAng( 1 );
72 double phi = angles.getHelAng( 2 );
73 double gamma = 0;
74 double costheta =
cos( theta );
75
76
78 else
79 {
83 double c1 = pow( pv.
d3mag(), 2.0 );
84 double R = ( mass_b1 + pv.
get( 0 ) ) * ( mass_b2 + ps.
get( 0 ) );
85 u = pow( ( R - c1 ) / ( R + c1 ), 2.0 );
86 alpha = ( pow( 4 +
u, 2.0 ) -
u * pow( 2 + 3 *
u, 2.0 ) ) /
87 ( pow( 4 +
u, 2.0 ) +
u * pow( 2 + 3 *
u, 2.0 ) );
88 }
89
90 double F01 = sqrt( ( 1 +
alpha ) / 2 );
91 double F00 = sqrt( ( 1 -
alpha ) / 4 );
92 double F10 = F01;
93 double F11 = F00;
94
95 vertex( 0, 0, 0,
Djmn( 1, 1, 0, phi, theta, gamma ) * F00 );
96
97 vertex( 0, 0, 1,
Djmn( 1, 1, 1, phi, theta, gamma ) * F01 );
98 vertex( 0, 1, 0,
Djmn( 1, 1, -1, phi, theta, gamma ) * F10 );
99 vertex( 0, 1, 1,
Djmn( 1, 1, 0, phi, theta, gamma ) * F11 );
100 vertex( 1, 0, 0,
Djmn( 1, -1, 0, phi, theta, gamma ) * F00 );
101
102 vertex( 1, 0, 1,
Djmn( 1, -1, 1, phi, theta, gamma ) * F01 );
103 vertex( 1, 1, 0,
Djmn( 1, -1, -1, phi, theta, gamma ) * F10 );
104 vertex( 1, 1, 1,
Djmn( 1, -1, 0, phi, theta, gamma ) * F11 );
105 vertex( 2, 0, 0,
Djmn( 1, 0, 0, phi, theta, gamma ) * F00 );
106
107 vertex( 2, 0, 1,
Djmn( 1, 0, 1, phi, theta, gamma ) * F01 );
108 vertex( 2, 1, 0,
Djmn( 1, 0, -1, phi, theta, gamma ) * F10 );
109 vertex( 2, 1, 1,
Djmn( 1, 0, 0, phi, theta, gamma ) * F11 );
110
111 return;
112}
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)