187 {
189 if(p->
getId()!=myvpho) {std::cout<<
"Parent particle is required to be vpho for Phokhara model"<<std::endl;abort();}
192 std::cout<<"PHOKHARA : nnbar mode "<<std::endl;
193
194
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 std::cout <<"FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate." <<std::endl;
228
229 storedEvents:
230 int more=0;
231 int numstable=0;
232 int numparton=0;
233 EvtId evtnumstable[100];
235
236
238
241 numstable++;
242
245 numstable++;
246 }
248
251 numstable++;
252
255 numstable++;
256 }
258
261 numstable++;
262
265 numstable++;
266
269 numstable++;
270
273 numstable++;
274 }
276
279 numstable++;
280
283 numstable++;
284
287 numstable++;
288
291 numstable++;
292 }
294
297 numstable++;
298
301 numstable++;
302 }
304
307 numstable++;
308
311 numstable++;
312 }
314
317 numstable++;
318
321 numstable++;
322 }
324
327 numstable++;
328
331 numstable++;
332 }
334
337 numstable++;
338
341 numstable++;
342
345 numstable++;
346 }
348
351 numstable++;
352
355 numstable++;
356
359 numstable++;
360
363 numstable++;
364 }
365
366
369 numstable++;
370 if(
ctes_.momenta[0][3] != 0 )
371 {
374 numstable++;
375 }
376
378 more=(channel!=-1);
379 if(more) {std::cout<<"Existence of mode "<<channel<<" in exclusive decay list has the same final state as this one"<<std::endl;abort(); }
380
382
383
384 int ndaugFound=0;
386 for(int i=0;i<numstable;i++){
388 ndaugFound++;
389 }
390 if ( ndaugFound == 0 ) {
391 report(
ERROR,
"EvtGen") <<
"Phokhara has failed to do a decay ";
393 assert(0);
394 }
395
396 nevtgen++;
397 return ;
398
399}
#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)
void set(int i, double d)