BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtPhokhara_Lambda Class Reference

#include <EvtPhokhara_Lambda.hh>

+ Inheritance diagram for EvtPhokhara_Lambda:

Public Member Functions

 EvtPhokhara_Lambda ()
 
virtual ~EvtPhokhara_Lambda ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void decay (EvtParticle *p)
 
std::string commandName ()
 
void command (std::string cmd)
 
void init ()
 
void init_mode (EvtParticle *p)
 
void init_evt (EvtParticle *p)
 
void initProbMax ()
 
int getTotalEvt ()
 
void PhokharaInit (int dummy)
 
void ExclusiveDecay (EvtParticle *p)
 
- Public Member Functions inherited from EvtDecayIncoherent
void makeDecay (EvtParticle *p)
 
virtual ~EvtDecayIncoherent ()
 
void setDaughterSpinDensity (int daughter)
 
int isDaughterSpinDensitySet (int daughter)
 
- Public Member Functions inherited from EvtDecayBase
virtual void getName (std::string &name)=0
 
virtual void decay (EvtParticle *p)=0
 
virtual void makeDecay (EvtParticle *p)=0
 
virtual EvtDecayBaseclone ()=0
 
virtual void init ()
 
virtual void initProbMax ()
 
virtual std::string commandName ()
 
virtual void command (std::string cmd)
 
double getProbMax (double prob)
 
double resetProbMax (double prob)
 
 EvtDecayBase ()
 
virtual ~EvtDecayBase ()
 
virtual bool matchingDecay (const EvtDecayBase &other) const
 
EvtId getParentId ()
 
double getBranchingFraction ()
 
void disableCheckQ ()
 
void checkQ ()
 
int getNDaug ()
 
EvtIdgetDaugs ()
 
EvtId getDaug (int i)
 
int getNArg ()
 
int getPHOTOS ()
 
void setPHOTOS ()
 
void setVerbose ()
 
void setSummary ()
 
double * getArgs ()
 
std::string * getArgsStr ()
 
double getArg (int j)
 
std::string getArgStr (int j)
 
std::string getModelName ()
 
int getDSum ()
 
int summary ()
 
int verbose ()
 
void saveDecayInfo (EvtId ipar, int ndaug, EvtId *daug, int narg, std::vector< std::string > &args, std::string name, double brfr)
 
void printSummary ()
 
void setProbMax (double prbmx)
 
void noProbMax ()
 
void checkNArg (int a1, int a2=-1, int a3=-1, int a4=-1)
 
void checkNDaug (int d1, int d2=-1)
 
void checkSpinParent (EvtSpinType::spintype sp)
 
void checkSpinDaughter (int d1, EvtSpinType::spintype sp)
 
virtual int nRealDaughters ()
 

Additional Inherited Members

- Static Public Member Functions inherited from EvtDecayBase
static void findMasses (EvtParticle *p, int ndaugs, EvtId daugs[10], double masses[10])
 
static void findMass (EvtParticle *p)
 
static double findMaxMass (EvtParticle *p)
 
- Protected Member Functions inherited from EvtDecayBase
bool daugsDecayedByParentModel ()
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 33 of file EvtPhokhara_Lambda.hh.

Constructor & Destructor Documentation

◆ EvtPhokhara_Lambda()

EvtPhokhara_Lambda::EvtPhokhara_Lambda ( )

Definition at line 68 of file EvtPhokhara_Lambda.cc.

68{}

Referenced by clone().

◆ ~EvtPhokhara_Lambda()

EvtPhokhara_Lambda::~EvtPhokhara_Lambda ( )
virtual

Definition at line 69 of file EvtPhokhara_Lambda.cc.

69 {
70 int i;
71 //the deletion of commands is really uggly!
72
73 if (nphokharadecays==0) {
74 delete [] commands;
75 commands=0;
76 return;
77 }
78
79 for(i=0;i<nphokharadecays;i++){
80 if (phokharadecays[i]==this){
81 phokharadecays[i]=phokharadecays[nphokharadecays-1];
82 nphokharadecays--;
83 if (nphokharadecays==0) {
84 delete [] commands;
85 commands=0;
86 }
87 return;
88 }
89 }
90
91 report(ERROR,"EvtGen") << "Error in destroying Phokhara model!"<<endl;
92
93}
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49

Member Function Documentation

◆ clone()

EvtDecayBase * EvtPhokhara_Lambda::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 102 of file EvtPhokhara_Lambda.cc.

102 {
103
104 return new EvtPhokhara_Lambda;
105
106}

◆ command()

void EvtPhokhara_Lambda::command ( std::string  cmd)
virtual

Reimplemented from EvtDecayBase.

Definition at line 160 of file EvtPhokhara_Lambda.cc.

160 {
161
162 if (ncommand==lcommand){
163
164 lcommand=10+2*lcommand;
165
166 std::string* newcommands=new std::string[lcommand];
167
168 int i;
169
170 for(i=0;i<ncommand;i++){
171 newcommands[i]=commands[i];
172 }
173
174 delete [] commands;
175
176 commands=newcommands;
177
178 }
179
180 commands[ncommand]=cmd;
181
182 ncommand++;
183
184}

◆ commandName()

std::string EvtPhokhara_Lambda::commandName ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 154 of file EvtPhokhara_Lambda.cc.

154 {
155
156 return std::string("PhokharaPar");
157
158}

◆ decay()

void EvtPhokhara_Lambda::decay ( EvtParticle p)
virtual

Implements EvtDecayBase.

Definition at line 188 of file EvtPhokhara_Lambda.cc.

188 {
189 bool debug=0;
190 EvtId myvpho=EvtPDL::getId("vpho");
191 if(p->getId()!=myvpho) {std::cout<<"Parent particle is required to be vpho for Phokhara model"<<std::endl;abort();}
192 if(nevtgen==0) {init_mode(p);
193 std::cout<<"PHOKHARA : Lambda anti-Lambda mode "<<std::endl;
194 }
195 else{init_evt(p);
196 if(debug)cout<<"init_evt works!"<<endl;
197 }
198 //else{init_mode(p);}
199 if(debug) {
200 std::cout<<"flags :ph0,nlo,pion,fsr,fsrnlo,ivac,FF_pion,f0_model,FF_kaon,narr_res,FF_pp,chi_sw,chi_pion,FF_Pgg,nlo2 "<<std::endl;
201 std::cout<<"= "<<flags_.ph0<<","<<flags_.nlo<<","<<flags_.pion<<","<<flags_.fsr<<","<<flags_.fsrnlo<<","<<flags_.ivac<<","<<flags_.FF_pion<<","<<flags_.f0_model<<","<<flags_.FF_kaon<<","<<flags_.narr_res<<","<<flags_.FF_pp<<","<<flags_.chi_sw<<","<<flags_.be_r<<","<<flags_.FF_Pgg<<","<<flags_.nlo2<<std::endl;
202 std::cout<<"ctes: Sp = "<<ctes_.Sp<<std::endl;
203 std::cout<<"cuts : w,q2min,q2_min_c,gmin,phot1cut,phot2cut,pi1cut,pi2cut"<<std::endl<<"= "<<cuts_.w<<","<<cuts_.q2min<<","<<cuts_.q2_min_c<<","<<cuts_.gmin<<","<<cuts_.phot1cut<<","<<cuts_.phot2cut<<","<<cuts_.pi1cut<<","<<cuts_.pi2cut<<std::endl;
204 }
205
206
207
208 int istdheppar=EvtPDL::getStdHep(p->getId());
209 int ntrials = 0;
210 int tr_old[3];
211 tr_old[0] = (int)maxima_.tr[0];
212 tr_old[1] = (int)maxima_.tr[1];
213 tr_old[2] = (int)maxima_.tr[2];
214
215 while( ntrials < 1000000)
216 {
217 ievent++;
218 RANLXDF(Ar_r,1);
219 Ar[1] = Ar_r[0];
220
221 if (Ar[1] <= (maxima_.Mmax[0]/(maxima_.Mmax[0]+maxima_.Mmax[1]+maxima_.Mmax[2]))) {
222 maxima_.count[0] = maxima_.count[0]+1.0;
223 GEN_0PH(2,qqmin,ctes_.Sp,cos3min,cos3max);
224 }else
225 if (Ar[1] <= ( (maxima_.Mmax[0]+maxima_.Mmax[1])/(maxima_.Mmax[0]+maxima_.Mmax[1]+maxima_.Mmax[2]))) {
226 maxima_.count[1] = maxima_.count[1]+1.0;
227 GEN_1PH(2,qqmin,qqmax,cos1min,cos1max,cos3min,cos3max);
228 }
229 else {
230 maxima_.count[2] = maxima_.count[2]+1.0;
231 GEN_2PH(2,qqmin,cos1min,cos1max,cos2min,cos2max,cos3min,cos3max);
232 }
233
234 if( ((int)maxima_.tr[0]+(int)maxima_.tr[1]+(int)maxima_.tr[2]) > (tr_old[0]+tr_old[1]+tr_old[2]) ) // event accepted after cuts
235 {
236 goto storedEvents;
237 }
238 ntrials ++;
239 }
240 std::cout <<"FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate." <<std::endl;
241 //----
242 storedEvents:
243 int more=0;
244 int numstable=0;
245 int numparton=0;
246 EvtId evtnumstable[100];//
247 EvtVector4R p4[20];
248
249 // except ISR photos, products depending on channel
250 if (flags_.pion == 0) { // mu+ mu-
251 // mu+
252 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-13);
253 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
254 numstable++;
255 // mu -
256 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(13);
257 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
258 numstable++;
259 }
260 if (flags_.pion == 1) { // pi+ pi-
261 // pi+
262 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
263 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
264 numstable++;
265 // pi -
266 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
267 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
268 numstable++;
269 }
270 if (flags_.pion == 2) { // pi+ pi-2pi0
271 // pi0
272 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
273 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
274 numstable++;
275 // pi0
276 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
277 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
278 numstable++;
279 // pi-
280 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
281 p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);
282 numstable++;
283 // pi +
284 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
285 p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);
286 numstable++;
287 }
288 if (flags_.pion == 3) { // 2(pi+ pi-)
289 // pi+
290 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
291 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
292 numstable++;
293 // pi-
294 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
295 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
296 numstable++;
297 // pi+
298 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
299 p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);
300 numstable++;
301 // pi -
302 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
303 p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);
304 numstable++;
305 }
306 if (flags_.pion == 4) { // ppbar
307 // pbar
308 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2212);
309 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
310 numstable++;
311 // p
312 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2212);
313 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
314 numstable++;
315 }
316 if (flags_.pion == 5) { // nnbar
317 // pbar
318 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2112);
319 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
320 numstable++;
321 // p
322 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2112);
323 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
324 numstable++;
325 }
326 if (flags_.pion == 6) { // K+ K-
327 // K+
328 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(321);
329 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
330 numstable++;
331 // K -
332 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-321);
333 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
334 numstable++;
335 }
336 if (flags_.pion == 7) { // K0K0bar
337 // Kbar
338 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(311);
339 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
340 numstable++;
341 // K0
342 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-311);
343 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
344 numstable++;
345 }
346 if (flags_.pion == 8) { // pi+ pi-pi0
347 // pi+
348 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
349 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
350 numstable++;
351 // pi-
352 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
353 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
354 numstable++;
355 // pi0
356 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
357 p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);
358 numstable++;
359 }
360 /*if (flags_.pion == 9) { //Lambda Lambdabar-> pi+ pi- ppbar
361 // pi+
362 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
363 p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);
364 numstable++;
365 // pbar
366 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2212);
367 p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);
368 numstable++;
369 // pi-
370 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
371 p4[numstable].set(ctes_.momenta[0][9],ctes_.momenta[1][9], ctes_.momenta[2][9], ctes_.momenta[3][9]);
372 numstable++;
373 // p
374 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2212);
375 p4[numstable].set(ctes_.momenta[0][10],ctes_.momenta[1][10], ctes_.momenta[2][10], ctes_.momenta[3][10]);
376 numstable++;
377 }*/
378 int LambdaDaus=0;
379 EvtId LambdaMode[100];//
380 EvtVector4R Lambdap4[20];
381 EvtVector4R ZERO(0,0,0,0);
382 EvtVector4R tmp(0,0,0,0);
383
384 if (flags_.pion == 9) { //Lambda Lambdabar-> pi+ pi- ppbar
385 // anti-Lambda0
386 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-3122);
387 p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);
388 if (debug)std::cout<<"Phokhara_Lambda: anti-Lambda0 p4[numstable] = "<<p4[numstable]<<std::endl;
389 numstable++;
390 // Lambda0
391 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(3122);
392 p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);
393 if (debug) std::cout<<"Phokhara_Lambda: Lambda0 p4[numstable] = "<<p4[numstable]<<std::endl;
394 numstable++;
395 /////Lambda Decay
396 // pi+
397 LambdaMode[LambdaDaus]=EvtPDL::evtIdFromStdHep(211);
398 Lambdap4[LambdaDaus].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);
399 if (debug) std::cout<<"Phokhara_Lambda: Pi+ p4[numstable] = "<<Lambdap4[LambdaDaus]<<std::endl;
400 ////////boost pi+ to antiLambda0 frame
401 //tmp = ZERO-p4[0];wrong calculation
402 tmp.set(p4[0].get(0),-p4[0].get(1),-p4[0].get(2),-p4[0].get(3));
403 Lambdap4[LambdaDaus] = boostTo(Lambdap4[LambdaDaus],tmp);
404 if (debug) std::cout<<"Phokhara_Lambda:Boosted Pi+ p4[numstable] = "<<Lambdap4[LambdaDaus]<<std::endl;
405 LambdaDaus++;
406 // pbar
407 LambdaMode[LambdaDaus]=EvtPDL::evtIdFromStdHep(-2212);
408 Lambdap4[LambdaDaus].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);
409 if (debug) std::cout<<"Phokhara_Lambda: pbar p4[numstable] = "<<Lambdap4[LambdaDaus]<<std::endl;
410 ////////boost pbar to antiLambda0 frame
411 //tmp = ZERO-p4[0];
412 //tmp = p4[0];
413 tmp.set(p4[0].get(0),-p4[0].get(1),-p4[0].get(2),-p4[0].get(3));
414 Lambdap4[LambdaDaus] = boostTo(Lambdap4[LambdaDaus],tmp);
415 if (debug) std::cout<<"Phokhara_Lambda:Boosted pbar p4[numstable] = "<<Lambdap4[LambdaDaus]<<std::endl;
416 LambdaDaus++;
417 // pi-
418 LambdaMode[LambdaDaus]=EvtPDL::evtIdFromStdHep(-211);
419 Lambdap4[LambdaDaus].set(ctes_.momenta[0][9],ctes_.momenta[1][9], ctes_.momenta[2][9], ctes_.momenta[3][9]);
420 if (debug) std::cout<<"Phokhara_Lambda: pi- p4[numstable] = "<<Lambdap4[LambdaDaus]<<std::endl;
421 ////////boost pi- to Lambda0 frame
422 //tmp = ZERO-p4[1];
423 //tmp = p4[1];
424 tmp.set(p4[1].get(0),-p4[1].get(1),-p4[1].get(2),-p4[1].get(3));
425 Lambdap4[LambdaDaus] = boostTo(Lambdap4[LambdaDaus],tmp);
426 if (debug) std::cout<<"Phokhara_Lambda:Boosted pi- p4[numstable] = "<<Lambdap4[LambdaDaus]<<std::endl;
427 LambdaDaus++;
428 // p
429 LambdaMode[LambdaDaus]=EvtPDL::evtIdFromStdHep(2212);
430 Lambdap4[LambdaDaus].set(ctes_.momenta[0][10],ctes_.momenta[1][10], ctes_.momenta[2][10], ctes_.momenta[3][10]);
431 if (debug) std::cout<<"Phokhara_Lambda: p p4[numstable] = "<<Lambdap4[LambdaDaus]<<std::endl;
432 ////////boost p+ to Lambda0 frame
433 //tmp = ZERO-p4[1];
434 //tmp = p4[1];
435 tmp.set(p4[1].get(0),-p4[1].get(1),-p4[1].get(2),-p4[1].get(3));
436 Lambdap4[LambdaDaus] = boostTo(Lambdap4[LambdaDaus],tmp);
437 if (debug) std::cout<<"Phokhara_Lambda:Boosted p p4[numstable] = "<<Lambdap4[LambdaDaus]<<std::endl;
438 LambdaDaus++;
439 }
440
441 // ISR gamma
442 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(22);
443 p4[numstable].set(ctes_.momenta[0][2],ctes_.momenta[1][2], ctes_.momenta[2][2], ctes_.momenta[3][2]);
444 if (debug) std::cout<<"Phokhara_Lambda: first gamma p4[numstable] = "<<p4[numstable]<<std::endl;
445 numstable++;
446 if( ctes_.momenta[0][3] != 0 ) // second photon exists
447 {
448 evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(22);
449 p4[numstable].set(ctes_.momenta[0][3],ctes_.momenta[1][3], ctes_.momenta[2][3], ctes_.momenta[3][3]);
450 if (debug) std::cout<<"Phokhara_Lambda: second gamma p4[numstable] = "<<p4[numstable]<<std::endl;
451 numstable++;
452 }
453
454 int channel=EvtDecayTable::inChannelList(p->getId(),numstable,evtnumstable);
455 more=(channel!=-1);
456 if(more) {std::cout<<"EvtPhokhara_Lambda:Existence of mode "<<channel<<" in exclusive decay list has the same final state as this one"<<std::endl;abort(); }
457
458 p->makeDaughters(numstable,evtnumstable);
459 //double weight = p->initializePhaseSpace(getNDaug(),getDaugs());
461 //std::cout<<"NextLevelDauNum==0,LambdaDaus = "<<LambdaDaus<<std::endl;
463 for(int i = 0; i< LambdaDaus;i++){
464 EvtParticle::_NextLevelId[i] = LambdaMode[i];
465 EvtParticle::_NextLevelP4[i] = Lambdap4[i];
466 }
467 }
468 int ndaugFound=0;
469 EvtVector4R SUMP4(0,0,0,0);
470 for(int i=0;i<numstable;i++){
471 p->getDaug(i)->init(evtnumstable[i],p4[i]);
472 ndaugFound++;
473 }
474 if ( ndaugFound == 0 ) {
475 report(ERROR,"EvtGen") << "Phokhara has failed to do a decay ";
476 report(ERROR,"EvtGen") << EvtPDL::name(p->getId()).c_str() << " " << p->mass()<<endl;
477 assert(0);
478 }
479 if (debug) std::cout<<"EvtPhokhara_Lambda SUMMARY: part p4"<<p->getP4Lab()<<std::endl;
480 if (debug) std::cout<<"EvtPhokhara_Lambda SUMMARY: Daug0 p4"<<p->getDaug(0)->getP4Lab()<<std::endl;
481 if (debug) std::cout<<"EvtPhokhara_Lambda SUMMARY: Daug1 p4"<<p->getDaug(1)->getP4Lab()<<std::endl;
482 if (debug) std::cout<<"EvtPhokhara_Lambda SUMMARY: Daug2 p4"<<p->getDaug(2)->getP4Lab()<<std::endl;
483
484 nevtgen++;
485 return ;
486
487}
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
struct @17 flags_
#define GEN_1PH(I, QQMIN, QQMAX, COS1MIN, COS1MAX, COS3MIN, COS3MAX)
#define RANLXDF(AR, VAL)
#define GEN_0PH(I, QQMIN, SP, COS3MIN, COS3MAX)
struct @16 maxima_
struct @10 ctes_
#define GEN_2PH(I, QQMIN, COS1MIN, COS1MAX, COS2MIN, COS2MAX, COS3MIN, COS3MAX)
struct @11 cuts_
static int inChannelList(EvtId parent, int ndaug, EvtId *daugs)
Definition: EvtId.hh:27
static int getStdHep(EvtId id)
Definition: EvtPDL.hh:56
static EvtId evtIdFromStdHep(int stdhep)
Definition: EvtPDL.cc:244
static std::string name(EvtId i)
Definition: EvtPDL.hh:64
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
void makeDaughters(int ndaug, EvtId *id)
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
EvtVector4R getP4Lab()
Definition: EvtParticle.cc:684
EvtId getId() const
Definition: EvtParticle.cc:112
static EvtId _NextLevelId[20]
Definition: EvtParticle.hh:150
static int _NextLevelDauNum
Definition: EvtParticle.hh:149
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:84
static EvtVector4R _NextLevelP4[20]
Definition: EvtParticle.hh:151
double mass() const
Definition: EvtParticle.cc:126
void init_evt(EvtParticle *p)
void init_mode(EvtParticle *p)
void set(int i, double d)
Definition: EvtVector4R.hh:183
double double double * p4
Definition: qcdloop1.h:77

◆ ExclusiveDecay()

void EvtPhokhara_Lambda::ExclusiveDecay ( EvtParticle p)

◆ getName()

void EvtPhokhara_Lambda::getName ( std::string &  name)
virtual

Implements EvtDecayBase.

Definition at line 96 of file EvtPhokhara_Lambda.cc.

96 {
97
98 model_name="PHOKHARA_LAMBDA";
99
100}

◆ getTotalEvt()

int EvtPhokhara_Lambda::getTotalEvt ( )
inline

Definition at line 52 of file EvtPhokhara_Lambda.hh.

52{return nevt;}

◆ init()

void EvtPhokhara_Lambda::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 127 of file EvtPhokhara_Lambda.cc.

127 {
128 checkNArg(0);
129
130 std::string locvp=getenv("BESEVTGENROOT");
131 system("cat $BESEVTGENROOT/share/phokhara_10.0.param>phokhara_10.0.param");
132 system("cat $BESEVTGENROOT/share/phokhara_10.0.fferr>phokhara_10.0.fferr");
133 system("cat $BESEVTGENROOT/share/phokhara_10.0.ffwarn>phokhara_10.0.ffwarn");
134
135
136 if (getParentId().isAlias()){
137
138 report(ERROR,"EvtGen") << "EvtPhokhara finds that you are decaying the"<<endl
139 << " aliased particle "
140 << EvtPDL::name(getParentId()).c_str()
141 << " with the Phokhara model"<<endl
142 << " this does not work, please modify decay table."
143 << endl;
144 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
145 ::abort();
146
147 }
148
149 store(this);
150
151}
EvtId getParentId()
Definition: EvtDecayBase.hh:60
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)

◆ init_evt()

void EvtPhokhara_Lambda::init_evt ( EvtParticle p)

Definition at line 525 of file EvtPhokhara_Lambda.cc.

525 {
526 m_pion=9;
527 // mu+mu-(0),pi+pi-(1),2pi0pi+pi-(2),
528 // 2pi+2pi-(3),ppbar(4),nnbar(5),
529 // K+K-(6),K0K0bar(7),pi+pi-pi0(8),
530 // Lamb Lambbar->pi-pi+ppbar(9)
531#include "Phokhara_init_evt.txt"
532}

Referenced by decay().

◆ init_mode()

void EvtPhokhara_Lambda::init_mode ( EvtParticle p)

Definition at line 116 of file EvtPhokhara_Lambda.cc.

116 {
117 m_pion=9;
118 // mu+mu-(0),pi+pi-(1),2pi0pi+pi-(2),
119 // 2pi+2pi-(3),ppbar(4),nnbar(5),
120 // K+K-(6),K0K0bar(7),pi+pi-pi0(8),
121 // Lamb Lambbar->pi-pi+ppbar(9)
122#include "Phokhara_init_mode.txt"
123}

Referenced by decay().

◆ initProbMax()

void EvtPhokhara_Lambda::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 109 of file EvtPhokhara_Lambda.cc.

109 {
110
111 noProbMax();
112
113}
void noProbMax()

◆ PhokharaInit()

void EvtPhokhara_Lambda::PhokharaInit ( int  dummy)

Definition at line 512 of file EvtPhokhara_Lambda.cc.

512 {
513 static int first=1;
514 if (first){
515
516 first=0;
517 //for(int i=0;i<ncommand;i++)
518 // lugive0_(commands[i].c_str(),strlen(commands[i].c_str()));
519 }
520
521}
Index first(Pair i)
Definition: EvtCyclic3.cc:195

The documentation for this class was generated from the following files: