BOSS 7.1.2
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 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 37 of file EvtDDalitz.cc.

37{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDDalitz::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 46 of file EvtDDalitz.cc.

46 {
47
48 return new EvtDDalitz;
49
50}

◆ decay()

void EvtDDalitz::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 384 of file EvtDDalitz.cc.

384 {
385
386 //added by Lange Jan4,2000
387 static EvtId BP = EvtPDL::getId("B+");
388 static EvtId BM = EvtPDL::getId("B-");
389 static EvtId B0 = EvtPDL::getId("B0");
390 static EvtId B0B = EvtPDL::getId("anti-B0");
391 static EvtId DM=EvtPDL::getId("D-");
392 static EvtId DP=EvtPDL::getId("D+");
393 static EvtId D0=EvtPDL::getId("D0");
394 static EvtId D0B=EvtPDL::getId("anti-D0");
395 static EvtId KM=EvtPDL::getId("K-");
396 static EvtId KP=EvtPDL::getId("K+");
397 static EvtId K0=EvtPDL::getId("K0");
398 static EvtId KB=EvtPDL::getId("anti-K0");
399 static EvtId PIM=EvtPDL::getId("pi-");
400 static EvtId PIP=EvtPDL::getId("pi+");
401 static EvtId PI0=EvtPDL::getId("pi0");
402
403 double oneby2 = 0.707106782;
404
405 bool isBToDK=false;
406 if ( p -> getParent () ) {
407 std::string name1;
409
410 EvtId parId = p -> getParent()->getId ();
411 if ( ( BP == parId ) || ( BM == parId ) || ( B0 == parId ) ||
412 ( B0B == parId ) )
413 if (name1 == "BTODDALITZCPK") isBToDK=true;
414 }
415
416
417//same structure for all of these decays
418
420 EvtVector4R moms1 = p->getDaug(_d1)->getP4();
421 EvtVector4R moms2 = p->getDaug(_d2)->getP4();
422 EvtVector4R moms3 = p->getDaug(_d3)->getP4();
423
424 EvtVector4R p4_p;
425 p4_p.set(p->mass(),0.0,0.0,0.0);
426
427 EvtComplex amp(1.0,0.0);
428
429//now determine which D and which decay
430
431//data from Anjos et al, Phys.Rev.D 1993, v.48,num.1,p.56 (E691 resuls)
432//for D+ -> K- pi+ pi+, and from Adler et al, Phys.Lett. B196 (1987), 107
433//(Mark III results) for D+ -> K0bar pi+ pi0.
434 //CLEO results for D0->k-pi+pi0
435
436 if ( _flag==1) {
437
438//have a D+ -> K- pi+ pi+ decay, or charge conjugate
439//Anjos etal e691 - Phys Rev D48, 56 (1993)
440// EvtResonance DplusRes11(p4_p,moms1,moms2,0.78,-60.0,0.0498,0.89610,1);
441// EvtResonance DplusRes12(p4_p,moms3,moms1,0.78,-60.0,0.0498,0.89610,1);//K*(892)
442//
443// EvtResonance DplusRes21(p4_p,moms1,moms2,0.53,132.0,0.287,1.429,0);
444// EvtResonance DplusRes22(p4_p,moms3,moms1,0.53,132.0,0.287,1.429,0);//K*(1430)
445//
446// EvtResonance DplusRes31(p4_p,moms1,moms2,0.47,-51.0,0.323,1.714,1);
447// EvtResonance DplusRes32(p4_p,moms3,moms1,0.47,-51.0,0.323,1.714,1);//K*(1680)
448//
449// amp = amp + oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl()) + oneby2*(DplusRes21.resAmpl() + DplusRes22.resAmpl()) + oneby2*(-DplusRes31.resAmpl()+ DplusRes32.resAmpl());
450 //CLEO-c p15,arxiv:0802.4214v2
451 EvtResonance2 DplusRes11( p4_p, moms1, moms2, 1.0, 0.0, 0.0503, 0.896,
452 1, true );
453 EvtResonance2 DplusRes12( p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.896,
454 1, true ); //K*(892)
455 EvtResonance2 DplusRes21( p4_p, moms1, moms2, 3.0, 49.7 - 180.0, 0.164,
456 1.463, 0 );
457 EvtResonance2 DplusRes22( p4_p, moms3, moms1, 3.0, 49.7 - 180.0, 0.164,
458 1.463, 0 ); //K*(1430)
459 EvtResonance2 DplusRes31( p4_p, moms1, moms2, 0.96, -29.9 + 180.0,
460 0.109, 1.4324, 2, true );
461 EvtResonance2 DplusRes32( p4_p, moms3, moms1, 0.96, -29.9 + 180.0,
462 0.109, 1.4324, 2, true ); // K*_2(1430)
463 EvtResonance2 DplusRes41( p4_p, moms1, moms2, 6.5, 29.0, 0.323, 1.717,
464 1, true );
465 EvtResonance2 DplusRes42( p4_p, moms3, moms1, 6.5, 29.0, 0.323, 1.717,
466 1, true ); //K*(1680)
467 EvtResonance2 DplusRes51( p4_p, moms1, moms2, 5.01, -163.7 + 180.0,
468 0.470, 0.809, 0 );
469 EvtResonance2 DplusRes52( p4_p, moms3, moms1, 5.01, -163.7 + 180.0,
470 0.470, 0.809, 0 ); //kappa(800)
471 double pi180inv = 1.0 / EvtConst::radToDegrees;
472 amp = EvtComplex( 7.4 * cos( ( -18.4 + 180.0 ) * pi180inv ),
473 7.4 * sin( ( -18.4 + 180.0 ) * pi180inv ) ) +
474 oneby2 * ( -DplusRes11.resAmpl() + DplusRes12.resAmpl() ) +
475 oneby2 * ( DplusRes21.resAmpl() + DplusRes22.resAmpl() ) +
476 oneby2 * ( DplusRes31.resAmpl() + DplusRes32.resAmpl() ) +
477 oneby2 * ( -DplusRes41.resAmpl() + DplusRes42.resAmpl() ) +
478 oneby2 * ( DplusRes51.resAmpl() + DplusRes52.resAmpl() );
479
480 }
481
482 if ( _flag==2) {
483
484//have a D+ -> K0bar pi+ pi0 decay (daughters must be listed in this order!)
485//adler etal MarkIII - Phys Lett B196, 107 (1987)
486// Results in this paper:
487// Kbar rho+ FitFraction = 68+/-8+/-12 Phase 0
488// Kbar* pi+ 19+/-6+/-6 43+/-23
489// nonres 13+/-7+/-8 250+/-19
490// These numbers below seem not to be exactly the same
491// the phases are equiv to -106=254 and 41
492//
493// old EvtResonance DplusKpipi0Res1(p4_p,moms2,moms3,1.00,0.00,0.1512,0.7699,1); //rho+
494// old EvtResonance DplusKpipi0Res2(p4_p,moms3,moms1,0.8695,0.7191,0.0498,0.89159,1); //K*0
495// old 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);
496 double pi180inv = 1.0/EvtConst::radToDegrees;
497 // NR rho K*(892) K0(1430) K2(1430) K(1680) rho(1450) kappa
498 //double amp1[8]={0.920322, 1, 0.198943, 0.604074, 0.225741, 1.257776, 1.989557, 1.332243};
499 //double phi[8]={278.810706, 0, 288.035519, 324.018021, 263.172850, 276.218704, 169.42471, 88.091929};
500 //double amp1[8]={0.797929, 1, 0.194377, 0.332583, 0.286707, 1.440519, 2.278415, 0.611784};
501 //double phi[8]={272.941122, 0, 288.439024, 329.600012, 258.197983,273.091907, 172.456067, 85.072272};
502 //double amp1[8]={0.8, 1, 0.2, 0.3, 0, 0, 2.5, 0};
503 //double phi[8] ={273, 0, 288, 330, 258, 0, 172, 85};
504 // Final result
505 double amp1[8]={0.797929, 1, 0.194377, 0.332583, 0, 1.440519, 2.278415, 0.611784};
506 double phi[8]={279, 0, 293, 334, 0, 252, 187, 93};
507 EvtResonance2 DplusKpipi0Res1(p4_p,moms2,moms3,amp1[1],phi[1],0.1494,0.77549,1);
508 EvtResonance2 DplusKpipi0Res2(p4_p,moms1,moms3,amp1[2],phi[2],0.0503,0.896 ,1);
509 EvtResonance2 DplusKpipi0Res3(p4_p,moms1,moms3,amp1[3],phi[3],0.27 ,1.425 ,0); // mass and width fixed at PDG, Liaoyuan Dong
510 EvtResonance2 DplusKpipi0Res4(p4_p,moms1,moms3,amp1[4],phi[4],0.109 ,1.4324 ,2);
511 EvtResonance2 DplusKpipi0Res5(p4_p,moms1,moms3,amp1[5],phi[5],0.322 ,1.717 ,1);
512 // Fitted
513 EvtResonance2 DplusKpipi0Res6(p4_p,moms2,moms3,amp1[6],phi[6],0.4 ,1.465 ,1); // mass and width fixed at PDG, Liaoyuan Dong
514 EvtResonance2 DplusKpipi0Res7(p4_p,moms1,moms3,1,0, 0.175, 1.465, 0);
515 amp = amp1[0]*EvtComplex(cos(phi[0]*pi180inv),sin(phi[0]*pi180inv)) + DplusKpipi0Res1.resAmpl()+DplusKpipi0Res2.resAmpl()
516 + DplusKpipi0Res3.resAmpl()+DplusKpipi0Res4.resAmpl()+ DplusKpipi0Res5.resAmpl() +DplusKpipi0Res6.resAmpl();
517 //EvtComplex kappa=1./(EvtComplex(0.731086,-0.244799)*EvtComplex(0.731086,-0.244799)-(moms1+moms3).mass2());
518 //EvtComplex kappa=1./(EvtComplex(0.710843,-0.251841)*EvtComplex(0.710843,-0.251841)-(moms1+moms3).mass2());
519 // Final result
520 EvtComplex kappa=1./(EvtComplex(0.752,-0.229)*EvtComplex(0.752,-0.229)-(moms1+moms3).mass2());
521 amp += amp1[7]*EvtComplex(cos(phi[7]*pi180inv),sin(phi[7]*pi180inv))*kappa;
522 }
523
524 if(_flag==3) {
525
526//know it's a D0 -> K0_bar pi+ pi- or charge conjugate
527
528// EvtResonance DK2piRes1(p4_p,moms1,moms2,2.31,109.0,0.0498,0.89610,1);//K*(892)
529// EvtResonance DK2piRes2(p4_p,moms3,moms2,1.59,-123.0,0.1491,0.7683,1);//RHO(770)
530
531// amp = amp + DK2piRes1.resAmpl() + DK2piRes2.resAmpl();
532
533
534 // D0 -> K0 pi+ pi- + CC
535 // If it does not come from a B->DK, decay it as D0 or D0bar separatly
536 // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+
537 // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi-
538
539 if ( isBToDK ) {
540 // Gamma angle in rad.
541 double gamma = EvtDecayTable::getDecayFunc( p->getParent() )
542 -> getArg( 0 ) ;
543 // Strong phase in rad.
545 -> getArg( 1 ) ;
546 // Ratio between B->D0K and B->D0barK
548 -> getArg( 2 ) ;
549
550 EvtComplex Factor( fabs( A ) * cos ( delta ) ,
551 fabs( A ) * sin ( delta ) ) ;
552
553 if ( ( p->getParent()->getId() == BP ) ||
554 ( p->getParent()->getId() == B0 ) ) {
555 // the ratio D/Dbar
556 Factor = Factor * EvtComplex( cos ( gamma ) , sin ( gamma ) ) ;
557 if ( p->getId() == D0 ) {
558 // the flavor of the particle has no meaning. But we need
559 // it to know which daughter is pi+ or pi-
560 // M( B+ or B0 ) = f(Dbar) + factor * f(D)
561 // f(Dbar) = amplDtoK0PiPi(pD, K0, pi+, pi-)
562 // f(D) = amplDtoK0PiPi(pD, K0, pi-, pi+)
563 // Then ...
564 amp = amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) +
565 Factor * amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
566 }
567 else {
568 amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) +
569 Factor * amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) ;
570 }
571 }
572 else if ( ( p->getParent() -> getId() == BM ) ||
573 ( p->getParent() -> getId() == B0B ) ) {
574 Factor = Factor * EvtComplex( cos ( gamma ) , - sin ( gamma ) ) ;
575 // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ...
576 if ( p->getId() == D0 ) {
577 amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) +
578 Factor * amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) ;
579 }
580 else {
581 amp = amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) +
582 Factor * amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
583 }
584 }
585 }
586 else {
587 amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
588 }
589 }
590
591
592 if(_flag==4) {
593
594 EvtResonance2 DKpipi0Res1(p4_p,moms2,moms3,1.0 ,0.0 ,0.1507,0.770 ,1); //rho
595 EvtResonance2 DKpipi0Res2(p4_p,moms1,moms2,0.39, -0.2 ,0.0505,0.8961,1); //k*0
596 EvtResonance2 DKpipi0Res3(p4_p,moms1,moms3,0.44, 163.0 ,0.050 ,0.8915,1); //k*-
597
598 EvtResonance2 DKpipi0Res4(p4_p,moms1,moms3,0.77 ,55.5 ,0.294 ,1.412 ,0); //k01430-
599 EvtResonance2 DKpipi0Res5(p4_p,moms1,moms2,0.85 ,166.0 ,0.294 ,1.412 ,0); //k01430bar
600 EvtResonance2 DKpipi0Res6(p4_p,moms2,moms3,2.5 ,171.0 ,0.240 ,1.700 ,1); //rho1700
601 EvtResonance2 DKpipi0Res7(p4_p,moms1,moms3,2.5 ,103.0 ,0.322 ,1.717 ,1); //K*1680-
602
603
604
605 double pi180inv = 1.0/EvtConst::radToDegrees;
606
607 amp = EvtComplex(1.75*cos(31.2*pi180inv),1.75*sin(31.2*pi180inv))
608 + DKpipi0Res1.resAmpl() + DKpipi0Res2.resAmpl() + DKpipi0Res3.resAmpl()
609 + DKpipi0Res4.resAmpl() + DKpipi0Res5.resAmpl()
610 + DKpipi0Res6.resAmpl()
611 + DKpipi0Res7.resAmpl();
612
613 }
614
615
616 if(_flag==5) {
617
618 // D0 -> K0 K+ K- + CC
619 // If it does not come from a B->DK, decay it as D0 or D0bar separatly
620 // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+
621 // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi-
622
623 if ( isBToDK ){
624 // Gamma angle in rad.
625 double gamma = EvtDecayTable::getDecayFunc( p->getParent() )
626 -> getArg( 0 ) ;
627 // Strong phase in rad.
629 -> getArg( 1 ) ;
630 // Ratio between B->D0K and B->D0barK
632 -> getArg( 2 ) ;
633
634 EvtComplex Factor( fabs( A ) * cos ( delta ) ,
635 fabs( A ) * sin ( delta ) ) ;
636
637 if ( ( p->getParent()->getId() == BP ) ||
638 ( p->getParent()->getId() == B0 ) ) {
639 // the ratio D/Dbar
640 Factor = Factor * EvtComplex( cos ( gamma ) , sin ( gamma ) ) ;
641 if ( p->getId() == D0 ) {
642 // the flavor of the particle has no meaning. But we need
643 // it to know which daughter is pi+ or pi-
644 // M( B+ or B0 ) = f(Dbar) + factor * f(D)
645 // f(Dbar) = amplDtoK0PiPi(pD, K0, K+, K-)
646 // f(D) = amplDtoK0PiPi(pD, K0, K-, K+)
647 // Then ...
648 amp = amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) +
649 Factor * amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
650 }
651 else {
652 amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) +
653 Factor * amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) ;
654 }
655 }
656 else if ( ( p->getParent() -> getId() == BM ) ||
657 ( p->getParent() -> getId() == B0B ) ) {
658 Factor = Factor * EvtComplex( cos ( gamma ) , - sin ( gamma ) ) ;
659 // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ...
660 if ( p->getId() == D0 ) {
661 amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) +
662 Factor * amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) ;
663 }
664 else {
665 amp = amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) +
666 Factor * amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
667 }
668 }
669 }
670 else {
671 amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
672 }
673 }
674
675 // Ds -> K K pi
676 if(_flag==6) {
677 EvtResonance2 DsKKpiRes1(p4_p, moms3, moms1, 1.0, 0.0, 0.0455, 0.8944, 1, true); // K*(892)
678 EvtResonance2 DsKKpiRes2(p4_p, moms3, moms1, 1.48, 138., 0.290, 1.414, 0); // K*_0(1430)
679 EvtFlatte DsKKpiRes3(p4_p, moms1, moms2, 5.07, 156., 0.965, _kkpi_params); // f_0(980)
680 EvtResonance2 DsKKpiRes4(p4_p, moms1, moms2, 1.15, -10., 0.00426, 1.019455, 1, true); // phi(1020)
681 EvtResonance2 DsKKpiRes5(p4_p, moms1, moms2, 1.28, 53., 0.265, 1.350, 0); // f_0(1370)
682 EvtResonance2 DsKKpiRes6(p4_p, moms1, moms2, 1.19, 87., 0.137, 1.724, 0); // f_0(1710)
683 amp = DsKKpiRes1.resAmpl() + DsKKpiRes2.resAmpl() + DsKKpiRes3.resAmpl()
684 + DsKKpiRes4.resAmpl() + DsKKpiRes5.resAmpl() + DsKKpiRes6.resAmpl();
685 }
686
687 // D -> pi pi pi
688 if(_flag==7) {
689// BaBar decay amplitudes for Ds+ -> pi- pi+ pi+, or charge conjugate
690// p4_p is Ds+
691// moms1 is pi-
692// moms2 is pi+
693// moms3 is pi+
694// Amplitudes and phases are taken from BaBar hep-ex/0808.0971 with MIPWA s-wave component
695
696 EvtResonance2 DspipipiRes1(p4_p, moms1, moms2, 1.0, 0.0, 0.1867, 1.2755, 2, true,false); // f2(1270), 12
697 EvtResonance2 DspipipiRes2(p4_p, moms1, moms3, 1.0, 0.0, 0.1867, 1.2755, 2, true,false); // f2(1270), 13
698
699 EvtResonance2 DspipipiRes3(p4_p,moms1,moms2, 1.25706e-01,5.44277*EvtConst::radToDegrees ,0.1491,0.77526 ,1, true,false); //rho, 12
700 EvtResonance2 DspipipiRes4(p4_p,moms1,moms3, 1.25706e-01,5.44277*EvtConst::radToDegrees ,0.1491,0.77526 ,1, true,false); //rho, 13
701 EvtResonance2 DspipipiRes5(p4_p,moms1,moms2, 9.06766e-01,1.03370*EvtConst::radToDegrees ,0.400,1.465,1, true,false); //rho(1450), 12
702 EvtResonance2 DspipipiRes6(p4_p,moms1,moms3, 9.06766e-01,1.03370*EvtConst::radToDegrees ,0.400,1.465,1, true,false); //rho(1450), 13
703
704 const double xl[] = {0.28, 0.448, 0.55, 0.647, 0.736, 0.803, 0.873, 0.921, 0.951, 0.968, 0.981, 0.993, 1.024, 1.078, 1.135, 1.193, 1.235, 1.267, 1.297, 1.323, 1.35, 1.376, 1.402, 1.427, 1.455, 1.492, 1.557, 1.64, 1.735};
705 const double ym[] = {1.23487, 2.80323, 3.42035, 3.31677, 5.45084, 6.21976, 7.88104, 11.8548, 16.8433, 21.7424, 26.455, 18.6398, 11.1707, 8.00181, 6.74089, 6.09654, 6.62815, 6.26746, 6.50165, 7.49954, 7.2659, 7.53306, 8.49471, 8.07989, 8.28178, 5.8168, 1.63515, 1.37752, 2.08794};
706 const double yp[] = {-3.59059, -3.82322, -3.87059, -3.74264, -3.37687, -3.09568, -2.59601, -2.15795, -1.76578, -1.21117, -0.577655, -0.246062, 0.17292, 0.550796, 0.981734, 1.27572, 1.32191, 1.56281, 1.46746, 1.60172, 1.75168, 1.79924, 1.94462, 2.09212, 2.53836, 3.06809, 3.05283, 7.0558, 7.31884};
707 EvtCubicSpline::setParams(29, xl, ym,yp);
708 EvtCubicSpline Dspipipiswave1(p4_p,moms1,moms2); //S-wave, 12
709 EvtCubicSpline Dspipipiswave2(p4_p,moms1,moms3); //S-wave, 13
710
711 amp = DspipipiRes1.resAmpl() + DspipipiRes2.resAmpl() + DspipipiRes3.resAmpl()
712 + DspipipiRes4.resAmpl() + DspipipiRes5.resAmpl() + DspipipiRes6.resAmpl()
713 + Dspipipiswave1.resAmpl() + Dspipipiswave2.resAmpl();
714
715 }
716
717 //D+ -> K- K+ pi+
718 //CLEO PRD 78, 072003 (2008) Fit A
719 if(_flag==8) {
720
721 EvtResonance2 DpKKpiRes1( p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.8960, 1, true ); // K*(892)
722 EvtResonance2 DpKKpiRes2( p4_p, moms3, moms1, 3.7, 73.0, 0.290, 1.414, 0 ); // K*_0(1430)
723 EvtResonance2 DpKKpiRes3( p4_p, moms1, moms2, 1.189, -179.0 + 180.0, 0.00426, 1.019455, 1, true ); // phi(1020)
724 EvtResonance2 DpKKpiRes4( p4_p, moms1, moms2, 1.72, 123., 0.265, 1.474, 0 ); // a_0(1450)
725 EvtResonance2 DpKKpiRes5( p4_p, moms1, moms2, 1.9, -52.0 + 180.0, 0.15, 1.68, 1, true ); // phi(1680)
726 EvtResonance2 DpKKpiRes6( p4_p, moms3, moms1, 6.4, 150., 0.109, 1.4324, 2, true ); // K*_2(1430)
727 double pi180inv = 1.0 / EvtConst::radToDegrees;
728 amp = EvtComplex( 5.1 * cos( ( 53.0 ) * pi180inv ), 5.1 * sin( ( 53.0 ) * pi180inv ) ) +
729 DpKKpiRes1.resAmpl() + DpKKpiRes2.resAmpl() + DpKKpiRes3.resAmpl() +
730 DpKKpiRes4.resAmpl() + DpKKpiRes5.resAmpl() + DpKKpiRes6.resAmpl();
731
732 }
733
734 //D+ -> pi- pi+ K+ WS (DCS)
735 //FOCUS PLB 601 10 (2004) ; amplitudes there are individually normalized (although not explicit in the paper)
736 // thus the magnitudes appearing below come from dividing the ones appearing in the paper by the sqrt of the
737 // integral over the DP of the corresponding squared amplitude. Writing as pi- pi+ K+ so pipi resonances are (12)
738 // and Kpi resonances are (31); masses and widths corresponds to PDG 2010
739 if(_flag==9) {
740 EvtResonance2 DpKpipiDCSRes1( p4_p, moms1, moms2, 1.0, 0.0, 0.149, 0.775, 1, true ); // rho(770)
741 EvtResonance2 DpKpipiDCSRes2( p4_p, moms3, moms1, 1.0971, -167.1, 0.0487, 0.896, 1, true ); // K*(890)
742 EvtResonance2 DpKpipiDCSRes3( p4_p, moms1, moms2, 0.4738, -134.5, 0.059, 0.972, 0 ); // f0(980) as simple BW
743 EvtResonance2 DpKpipiDCSRes4( p4_p, moms3, moms1, 2.2688, 54.4, 0.109, 1.432, 2, true ); // K*2(1430)
744 amp = DpKpipiDCSRes1.resAmpl() + DpKpipiDCSRes2.resAmpl() +
745 DpKpipiDCSRes3.resAmpl() + DpKpipiDCSRes4.resAmpl();
746 }
747
748 // D+ -> pi- pi+ pi+ from E791 [PRL 86 770 (2001)]
749 // masses and widths below correspond to what they used; there, the amplitudes were individually normalized
750 // (although not explicit) so magnitudes here are obtained after correcting for that
751 // Breit-Wigner has a factor of (-1) there which changes the relative phase of the NR wrt to the resonances
752 // thus the NR magnitude is set as negative
753 if(_flag==10) {
754 EvtResonance2 DppipipiRes11( p4_p, moms1, moms2, 1.0, 0.0, 0.150, 0.769, 1, true ); // rho(770)
755 EvtResonance2 DppipipiRes12( p4_p, moms3, moms1, 1.0, 0.0, 0.150, 0.769, 1, true ); // rho(770)
756 EvtResonance2 DppipipiRes21( p4_p, moms1, moms2, 2.2811, 205.7, 0.324, 0.478, 0 ); // sigma(500)
757 EvtResonance2 DppipipiRes22( p4_p, moms3, moms1, 2.2811, 205.7, 0.324, 0.478, 0 ); // sigma(500)
758 EvtResonance2 DppipipiRes31( p4_p, moms1, moms2, 0.4265, 165.0, 0.044, 0.977, 0 ); // f0(980) simple BW
759 EvtResonance2 DppipipiRes32( p4_p, moms3, moms1, 0.4265, 165.0, 0.044, 0.977, 0 ); // f0(980) simple BW
760 EvtResonance2 DppipipiRes41( p4_p, moms1, moms2, 2.0321, 57.3, 0.185, 1.275, 2, true ); // f2(1270)
761 EvtResonance2 DppipipiRes42( p4_p, moms3, moms1, 2.0321, 57.3, 0.185, 1.275, 2, true ); // f2(1270)
762 EvtResonance2 DppipipiRes51( p4_p, moms1, moms2, 0.7888, 105.4, 0.173, 1.434, 0 ); // f0(1370)
763 EvtResonance2 DppipipiRes52( p4_p, moms3, moms1, 0.7888, 105.4, 0.173, 1.434, 0 ); // f0(1370)
764 EvtResonance2 DppipipiRes61( p4_p, moms1, moms2, 0.7363, 319.1, 0.310, 1.465, 1, true ); // rho(1450)
765 EvtResonance2 DppipipiRes62( p4_p, moms3, moms1, 0.7363, 319.1, 0.310, 1.465, 1, true ); // rho(1450)
766 double pi180inv = 1.0 / EvtConst::radToDegrees;
767 amp = EvtComplex( -3.98 * cos( 57.3 * pi180inv ), -3.98 * sin( 57.3 * pi180inv ) ) +
768 ( DppipipiRes11.resAmpl() - DppipipiRes12.resAmpl() ) //spin1
769 + ( DppipipiRes21.resAmpl() + DppipipiRes22.resAmpl() ) +
770 ( DppipipiRes31.resAmpl() + DppipipiRes32.resAmpl() ) +
771 ( DppipipiRes41.resAmpl() + DppipipiRes42.resAmpl() ) +
772 ( DppipipiRes51.resAmpl() + DppipipiRes52.resAmpl() ) +
773 ( DppipipiRes61.resAmpl() - DppipipiRes62.resAmpl() ); //spin1
774 }
775
776 //D0 -> pi- pi+ pi0
777 //PRL 99, 251801 (2007) arXiv:hep-ex/0703037
778 if(_flag==11) {
779 EvtResonance2 DpipipiRes1p( p4_p, moms2, moms3, 1.0, 0.0, 0.149, 0.775, 1, true ); //rho+(770)
780 EvtResonance2 DpipipiRes1( p4_p, moms1, moms2, 0.588, 16.2, 0.149, 0.775, 1, true ); //rho0(770)
781 EvtResonance2 DpipipiRes1m( p4_p, moms3, moms1, 0.714, -2.0, 0.149, 0.775, 1, true ); //rho-(770)
782 EvtResonance2 DpipipiRes2p( p4_p, moms2, moms3, 0.21, -146.0, 0.400, 1.465, 1, true ); //rho+(1450)
783 EvtResonance2 DpipipiRes2( p4_p, moms1, moms2, 0.33, 10.0, 0.400, 1.465, 1, true ); //rho0(1450)
784 EvtResonance2 DpipipiRes2m( p4_p, moms3, moms1, 0.82, 16.0, 0.400, 1.465, 1, true ); //rho-(1450)
785 EvtResonance2 DpipipiRes3p( p4_p, moms2, moms3, 2.25, -17.0, 0.250, 1.720, 1, true ); //rho+(1700)
786 EvtResonance2 DpipipiRes3( p4_p, moms1, moms2, 2.51, -17.0, 0.250, 1.720, 1, true ); //rho0(1700)
787 EvtResonance2 DpipipiRes3m( p4_p, moms3, moms1, 2.00, -50.0, 0.250, 1.720, 1, true ); //rho-(1700)
788 EvtResonance2 DpipipiRes4( p4_p, moms1, moms2, 0.015, -59.0, 0.07, 0.980, 0 ); //f0(980)
789 EvtResonance2 DpipipiRes5( p4_p, moms1, moms2, 0.063, 156.0, 0.350, 1.370, 0 ); //f0(1370)
790 EvtResonance2 DpipipiRes6( p4_p, moms1, moms2, 0.058, 12.0, 0.109, 1.505, 0 ); //f0(1500)
791 EvtResonance2 DpipipiRes7( p4_p, moms1, moms2, 0.112, 51.0, 0.135, 1.720, 0 ); //f0(1720)
792 EvtResonance2 DpipipiRes8( p4_p, moms1, moms2, 1.04, -171.0, 0.185, 1.275, 2, true ); //f2(1270)
793 EvtResonance2 DpipipiRes9( p4_p, moms1, moms2, 0.069, 8.0, 0.600, 0.400, 0 ); //sigma(400)
794
795 double pi180inv = 1.0 / EvtConst::radToDegrees;
796 amp = EvtComplex( 0.57 * cos( -11.0 * pi180inv ), 0.57 * sin( -11.0 * pi180inv ) ) +
797 DpipipiRes1p.resAmpl() + DpipipiRes1.resAmpl() +
798 DpipipiRes1m.resAmpl() + DpipipiRes2p.resAmpl() +
799 DpipipiRes2.resAmpl() + DpipipiRes2m.resAmpl() +
800 DpipipiRes3p.resAmpl() + DpipipiRes3.resAmpl() +
801 DpipipiRes3m.resAmpl() + DpipipiRes4.resAmpl() +
802 DpipipiRes5.resAmpl() + DpipipiRes6.resAmpl() +
803 DpipipiRes7.resAmpl() + DpipipiRes8.resAmpl() +
804 DpipipiRes9.resAmpl();
805 }
806
807 vertex(amp);
808
809 return ;
810}
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
static void setParams(const vector< double > x, const vector< double > ym, const vector< double > yp)
void vertex(const EvtComplex &amp)
double getArg(int j)
virtual void getName(std::string &name)=0
EvtId * getDaugs()
static EvtDecayBase * getDecayFunc(EvtParticle *)
Definition EvtId.hh:27
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:287
EvtId getId() const
EvtParticle * getParent()
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double mass() const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void set(int i, double d)

◆ getName()

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

Implements EvtDecayBase.

Definition at line 39 of file EvtDDalitz.cc.

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

◆ init()

void EvtDDalitz::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 52 of file EvtDDalitz.cc.

52 {
53
54 // check that there are 0 arguments
55
56 static EvtId DM=EvtPDL::getId("D-");
57 static EvtId DP=EvtPDL::getId("D+");
58 static EvtId D0=EvtPDL::getId("D0");
59 static EvtId D0B=EvtPDL::getId("anti-D0");
60 static EvtId DSP=EvtPDL::getId("D_s+");
61 static EvtId DSM=EvtPDL::getId("D_s-");
62 static EvtId KM=EvtPDL::getId("K-");
63 static EvtId KP=EvtPDL::getId("K+");
64 static EvtId K0=EvtPDL::getId("K0");
65 static EvtId KB=EvtPDL::getId("anti-K0");
66 static EvtId KL=EvtPDL::getId("K_L0");
67 static EvtId KS=EvtPDL::getId("K_S0");
68 static EvtId PIM=EvtPDL::getId("pi-");
69 static EvtId PIP=EvtPDL::getId("pi+");
70 static EvtId PI0=EvtPDL::getId("pi0");
71
72 static double MPI = EvtPDL::getMeanMass(PI0);
73 static double MKP = EvtPDL::getMeanMass(KP);
74
75
76 checkNArg(0);
77 checkNDaug(3);
78
80
84
85
86 EvtId parnum=getParentId();
87 EvtId d1=getDaug(0);
88 EvtId d2=getDaug(1);
89 EvtId d3=getDaug(2);
90 _flag=0;
91 if ( parnum == D0 ) {
92 //look for either a K- pi+ pi0 or K0bar pi+ pi-
93 if ( d1==KM && d2==PIP && d3==PI0 ) { _flag=4; _d1=0; _d2=1; _d3=2;}
94 if ( d1==KM && d3==PIP && d2==PI0 ) { _flag=4; _d1=0; _d2=2; _d3=1;}
95 if ( d2==KM && d1==PIP && d3==PI0 ) { _flag=4; _d1=1; _d2=0; _d3=2;}
96 if ( d2==KM && d3==PIP && d1==PI0 ) { _flag=4; _d1=1; _d2=2; _d3=0;}
97 if ( d3==KM && d1==PIP && d2==PI0 ) { _flag=4; _d1=2; _d2=0; _d3=1;}
98 if ( d3==KM && d2==PIP && d1==PI0 ) { _flag=4; _d1=2; _d2=1; _d3=0;}
99
100 if ( d1==KB && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
101 if ( d1==KB && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
102 if ( d2==KB && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
103 if ( d2==KB && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
104 if ( d3==KB && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
105 if ( d3==KB && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
106
107 if ( d1==KL && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
108 if ( d1==KL && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
109 if ( d2==KL && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
110 if ( d2==KL && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
111 if ( d3==KL && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
112 if ( d3==KL && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
113
114 if ( d1==KS && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
115 if ( d1==KS && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
116 if ( d2==KS && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
117 if ( d2==KS && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
118 if ( d3==KS && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
119 if ( d3==KS && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
120
121 if ( d1==KS && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
122 if ( d1==KS && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
123 if ( d2==KS && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
124 if ( d2==KS && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
125 if ( d3==KS && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
126 if ( d3==KS && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
127
128 if ( d1==KL && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
129 if ( d1==KL && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
130 if ( d2==KL && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
131 if ( d2==KL && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
132 if ( d3==KL && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
133 if ( d3==KL && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
134
135 if ( d1==K0 && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
136 if ( d1==K0 && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
137 if ( d2==K0 && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
138 if ( d2==K0 && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
139 if ( d3==K0 && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
140 if ( d3==K0 && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
141
142 if ( d1==PIM && d2==PIP && d3==PI0 ) { _flag=11; _d1=0; _d2=1; _d3=2;} // DLY: D0 -> pi- pi+ pi0
143 if ( d1==PIM && d3==PIP && d2==PI0 ) { _flag=11; _d1=0; _d2=2; _d3=1;}
144 if ( d2==PIM && d1==PIP && d3==PI0 ) { _flag=11; _d1=1; _d2=0; _d3=2;}
145 if ( d2==PIM && d3==PIP && d1==PI0 ) { _flag=11; _d1=1; _d2=2; _d3=0;}
146 if ( d3==PIM && d1==PIP && d2==PI0 ) { _flag=11; _d1=2; _d2=0; _d3=1;}
147 if ( d3==PIM && d2==PIP && d1==PI0 ) { _flag=11; _d1=2; _d2=1; _d3=0;}
148
149 }
150 if ( parnum == D0B ) {
151 //look for either a K+ pi- pi0 or K0 pi+ pi-
152 if ( d1==KP && d2==PIM && d3==PI0 ) { _flag=4; _d1=0; _d2=1; _d3=2;}
153 if ( d1==KP && d3==PIM && d2==PI0 ) { _flag=4; _d1=0; _d2=2; _d3=1;}
154 if ( d2==KP && d1==PIM && d3==PI0 ) { _flag=4; _d1=1; _d2=0; _d3=2;}
155 if ( d2==KP && d3==PIM && d1==PI0 ) { _flag=4; _d1=1; _d2=2; _d3=0;}
156 if ( d3==KP && d1==PIM && d2==PI0 ) { _flag=4; _d1=2; _d2=0; _d3=1;}
157 if ( d3==KP && d2==PIM && d1==PI0 ) { _flag=4; _d1=2; _d2=1; _d3=0;}
158
159 if ( d1==K0 && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
160 if ( d1==K0 && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
161 if ( d2==K0 && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
162 if ( d2==K0 && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
163 if ( d3==K0 && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
164 if ( d3==K0 && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
165
166 if ( d1==KL && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
167 if ( d1==KL && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
168 if ( d2==KL && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
169 if ( d2==KL && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
170 if ( d3==KL && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
171 if ( d3==KL && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
172
173 if ( d1==KS && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
174 if ( d1==KS && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
175 if ( d2==KS && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
176 if ( d2==KS && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
177 if ( d3==KS && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
178 if ( d3==KS && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
179
180 if ( d1==KS && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
181 if ( d1==KS && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
182 if ( d2==KS && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
183 if ( d2==KS && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
184 if ( d3==KS && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
185 if ( d3==KS && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
186
187 if ( d1==KL && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
188 if ( d1==KL && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
189 if ( d2==KL && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
190 if ( d2==KL && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
191 if ( d3==KL && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
192 if ( d3==KL && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
193
194 if ( d1==K0 && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
195 if ( d1==K0 && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
196 if ( d2==K0 && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
197 if ( d2==K0 && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
198 if ( d3==K0 && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
199 if ( d3==K0 && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}
200
201 if ( d1==PIP && d2==PIM && d3==PI0 ) { _flag=11; _d1=0; _d2=1; _d3=2;} // DLY: D0B -> pi+ pi- pi0
202 if ( d1==PIP && d3==PIM && d2==PI0 ) { _flag=11; _d1=0; _d2=2; _d3=1;}
203 if ( d2==PIP && d1==PIM && d3==PI0 ) { _flag=11; _d1=1; _d2=0; _d3=2;}
204 if ( d2==PIP && d3==PIM && d1==PI0 ) { _flag=11; _d1=1; _d2=2; _d3=0;}
205 if ( d3==PIP && d1==PIM && d2==PI0 ) { _flag=11; _d1=2; _d2=0; _d3=1;}
206 if ( d3==PIP && d2==PIM && d1==PI0 ) { _flag=11; _d1=2; _d2=1; _d3=0;}
207
208 }
209
210 if ( parnum == DP ) {
211 //look for K- pi+ pi+
212 if ( d1==KB && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
213 if ( d1==KB && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
214 if ( d2==KB && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
215 if ( d2==KB && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
216 if ( d3==KB && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
217 if ( d3==KB && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
218
219 if ( d1==KL && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
220 if ( d1==KL && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
221 if ( d2==KL && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
222 if ( d2==KL && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
223 if ( d3==KL && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
224 if ( d3==KL && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
225
226 if ( d1==KS && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
227 if ( d1==KS && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
228 if ( d2==KS && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
229 if ( d2==KS && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
230 if ( d3==KS && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
231 if ( d3==KS && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
232
233 if ( d1==KM && d2==PIP && d3==PIP ) { _flag=1; _d1=0; _d2=1; _d3=2;}
234 if ( d2==KM && d1==PIP && d3==PIP ) { _flag=1; _d1=1; _d2=0; _d3=2;}
235 if ( d3==KM && d1==PIP && d2==PIP ) { _flag=1; _d1=2; _d2=0; _d3=1;}
236
237 if ( d1==KM && d2==KP && d3==PIP ) { _flag=8; _d1=0; _d2=1; _d3=2;} // DLY: D+ -> K- K+ pi+
238 if ( d1==KM && d3==KP && d2==PIP ) { _flag=8; _d1=0; _d2=2; _d3=1;}
239 if ( d2==KM && d1==KP && d3==PIP ) { _flag=8; _d1=1; _d2=0; _d3=2;}
240 if ( d2==KM && d3==KP && d1==PIP ) { _flag=8; _d1=1; _d2=2; _d3=0;}
241 if ( d3==KM && d1==KP && d2==PIP ) { _flag=8; _d1=2; _d2=0; _d3=1;}
242 if ( d3==KM && d2==KP && d1==PIP ) { _flag=8; _d1=2; _d2=1; _d3=0;}
243
244 if ( d1==PIM && d2==PIP && d3==KP ) { _flag=9; _d1=0; _d2=1; _d3=2;} // DLY: D+ -> pi- pi+ K+
245 if ( d1==PIM && d3==PIP && d2==KP ) { _flag=9; _d1=0; _d2=2; _d3=1;}
246 if ( d2==PIM && d1==PIP && d3==KP ) { _flag=9; _d1=1; _d2=0; _d3=2;}
247 if ( d2==PIM && d3==PIP && d1==KP ) { _flag=9; _d1=1; _d2=2; _d3=0;}
248 if ( d3==PIM && d1==PIP && d2==KP ) { _flag=9; _d1=2; _d2=0; _d3=1;}
249 if ( d3==PIM && d2==PIP && d1==KP ) { _flag=9; _d1=2; _d2=1; _d3=0;}
250
251 if ( d1==PIM && d2==PIP && d3==PIP ) { _flag=10; _d1=0; _d2=1; _d3=2;} // DLY: D+ -> pi- pi+ pi+
252 if ( d2==PIM && d1==PIP && d3==PIP ) { _flag=10; _d1=1; _d2=0; _d3=2;}
253 if ( d3==PIM && d1==PIP && d2==PIP ) { _flag=10; _d1=2; _d2=0; _d3=1;}
254
255 }
256
257 if ( parnum == DM ) {
258 //look for K- pi+ pi+
259 if ( d1==K0 && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
260 if ( d1==K0 && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
261 if ( d2==K0 && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
262 if ( d2==K0 && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
263 if ( d3==K0 && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
264 if ( d3==K0 && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
265
266 if ( d1==KL && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
267 if ( d1==KL && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
268 if ( d2==KL && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
269 if ( d2==KL && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
270 if ( d3==KL && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
271 if ( d3==KL && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
272
273 if ( d1==KS && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;}
274 if ( d1==KS && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
275 if ( d2==KS && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
276 if ( d2==KS && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
277 if ( d3==KS && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
278 if ( d3==KS && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
279
280 if ( d1==KP && d2==PIM && d3==PIM ) { _flag=1; _d1=0; _d2=1; _d3=2;}
281 if ( d2==KP && d1==PIM && d3==PIM ) { _flag=1; _d1=1; _d2=0; _d3=2;}
282 if ( d3==KP && d1==PIM && d2==PIM ) { _flag=1; _d1=2; _d2=0; _d3=1;}
283
284 if ( d1==KP && d2==KM && d3==PIM ) { _flag=8; _d1=0; _d2=1; _d3=2;} // DLY: D- -> K+ K- pi-
285 if ( d1==KP && d3==KM && d2==PIM ) { _flag=8; _d1=0; _d2=2; _d3=1;}
286 if ( d2==KP && d1==KM && d3==PIM ) { _flag=8; _d1=1; _d2=0; _d3=2;}
287 if ( d2==KP && d3==KM && d1==PIM ) { _flag=8; _d1=1; _d2=2; _d3=0;}
288 if ( d3==KP && d1==KM && d2==PIM ) { _flag=8; _d1=2; _d2=0; _d3=1;}
289 if ( d3==KP && d2==KM && d1==PIM ) { _flag=8; _d1=2; _d2=1; _d3=0;}
290
291 if ( d1==PIP && d2==PIM && d3==KM ) { _flag=9; _d1=0; _d2=1; _d3=2;} // DLY: D- -> pi+ pi- K-
292 if ( d1==PIP && d3==PIM && d2==KM ) { _flag=9; _d1=0; _d2=2; _d3=1;}
293 if ( d2==PIP && d1==PIM && d3==KM ) { _flag=9; _d1=1; _d2=0; _d3=2;}
294 if ( d2==PIP && d3==PIM && d1==KM ) { _flag=9; _d1=1; _d2=2; _d3=0;}
295 if ( d3==PIP && d1==PIM && d2==KM ) { _flag=9; _d1=2; _d2=0; _d3=1;}
296 if ( d3==PIP && d2==PIM && d1==KM ) { _flag=9; _d1=2; _d2=1; _d3=0;}
297
298 if ( d1==PIP && d2==PIM && d3==PIM ) { _flag=10; _d1=0; _d2=1; _d3=2;} // DLY: D- -> pi+ pi- pi-
299 if ( d2==PIP && d1==PIM && d3==PIM ) { _flag=10; _d1=1; _d2=0; _d3=2;}
300 if ( d3==PIP && d1==PIM && d2==PIM ) { _flag=10; _d1=2; _d2=0; _d3=1;}
301
302 }
303
304 if ( parnum == DSP ) {
305 if ( d1==KM && d2==KP && d3==PIP ) { _flag=6; _d1=0; _d2=1; _d3=2; }
306 if ( d1==KM && d3==KP && d2==PIP ) { _flag=6; _d1=0; _d2=2; _d3=1; }
307 if ( d2==KM && d1==KP && d3==PIP ) { _flag=6; _d1=1; _d2=0; _d3=2; }
308 if ( d2==KM && d3==KP && d1==PIP ) { _flag=6; _d1=1; _d2=2; _d3=0; }
309 if ( d3==KM && d1==KP && d2==PIP ) { _flag=6; _d1=2; _d2=0; _d3=1; }
310 if ( d3==KM && d2==KP && d1==PIP ) { _flag=6; _d1=2; _d2=1; _d3=0; }
311
312 if ( d1==PIM && d2==PIP && d3==PIP ) { _flag=7; _d1=0; _d2=1; _d3=2;}
313 if ( d2==PIM && d1==PIP && d3==PIP ) { _flag=7; _d1=1; _d2=0; _d3=2;}
314 if ( d3==PIM && d1==PIP && d2==PIP ) { _flag=7; _d1=2; _d2=0; _d3=1;}
315 }
316
317 if ( parnum == DSM ) {
318 if ( d1==KP && d2==KM && d3==PIM ) { _flag=6; _d1=0; _d2=1; _d3=2; }
319 if ( d1==KP && d3==KM && d2==PIM ) { _flag=6; _d1=0; _d2=2; _d3=1; }
320 if ( d2==KP && d1==KM && d3==PIM ) { _flag=6; _d1=1; _d2=0; _d3=2; }
321 if ( d2==KP && d3==KM && d1==PIM ) { _flag=6; _d1=1; _d2=2; _d3=0; }
322 if ( d3==KP && d1==KM && d2==PIM ) { _flag=6; _d1=2; _d2=0; _d3=1; }
323 if ( d3==KP && d2==KM && d1==PIM ) { _flag=6; _d1=2; _d2=1; _d3=0; }
324
325 if ( d1==PIP && d2==PIM && d3==PIM ) { _flag=7; _d1=0; _d2=1; _d3=2;}
326 if ( d2==PIP && d1==PIM && d3==PIM ) { _flag=7; _d1=1; _d2=0; _d3=2;}
327 if ( d3==PIP && d1==PIM && d2==PIM ) { _flag=7; _d1=2; _d2=0; _d3=1;}
328 }
329
330/*
331 cout << "DDalitz : flag = " << _flag;
332 if (_flag==1) {
333 cout << " = D+ -> K- pi+ pi+"<<endl;
334 } else if (_flag==2) {
335 cout << " = D+ -> K0bar pi+ pi0"<<endl;
336 } else if (_flag==3) {
337 cout << " = D0 -> K0bar pi+ pi-"<<endl;
338 } else if (_flag==4) {
339 cout << " = D0 -> K- pi+ pi0"<<endl;
340 } else if (_flag==5) {
341 cout << " = D0 -> K0 K+ K-"<<endl;
342 } else if (_flag==6) {
343 cout << " = Ds+ -> K- K+ pi+"<<endl;
344 } else if (_flag==7) {
345 cout << " = Ds+ -> pi+ pi- pi+"<<endl;
346 } else if (_flag==8) {
347 cout << " = D+ -> K- K+ pi+"<<endl;
348 } else if (_flag==9) {
349 cout << " = D+ -> pi- pi+ K+ WS (DCS)"<<endl;
350 } else if (_flag==10) {
351 cout << " = D+ -> pi- pi+ pi+"<<endl;
352 } else if (_flag==11) {
353 cout << " = D0 -> pi- pi+ pi0"<<endl;
354 } else if (_flag==0) {
355 cout << " = Invalid mode."<<endl;
356 }
357*/
358
359 if ( _flag==6) {
360 _kkpi_params.push_back(EvtFlatteParam(MPI, MPI, 0.406));
361 _kkpi_params.push_back(EvtFlatteParam(MKP, MKP, 0.800));
362 }
363
364 if ( _flag==0) {
365 report(ERROR,"EvtGen") << "EvtDDaltiz: Invalid mode."<<endl;
366 assert(0);
367 }
368}
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()
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
EvtId getDaug(int i)
static double getMeanMass(EvtId i)
Definition EvtPDL.hh:45

◆ initProbMax()

void EvtDDalitz::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 370 of file EvtDDalitz.cc.

370 {
371 if ( _flag==1 ) {setProbMax(2500.0);}
372 if ( _flag==2 ) {setProbMax(10000);} //old if ( _flag==2 ) {setProbMax(147.9);}
373 if ( _flag==3 ) {setProbMax(5000.0);}
374 if ( _flag==4 ) {setProbMax(3000.0);}
375 if ( _flag==5 ) {setProbMax(10000000.0);}
376 if ( _flag==6 ) {setProbMax(50000.0);}
377 if ( _flag==7 ) {setProbMax(50000.0);}
378 if ( _flag==8 ) {setProbMax(35000.0);}
379 if ( _flag==9 ) {setProbMax(2500.0);}
380 if ( _flag==10 ){setProbMax(1300.0);}
381 if ( _flag==11 ){setProbMax(1000.0);}
382}
void setProbMax(double prbmx)

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