60 {
61
63
65 EvtVector4R pv, ps, ppr;
66
72
73
74 EvtHelSys angles( ppr, pv );
75 double theta = angles.getHelAng( 1 );
76 double phi = angles.getHelAng( 2 );
77 double gamma = 0;
78
79
80
81
82
87 double F33 = -F00;
88 double F32 = -F01;
89 double F30 = -F03;
90 double F10 = F01;
91 double F23 = -F10;
92 double F22 = -F11;
93
94
95
96
97
98 int j1, j2, j3;
99 for ( j1 = 0; j1 <= 2; )
100 {
101 for ( j2 = 0; j2 <= 3; )
102 {
103 for ( j3 = 0; j3 <= 3; )
104 {
105 vertex( j1, j2, j3, 0.0 );
106 j3++;
107 }
108 j2++;
109 }
110 j1++;
111 }
112
113 vertex( 0, 0, 0,
Djmn( 1, 1, 0, phi, theta, gamma ) * F00 );
114
115 vertex( 0, 0, 1,
Djmn( 1, 1, -1, phi, theta, gamma ) * F01 );
116 vertex( 0, 0, 3,
Djmn( 1, 1, 1, phi, theta, gamma ) * F03 );
117 vertex( 0, 1, 0,
Djmn( 1, 1, 1, phi, theta, gamma ) * F10 );
118 vertex( 0, 1, 1,
Djmn( 1, 1, 0, phi, theta, gamma ) * F11 );
119 vertex( 0, 2, 2,
Djmn( 1, 1, 0, phi, theta, gamma ) * F22 );
120 vertex( 0, 2, 3,
Djmn( 1, 1, -1, phi, theta, gamma ) * F23 );
121 vertex( 0, 3, 0,
Djmn( 1, 1, -1, phi, theta, gamma ) * F30 );
122 vertex( 0, 3, 2,
Djmn( 1, 1, 1, phi, theta, gamma ) * F32 );
123 vertex( 0, 3, 3,
Djmn( 1, 1, 0, phi, theta, gamma ) * F33 );
124
125 vertex( 1, 0, 0,
Djmn( 1, -1, 0, phi, theta, gamma ) * F00 );
126
127 vertex( 1, 0, 1,
Djmn( 1, -1, -1, phi, theta, gamma ) * F01 );
128 vertex( 1, 0, 3,
Djmn( 1, -1, 1, phi, theta, gamma ) * F03 );
129 vertex( 1, 1, 0,
Djmn( 1, -1, 1, phi, theta, gamma ) * F10 );
130 vertex( 1, 1, 1,
Djmn( 1, -1, 0, phi, theta, gamma ) * F11 );
131 vertex( 1, 2, 2,
Djmn( 1, -1, 0, phi, theta, gamma ) * F22 );
132 vertex( 1, 2, 3,
Djmn( 1, -1, -1, phi, theta, gamma ) * F23 );
133 vertex( 1, 3, 0,
Djmn( 1, -1, -1, phi, theta, gamma ) * F30 );
134 vertex( 1, 3, 2,
Djmn( 1, -1, 1, phi, theta, gamma ) * F32 );
135 vertex( 1, 3, 3,
Djmn( 1, -1, 0, phi, theta, gamma ) * F33 );
136
137 vertex( 2, 0, 0,
Djmn( 1, 0, 0, phi, theta, gamma ) * F00 );
138
139 vertex( 2, 0, 1,
Djmn( 1, 0, -1, phi, theta, gamma ) * F01 );
140 vertex( 2, 0, 3,
Djmn( 1, 0, 1, phi, theta, gamma ) * F03 );
141 vertex( 2, 1, 0,
Djmn( 1, 0, 1, phi, theta, gamma ) * F10 );
142 vertex( 2, 1, 1,
Djmn( 1, 0, 0, phi, theta, gamma ) * F11 );
143 vertex( 2, 2, 2,
Djmn( 1, 0, 0, phi, theta, gamma ) * F22 );
144 vertex( 2, 2, 3,
Djmn( 1, 0, -1, phi, theta, gamma ) * F23 );
145 vertex( 2, 3, 0,
Djmn( 1, 0, -1, phi, theta, gamma ) * F30 );
146 vertex( 2, 3, 2,
Djmn( 1, 0, 1, phi, theta, gamma ) * F32 );
147 vertex( 2, 3, 3,
Djmn( 1, 0, 0, phi, theta, gamma ) * F33 );
148
149 return;
150}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
**********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 &)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)