159 {
161 if ( p->
getId() != myvpho )
162 {
163 std::cout << "Parent particle is required to be vpho for Phokhara model" << std::endl;
164 abort();
165 }
168
169 std::cout << "PHOKHARA : pi+pi- mode " << std::endl;
171 int ntrials = 0;
172 int tr_old[3];
173 tr_old[0] = (int)
maxima_.tr[0];
174 tr_old[1] = (int)
maxima_.tr[1];
175 tr_old[2] = (int)
maxima_.tr[2];
176
177 while ( ntrials < 1000000 )
178 {
179 ievent++;
181 Ar[1] = Ar_r[0];
182
183 if ( Ar[1] <=
185 {
188 }
191 {
193 GEN_1PH( 2, qqmin, qqmax, cos1min, cos1max, cos3min, cos3max );
194 }
195 else
196 {
198 GEN_2PH( 2, qqmin, cos1min, cos1max, cos2min, cos2max, cos3min, cos3max );
199 }
200
202 ( tr_old[0] + tr_old[1] + tr_old[2] ) )
203 { goto storedEvents; }
204 ntrials++;
205 }
206
207 std::cout << "FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate."
208 << std::endl;
209
210storedEvents:
211 int more = 0;
212 int numstable = 0;
213 int numparton = 0;
214 EvtId evtnumstable[100];
215 EvtVector4R p4[20];
216
217
219 {
220
223 ctes_.momenta[3][5] );
224 numstable++;
225
228 ctes_.momenta[3][6] );
229 numstable++;
230 }
232 {
233
236 ctes_.momenta[3][5] );
237 numstable++;
238
241 ctes_.momenta[3][6] );
242 numstable++;
243 }
245 {
246
249 ctes_.momenta[3][5] );
250 numstable++;
251
254 ctes_.momenta[3][6] );
255 numstable++;
256
259 ctes_.momenta[3][7] );
260 numstable++;
261
264 ctes_.momenta[3][8] );
265 numstable++;
266 }
268 {
269
272 ctes_.momenta[3][5] );
273 numstable++;
274
277 ctes_.momenta[3][6] );
278 numstable++;
279
282 ctes_.momenta[3][7] );
283 numstable++;
284
287 ctes_.momenta[3][8] );
288 numstable++;
289 }
291 {
292
295 ctes_.momenta[3][5] );
296 numstable++;
297
300 ctes_.momenta[3][6] );
301 numstable++;
302 }
304 {
305
308 ctes_.momenta[3][5] );
309 numstable++;
310
313 ctes_.momenta[3][6] );
314 numstable++;
315 }
317 {
318
321 ctes_.momenta[3][5] );
322 numstable++;
323
326 ctes_.momenta[3][6] );
327 numstable++;
328 }
330 {
331
334 ctes_.momenta[3][5] );
335 numstable++;
336
339 ctes_.momenta[3][6] );
340 numstable++;
341 }
343 {
344
347 ctes_.momenta[3][5] );
348 numstable++;
349
352 ctes_.momenta[3][6] );
353 numstable++;
354
357 ctes_.momenta[3][7] );
358 numstable++;
359 }
361 {
362
365 ctes_.momenta[3][7] );
366 numstable++;
367
370 ctes_.momenta[3][8] );
371 numstable++;
372
375 ctes_.momenta[3][9] );
376 numstable++;
377
380 ctes_.momenta[3][10] );
381 numstable++;
382 }
383
384
387 ctes_.momenta[3][2] );
388 numstable++;
389 if (
ctes_.momenta[0][3] != 0 )
390 {
393 ctes_.momenta[3][3] );
394 numstable++;
395 }
396
398 more = ( channel != -1 );
399 if ( more )
400 {
401 std::cout << "Existence of mode " << channel
402 << " in exclusive decay list has the same final state as this one" << std::endl;
403 abort();
404 }
405
407
408
409 int ndaugFound = 0;
410 EvtVector4R SUMP4( 0, 0, 0, 0 );
411 for ( int i = 0; i < numstable; i++ )
412 {
414 ndaugFound++;
415 }
416 if ( ndaugFound == 0 )
417 {
418 report(
ERROR,
"EvtGen" ) <<
"Phokhara has failed to do a decay ";
420 << endl;
421 assert( 0 );
422 }
423
424 nevtgen++;
425 return;
426}
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)