158 {
160 if ( p->
getId() != myvpho )
161 {
162 std::cout << "Parent particle is required to be vpho for Phokhara model" << std::endl;
163 abort();
164 }
167 std::cout << "PHOKHARA : ppbar mode " << std::endl;
168
170 int ntrials = 0;
171 int tr_old[3];
172 tr_old[0] = (int)
maxima_.tr[0];
173 tr_old[1] = (int)
maxima_.tr[1];
174 tr_old[2] = (int)
maxima_.tr[2];
175
176 while ( ntrials < 1000000 )
177 {
178 ievent++;
180 Ar[1] = Ar_r[0];
181
182 if ( Ar[1] <=
184 {
187 }
190 {
192 GEN_1PH( 2, qqmin, qqmax, cos1min, cos1max, cos3min, cos3max );
193 }
194 else
195 {
197 GEN_2PH( 2, qqmin, cos1min, cos1max, cos2min, cos2max, cos3min, cos3max );
198 }
199
201 ( tr_old[0] + tr_old[1] + tr_old[2] ) )
202 { goto storedEvents; }
203 ntrials++;
204 }
205 std::cout << "FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate."
206 << std::endl;
207
208storedEvents:
209 int more = 0;
210 int numstable = 0;
211 int numparton = 0;
212 EvtId evtnumstable[100];
213 EvtVector4R p4[20];
214
215
217 {
218
221 ctes_.momenta[3][5] );
222 numstable++;
223
226 ctes_.momenta[3][6] );
227 numstable++;
228 }
230 {
231
234 ctes_.momenta[3][5] );
235 numstable++;
236
239 ctes_.momenta[3][6] );
240 numstable++;
241 }
243 {
244
247 ctes_.momenta[3][5] );
248 numstable++;
249
252 ctes_.momenta[3][6] );
253 numstable++;
254
257 ctes_.momenta[3][7] );
258 numstable++;
259
262 ctes_.momenta[3][8] );
263 numstable++;
264 }
266 {
267
270 ctes_.momenta[3][5] );
271 numstable++;
272
275 ctes_.momenta[3][6] );
276 numstable++;
277
280 ctes_.momenta[3][7] );
281 numstable++;
282
285 ctes_.momenta[3][8] );
286 numstable++;
287 }
289 {
290
293 ctes_.momenta[3][5] );
294 numstable++;
295
298 ctes_.momenta[3][6] );
299 numstable++;
300 }
302 {
303
306 ctes_.momenta[3][5] );
307 numstable++;
308
311 ctes_.momenta[3][6] );
312 numstable++;
313 }
315 {
316
319 ctes_.momenta[3][5] );
320 numstable++;
321
324 ctes_.momenta[3][6] );
325 numstable++;
326 }
328 {
329
332 ctes_.momenta[3][5] );
333 numstable++;
334
337 ctes_.momenta[3][6] );
338 numstable++;
339 }
341 {
342
345 ctes_.momenta[3][5] );
346 numstable++;
347
350 ctes_.momenta[3][6] );
351 numstable++;
352
355 ctes_.momenta[3][7] );
356 numstable++;
357 }
359 {
360
363 ctes_.momenta[3][7] );
364 numstable++;
365
368 ctes_.momenta[3][8] );
369 numstable++;
370
373 ctes_.momenta[3][9] );
374 numstable++;
375
378 ctes_.momenta[3][10] );
379 numstable++;
380 }
381
382
385 ctes_.momenta[3][2] );
386 numstable++;
387 if (
ctes_.momenta[0][3] != 0 )
388 {
391 ctes_.momenta[3][3] );
392 numstable++;
393 }
394
396 more = ( channel != -1 );
397 if ( more )
398 {
399 std::cout << "Existence of mode " << channel
400 << " in exclusive decay list has the same final state as this one" << std::endl;
401 abort();
402 }
403
405
406
407 int ndaugFound = 0;
408 EvtVector4R SUMP4( 0, 0, 0, 0 );
409 for ( int i = 0; i < numstable; i++ )
410 {
412 ndaugFound++;
413 }
414 if ( ndaugFound == 0 )
415 {
416 report(
ERROR,
"EvtGen" ) <<
"Phokhara has failed to do a decay ";
418 << endl;
419 assert( 0 );
420 }
421
422 nevtgen++;
423 return;
424}
struct @053254170326070136226344307237142165176240334330 ctes_
struct @027003056066344010031101102046265032310161340072 maxima_
#define GEN_1PH(I, QQMIN, QQMAX, COS1MIN, COS1MAX, COS3MIN, COS3MAX)
#define GEN_0PH(I, QQMIN, SP, COS3MIN, COS3MAX)
#define GEN_2PH(I, QQMIN, COS1MIN, COS1MAX, COS2MIN, COS2MAX, COS3MIN, COS3MAX)
struct @366025114004024134344043225357106161032107165361 flags_
static int inChannelList(EvtId parent, int ndaug, EvtId *daugs)
static int getStdHep(EvtId id)
static EvtId evtIdFromStdHep(int stdhep)
static std::string name(EvtId i)
static EvtId getId(const std::string &name)
void makeDaughters(int ndaug, EvtId *id)
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
EvtParticle * getDaug(int i)
void init_evt(EvtParticle *p)
void init_mode(EvtParticle *p)
void set(int i, double d)