BOSS 7.0.6
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDDalitz Class Reference

#include <EvtDDalitz.hh>

+ Inheritance diagram for EvtDDalitz:

Public Member Functions

 EvtDDalitz ()
 
virtual ~EvtDDalitz ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void init ()
 
void initProbMax ()
 
void decay (EvtParticle *p)
 
- Public Member Functions inherited from EvtDecayAmp
void makeDecay (EvtParticle *p)
 
void setWeight (double weight)
 
void vertex (const EvtComplex &amp)
 
void vertex (int i1, const EvtComplex &amp)
 
void vertex (int i1, int i2, const EvtComplex &amp)
 
void vertex (int i1, int i2, int i3, const EvtComplex &amp)
 
void vertex (int *i1, const EvtComplex &amp)
 
virtual ~EvtDecayAmp ()
 
- 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 EvtDecayAmp
EvtAmp _amp2
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 30 of file EvtDDalitz.hh.

Constructor & Destructor Documentation

◆ EvtDDalitz()

EvtDDalitz::EvtDDalitz ( )
inline

Definition at line 34 of file EvtDDalitz.hh.

34{}

Referenced by clone().

◆ ~EvtDDalitz()

EvtDDalitz::~EvtDDalitz ( )
virtual

Definition at line 36 of file EvtDDalitz.cc.

36{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDDalitz::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 45 of file EvtDDalitz.cc.

45 {
46
47 return new EvtDDalitz;
48
49}

◆ decay()

void EvtDDalitz::decay ( EvtParticle p)
virtual

Implements EvtDecayBase.

Definition at line 292 of file EvtDDalitz.cc.

292 {
293
294 //added by Lange Jan4,2000
295 static EvtId BP = EvtPDL::getId("B+");
296 static EvtId BM = EvtPDL::getId("B-");
297 static EvtId B0 = EvtPDL::getId("B0");
298 static EvtId B0B = EvtPDL::getId("anti-B0");
299 static EvtId DM=EvtPDL::getId("D-");
300 static EvtId DP=EvtPDL::getId("D+");
301 static EvtId D0=EvtPDL::getId("D0");
302 static EvtId D0B=EvtPDL::getId("anti-D0");
303 static EvtId KM=EvtPDL::getId("K-");
304 static EvtId KP=EvtPDL::getId("K+");
305 static EvtId K0=EvtPDL::getId("K0");
306 static EvtId KB=EvtPDL::getId("anti-K0");
307 static EvtId PIM=EvtPDL::getId("pi-");
308 static EvtId PIP=EvtPDL::getId("pi+");
309 static EvtId PI0=EvtPDL::getId("pi0");
310
311 double oneby2 = 0.707106782;
312
313 bool isBToDK=false;
314 if ( p -> getParent () ) {
315 std::string name1;
317
318 EvtId parId = p -> getParent()->getId ();
319 if ( ( BP == parId ) || ( BM == parId ) || ( B0 == parId ) ||
320 ( B0B == parId ) )
321 if (name1 == "BTODDALITZCPK") isBToDK=true;
322 }
323
324
325//same structure for all of these decays
326
328 EvtVector4R moms1 = p->getDaug(_d1)->getP4();
329 EvtVector4R moms2 = p->getDaug(_d2)->getP4();
330 EvtVector4R moms3 = p->getDaug(_d3)->getP4();
331
332 EvtVector4R p4_p;
333 p4_p.set(p->mass(),0.0,0.0,0.0);
334
335 EvtComplex amp(1.0,0.0);
336
337//now determine which D and which decay
338
339//data from Anjos et al, Phys.Rev.D 1993, v.48,num.1,p.56 (E691 resuls)
340//for D+ -> K- pi+ pi+, and from Adler et al, Phys.Lett. B196 (1987), 107
341//(Mark III results) for D+ -> K0bar pi+ pi0.
342 //CLEO results for D0->k-pi+pi0
343
344 if ( _flag==1) {
345
346//have a D+ -> K- pi+ pi+ decay, or charge conjugate
347//Anjos etal e691 - Phys Rev D48, 56 (1993)
348 EvtResonance DplusRes11(p4_p,moms1,moms2,0.78,-60.0,0.0498,0.89610,1);
349 EvtResonance DplusRes12(p4_p,moms3,moms1,0.78,-60.0,0.0498,0.89610,1);//K*(892)
350
351 EvtResonance DplusRes21(p4_p,moms1,moms2,0.53,132.0,0.287,1.429,0);
352 EvtResonance DplusRes22(p4_p,moms3,moms1,0.53,132.0,0.287,1.429,0);//K*(1430)
353
354 EvtResonance DplusRes31(p4_p,moms1,moms2,0.47,-51.0,0.323,1.714,1);
355 EvtResonance DplusRes32(p4_p,moms3,moms1,0.47,-51.0,0.323,1.714,1);//K*(1680)
356
357 amp = amp + oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl()) + oneby2*(DplusRes21.resAmpl() + DplusRes22.resAmpl()) + oneby2*(-DplusRes31.resAmpl()+ DplusRes32.resAmpl());
358
359 }
360
361 if ( _flag==2) {
362
363//have a D+ -> K0bar pi+ pi0 decay (daughters must be listed in this order!)
364//adler etal MarkIII - Phys Lett B196, 107 (1987)
365// Results in this paper:
366// Kbar rho+ FitFraction = 68+/-8+/-12 Phase 0
367// Kbar* pi+ 19+/-6+/-6 43+/-23
368// nonres 13+/-7+/-8 250+/-19
369// These numbers below seem not to be exactly the same
370// the phases are equiv to -106=254 and 41
371//
372 EvtResonance DplusKpipi0Res1(p4_p,moms2,moms3,1.00,0.00,0.1512,0.7699,1); //rho+
373 EvtResonance DplusKpipi0Res2(p4_p,moms3,moms1,0.8695,0.7191,0.0498,0.89159,1); //K*0
374
375 amp = 0.9522*EvtComplex(cos(-1.8565),sin(-1.8565)) + 1.00*DplusKpipi0Res1.relBrWig(0) + 0.8695*EvtComplex(cos(0.7191),sin(0.7191))*DplusKpipi0Res2.relBrWig(1);
376
377 }
378
379 if(_flag==3) {
380
381//know it's a D0 -> K0_bar pi+ pi- or charge conjugate
382
383// EvtResonance DK2piRes1(p4_p,moms1,moms2,2.31,109.0,0.0498,0.89610,1);//K*(892)
384// EvtResonance DK2piRes2(p4_p,moms3,moms2,1.59,-123.0,0.1491,0.7683,1);//RHO(770)
385
386// amp = amp + DK2piRes1.resAmpl() + DK2piRes2.resAmpl();
387
388
389 // D0 -> K0 pi+ pi- + CC
390 // If it does not come from a B->DK, decay it as D0 or D0bar separatly
391 // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+
392 // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi-
393
394 if ( isBToDK ) {
395 // Gamma angle in rad.
396 double gamma = EvtDecayTable::getDecayFunc( p->getParent() )
397 -> getArg( 0 ) ;
398 // Strong phase in rad.
400 -> getArg( 1 ) ;
401 // Ratio between B->D0K and B->D0barK
403 -> getArg( 2 ) ;
404
405 EvtComplex Factor( fabs( A ) * cos ( delta ) ,
406 fabs( A ) * sin ( delta ) ) ;
407
408 if ( ( p->getParent()->getId() == BP ) ||
409 ( p->getParent()->getId() == B0 ) ) {
410 // the ratio D/Dbar
411 Factor = Factor * EvtComplex( cos ( gamma ) , sin ( gamma ) ) ;
412 if ( p->getId() == D0 ) {
413 // the flavor of the particle has no meaning. But we need
414 // it to know which daughter is pi+ or pi-
415 // M( B+ or B0 ) = f(Dbar) + factor * f(D)
416 // f(Dbar) = amplDtoK0PiPi(pD, K0, pi+, pi-)
417 // f(D) = amplDtoK0PiPi(pD, K0, pi-, pi+)
418 // Then ...
419 amp = amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) +
420 Factor * amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
421 }
422 else {
423 amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) +
424 Factor * amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) ;
425 }
426 }
427 else if ( ( p->getParent() -> getId() == BM ) ||
428 ( p->getParent() -> getId() == B0B ) ) {
429 Factor = Factor * EvtComplex( cos ( gamma ) , - sin ( gamma ) ) ;
430 // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ...
431 if ( p->getId() == D0 ) {
432 amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) +
433 Factor * amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) ;
434 }
435 else {
436 amp = amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) +
437 Factor * amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
438 }
439 }
440 }
441 else {
442 amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
443 }
444 }
445
446
447 if(_flag==4) {
448
449 EvtResonance2 DKpipi0Res1(p4_p,moms2,moms3,1.0 ,0.0 ,0.1507,0.770 ,1); //rho
450 EvtResonance2 DKpipi0Res2(p4_p,moms1,moms2,0.39, -0.2 ,0.0505,0.8961,1); //k*0
451 EvtResonance2 DKpipi0Res3(p4_p,moms1,moms3,0.44, 163.0 ,0.050 ,0.8915,1); //k*-
452
453 EvtResonance2 DKpipi0Res4(p4_p,moms1,moms3,0.77 ,55.5 ,0.294 ,1.412 ,0); //k01430-
454 EvtResonance2 DKpipi0Res5(p4_p,moms1,moms2,0.85 ,166.0 ,0.294 ,1.412 ,0); //k01430bar
455 EvtResonance2 DKpipi0Res6(p4_p,moms2,moms3,2.5 ,171.0 ,0.240 ,1.700 ,1); //rho1700
456 EvtResonance2 DKpipi0Res7(p4_p,moms1,moms3,2.5 ,103.0 ,0.322 ,1.717 ,1); //K*1680-
457
458
459
460 double pi180inv = 1.0/EvtConst::radToDegrees;
461
462 amp = EvtComplex(1.75*cos(31.2*pi180inv),1.75*sin(31.2*pi180inv))
463 + DKpipi0Res1.resAmpl() + DKpipi0Res2.resAmpl() + DKpipi0Res3.resAmpl()
464 + DKpipi0Res4.resAmpl() + DKpipi0Res5.resAmpl()
465 + DKpipi0Res6.resAmpl()
466 + DKpipi0Res7.resAmpl();
467
468 }
469
470
471 if(_flag==5) {
472
473 // D0 -> K0 K+ K- + CC
474 // If it does not come from a B->DK, decay it as D0 or D0bar separatly
475 // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+
476 // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi-
477
478 if ( isBToDK ){
479 // Gamma angle in rad.
480 double gamma = EvtDecayTable::getDecayFunc( p->getParent() )
481 -> getArg( 0 ) ;
482 // Strong phase in rad.
484 -> getArg( 1 ) ;
485 // Ratio between B->D0K and B->D0barK
487 -> getArg( 2 ) ;
488
489 EvtComplex Factor( fabs( A ) * cos ( delta ) ,
490 fabs( A ) * sin ( delta ) ) ;
491
492 if ( ( p->getParent()->getId() == BP ) ||
493 ( p->getParent()->getId() == B0 ) ) {
494 // the ratio D/Dbar
495 Factor = Factor * EvtComplex( cos ( gamma ) , sin ( gamma ) ) ;
496 if ( p->getId() == D0 ) {
497 // the flavor of the particle has no meaning. But we need
498 // it to know which daughter is pi+ or pi-
499 // M( B+ or B0 ) = f(Dbar) + factor * f(D)
500 // f(Dbar) = amplDtoK0PiPi(pD, K0, K+, K-)
501 // f(D) = amplDtoK0PiPi(pD, K0, K-, K+)
502 // Then ...
503 amp = amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) +
504 Factor * amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
505 }
506 else {
507 amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) +
508 Factor * amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) ;
509 }
510 }
511 else if ( ( p->getParent() -> getId() == BM ) ||
512 ( p->getParent() -> getId() == B0B ) ) {
513 Factor = Factor * EvtComplex( cos ( gamma ) , - sin ( gamma ) ) ;
514 // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ...
515 if ( p->getId() == D0 ) {
516 amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) +
517 Factor * amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) ;
518 }
519 else {
520 amp = amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) +
521 Factor * amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
522 }
523 }
524 }
525 else {
526 amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
527 }
528 }
529
530
531
532
533 // Ds -> K K pi
534 if(_flag==6) {
535 EvtResonance2 DsKKpiRes1(p4_p, moms3, moms1, 1.0, 0.0, 0.0455, 0.8944, 1, true); // K*(892)
536 EvtResonance2 DsKKpiRes2(p4_p, moms3, moms1, 1.48, 138., 0.290, 1.414, 0); // K*_0(1430)
537 EvtFlatte DsKKpiRes3(p4_p, moms1, moms2, 5.07, 156., 0.965, _kkpi_params); // f_0(980)
538 EvtResonance2 DsKKpiRes4(p4_p, moms1, moms2, 1.15, -10., 0.00426, 1.019455, 1, true); // phi(1020)
539 EvtResonance2 DsKKpiRes5(p4_p, moms1, moms2, 1.28, 53., 0.265, 1.350, 0); // f_0(1370)
540 EvtResonance2 DsKKpiRes6(p4_p, moms1, moms2, 1.19, 87., 0.137, 1.724, 0); // f_0(1710)
541 amp = DsKKpiRes1.resAmpl() + DsKKpiRes2.resAmpl() + DsKKpiRes3.resAmpl()
542 + DsKKpiRes4.resAmpl() + DsKKpiRes5.resAmpl() + DsKKpiRes6.resAmpl();
543
544 }
545
546
547 vertex(amp);
548
549 return ;
550}
double sin(const BesAngle a)
Definition: BesAngle.h:210
double cos(const BesAngle a)
Definition: BesAngle.h:213
const double delta
static const double radToDegrees
Definition: EvtConst.hh:30
void vertex(const EvtComplex &amp)
Definition: EvtDecayAmp.hh:37
double getArg(int j)
virtual void getName(std::string &name)=0
EvtId * getDaugs()
Definition: EvtDecayBase.hh:65
static EvtDecayBase * getDecayFunc(EvtParticle *)
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
EvtId getId() const
Definition: EvtParticle.cc:113
EvtParticle * getParent()
Definition: EvtParticle.cc:87
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void set(int i, double d)
Definition: EvtVector4R.hh:183

◆ getName()

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

Implements EvtDecayBase.

Definition at line 38 of file EvtDDalitz.cc.

38 {
39
40 model_name="D_DALITZ";
41
42}

◆ init()

void EvtDDalitz::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 51 of file EvtDDalitz.cc.

51 {
52
53 // check that there are 0 arguments
54
55 static EvtId DM=EvtPDL::getId("D-");
56 static EvtId DP=EvtPDL::getId("D+");
57 static EvtId D0=EvtPDL::getId("D0");
58 static EvtId D0B=EvtPDL::getId("anti-D0");
59 static EvtId DSP=EvtPDL::getId("D_s+");
60 static EvtId DSM=EvtPDL::getId("D_s-");
61 static EvtId KM=EvtPDL::getId("K-");
62 static EvtId KP=EvtPDL::getId("K+");
63 static EvtId K0=EvtPDL::getId("K0");
64 static EvtId KB=EvtPDL::getId("anti-K0");
65 static EvtId KL=EvtPDL::getId("K_L0");
66 static EvtId KS=EvtPDL::getId("K_S0");
67 static EvtId PIM=EvtPDL::getId("pi-");
68 static EvtId PIP=EvtPDL::getId("pi+");
69 static EvtId PI0=EvtPDL::getId("pi0");
70
71 static double MPI = EvtPDL::getMeanMass(PI0);
72 static double MKP = EvtPDL::getMeanMass(KP);
73
74
75 checkNArg(0);
76 checkNDaug(3);
77
79
83
84 EvtId parnum=getParentId();
85 EvtId d1=getDaug(0);
86 EvtId d2=getDaug(1);
87 EvtId d3=getDaug(2);
88 _flag=0;
89 if ( parnum == D0 ) {
90 //look for either a K- pi+ pi0 or K0bar pi+ pi-
91 if ( d1==KM && d2==PIP && d3==PI0 ) { _flag=4; _d1=0; _d2=1; _d3=2;}
92 if ( d1==KM && d3==PIP && d2==PI0 ) { _flag=4; _d1=0; _d2=2; _d3=1;}
93 if ( d2==KM && d1==PIP && d3==PI0 ) { _flag=4; _d1=1; _d2=0; _d3=2;}
94 if ( d2==KM && d3==PIP && d1==PI0 ) { _flag=4; _d1=1; _d2=2; _d3=0;}
95 if ( d3==KM && d1==PIP && d2==PI0 ) { _flag=4; _d1=2; _d2=0; _d3=1;}
96 if ( d3==KM && d2==PIP && d1==PI0 ) { _flag=4; _d1=2; _d2=1; _d3=0;}
97
98 if ( d1==KB && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
99 if ( d1==KB && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
100 if ( d2==KB && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
101 if ( d2==KB && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
102 if ( d3==KB && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
103 if ( d3==KB && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
104
105 if ( d1==KL && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
106 if ( d1==KL && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
107 if ( d2==KL && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
108 if ( d2==KL && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
109 if ( d3==KL && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
110 if ( d3==KL && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
111
112 if ( d1==KS && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
113 if ( d1==KS && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
114 if ( d2==KS && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
115 if ( d2==KS && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
116 if ( d3==KS && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
117 if ( d3==KS && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
118
119
120 if ( d1==KS && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
121 if ( d1==KS && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
122 if ( d2==KS && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
123 if ( d2==KS && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
124 if ( d3==KS && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
125 if ( d3==KS && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
126
127 if ( d1==KL && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
128 if ( d1==KL && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
129 if ( d2==KL && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
130 if ( d2==KL && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
131 if ( d3==KL && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
132 if ( d3==KL && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
133
134 if ( d1==K0 && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
135 if ( d1==K0 && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
136 if ( d2==K0 && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
137 if ( d2==K0 && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
138 if ( d3==K0 && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
139 if ( d3==K0 && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
140 }
141 if ( parnum == D0B ) {
142 //look for either a K+ pi- pi0 or K0 pi+ pi-
143 if ( d1==KP && d2==PIM && d3==PI0 ) { _flag=4; _d1=0; _d2=1; _d3=2;}
144 if ( d1==KP && d3==PIM && d2==PI0 ) { _flag=4; _d1=0; _d2=2; _d3=1;}
145 if ( d2==KP && d1==PIM && d3==PI0 ) { _flag=4; _d1=1; _d2=0; _d3=2;}
146 if ( d2==KP && d3==PIM && d1==PI0 ) { _flag=4; _d1=1; _d2=2; _d3=0;}
147 if ( d3==KP && d1==PIM && d2==PI0 ) { _flag=4; _d1=2; _d2=0; _d3=1;}
148 if ( d3==KP && d2==PIM && d1==PI0 ) { _flag=4; _d1=2; _d2=1; _d3=0;}
149
150 if ( d1==K0 && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
151 if ( d1==K0 && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
152 if ( d2==K0 && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
153 if ( d2==K0 && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
154 if ( d3==K0 && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
155 if ( d3==K0 && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
156
157 if ( d1==KL && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
158 if ( d1==KL && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
159 if ( d2==KL && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
160 if ( d2==KL && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
161 if ( d3==KL && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
162 if ( d3==KL && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
163
164 if ( d1==KS && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
165 if ( d1==KS && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
166 if ( d2==KS && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
167 if ( d2==KS && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
168 if ( d3==KS && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
169 if ( d3==KS && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
170
171 if ( d1==KS && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
172 if ( d1==KS && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
173 if ( d2==KS && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
174 if ( d2==KS && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
175 if ( d3==KS && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
176 if ( d3==KS && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
177
178 if ( d1==KL && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
179 if ( d1==KL && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
180 if ( d2==KL && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
181 if ( d2==KL && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
182 if ( d3==KL && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
183 if ( d3==KL && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
184
185 if ( d1==K0 && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
186 if ( d1==K0 && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
187 if ( d2==K0 && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
188 if ( d2==K0 && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
189 if ( d3==K0 && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
190 if ( d3==K0 && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
191
192 }
193
194 if ( parnum == DP ) {
195 //look for K- pi+ pi+
196 if ( d1==KB && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
197 if ( d1==KB && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
198 if ( d2==KB && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
199 if ( d2==KB && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
200 if ( d3==KB && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
201 if ( d3==KB && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
202
203 if ( d1==KL && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
204 if ( d1==KL && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
205 if ( d2==KL && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
206 if ( d2==KL && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
207 if ( d3==KL && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
208 if ( d3==KL && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
209
210 if ( d1==KS && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
211 if ( d1==KS && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
212 if ( d2==KS && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
213 if ( d2==KS && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
214 if ( d3==KS && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
215 if ( d3==KS && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
216
217 if ( d1==KM && d2==PIP && d3==PIP ) { _flag=1; _d1=0; _d2=1; _d3=2;}
218 if ( d2==KM && d1==PIP && d3==PIP ) { _flag=1; _d1=1; _d2=0; _d3=2;}
219 if ( d3==KM && d1==PIP && d2==PIP ) { _flag=1; _d1=2; _d2=0; _d3=1;}
220 }
221
222 if ( parnum == DM ) {
223 //look for K- pi+ pi+
224 if ( d1==K0 && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
225 if ( d1==K0 && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
226 if ( d2==K0 && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
227 if ( d2==K0 && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
228 if ( d3==K0 && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
229 if ( d3==K0 && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
230
231 if ( d1==KL && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
232 if ( d1==KL && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
233 if ( d2==KL && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
234 if ( d2==KL && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
235 if ( d3==KL && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
236 if ( d3==KL && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
237
238 if ( d1==KS && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
239 if ( d1==KS && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
240 if ( d2==KS && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
241 if ( d2==KS && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
242 if ( d3==KS && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
243 if ( d3==KS && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
244
245 if ( d1==KP && d2==PIM && d3==PIM ) { _flag=1; _d1=0; _d2=1; _d3=2;}
246 if ( d2==KP && d1==PIM && d3==PIM ) { _flag=1; _d1=1; _d2=0; _d3=2;}
247 if ( d3==KP && d1==PIM && d2==PIM ) { _flag=1; _d1=2; _d2=0; _d3=1;}
248 }
249
250 if ( parnum == DSP ) {
251 if ( d1==KM && d2==KP && d3==PIP ) { _flag=6; _d1=0; _d2=1; _d3=2; }
252 if ( d1==KM && d3==KP && d2==PIP ) { _flag=6; _d1=0; _d2=2; _d3=1; }
253 if ( d2==KM && d1==KP && d3==PIP ) { _flag=6; _d1=1; _d2=0; _d3=2; }
254 if ( d2==KM && d3==KP && d1==PIP ) { _flag=6; _d1=1; _d2=2; _d3=0; }
255 if ( d3==KM && d1==KP && d2==PIP ) { _flag=6; _d1=2; _d2=0; _d3=1; }
256 if ( d3==KM && d2==KP && d1==PIP ) { _flag=6; _d1=2; _d2=1; _d3=0; }
257 }
258
259 if ( parnum == DSM ) {
260 if ( d1==KP && d2==KM && d3==PIM ) { _flag=6; _d1=0; _d2=1; _d3=2; }
261 if ( d1==KP && d3==KM && d2==PIM ) { _flag=6; _d1=0; _d2=2; _d3=1; }
262 if ( d2==KP && d1==KM && d3==PIM ) { _flag=6; _d1=1; _d2=0; _d3=2; }
263 if ( d2==KP && d3==KM && d1==PIM ) { _flag=6; _d1=1; _d2=2; _d3=0; }
264 if ( d3==KP && d1==KM && d2==PIM ) { _flag=6; _d1=2; _d2=0; _d3=1; }
265 if ( d3==KP && d2==KM && d1==PIM ) { _flag=6; _d1=2; _d2=1; _d3=0; }
266 }
267
268 if ( _flag==6) {
269 _kkpi_params.push_back(EvtFlatteParam(MPI, MPI, 0.406));
270 _kkpi_params.push_back(EvtFlatteParam(MKP, MKP, 0.800));
271 }
272
273 if ( _flag==0) {
274 report(ERROR,"EvtGen") << "EvtDDaltiz: Invalid mode."<<endl;
275 assert(0);
276 }
277}
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
EvtId getParentId()
Definition: EvtDecayBase.hh:60
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
EvtId getDaug(int i)
Definition: EvtDecayBase.hh:66
static double getMeanMass(EvtId i)
Definition: EvtPDL.hh:45

◆ initProbMax()

void EvtDDalitz::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 279 of file EvtDDalitz.cc.

279 {
280
281//probmax different for different modes!
282
283 if ( _flag==1 ) {setProbMax(9.6);}
284 if ( _flag==2 ) {setProbMax(147.9);}
285 if ( _flag==3 ) {setProbMax(5000.0);}
286 if ( _flag==4 ) {setProbMax(3000.0);}
287 if ( _flag==5 ) {setProbMax(10000000.0);}
288 if ( _flag==6 ) {setProbMax(50000.0);}
289
290}
void setProbMax(double prbmx)

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