188 {
190 if(p->
getId()!=myvpho) {std::cout<<
"Parent particle is required to be vpho for Phokhara model"<<std::endl;abort();}
193
194 std::cout<<"PHOKHARA : pi+pi- mode "<<std::endl;
196 int ntrials = 0;
197 int tr_old[3];
198 tr_old[0] = (int)
maxima_.tr[0];
199 tr_old[1] = (int)
maxima_.tr[1];
200 tr_old[2] = (int)
maxima_.tr[2];
201
202 while( ntrials < 1000000)
203 {
204 ievent++;
206 Ar[1] = Ar_r[0];
207
211 }else
214 GEN_1PH(2,qqmin,qqmax,cos1min,cos1max,cos3min,cos3max);
215 }
216 else {
218 GEN_2PH(2,qqmin,cos1min,cos1max,cos2min,cos2max,cos3min,cos3max);
219 }
220
222 {
223 goto storedEvents;
224 }
225 ntrials ++;
226 }
227
228 std::cout <<"FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate." <<std::endl;
229
230 storedEvents:
231 int more=0;
232 int numstable=0;
233 int numparton=0;
234 EvtId evtnumstable[100];
236
237
239
242 numstable++;
243
246 numstable++;
247 }
249
252 numstable++;
253
256 numstable++;
257 }
259
262 numstable++;
263
266 numstable++;
267
270 numstable++;
271
274 numstable++;
275 }
277
280 numstable++;
281
284 numstable++;
285
288 numstable++;
289
292 numstable++;
293 }
295
298 numstable++;
299
302 numstable++;
303 }
305
308 numstable++;
309
312 numstable++;
313 }
315
318 numstable++;
319
322 numstable++;
323 }
325
328 numstable++;
329
332 numstable++;
333 }
335
338 numstable++;
339
342 numstable++;
343
346 numstable++;
347 }
349
352 numstable++;
353
356 numstable++;
357
360 numstable++;
361
364 numstable++;
365 }
366
367
370 numstable++;
371 if(
ctes_.momenta[0][3] != 0 )
372 {
375 numstable++;
376 }
377
379 more=(channel!=-1);
380 if(more) {std::cout<<"Existence of mode "<<channel<<" in exclusive decay list has the same final state as this one"<<std::endl;abort(); }
381
383
384
385 int ndaugFound=0;
387 for(int i=0;i<numstable;i++){
389 ndaugFound++;
390 }
391 if ( ndaugFound == 0 ) {
392 report(
ERROR,
"EvtGen") <<
"Phokhara has failed to do a decay ";
394 assert(0);
395 }
396
397 nevtgen++;
398 return ;
399
400}
#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)
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)
double double double * p4