161 {
163 if ( p->
getId() != myvpho )
164 {
165 std::cout << "Parent particle is required to be vpho for Phokhara model" << std::endl;
166 abort();
167 }
170 std::cout << "PHOKHARA : pi+pi-pi0 mode " << std::endl;
171
173 int ntrials = 0;
174 int tr_old[3];
175 tr_old[0] = (int)
maxima_.tr[0];
176 tr_old[1] = (int)
maxima_.tr[1];
177 tr_old[2] = (int)
maxima_.tr[2];
178
179 while ( ntrials < 1000000 )
180 {
181 ievent++;
183 Ar[1] = Ar_r[0];
184
185 if ( Ar[1] <=
187 {
190 }
193 {
195 GEN_1PH( 2, qqmin, qqmax, cos1min, cos1max, cos3min, cos3max );
196 }
197 else
198 {
200 GEN_2PH( 2, qqmin, cos1min, cos1max, cos2min, cos2max, cos3min, cos3max );
201 }
202
204 ( tr_old[0] + tr_old[1] + tr_old[2] ) )
205 { goto storedEvents; }
206 ntrials++;
207 }
208 std::cout << "FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate."
209 << std::endl;
210
211storedEvents:
212 int more = 0;
213 int numstable = 0;
214 int numparton = 0;
215 EvtId evtnumstable[100];
216 EvtVector4R p4[20];
217
218
220 {
221
224 ctes_.momenta[3][5] );
225 numstable++;
226
229 ctes_.momenta[3][6] );
230 numstable++;
231 }
233 {
234
237 ctes_.momenta[3][5] );
238 numstable++;
239
242 ctes_.momenta[3][6] );
243 numstable++;
244 }
246 {
247
250 ctes_.momenta[3][5] );
251 numstable++;
252
255 ctes_.momenta[3][6] );
256 numstable++;
257
260 ctes_.momenta[3][7] );
261 numstable++;
262
265 ctes_.momenta[3][8] );
266 numstable++;
267 }
269 {
270
273 ctes_.momenta[3][5] );
274 numstable++;
275
278 ctes_.momenta[3][6] );
279 numstable++;
280
283 ctes_.momenta[3][7] );
284 numstable++;
285
288 ctes_.momenta[3][8] );
289 numstable++;
290 }
292 {
293
296 ctes_.momenta[3][5] );
297 numstable++;
298
301 ctes_.momenta[3][6] );
302 numstable++;
303 }
305 {
306
309 ctes_.momenta[3][5] );
310 numstable++;
311
314 ctes_.momenta[3][6] );
315 numstable++;
316 }
318 {
319
322 ctes_.momenta[3][5] );
323 numstable++;
324
327 ctes_.momenta[3][6] );
328 numstable++;
329 }
331 {
332
335 ctes_.momenta[3][5] );
336 numstable++;
337
340 ctes_.momenta[3][6] );
341 numstable++;
342 }
344 {
345
348 ctes_.momenta[3][5] );
349 numstable++;
350
353 ctes_.momenta[3][6] );
354 numstable++;
355
358 ctes_.momenta[3][7] );
359 numstable++;
360 }
362 {
363
366 ctes_.momenta[3][7] );
367 numstable++;
368
371 ctes_.momenta[3][8] );
372 numstable++;
373
376 ctes_.momenta[3][9] );
377 numstable++;
378
381 ctes_.momenta[3][10] );
382 numstable++;
383 }
384
385
388 ctes_.momenta[3][2] );
389 numstable++;
390 if (
ctes_.momenta[0][3] != 0 )
391 {
394 ctes_.momenta[3][3] );
395 numstable++;
396 }
397
399 more = ( channel != -1 );
400 if ( more )
401 {
402 std::cout << "Existence of mode " << channel
403 << " in exclusive decay list has the same final state as this one" << std::endl;
404 abort();
405 }
406
408
409
410 int ndaugFound = 0;
411 EvtVector4R SUMP4( 0, 0, 0, 0 );
412 for ( int i = 0; i < numstable; i++ )
413 {
415 ndaugFound++;
416 }
417 if ( ndaugFound == 0 )
418 {
419 report(
ERROR,
"EvtGen" ) <<
"Phokhara has failed to do a decay ";
421 << endl;
422 assert( 0 );
423 }
424
425 nevtgen++;
426 return;
427}
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_mode(EvtParticle *p)
void init_evt(EvtParticle *p)
void set(int i, double d)