96 {
97
98
101
103 EvtId other_b;
104 int charged( 0 );
105
106 int first_time = 0;
107 int flip = 0;
108 EvtId ds[2];
109
110
111
113 if ( tag < 0.5 )
114 {
115
117 other_b = B0;
118 }
119 else
120 {
121
123 other_b = B0B;
124 }
125
126 if ( p->
getNDaug() == 0 ) first_time = 1;
127
128 if ( first_time )
129 {
131 }
132 else
133 {
135 }
136
137 if ( !flip )
138 {
141 }
142 else
143 {
146 }
147
149
153
154 EvtComplex amp;
155
156 EvtComplex A_f, Abar_f;
157 EvtComplex A_fbar, Abar_fbar;
158 EvtComplex Apm, Apm_bar, Amp, Amp_bar;
159
160 EvtComplex Tp0, Tp0_bar, T0p, T0p_bar, Tpm, Tpm_bar, Tmp, Tmp_bar;
161 EvtComplex P1, P1_bar, P0, P0_bar;
162
168 Tpm_bar =
171 Tmp_bar =
174 P0_bar =
177 P1_bar =
179
180
181
183 {
184
185
186
187 charged = 1;
188 A_f = Tp0 + 2.0 * P1;
189 }
190
192 {
193
194
195
196 charged = 1;
197 A_f = Tp0_bar + 2.0 * P1_bar;
198 }
199
201 {
202
203
204
205 charged = 1;
206 A_f = T0p - 2.0 * P1;
207 }
208
210 {
211
212
213
214 charged = 1;
215 A_f = T0p_bar - 2.0 * P1_bar;
216 }
217
218
219
220
221 Apm = Tpm + P1 + P0;
222 Apm_bar = Tpm_bar + P1_bar + P0_bar;
223
224
225 Amp = Tmp - P1 + P0;
226 Amp_bar = Tmp_bar - P1_bar + P0;
227
229 {
230
231
232 charged = 0;
233 A_f = Apm;
234 Abar_f = Apm_bar;
235 A_fbar = Amp;
236 Abar_fbar = Amp_bar;
237 }
238
240 {
241
242
243 charged = 0;
244 A_f = Amp;
245 Abar_f = Amp_bar;
246 A_fbar = Apm;
247 Abar_fbar = Apm_bar;
248 }
249
251 {
252
253
254 charged = 0;
255 A_f = T0p + Tp0 - Tpm - Tmp - 2.0 * P0;
256 Abar_f = T0p_bar + Tp0_bar - Tpm_bar - Tmp_bar - 2.0 * P0_bar;
257 A_fbar = A_f;
258 Abar_fbar = Abar_f;
259 }
260
261 if ( charged == 0 )
262 {
263
264 if ( !flip )
265 {
266 if ( other_b == B0B )
267 {
268
271 EvtComplex( 0.0, 1.0 ) * Abar_f *
273 }
274 if ( other_b == B0 )
275 {
276
280 }
281 }
282 else
283 {
284 if ( other_b == B0B )
285 {
286
289 EvtComplex( 0.0, 1.0 ) * Abar_fbar *
291 }
292 if ( other_b == B0 )
293 {
294
298 }
299 }
300 }
301 else amp = A_f;
302
303 EvtVector4R p4_parent;
304
305 p4_parent =
v->getP4() +
s->getP4();
306
307 double norm = 1.0 /
v->getP4().d3mag();
308
309 vertex( 0, amp * norm * p4_parent * (
v->epsParent( 0 ) ) );
310 vertex( 1, amp * norm * p4_parent * (
v->epsParent( 1 ) ) );
311 vertex( 2, amp * norm * p4_parent * (
v->epsParent( 2 ) ) );
312
313 return;
314}
double sin(const BesAngle a)
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
static void OtherB(EvtParticle *p, double &t, EvtId &otherb)
void vertex(const EvtComplex &)
static EvtId chargeConj(EvtId id)
static EvtId getId(const std::string &name)
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)