162 {
164 if ( p->
getId() != myvpho )
165 {
166 std::cout << "Parent particle is required to be vpho for Phokhara model" << std::endl;
167 abort();
168 }
171
172 std::cout << "PHOKHARA : eta' gamma mode " << std::endl;
174 int ntrials = 0;
175 int tr_old[3];
176 tr_old[0] = (int)
maxima_.tr[0];
177 tr_old[1] = (int)
maxima_.tr[1];
178 tr_old[2] = (int)
maxima_.tr[2];
179
180 while ( ntrials < 1000000 )
181 {
182 ievent++;
184 Ar[1] = Ar_r[0];
185
186 if ( Ar[1] <=
188 {
191 }
194 {
196 GEN_1PH( 2, qqmin, qqmax, cos1min, cos1max, cos3min, cos3max );
197 }
198 else
199 {
201 GEN_2PH( 2, qqmin, cos1min, cos1max, cos2min, cos2max, cos3min, cos3max );
202 }
203
205 ( tr_old[0] + tr_old[1] + tr_old[2] ) )
206 { goto storedEvents; }
207 ntrials++;
208 }
209
210 std::cout << "FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate."
211 << std::endl;
212
213storedEvents:
214 int more = 0;
215 int numstable = 0;
216 int numparton = 0;
217 EvtId evtnumstable[100];
218 EvtVector4R p4[20];
219
220
222 {
223
226 ctes_.momenta[3][5] );
227 numstable++;
228
231 ctes_.momenta[3][6] );
232 numstable++;
233 }
235 {
236
239 ctes_.momenta[3][5] );
240 numstable++;
241
244 ctes_.momenta[3][6] );
245 numstable++;
246 }
248 {
249
252 ctes_.momenta[3][5] );
253 numstable++;
254
257 ctes_.momenta[3][6] );
258 numstable++;
259
262 ctes_.momenta[3][7] );
263 numstable++;
264
267 ctes_.momenta[3][8] );
268 numstable++;
269 }
271 {
272
275 ctes_.momenta[3][5] );
276 numstable++;
277
280 ctes_.momenta[3][6] );
281 numstable++;
282
285 ctes_.momenta[3][7] );
286 numstable++;
287
290 ctes_.momenta[3][8] );
291 numstable++;
292 }
294 {
295
298 ctes_.momenta[3][5] );
299 numstable++;
300
303 ctes_.momenta[3][6] );
304 numstable++;
305 }
307 {
308
311 ctes_.momenta[3][5] );
312 numstable++;
313
316 ctes_.momenta[3][6] );
317 numstable++;
318 }
320 {
321
324 ctes_.momenta[3][5] );
325 numstable++;
326
329 ctes_.momenta[3][6] );
330 numstable++;
331 }
333 {
334
337 ctes_.momenta[3][5] );
338 numstable++;
339
342 ctes_.momenta[3][6] );
343 numstable++;
344 }
346 {
347
350 ctes_.momenta[3][5] );
351 numstable++;
352
355 ctes_.momenta[3][6] );
356 numstable++;
357
360 ctes_.momenta[3][7] );
361 numstable++;
362 }
364 {
365
368 ctes_.momenta[3][7] );
369 numstable++;
370
373 ctes_.momenta[3][8] );
374 numstable++;
375
378 ctes_.momenta[3][9] );
379 numstable++;
380
383 ctes_.momenta[3][10] );
384 numstable++;
385 }
387 {
388
391 ctes_.momenta[3][5] );
392 numstable++;
393
396 ctes_.momenta[3][6] );
397 numstable++;
398 }
400 {
401
404 ctes_.momenta[3][5] );
405 numstable++;
406
409 ctes_.momenta[3][6] );
410 numstable++;
411 }
413 {
414
417 ctes_.momenta[3][5] );
418 numstable++;
419
422 ctes_.momenta[3][6] );
423 numstable++;
424 }
425
426
429 ctes_.momenta[3][2] );
430 numstable++;
431 if (
ctes_.momenta[0][3] != 0 )
432 {
435 ctes_.momenta[3][3] );
436 numstable++;
437 }
438
440 more = ( channel != -1 );
441 if ( more )
442 {
443 std::cout << "Existence of mode " << channel
444 << " in exclusive decay list has the same final state as this one" << std::endl;
445 abort();
446 }
447
449
450
451 int ndaugFound = 0;
452 EvtVector4R SUMP4( 0, 0, 0, 0 );
453 for ( int i = 0; i < numstable; i++ )
454 {
456 ndaugFound++;
457 }
458 if ( ndaugFound == 0 )
459 {
460 report(
ERROR,
"EvtGen" ) <<
"Phokhara has failed to do a decay ";
462 << endl;
463 assert( 0 );
464 }
465
466 nevtgen++;
467 return;
468}
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)