BOSS 8.0.0
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 33 of file EvtDDalitz.hh.

33{}

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 41 of file EvtDDalitz.cc.

41{ return new EvtDDalitz; }

◆ decay()

void EvtDDalitz::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 1493 of file EvtDDalitz.cc.

1493 {
1494
1495 // added by Lange Jan4,2000
1496 static EvtId BP = EvtPDL::getId( "B+" );
1497 static EvtId BM = EvtPDL::getId( "B-" );
1498 static EvtId B0 = EvtPDL::getId( "B0" );
1499 static EvtId B0B = EvtPDL::getId( "anti-B0" );
1500 static EvtId DM = EvtPDL::getId( "D-" );
1501 static EvtId DP = EvtPDL::getId( "D+" );
1502 static EvtId D0 = EvtPDL::getId( "D0" );
1503 static EvtId D0B = EvtPDL::getId( "anti-D0" );
1504 static EvtId KM = EvtPDL::getId( "K-" );
1505 static EvtId KP = EvtPDL::getId( "K+" );
1506 static EvtId K0 = EvtPDL::getId( "K0" );
1507 static EvtId KB = EvtPDL::getId( "anti-K0" );
1508 static EvtId PIM = EvtPDL::getId( "pi-" );
1509 static EvtId PIP = EvtPDL::getId( "pi+" );
1510 static EvtId PI0 = EvtPDL::getId( "pi0" );
1511
1512 double oneby2 = 0.707106782;
1513
1514 bool isBToDK = false;
1515 if ( p->getParent() )
1516 {
1517 std::string name1;
1519
1520 EvtId parId = p->getParent()->getId();
1521 if ( ( BP == parId ) || ( BM == parId ) || ( B0 == parId ) || ( B0B == parId ) )
1522 if ( name1 == "BTODDALITZCPK" ) isBToDK = true;
1523 }
1524
1525 // same structure for all of these decays
1526
1528 EvtVector4R moms1 = p->getDaug( _d1 )->getP4();
1529 EvtVector4R moms2 = p->getDaug( _d2 )->getP4();
1530 EvtVector4R moms3 = p->getDaug( _d3 )->getP4();
1531
1532 EvtVector4R p4_p;
1533 p4_p.set( p->mass(), 0.0, 0.0, 0.0 );
1534
1535 EvtComplex amp( 1.0, 0.0 );
1536
1537 // now determine which D and which decay
1538
1539 // data from Anjos et al, Phys.Rev.D 1993, v.48,num.1,p.56 (E691 resuls)
1540 // for D+ -> K- pi+ pi+, and from Adler et al, Phys.Lett. B196 (1987), 107
1541 //(Mark III results) for D+ -> K0bar pi+ pi0.
1542 // CLEO results for D0->k-pi+pi0
1543
1544 if ( _flag == 1 )
1545 {
1546
1547 // have a D+ -> K- pi+ pi+ decay, or charge conjugate
1548 // Anjos etal e691 - Phys Rev D48, 56 (1993)
1549 // EvtResonance DplusRes11(p4_p,moms1,moms2,0.78,-60.0,0.0498,0.89610,1);
1550 // EvtResonance DplusRes12(p4_p,moms3,moms1,0.78,-60.0,0.0498,0.89610,1);//K*(892)
1551 //
1552 // EvtResonance DplusRes21(p4_p,moms1,moms2,0.53,132.0,0.287,1.429,0);
1553 // EvtResonance DplusRes22(p4_p,moms3,moms1,0.53,132.0,0.287,1.429,0);//K*(1430)
1554 //
1555 // EvtResonance DplusRes31(p4_p,moms1,moms2,0.47,-51.0,0.323,1.714,1);
1556 // EvtResonance DplusRes32(p4_p,moms3,moms1,0.47,-51.0,0.323,1.714,1);//K*(1680)
1557 //
1558 // amp = amp + oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl()) +
1559 // oneby2*(DplusRes21.resAmpl() + DplusRes22.resAmpl()) +
1560 // oneby2*(-DplusRes31.resAmpl()+ DplusRes32.resAmpl());
1561 // CLEO-c p15,arxiv:0802.4214v2
1562 EvtResonance2 DplusRes11( p4_p, moms1, moms2, 1.0, 0.0, 0.0503, 0.896, 1, true );
1563 EvtResonance2 DplusRes12( p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.896, 1,
1564 true ); // K*(892)
1565 EvtResonance2 DplusRes21( p4_p, moms1, moms2, 3.0, 49.7 - 180.0, 0.164, 1.463, 0 );
1566 EvtResonance2 DplusRes22( p4_p, moms3, moms1, 3.0, 49.7 - 180.0, 0.164, 1.463,
1567 0 ); // K*(1430)
1568 EvtResonance2 DplusRes31( p4_p, moms1, moms2, 0.96, -29.9 + 180.0, 0.109, 1.4324, 2,
1569 true );
1570 EvtResonance2 DplusRes32( p4_p, moms3, moms1, 0.96, -29.9 + 180.0, 0.109, 1.4324, 2,
1571 true ); // K*_2(1430)
1572 EvtResonance2 DplusRes41( p4_p, moms1, moms2, 6.5, 29.0, 0.323, 1.717, 1, true );
1573 EvtResonance2 DplusRes42( p4_p, moms3, moms1, 6.5, 29.0, 0.323, 1.717, 1,
1574 true ); // K*(1680)
1575 EvtResonance2 DplusRes51( p4_p, moms1, moms2, 5.01, -163.7 + 180.0, 0.470, 0.809, 0 );
1576 EvtResonance2 DplusRes52( p4_p, moms3, moms1, 5.01, -163.7 + 180.0, 0.470, 0.809,
1577 0 ); // kappa(800)
1578 double pi180inv = 1.0 / EvtConst::radToDegrees;
1579 amp = EvtComplex( 7.4 * cos( ( -18.4 + 180.0 ) * pi180inv ),
1580 7.4 * sin( ( -18.4 + 180.0 ) * pi180inv ) ) +
1581 oneby2 * ( -DplusRes11.resAmpl() + DplusRes12.resAmpl() ) +
1582 oneby2 * ( DplusRes21.resAmpl() + DplusRes22.resAmpl() ) +
1583 oneby2 * ( DplusRes31.resAmpl() + DplusRes32.resAmpl() ) +
1584 oneby2 * ( -DplusRes41.resAmpl() + DplusRes42.resAmpl() ) +
1585 oneby2 * ( DplusRes51.resAmpl() + DplusRes52.resAmpl() );
1586 }
1587
1588 if ( _flag == 2 )
1589 {
1590
1591 // have a D+ -> K0bar pi+ pi0 decay (daughters must be listed in this order!)
1592 // adler etal MarkIII - Phys Lett B196, 107 (1987)
1593 // Results in this paper:
1594 // Kbar rho+ FitFraction = 68+/-8+/-12 Phase 0
1595 // Kbar* pi+ 19+/-6+/-6 43+/-23
1596 // nonres 13+/-7+/-8 250+/-19
1597 // These numbers below seem not to be exactly the same
1598 // the phases are equiv to -106=254 and 41
1599 //
1600 // old EvtResonance DplusKpipi0Res1(p4_p,moms2,moms3,1.00,0.00,0.1512,0.7699,1); //rho+
1601 // old EvtResonance DplusKpipi0Res2(p4_p,moms3,moms1,0.8695,0.7191,0.0498,0.89159,1);
1602 // //K*0 old amp = 0.9522*EvtComplex(cos(-1.8565),sin(-1.8565))
1603 // + 1.00*DplusKpipi0Res1.relBrWig(0) +
1604 // 0.8695*EvtComplex(cos(0.7191),sin(0.7191))*DplusKpipi0Res2.relBrWig(1);
1605 double pi180inv = 1.0 / EvtConst::radToDegrees;
1606 // NR rho K*(892) K0(1430) K2(1430) K(1680) rho(1450)
1607 // kappa
1608 // double amp1[8]={0.920322, 1, 0.198943, 0.604074,
1609 // 0.225741, 1.257776, 1.989557, 1.332243}; double phi[8]={278.810706, 0, 288.035519,
1610 // 324.018021, 263.172850, 276.218704, 169.42471, 88.091929}; double amp1[8]={0.797929, 1,
1611 // 0.194377, 0.332583, 0.286707, 1.440519, 2.278415, 0.611784}; double
1612 // phi[8]={272.941122, 0, 288.439024, 329.600012, 258.197983,273.091907,
1613 // 172.456067, 85.072272}; double amp1[8]={0.8, 1, 0.2, 0.3, 0, 0, 2.5, 0}; double
1614 // phi[8] ={273, 0, 288, 330, 258, 0, 172, 85};
1615 // Final result
1616 double amp1[8] = { 0.797929, 1, 0.194377, 0.332583, 0, 1.440519, 2.278415, 0.611784 };
1617 double phi[8] = { 279, 0, 293, 334, 0, 252, 187, 93 };
1618 EvtResonance2 DplusKpipi0Res1( p4_p, moms2, moms3, amp1[1], phi[1], 0.1494, 0.77549, 1 );
1619 EvtResonance2 DplusKpipi0Res2( p4_p, moms1, moms3, amp1[2], phi[2], 0.0503, 0.896, 1 );
1620 EvtResonance2 DplusKpipi0Res3( p4_p, moms1, moms3, amp1[3], phi[3], 0.27, 1.425,
1621 0 ); // mass and width fixed at PDG, Liaoyuan Dong
1622 EvtResonance2 DplusKpipi0Res4( p4_p, moms1, moms3, amp1[4], phi[4], 0.109, 1.4324, 2 );
1623 EvtResonance2 DplusKpipi0Res5( p4_p, moms1, moms3, amp1[5], phi[5], 0.322, 1.717, 1 );
1624 // Fitted
1625 EvtResonance2 DplusKpipi0Res6( p4_p, moms2, moms3, amp1[6], phi[6], 0.4, 1.465,
1626 1 ); // mass and width fixed at PDG, Liaoyuan Dong
1627 EvtResonance2 DplusKpipi0Res7( p4_p, moms1, moms3, 1, 0, 0.175, 1.465, 0 );
1628 amp = amp1[0] * EvtComplex( cos( phi[0] * pi180inv ), sin( phi[0] * pi180inv ) ) +
1629 DplusKpipi0Res1.resAmpl() + DplusKpipi0Res2.resAmpl() + DplusKpipi0Res3.resAmpl() +
1630 DplusKpipi0Res4.resAmpl() + DplusKpipi0Res5.resAmpl() + DplusKpipi0Res6.resAmpl();
1631 // EvtComplex
1632 // kappa=1./(EvtComplex(0.731086,-0.244799)*EvtComplex(0.731086,-0.244799)-(moms1+moms3).mass2());
1633 // EvtComplex
1634 // kappa=1./(EvtComplex(0.710843,-0.251841)*EvtComplex(0.710843,-0.251841)-(moms1+moms3).mass2());
1635 // Final result
1636 EvtComplex kappa = 1. / ( EvtComplex( 0.752, -0.229 ) * EvtComplex( 0.752, -0.229 ) -
1637 ( moms1 + moms3 ).mass2() );
1638 amp += amp1[7] * EvtComplex( cos( phi[7] * pi180inv ), sin( phi[7] * pi180inv ) ) * kappa;
1639 }
1640
1641 if ( _flag == 3 )
1642 {
1643
1644 // know it's a D0 -> K0_bar pi+ pi- or charge conjugate
1645
1646 // EvtResonance DK2piRes1(p4_p,moms1,moms2,2.31,109.0,0.0498,0.89610,1);//K*(892)
1647 // EvtResonance DK2piRes2(p4_p,moms3,moms2,1.59,-123.0,0.1491,0.7683,1);//RHO(770)
1648
1649 // amp = amp + DK2piRes1.resAmpl() + DK2piRes2.resAmpl();
1650
1651 // D0 -> K0 pi+ pi- + CC
1652 // If it does not come from a B->DK, decay it as D0 or D0bar separatly
1653 // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+
1654 // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi-
1655
1656 if ( isBToDK )
1657 {
1658 // Gamma angle in rad.
1659 double gamma = EvtDecayTable::getDecayFunc( p->getParent() )->getArg( 0 );
1660 // Strong phase in rad.
1661 double delta = EvtDecayTable::getDecayFunc( p->getParent() )->getArg( 1 );
1662 // Ratio between B->D0K and B->D0barK
1663 double A = EvtDecayTable::getDecayFunc( p->getParent() )->getArg( 2 );
1664
1665 EvtComplex Factor( fabs( A ) * cos( delta ), fabs( A ) * sin( delta ) );
1666
1667 if ( ( p->getParent()->getId() == BP ) || ( p->getParent()->getId() == B0 ) )
1668 {
1669 // the ratio D/Dbar
1670 Factor = Factor * EvtComplex( cos( gamma ), sin( gamma ) );
1671 if ( p->getId() == D0 )
1672 {
1673 // the flavor of the particle has no meaning. But we need
1674 // it to know which daughter is pi+ or pi-
1675 // M( B+ or B0 ) = f(Dbar) + factor * f(D)
1676 // f(Dbar) = amplDtoK0PiPi(pD, K0, pi+, pi-)
1677 // f(D) = amplDtoK0PiPi(pD, K0, pi-, pi+)
1678 // Then ...
1679 amp = amplDtoK0PiPi( p4_p, moms1, moms3, moms2 ) +
1680 Factor * amplDtoK0PiPi( p4_p, moms1, moms2, moms3 );
1681 }
1682 else
1683 {
1684 amp = amplDtoK0PiPi( p4_p, moms1, moms2, moms3 ) +
1685 Factor * amplDtoK0PiPi( p4_p, moms1, moms3, moms2 );
1686 }
1687 }
1688 else if ( ( p->getParent()->getId() == BM ) || ( p->getParent()->getId() == B0B ) )
1689 {
1690 Factor = Factor * EvtComplex( cos( gamma ), -sin( gamma ) );
1691 // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ...
1692 if ( p->getId() == D0 )
1693 {
1694 amp = amplDtoK0PiPi( p4_p, moms1, moms2, moms3 ) +
1695 Factor * amplDtoK0PiPi( p4_p, moms1, moms3, moms2 );
1696 }
1697 else
1698 {
1699 amp = amplDtoK0PiPi( p4_p, moms1, moms3, moms2 ) +
1700 Factor * amplDtoK0PiPi( p4_p, moms1, moms2, moms3 );
1701 }
1702 }
1703 }
1704 else { amp = amplDtoK0PiPi( p4_p, moms1, moms2, moms3 ); }
1705 }
1706
1707 if ( _flag == 4 )
1708 {
1709
1710 EvtResonance2 DKpipi0Res1( p4_p, moms2, moms3, 1.0, 0.0, 0.1507, 0.770, 1 ); // rho
1711 EvtResonance2 DKpipi0Res2( p4_p, moms1, moms2, 0.39, -0.2, 0.0505, 0.8961, 1 ); // k*0
1712 EvtResonance2 DKpipi0Res3( p4_p, moms1, moms3, 0.44, 163.0, 0.050, 0.8915, 1 ); // k*-
1713
1714 EvtResonance2 DKpipi0Res4( p4_p, moms1, moms3, 0.77, 55.5, 0.294, 1.412, 0 ); // k01430-
1715 EvtResonance2 DKpipi0Res5( p4_p, moms1, moms2, 0.85, 166.0, 0.294, 1.412, 0 ); // k01430bar
1716 EvtResonance2 DKpipi0Res6( p4_p, moms2, moms3, 2.5, 171.0, 0.240, 1.700, 1 ); // rho1700
1717 EvtResonance2 DKpipi0Res7( p4_p, moms1, moms3, 2.5, 103.0, 0.322, 1.717, 1 ); // K*1680-
1718
1719 double pi180inv = 1.0 / EvtConst::radToDegrees;
1720
1721 amp = EvtComplex( 1.75 * cos( 31.2 * pi180inv ), 1.75 * sin( 31.2 * pi180inv ) ) +
1722 DKpipi0Res1.resAmpl() + DKpipi0Res2.resAmpl() + DKpipi0Res3.resAmpl() +
1723 DKpipi0Res4.resAmpl() + DKpipi0Res5.resAmpl() + DKpipi0Res6.resAmpl() +
1724 DKpipi0Res7.resAmpl();
1725 }
1726
1727 if ( _flag == 5 )
1728 {
1729
1730 // D0 -> K0 K+ K- + CC
1731 // If it does not come from a B->DK, decay it as D0 or D0bar separatly
1732 // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+
1733 // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi-
1734
1735 if ( isBToDK )
1736 {
1737 // Gamma angle in rad.
1738 double gamma = EvtDecayTable::getDecayFunc( p->getParent() )->getArg( 0 );
1739 // Strong phase in rad.
1740 double delta = EvtDecayTable::getDecayFunc( p->getParent() )->getArg( 1 );
1741 // Ratio between B->D0K and B->D0barK
1742 double A = EvtDecayTable::getDecayFunc( p->getParent() )->getArg( 2 );
1743
1744 EvtComplex Factor( fabs( A ) * cos( delta ), fabs( A ) * sin( delta ) );
1745
1746 if ( ( p->getParent()->getId() == BP ) || ( p->getParent()->getId() == B0 ) )
1747 {
1748 // the ratio D/Dbar
1749 Factor = Factor * EvtComplex( cos( gamma ), sin( gamma ) );
1750 if ( p->getId() == D0 )
1751 {
1752 // the flavor of the particle has no meaning. But we need
1753 // it to know which daughter is pi+ or pi-
1754 // M( B+ or B0 ) = f(Dbar) + factor * f(D)
1755 // f(Dbar) = amplDtoK0PiPi(pD, K0, K+, K-)
1756 // f(D) = amplDtoK0PiPi(pD, K0, K-, K+)
1757 // Then ...
1758 amp = amplDtoK0KK( p4_p, moms1, moms3, moms2 ) +
1759 Factor * amplDtoK0KK( p4_p, moms1, moms2, moms3 );
1760 }
1761 else
1762 {
1763 amp = amplDtoK0KK( p4_p, moms1, moms2, moms3 ) +
1764 Factor * amplDtoK0KK( p4_p, moms1, moms3, moms2 );
1765 }
1766 }
1767 else if ( ( p->getParent()->getId() == BM ) || ( p->getParent()->getId() == B0B ) )
1768 {
1769 Factor = Factor * EvtComplex( cos( gamma ), -sin( gamma ) );
1770 // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ...
1771 if ( p->getId() == D0 )
1772 {
1773 amp = amplDtoK0KK( p4_p, moms1, moms2, moms3 ) +
1774 Factor * amplDtoK0KK( p4_p, moms1, moms3, moms2 );
1775 }
1776 else
1777 {
1778 amp = amplDtoK0KK( p4_p, moms1, moms3, moms2 ) +
1779 Factor * amplDtoK0KK( p4_p, moms1, moms2, moms3 );
1780 }
1781 }
1782 }
1783 else { amp = amplDtoK0KK( p4_p, moms1, moms2, moms3 ); }
1784 }
1785
1786 // Ds -> K K pi
1787 if ( _flag == 6 )
1788 {
1789 EvtResonance2 DsKKpiRes1( p4_p, moms3, moms1, 1.0, 0.0, 0.0455, 0.8944, 1,
1790 true ); // K*(892)
1791 EvtResonance2 DsKKpiRes2( p4_p, moms3, moms1, 1.48, 138., 0.290, 1.414, 0 ); // K*_0(1430)
1792 EvtFlatte DsKKpiRes3( p4_p, moms1, moms2, 5.07, 156., 0.965, _kkpi_params ); // f_0(980)
1793 EvtResonance2 DsKKpiRes4( p4_p, moms1, moms2, 1.15, -10., 0.00426, 1.019455, 1,
1794 true ); // phi(1020)
1795 EvtResonance2 DsKKpiRes5( p4_p, moms1, moms2, 1.28, 53., 0.265, 1.350, 0 ); // f_0(1370)
1796 EvtResonance2 DsKKpiRes6( p4_p, moms1, moms2, 1.19, 87., 0.137, 1.724, 0 ); // f_0(1710)
1797 amp = DsKKpiRes1.resAmpl() + DsKKpiRes2.resAmpl() + DsKKpiRes3.resAmpl() +
1798 DsKKpiRes4.resAmpl() + DsKKpiRes5.resAmpl() + DsKKpiRes6.resAmpl();
1799 }
1800
1801 // D -> pi pi pi
1802 if ( _flag == 7 )
1803 {
1804 // BaBar decay amplitudes for Ds+ -> pi- pi+ pi+, or charge conjugate
1805 // p4_p is Ds+
1806 // moms1 is pi-
1807 // moms2 is pi+
1808 // moms3 is pi+
1809 // Amplitudes and phases are taken from BaBar hep-ex/0808.0971 with MIPWA s-wave component
1810
1811 EvtResonance2 DspipipiRes1( p4_p, moms1, moms2, 1.0, 0.0, 0.1867, 1.2755, 2, true,
1812 false ); // f2(1270), 12
1813 EvtResonance2 DspipipiRes2( p4_p, moms1, moms3, 1.0, 0.0, 0.1867, 1.2755, 2, true,
1814 false ); // f2(1270), 13
1815
1816 EvtResonance2 DspipipiRes3( p4_p, moms1, moms2, 1.25706e-01,
1817 5.44277 * EvtConst::radToDegrees, 0.1491, 0.77526, 1, true,
1818 false ); // rho, 12
1819 EvtResonance2 DspipipiRes4( p4_p, moms1, moms3, 1.25706e-01,
1820 5.44277 * EvtConst::radToDegrees, 0.1491, 0.77526, 1, true,
1821 false ); // rho, 13
1822 EvtResonance2 DspipipiRes5( p4_p, moms1, moms2, 9.06766e-01,
1823 1.03370 * EvtConst::radToDegrees, 0.400, 1.465, 1, true,
1824 false ); // rho(1450), 12
1825 EvtResonance2 DspipipiRes6( p4_p, moms1, moms3, 9.06766e-01,
1826 1.03370 * EvtConst::radToDegrees, 0.400, 1.465, 1, true,
1827 false ); // rho(1450), 13
1828
1829 const double xl[] = { 0.28, 0.448, 0.55, 0.647, 0.736, 0.803, 0.873, 0.921, 0.951, 0.968,
1830 0.981, 0.993, 1.024, 1.078, 1.135, 1.193, 1.235, 1.267, 1.297, 1.323,
1831 1.35, 1.376, 1.402, 1.427, 1.455, 1.492, 1.557, 1.64, 1.735 };
1832 const double ym[] = { 1.23487, 2.80323, 3.42035, 3.31677, 5.45084, 6.21976,
1833 7.88104, 11.8548, 16.8433, 21.7424, 26.455, 18.6398,
1834 11.1707, 8.00181, 6.74089, 6.09654, 6.62815, 6.26746,
1835 6.50165, 7.49954, 7.2659, 7.53306, 8.49471, 8.07989,
1836 8.28178, 5.8168, 1.63515, 1.37752, 2.08794 };
1837 const double yp[] = { -3.59059, -3.82322, -3.87059, -3.74264, -3.37687, -3.09568,
1838 -2.59601, -2.15795, -1.76578, -1.21117, -0.577655, -0.246062,
1839 0.17292, 0.550796, 0.981734, 1.27572, 1.32191, 1.56281,
1840 1.46746, 1.60172, 1.75168, 1.79924, 1.94462, 2.09212,
1841 2.53836, 3.06809, 3.05283, 7.0558, 7.31884 };
1842 EvtCubicSpline::setParams( 29, xl, ym, yp );
1843 EvtCubicSpline Dspipipiswave1( p4_p, moms1, moms2 ); // S-wave, 12
1844 EvtCubicSpline Dspipipiswave2( p4_p, moms1, moms3 ); // S-wave, 13
1845
1846 amp = DspipipiRes1.resAmpl() + DspipipiRes2.resAmpl() + DspipipiRes3.resAmpl() +
1847 DspipipiRes4.resAmpl() + DspipipiRes5.resAmpl() + DspipipiRes6.resAmpl() +
1848 Dspipipiswave1.resAmpl() + Dspipipiswave2.resAmpl();
1849 }
1850
1851 // D+ -> K- K+ pi+
1852 // CLEO PRD 78, 072003 (2008) Fit A
1853 if ( _flag == 8 )
1854 {
1855
1856 EvtResonance2 DpKKpiRes1( p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.8960, 1,
1857 true ); // K*(892)
1858 EvtResonance2 DpKKpiRes2( p4_p, moms3, moms1, 3.7, 73.0, 0.290, 1.414, 0 ); // K*_0(1430)
1859 EvtResonance2 DpKKpiRes3( p4_p, moms1, moms2, 1.189, -179.0 + 180.0, 0.00426, 1.019455, 1,
1860 true ); // phi(1020)
1861 EvtResonance2 DpKKpiRes4( p4_p, moms1, moms2, 1.72, 123., 0.265, 1.474, 0 ); // a_0(1450)
1862 EvtResonance2 DpKKpiRes5( p4_p, moms1, moms2, 1.9, -52.0 + 180.0, 0.15, 1.68, 1,
1863 true ); // phi(1680)
1864 EvtResonance2 DpKKpiRes6( p4_p, moms3, moms1, 6.4, 150., 0.109, 1.4324, 2,
1865 true ); // K*_2(1430)
1866 double pi180inv = 1.0 / EvtConst::radToDegrees;
1867 amp = EvtComplex( 5.1 * cos( ( 53.0 ) * pi180inv ), 5.1 * sin( ( 53.0 ) * pi180inv ) ) +
1868 DpKKpiRes1.resAmpl() + DpKKpiRes2.resAmpl() + DpKKpiRes3.resAmpl() +
1869 DpKKpiRes4.resAmpl() + DpKKpiRes5.resAmpl() + DpKKpiRes6.resAmpl();
1870 }
1871
1872 // D+ -> pi- pi+ K+ WS (DCS)
1873 // FOCUS PLB 601 10 (2004) ; amplitudes there are individually normalized (although not
1874 // explicit in the paper)
1875 // thus the magnitudes appearing below come from dividing the ones appearing in the paper by
1876 // the sqrt of the integral over the DP of the corresponding squared amplitude. Writing as
1877 // pi- pi+ K+ so pipi resonances are (12) and Kpi resonances are (31); masses and widths
1878 // corresponds to PDG 2010
1879 if ( _flag == 9 )
1880 {
1881 EvtResonance2 DpKpipiDCSRes1( p4_p, moms1, moms2, 1.0, 0.0, 0.149, 0.775, 1,
1882 true ); // rho(770)
1883 EvtResonance2 DpKpipiDCSRes2( p4_p, moms3, moms1, 1.0971, -167.1, 0.0487, 0.896, 1,
1884 true ); // K*(890)
1885 EvtResonance2 DpKpipiDCSRes3( p4_p, moms1, moms2, 0.4738, -134.5, 0.059, 0.972,
1886 0 ); // f0(980) as simple BW
1887 EvtResonance2 DpKpipiDCSRes4( p4_p, moms3, moms1, 2.2688, 54.4, 0.109, 1.432, 2,
1888 true ); // K*2(1430)
1889 amp = DpKpipiDCSRes1.resAmpl() + DpKpipiDCSRes2.resAmpl() + DpKpipiDCSRes3.resAmpl() +
1890 DpKpipiDCSRes4.resAmpl();
1891 }
1892
1893 // D+ -> pi- pi+ pi+ from E791 [PRL 86 770 (2001)]
1894 // masses and widths below correspond to what they used; there, the amplitudes were
1895 // individually normalized (although not explicit) so magnitudes here are obtained after
1896 // correcting for that Breit-Wigner has a factor of (-1) there which changes the relative
1897 // phase of the NR wrt to the resonances thus the NR magnitude is set as negative
1898 if ( _flag == 10 )
1899 {
1900 EvtResonance2 DppipipiRes11( p4_p, moms1, moms2, 1.0, 0.0, 0.150, 0.769, 1,
1901 true ); // rho(770)
1902 EvtResonance2 DppipipiRes12( p4_p, moms3, moms1, 1.0, 0.0, 0.150, 0.769, 1,
1903 true ); // rho(770)
1904 EvtResonance2 DppipipiRes21( p4_p, moms1, moms2, 2.2811, 205.7, 0.324, 0.478,
1905 0 ); // sigma(500)
1906 EvtResonance2 DppipipiRes22( p4_p, moms3, moms1, 2.2811, 205.7, 0.324, 0.478,
1907 0 ); // sigma(500)
1908 EvtResonance2 DppipipiRes31( p4_p, moms1, moms2, 0.4265, 165.0, 0.044, 0.977,
1909 0 ); // f0(980) simple BW
1910 EvtResonance2 DppipipiRes32( p4_p, moms3, moms1, 0.4265, 165.0, 0.044, 0.977,
1911 0 ); // f0(980) simple BW
1912 EvtResonance2 DppipipiRes41( p4_p, moms1, moms2, 2.0321, 57.3, 0.185, 1.275, 2,
1913 true ); // f2(1270)
1914 EvtResonance2 DppipipiRes42( p4_p, moms3, moms1, 2.0321, 57.3, 0.185, 1.275, 2,
1915 true ); // f2(1270)
1916 EvtResonance2 DppipipiRes51( p4_p, moms1, moms2, 0.7888, 105.4, 0.173, 1.434,
1917 0 ); // f0(1370)
1918 EvtResonance2 DppipipiRes52( p4_p, moms3, moms1, 0.7888, 105.4, 0.173, 1.434,
1919 0 ); // f0(1370)
1920 EvtResonance2 DppipipiRes61( p4_p, moms1, moms2, 0.7363, 319.1, 0.310, 1.465, 1,
1921 true ); // rho(1450)
1922 EvtResonance2 DppipipiRes62( p4_p, moms3, moms1, 0.7363, 319.1, 0.310, 1.465, 1,
1923 true ); // rho(1450)
1924 double pi180inv = 1.0 / EvtConst::radToDegrees;
1925 amp = EvtComplex( -3.98 * cos( 57.3 * pi180inv ), -3.98 * sin( 57.3 * pi180inv ) ) +
1926 ( DppipipiRes11.resAmpl() - DppipipiRes12.resAmpl() ) // spin1
1927 + ( DppipipiRes21.resAmpl() + DppipipiRes22.resAmpl() ) +
1928 ( DppipipiRes31.resAmpl() + DppipipiRes32.resAmpl() ) +
1929 ( DppipipiRes41.resAmpl() + DppipipiRes42.resAmpl() ) +
1930 ( DppipipiRes51.resAmpl() + DppipipiRes52.resAmpl() ) +
1931 ( DppipipiRes61.resAmpl() - DppipipiRes62.resAmpl() ); // spin1
1932 }
1933
1934 // D0 -> pi- pi+ pi0
1935 // PRL 99, 251801 (2007) arXiv:hep-ex/0703037
1936 if ( _flag == 11 )
1937 {
1938 EvtResonance2 DpipipiRes1p( p4_p, moms2, moms3, 1.0, 0.0, 0.149, 0.775, 1,
1939 true ); // rho+(770)
1940 EvtResonance2 DpipipiRes1( p4_p, moms1, moms2, 0.588, 16.2, 0.149, 0.775, 1,
1941 true ); // rho0(770)
1942 EvtResonance2 DpipipiRes1m( p4_p, moms3, moms1, 0.714, -2.0, 0.149, 0.775, 1,
1943 true ); // rho-(770)
1944 EvtResonance2 DpipipiRes2p( p4_p, moms2, moms3, 0.21, -146.0, 0.400, 1.465, 1,
1945 true ); // rho+(1450)
1946 EvtResonance2 DpipipiRes2( p4_p, moms1, moms2, 0.33, 10.0, 0.400, 1.465, 1,
1947 true ); // rho0(1450)
1948 EvtResonance2 DpipipiRes2m( p4_p, moms3, moms1, 0.82, 16.0, 0.400, 1.465, 1,
1949 true ); // rho-(1450)
1950 EvtResonance2 DpipipiRes3p( p4_p, moms2, moms3, 2.25, -17.0, 0.250, 1.720, 1,
1951 true ); // rho+(1700)
1952 EvtResonance2 DpipipiRes3( p4_p, moms1, moms2, 2.51, -17.0, 0.250, 1.720, 1,
1953 true ); // rho0(1700)
1954 EvtResonance2 DpipipiRes3m( p4_p, moms3, moms1, 2.00, -50.0, 0.250, 1.720, 1,
1955 true ); // rho-(1700)
1956 EvtResonance2 DpipipiRes4( p4_p, moms1, moms2, 0.015, -59.0, 0.07, 0.980, 0 ); // f0(980)
1957 EvtResonance2 DpipipiRes5( p4_p, moms1, moms2, 0.063, 156.0, 0.350, 1.370, 0 ); // f0(1370)
1958 EvtResonance2 DpipipiRes6( p4_p, moms1, moms2, 0.058, 12.0, 0.109, 1.505, 0 ); // f0(1500)
1959 EvtResonance2 DpipipiRes7( p4_p, moms1, moms2, 0.112, 51.0, 0.135, 1.720, 0 ); // f0(1720)
1960 EvtResonance2 DpipipiRes8( p4_p, moms1, moms2, 1.04, -171.0, 0.185, 1.275, 2,
1961 true ); // f2(1270)
1962 EvtResonance2 DpipipiRes9( p4_p, moms1, moms2, 0.069, 8.0, 0.600, 0.400, 0 ); // sigma(400)
1963
1964 double pi180inv = 1.0 / EvtConst::radToDegrees;
1965 amp = EvtComplex( 0.57 * cos( -11.0 * pi180inv ), 0.57 * sin( -11.0 * pi180inv ) ) +
1966 DpipipiRes1p.resAmpl() + DpipipiRes1.resAmpl() + DpipipiRes1m.resAmpl() +
1967 DpipipiRes2p.resAmpl() + DpipipiRes2.resAmpl() + DpipipiRes2m.resAmpl() +
1968 DpipipiRes3p.resAmpl() + DpipipiRes3.resAmpl() + DpipipiRes3m.resAmpl() +
1969 DpipipiRes4.resAmpl() + DpipipiRes5.resAmpl() + DpipipiRes6.resAmpl() +
1970 DpipipiRes7.resAmpl() + DpipipiRes8.resAmpl() + DpipipiRes9.resAmpl();
1971 }
1972
1973 vertex( amp );
1974
1975 return;
1976}
static const double radToDegrees
Definition EvtConst.hh:29
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 *)
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
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{ model_name = "D_DALITZ"; }

◆ init()

void EvtDDalitz::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 43 of file EvtDDalitz.cc.

43 {
44
45 // check that there are 0 arguments
46
47 static EvtId DM = EvtPDL::getId( "D-" );
48 static EvtId DP = EvtPDL::getId( "D+" );
49 static EvtId D0 = EvtPDL::getId( "D0" );
50 static EvtId D0B = EvtPDL::getId( "anti-D0" );
51 static EvtId DSP = EvtPDL::getId( "D_s+" );
52 static EvtId DSM = EvtPDL::getId( "D_s-" );
53 static EvtId KM = EvtPDL::getId( "K-" );
54 static EvtId KP = EvtPDL::getId( "K+" );
55 static EvtId K0 = EvtPDL::getId( "K0" );
56 static EvtId KB = EvtPDL::getId( "anti-K0" );
57 static EvtId KL = EvtPDL::getId( "K_L0" );
58 static EvtId KS = EvtPDL::getId( "K_S0" );
59 static EvtId PIM = EvtPDL::getId( "pi-" );
60 static EvtId PIP = EvtPDL::getId( "pi+" );
61 static EvtId PI0 = EvtPDL::getId( "pi0" );
62
63 static double MPI = EvtPDL::getMeanMass( PI0 );
64 static double MKP = EvtPDL::getMeanMass( KP );
65
66 checkNArg( 0 );
67 checkNDaug( 3 );
68
70
74
75 EvtId parnum = getParentId();
76 EvtId d1 = getDaug( 0 );
77 EvtId d2 = getDaug( 1 );
78 EvtId d3 = getDaug( 2 );
79 _flag = 0;
80 if ( parnum == D0 )
81 {
82 // look for either a K- pi+ pi0 or K0bar pi+ pi-
83 if ( d1 == KM && d2 == PIP && d3 == PI0 )
84 {
85 _flag = 4;
86 _d1 = 0;
87 _d2 = 1;
88 _d3 = 2;
89 }
90 if ( d1 == KM && d3 == PIP && d2 == PI0 )
91 {
92 _flag = 4;
93 _d1 = 0;
94 _d2 = 2;
95 _d3 = 1;
96 }
97 if ( d2 == KM && d1 == PIP && d3 == PI0 )
98 {
99 _flag = 4;
100 _d1 = 1;
101 _d2 = 0;
102 _d3 = 2;
103 }
104 if ( d2 == KM && d3 == PIP && d1 == PI0 )
105 {
106 _flag = 4;
107 _d1 = 1;
108 _d2 = 2;
109 _d3 = 0;
110 }
111 if ( d3 == KM && d1 == PIP && d2 == PI0 )
112 {
113 _flag = 4;
114 _d1 = 2;
115 _d2 = 0;
116 _d3 = 1;
117 }
118 if ( d3 == KM && d2 == PIP && d1 == PI0 )
119 {
120 _flag = 4;
121 _d1 = 2;
122 _d2 = 1;
123 _d3 = 0;
124 }
125
126 if ( d1 == KB && d2 == PIP && d3 == PIM )
127 {
128 _flag = 3;
129 _d1 = 0;
130 _d2 = 2;
131 _d3 = 1;
132 }
133 if ( d1 == KB && d3 == PIP && d2 == PIM )
134 {
135 _flag = 3;
136 _d1 = 0;
137 _d2 = 1;
138 _d3 = 2;
139 }
140 if ( d2 == KB && d1 == PIP && d3 == PIM )
141 {
142 _flag = 3;
143 _d1 = 1;
144 _d2 = 2;
145 _d3 = 0;
146 }
147 if ( d2 == KB && d3 == PIP && d1 == PIM )
148 {
149 _flag = 3;
150 _d1 = 1;
151 _d2 = 0;
152 _d3 = 2;
153 }
154 if ( d3 == KB && d1 == PIP && d2 == PIM )
155 {
156 _flag = 3;
157 _d1 = 2;
158 _d2 = 1;
159 _d3 = 0;
160 }
161 if ( d3 == KB && d2 == PIP && d1 == PIM )
162 {
163 _flag = 3;
164 _d1 = 2;
165 _d2 = 0;
166 _d3 = 1;
167 }
168
169 if ( d1 == KL && d2 == PIP && d3 == PIM )
170 {
171 _flag = 3;
172 _d1 = 0;
173 _d2 = 2;
174 _d3 = 1;
175 }
176 if ( d1 == KL && d3 == PIP && d2 == PIM )
177 {
178 _flag = 3;
179 _d1 = 0;
180 _d2 = 1;
181 _d3 = 2;
182 }
183 if ( d2 == KL && d1 == PIP && d3 == PIM )
184 {
185 _flag = 3;
186 _d1 = 1;
187 _d2 = 2;
188 _d3 = 0;
189 }
190 if ( d2 == KL && d3 == PIP && d1 == PIM )
191 {
192 _flag = 3;
193 _d1 = 1;
194 _d2 = 0;
195 _d3 = 2;
196 }
197 if ( d3 == KL && d1 == PIP && d2 == PIM )
198 {
199 _flag = 3;
200 _d1 = 2;
201 _d2 = 1;
202 _d3 = 0;
203 }
204 if ( d3 == KL && d2 == PIP && d1 == PIM )
205 {
206 _flag = 3;
207 _d1 = 2;
208 _d2 = 0;
209 _d3 = 1;
210 }
211
212 if ( d1 == KS && d2 == PIP && d3 == PIM )
213 {
214 _flag = 3;
215 _d1 = 0;
216 _d2 = 2;
217 _d3 = 1;
218 }
219 if ( d1 == KS && d3 == PIP && d2 == PIM )
220 {
221 _flag = 3;
222 _d1 = 0;
223 _d2 = 1;
224 _d3 = 2;
225 }
226 if ( d2 == KS && d1 == PIP && d3 == PIM )
227 {
228 _flag = 3;
229 _d1 = 1;
230 _d2 = 2;
231 _d3 = 0;
232 }
233 if ( d2 == KS && d3 == PIP && d1 == PIM )
234 {
235 _flag = 3;
236 _d1 = 1;
237 _d2 = 0;
238 _d3 = 2;
239 }
240 if ( d3 == KS && d1 == PIP && d2 == PIM )
241 {
242 _flag = 3;
243 _d1 = 2;
244 _d2 = 1;
245 _d3 = 0;
246 }
247 if ( d3 == KS && d2 == PIP && d1 == PIM )
248 {
249 _flag = 3;
250 _d1 = 2;
251 _d2 = 0;
252 _d3 = 1;
253 }
254
255 if ( d1 == KS && d2 == KP && d3 == KM )
256 {
257 _flag = 5;
258 _d1 = 0;
259 _d2 = 2;
260 _d3 = 1;
261 }
262 if ( d1 == KS && d3 == KP && d2 == KM )
263 {
264 _flag = 5;
265 _d1 = 0;
266 _d2 = 1;
267 _d3 = 2;
268 }
269 if ( d2 == KS && d1 == KP && d3 == KM )
270 {
271 _flag = 5;
272 _d1 = 1;
273 _d2 = 2;
274 _d3 = 0;
275 }
276 if ( d2 == KS && d3 == KP && d1 == KM )
277 {
278 _flag = 5;
279 _d1 = 1;
280 _d2 = 0;
281 _d3 = 2;
282 }
283 if ( d3 == KS && d1 == KP && d2 == KM )
284 {
285 _flag = 5;
286 _d1 = 2;
287 _d2 = 1;
288 _d3 = 0;
289 }
290 if ( d3 == KS && d2 == KP && d1 == KM )
291 {
292 _flag = 5;
293 _d1 = 2;
294 _d2 = 0;
295 _d3 = 1;
296 }
297
298 if ( d1 == KL && d2 == KP && d3 == KM )
299 {
300 _flag = 5;
301 _d1 = 0;
302 _d2 = 2;
303 _d3 = 1;
304 }
305 if ( d1 == KL && d3 == KP && d2 == KM )
306 {
307 _flag = 5;
308 _d1 = 0;
309 _d2 = 1;
310 _d3 = 2;
311 }
312 if ( d2 == KL && d1 == KP && d3 == KM )
313 {
314 _flag = 5;
315 _d1 = 1;
316 _d2 = 2;
317 _d3 = 0;
318 }
319 if ( d2 == KL && d3 == KP && d1 == KM )
320 {
321 _flag = 5;
322 _d1 = 1;
323 _d2 = 0;
324 _d3 = 2;
325 }
326 if ( d3 == KL && d1 == KP && d2 == KM )
327 {
328 _flag = 5;
329 _d1 = 2;
330 _d2 = 1;
331 _d3 = 0;
332 }
333 if ( d3 == KL && d2 == KP && d1 == KM )
334 {
335 _flag = 5;
336 _d1 = 2;
337 _d2 = 0;
338 _d3 = 1;
339 }
340
341 if ( d1 == K0 && d2 == KP && d3 == KM )
342 {
343 _flag = 5;
344 _d1 = 0;
345 _d2 = 2;
346 _d3 = 1;
347 }
348 if ( d1 == K0 && d3 == KP && d2 == KM )
349 {
350 _flag = 5;
351 _d1 = 0;
352 _d2 = 1;
353 _d3 = 2;
354 }
355 if ( d2 == K0 && d1 == KP && d3 == KM )
356 {
357 _flag = 5;
358 _d1 = 1;
359 _d2 = 2;
360 _d3 = 0;
361 }
362 if ( d2 == K0 && d3 == KP && d1 == KM )
363 {
364 _flag = 5;
365 _d1 = 1;
366 _d2 = 0;
367 _d3 = 2;
368 }
369 if ( d3 == K0 && d1 == KP && d2 == KM )
370 {
371 _flag = 5;
372 _d1 = 2;
373 _d2 = 1;
374 _d3 = 0;
375 }
376 if ( d3 == K0 && d2 == KP && d1 == KM )
377 {
378 _flag = 5;
379 _d1 = 2;
380 _d2 = 0;
381 _d3 = 1;
382 }
383
384 if ( d1 == PIM && d2 == PIP && d3 == PI0 )
385 {
386 _flag = 11;
387 _d1 = 0;
388 _d2 = 1;
389 _d3 = 2;
390 } // DLY: D0 -> pi- pi+ pi0
391 if ( d1 == PIM && d3 == PIP && d2 == PI0 )
392 {
393 _flag = 11;
394 _d1 = 0;
395 _d2 = 2;
396 _d3 = 1;
397 }
398 if ( d2 == PIM && d1 == PIP && d3 == PI0 )
399 {
400 _flag = 11;
401 _d1 = 1;
402 _d2 = 0;
403 _d3 = 2;
404 }
405 if ( d2 == PIM && d3 == PIP && d1 == PI0 )
406 {
407 _flag = 11;
408 _d1 = 1;
409 _d2 = 2;
410 _d3 = 0;
411 }
412 if ( d3 == PIM && d1 == PIP && d2 == PI0 )
413 {
414 _flag = 11;
415 _d1 = 2;
416 _d2 = 0;
417 _d3 = 1;
418 }
419 if ( d3 == PIM && d2 == PIP && d1 == PI0 )
420 {
421 _flag = 11;
422 _d1 = 2;
423 _d2 = 1;
424 _d3 = 0;
425 }
426 }
427 if ( parnum == D0B )
428 {
429 // look for either a K+ pi- pi0 or K0 pi+ pi-
430 if ( d1 == KP && d2 == PIM && d3 == PI0 )
431 {
432 _flag = 4;
433 _d1 = 0;
434 _d2 = 1;
435 _d3 = 2;
436 }
437 if ( d1 == KP && d3 == PIM && d2 == PI0 )
438 {
439 _flag = 4;
440 _d1 = 0;
441 _d2 = 2;
442 _d3 = 1;
443 }
444 if ( d2 == KP && d1 == PIM && d3 == PI0 )
445 {
446 _flag = 4;
447 _d1 = 1;
448 _d2 = 0;
449 _d3 = 2;
450 }
451 if ( d2 == KP && d3 == PIM && d1 == PI0 )
452 {
453 _flag = 4;
454 _d1 = 1;
455 _d2 = 2;
456 _d3 = 0;
457 }
458 if ( d3 == KP && d1 == PIM && d2 == PI0 )
459 {
460 _flag = 4;
461 _d1 = 2;
462 _d2 = 0;
463 _d3 = 1;
464 }
465 if ( d3 == KP && d2 == PIM && d1 == PI0 )
466 {
467 _flag = 4;
468 _d1 = 2;
469 _d2 = 1;
470 _d3 = 0;
471 }
472
473 if ( d1 == K0 && d2 == PIP && d3 == PIM )
474 {
475 _flag = 3;
476 _d1 = 0;
477 _d2 = 1;
478 _d3 = 2;
479 }
480 if ( d1 == K0 && d3 == PIP && d2 == PIM )
481 {
482 _flag = 3;
483 _d1 = 0;
484 _d2 = 2;
485 _d3 = 1;
486 }
487 if ( d2 == K0 && d1 == PIP && d3 == PIM )
488 {
489 _flag = 3;
490 _d1 = 1;
491 _d2 = 0;
492 _d3 = 2;
493 }
494 if ( d2 == K0 && d3 == PIP && d1 == PIM )
495 {
496 _flag = 3;
497 _d1 = 1;
498 _d2 = 2;
499 _d3 = 0;
500 }
501 if ( d3 == K0 && d1 == PIP && d2 == PIM )
502 {
503 _flag = 3;
504 _d1 = 2;
505 _d2 = 0;
506 _d3 = 1;
507 }
508 if ( d3 == K0 && d2 == PIP && d1 == PIM )
509 {
510 _flag = 3;
511 _d1 = 2;
512 _d2 = 1;
513 _d3 = 0;
514 }
515
516 if ( d1 == KL && d2 == PIP && d3 == PIM )
517 {
518 _flag = 3;
519 _d1 = 0;
520 _d2 = 1;
521 _d3 = 2;
522 }
523 if ( d1 == KL && d3 == PIP && d2 == PIM )
524 {
525 _flag = 3;
526 _d1 = 0;
527 _d2 = 2;
528 _d3 = 1;
529 }
530 if ( d2 == KL && d1 == PIP && d3 == PIM )
531 {
532 _flag = 3;
533 _d1 = 1;
534 _d2 = 0;
535 _d3 = 2;
536 }
537 if ( d2 == KL && d3 == PIP && d1 == PIM )
538 {
539 _flag = 3;
540 _d1 = 1;
541 _d2 = 2;
542 _d3 = 0;
543 }
544 if ( d3 == KL && d1 == PIP && d2 == PIM )
545 {
546 _flag = 3;
547 _d1 = 2;
548 _d2 = 0;
549 _d3 = 1;
550 }
551 if ( d3 == KL && d2 == PIP && d1 == PIM )
552 {
553 _flag = 3;
554 _d1 = 2;
555 _d2 = 1;
556 _d3 = 0;
557 }
558
559 if ( d1 == KS && d2 == PIP && d3 == PIM )
560 {
561 _flag = 3;
562 _d1 = 0;
563 _d2 = 1;
564 _d3 = 2;
565 }
566 if ( d1 == KS && d3 == PIP && d2 == PIM )
567 {
568 _flag = 3;
569 _d1 = 0;
570 _d2 = 2;
571 _d3 = 1;
572 }
573 if ( d2 == KS && d1 == PIP && d3 == PIM )
574 {
575 _flag = 3;
576 _d1 = 1;
577 _d2 = 0;
578 _d3 = 2;
579 }
580 if ( d2 == KS && d3 == PIP && d1 == PIM )
581 {
582 _flag = 3;
583 _d1 = 1;
584 _d2 = 2;
585 _d3 = 0;
586 }
587 if ( d3 == KS && d1 == PIP && d2 == PIM )
588 {
589 _flag = 3;
590 _d1 = 2;
591 _d2 = 0;
592 _d3 = 1;
593 }
594 if ( d3 == KS && d2 == PIP && d1 == PIM )
595 {
596 _flag = 3;
597 _d1 = 2;
598 _d2 = 1;
599 _d3 = 0;
600 }
601
602 if ( d1 == KS && d2 == KP && d3 == KM )
603 {
604 _flag = 5;
605 _d1 = 0;
606 _d2 = 1;
607 _d3 = 2;
608 }
609 if ( d1 == KS && d3 == KP && d2 == KM )
610 {
611 _flag = 5;
612 _d1 = 0;
613 _d2 = 2;
614 _d3 = 1;
615 }
616 if ( d2 == KS && d1 == KP && d3 == KM )
617 {
618 _flag = 5;
619 _d1 = 1;
620 _d2 = 0;
621 _d3 = 2;
622 }
623 if ( d2 == KS && d3 == KP && d1 == KM )
624 {
625 _flag = 5;
626 _d1 = 1;
627 _d2 = 2;
628 _d3 = 0;
629 }
630 if ( d3 == KS && d1 == KP && d2 == KM )
631 {
632 _flag = 5;
633 _d1 = 2;
634 _d2 = 0;
635 _d3 = 1;
636 }
637 if ( d3 == KS && d2 == KP && d1 == KM )
638 {
639 _flag = 5;
640 _d1 = 2;
641 _d2 = 1;
642 _d3 = 0;
643 }
644
645 if ( d1 == KL && d2 == KP && d3 == KM )
646 {
647 _flag = 5;
648 _d1 = 0;
649 _d2 = 1;
650 _d3 = 2;
651 }
652 if ( d1 == KL && d3 == KP && d2 == KM )
653 {
654 _flag = 5;
655 _d1 = 0;
656 _d2 = 2;
657 _d3 = 1;
658 }
659 if ( d2 == KL && d1 == KP && d3 == KM )
660 {
661 _flag = 5;
662 _d1 = 1;
663 _d2 = 0;
664 _d3 = 2;
665 }
666 if ( d2 == KL && d3 == KP && d1 == KM )
667 {
668 _flag = 5;
669 _d1 = 1;
670 _d2 = 2;
671 _d3 = 0;
672 }
673 if ( d3 == KL && d1 == KP && d2 == KM )
674 {
675 _flag = 5;
676 _d1 = 2;
677 _d2 = 0;
678 _d3 = 1;
679 }
680 if ( d3 == KL && d2 == KP && d1 == KM )
681 {
682 _flag = 5;
683 _d1 = 2;
684 _d2 = 1;
685 _d3 = 0;
686 }
687
688 if ( d1 == K0 && d2 == KP && d3 == KM )
689 {
690 _flag = 5;
691 _d1 = 0;
692 _d2 = 1;
693 _d3 = 2;
694 }
695 if ( d1 == K0 && d3 == KP && d2 == KM )
696 {
697 _flag = 5;
698 _d1 = 0;
699 _d2 = 2;
700 _d3 = 1;
701 }
702 if ( d2 == K0 && d1 == KP && d3 == KM )
703 {
704 _flag = 5;
705 _d1 = 1;
706 _d2 = 0;
707 _d3 = 2;
708 }
709 if ( d2 == K0 && d3 == KP && d1 == KM )
710 {
711 _flag = 5;
712 _d1 = 1;
713 _d2 = 2;
714 _d3 = 0;
715 }
716 if ( d3 == K0 && d1 == KP && d2 == KM )
717 {
718 _flag = 5;
719 _d1 = 2;
720 _d2 = 0;
721 _d3 = 1;
722 }
723 if ( d3 == K0 && d2 == KP && d1 == KM )
724 {
725 _flag = 5;
726 _d1 = 2;
727 _d2 = 1;
728 _d3 = 0;
729 }
730
731 if ( d1 == PIP && d2 == PIM && d3 == PI0 )
732 {
733 _flag = 11;
734 _d1 = 0;
735 _d2 = 1;
736 _d3 = 2;
737 } // DLY: D0B -> pi+ pi- pi0
738 if ( d1 == PIP && d3 == PIM && d2 == PI0 )
739 {
740 _flag = 11;
741 _d1 = 0;
742 _d2 = 2;
743 _d3 = 1;
744 }
745 if ( d2 == PIP && d1 == PIM && d3 == PI0 )
746 {
747 _flag = 11;
748 _d1 = 1;
749 _d2 = 0;
750 _d3 = 2;
751 }
752 if ( d2 == PIP && d3 == PIM && d1 == PI0 )
753 {
754 _flag = 11;
755 _d1 = 1;
756 _d2 = 2;
757 _d3 = 0;
758 }
759 if ( d3 == PIP && d1 == PIM && d2 == PI0 )
760 {
761 _flag = 11;
762 _d1 = 2;
763 _d2 = 0;
764 _d3 = 1;
765 }
766 if ( d3 == PIP && d2 == PIM && d1 == PI0 )
767 {
768 _flag = 11;
769 _d1 = 2;
770 _d2 = 1;
771 _d3 = 0;
772 }
773 }
774
775 if ( parnum == DP )
776 {
777 // look for K- pi+ pi+
778 if ( d1 == KB && d2 == PIP && d3 == PI0 )
779 {
780 _flag = 2;
781 _d1 = 0;
782 _d2 = 1;
783 _d3 = 2;
784 }
785 if ( d1 == KB && d3 == PIP && d2 == PI0 )
786 {
787 _flag = 2;
788 _d1 = 0;
789 _d2 = 2;
790 _d3 = 1;
791 }
792 if ( d2 == KB && d1 == PIP && d3 == PI0 )
793 {
794 _flag = 2;
795 _d1 = 1;
796 _d2 = 0;
797 _d3 = 2;
798 }
799 if ( d2 == KB && d3 == PIP && d1 == PI0 )
800 {
801 _flag = 2;
802 _d1 = 1;
803 _d2 = 2;
804 _d3 = 0;
805 }
806 if ( d3 == KB && d1 == PIP && d2 == PI0 )
807 {
808 _flag = 2;
809 _d1 = 2;
810 _d2 = 0;
811 _d3 = 1;
812 }
813 if ( d3 == KB && d2 == PIP && d1 == PI0 )
814 {
815 _flag = 2;
816 _d1 = 2;
817 _d2 = 1;
818 _d3 = 0;
819 }
820
821 if ( d1 == KL && d2 == PIP && d3 == PI0 )
822 {
823 _flag = 2;
824 _d1 = 0;
825 _d2 = 1;
826 _d3 = 2;
827 }
828 if ( d1 == KL && d3 == PIP && d2 == PI0 )
829 {
830 _flag = 2;
831 _d1 = 0;
832 _d2 = 2;
833 _d3 = 1;
834 }
835 if ( d2 == KL && d1 == PIP && d3 == PI0 )
836 {
837 _flag = 2;
838 _d1 = 1;
839 _d2 = 0;
840 _d3 = 2;
841 }
842 if ( d2 == KL && d3 == PIP && d1 == PI0 )
843 {
844 _flag = 2;
845 _d1 = 1;
846 _d2 = 2;
847 _d3 = 0;
848 }
849 if ( d3 == KL && d1 == PIP && d2 == PI0 )
850 {
851 _flag = 2;
852 _d1 = 2;
853 _d2 = 0;
854 _d3 = 1;
855 }
856 if ( d3 == KL && d2 == PIP && d1 == PI0 )
857 {
858 _flag = 2;
859 _d1 = 2;
860 _d2 = 1;
861 _d3 = 0;
862 }
863
864 if ( d1 == KS && d2 == PIP && d3 == PI0 )
865 {
866 _flag = 2;
867 _d1 = 0;
868 _d2 = 1;
869 _d3 = 2;
870 }
871 if ( d1 == KS && d3 == PIP && d2 == PI0 )
872 {
873 _flag = 2;
874 _d1 = 0;
875 _d2 = 2;
876 _d3 = 1;
877 }
878 if ( d2 == KS && d1 == PIP && d3 == PI0 )
879 {
880 _flag = 2;
881 _d1 = 1;
882 _d2 = 0;
883 _d3 = 2;
884 }
885 if ( d2 == KS && d3 == PIP && d1 == PI0 )
886 {
887 _flag = 2;
888 _d1 = 1;
889 _d2 = 2;
890 _d3 = 0;
891 }
892 if ( d3 == KS && d1 == PIP && d2 == PI0 )
893 {
894 _flag = 2;
895 _d1 = 2;
896 _d2 = 0;
897 _d3 = 1;
898 }
899 if ( d3 == KS && d2 == PIP && d1 == PI0 )
900 {
901 _flag = 2;
902 _d1 = 2;
903 _d2 = 1;
904 _d3 = 0;
905 }
906
907 if ( d1 == KM && d2 == PIP && d3 == PIP )
908 {
909 _flag = 1;
910 _d1 = 0;
911 _d2 = 1;
912 _d3 = 2;
913 }
914 if ( d2 == KM && d1 == PIP && d3 == PIP )
915 {
916 _flag = 1;
917 _d1 = 1;
918 _d2 = 0;
919 _d3 = 2;
920 }
921 if ( d3 == KM && d1 == PIP && d2 == PIP )
922 {
923 _flag = 1;
924 _d1 = 2;
925 _d2 = 0;
926 _d3 = 1;
927 }
928
929 if ( d1 == KM && d2 == KP && d3 == PIP )
930 {
931 _flag = 8;
932 _d1 = 0;
933 _d2 = 1;
934 _d3 = 2;
935 } // DLY: D+ -> K- K+ pi+
936 if ( d1 == KM && d3 == KP && d2 == PIP )
937 {
938 _flag = 8;
939 _d1 = 0;
940 _d2 = 2;
941 _d3 = 1;
942 }
943 if ( d2 == KM && d1 == KP && d3 == PIP )
944 {
945 _flag = 8;
946 _d1 = 1;
947 _d2 = 0;
948 _d3 = 2;
949 }
950 if ( d2 == KM && d3 == KP && d1 == PIP )
951 {
952 _flag = 8;
953 _d1 = 1;
954 _d2 = 2;
955 _d3 = 0;
956 }
957 if ( d3 == KM && d1 == KP && d2 == PIP )
958 {
959 _flag = 8;
960 _d1 = 2;
961 _d2 = 0;
962 _d3 = 1;
963 }
964 if ( d3 == KM && d2 == KP && d1 == PIP )
965 {
966 _flag = 8;
967 _d1 = 2;
968 _d2 = 1;
969 _d3 = 0;
970 }
971
972 if ( d1 == PIM && d2 == PIP && d3 == KP )
973 {
974 _flag = 9;
975 _d1 = 0;
976 _d2 = 1;
977 _d3 = 2;
978 } // DLY: D+ -> pi- pi+ K+
979 if ( d1 == PIM && d3 == PIP && d2 == KP )
980 {
981 _flag = 9;
982 _d1 = 0;
983 _d2 = 2;
984 _d3 = 1;
985 }
986 if ( d2 == PIM && d1 == PIP && d3 == KP )
987 {
988 _flag = 9;
989 _d1 = 1;
990 _d2 = 0;
991 _d3 = 2;
992 }
993 if ( d2 == PIM && d3 == PIP && d1 == KP )
994 {
995 _flag = 9;
996 _d1 = 1;
997 _d2 = 2;
998 _d3 = 0;
999 }
1000 if ( d3 == PIM && d1 == PIP && d2 == KP )
1001 {
1002 _flag = 9;
1003 _d1 = 2;
1004 _d2 = 0;
1005 _d3 = 1;
1006 }
1007 if ( d3 == PIM && d2 == PIP && d1 == KP )
1008 {
1009 _flag = 9;
1010 _d1 = 2;
1011 _d2 = 1;
1012 _d3 = 0;
1013 }
1014
1015 if ( d1 == PIM && d2 == PIP && d3 == PIP )
1016 {
1017 _flag = 10;
1018 _d1 = 0;
1019 _d2 = 1;
1020 _d3 = 2;
1021 } // DLY: D+ -> pi- pi+ pi+
1022 if ( d2 == PIM && d1 == PIP && d3 == PIP )
1023 {
1024 _flag = 10;
1025 _d1 = 1;
1026 _d2 = 0;
1027 _d3 = 2;
1028 }
1029 if ( d3 == PIM && d1 == PIP && d2 == PIP )
1030 {
1031 _flag = 10;
1032 _d1 = 2;
1033 _d2 = 0;
1034 _d3 = 1;
1035 }
1036 }
1037
1038 if ( parnum == DM )
1039 {
1040 // look for K- pi+ pi+
1041 if ( d1 == K0 && d2 == PIM && d3 == PI0 )
1042 {
1043 _flag = 2;
1044 _d1 = 0;
1045 _d2 = 1;
1046 _d3 = 2;
1047 }
1048 if ( d1 == K0 && d3 == PIM && d2 == PI0 )
1049 {
1050 _flag = 2;
1051 _d1 = 0;
1052 _d2 = 2;
1053 _d3 = 1;
1054 }
1055 if ( d2 == K0 && d1 == PIM && d3 == PI0 )
1056 {
1057 _flag = 2;
1058 _d1 = 1;
1059 _d2 = 0;
1060 _d3 = 2;
1061 }
1062 if ( d2 == K0 && d3 == PIM && d1 == PI0 )
1063 {
1064 _flag = 2;
1065 _d1 = 1;
1066 _d2 = 2;
1067 _d3 = 0;
1068 }
1069 if ( d3 == K0 && d1 == PIM && d2 == PI0 )
1070 {
1071 _flag = 2;
1072 _d1 = 2;
1073 _d2 = 0;
1074 _d3 = 1;
1075 }
1076 if ( d3 == K0 && d2 == PIM && d1 == PI0 )
1077 {
1078 _flag = 2;
1079 _d1 = 2;
1080 _d2 = 1;
1081 _d3 = 0;
1082 }
1083
1084 if ( d1 == KL && d2 == PIM && d3 == PI0 )
1085 {
1086 _flag = 2;
1087 _d1 = 0;
1088 _d2 = 1;
1089 _d3 = 2;
1090 }
1091 if ( d1 == KL && d3 == PIM && d2 == PI0 )
1092 {
1093 _flag = 2;
1094 _d1 = 0;
1095 _d2 = 2;
1096 _d3 = 1;
1097 }
1098 if ( d2 == KL && d1 == PIM && d3 == PI0 )
1099 {
1100 _flag = 2;
1101 _d1 = 1;
1102 _d2 = 0;
1103 _d3 = 2;
1104 }
1105 if ( d2 == KL && d3 == PIM && d1 == PI0 )
1106 {
1107 _flag = 2;
1108 _d1 = 1;
1109 _d2 = 2;
1110 _d3 = 0;
1111 }
1112 if ( d3 == KL && d1 == PIM && d2 == PI0 )
1113 {
1114 _flag = 2;
1115 _d1 = 2;
1116 _d2 = 0;
1117 _d3 = 1;
1118 }
1119 if ( d3 == KL && d2 == PIM && d1 == PI0 )
1120 {
1121 _flag = 2;
1122 _d1 = 2;
1123 _d2 = 1;
1124 _d3 = 0;
1125 }
1126
1127 if ( d1 == KS && d2 == PIM && d3 == PI0 )
1128 {
1129 _flag = 2;
1130 _d1 = 0;
1131 _d2 = 1;
1132 _d3 = 2;
1133 }
1134 if ( d1 == KS && d3 == PIM && d2 == PI0 )
1135 {
1136 _flag = 2;
1137 _d1 = 0;
1138 _d2 = 2;
1139 _d3 = 1;
1140 }
1141 if ( d2 == KS && d1 == PIM && d3 == PI0 )
1142 {
1143 _flag = 2;
1144 _d1 = 1;
1145 _d2 = 0;
1146 _d3 = 2;
1147 }
1148 if ( d2 == KS && d3 == PIM && d1 == PI0 )
1149 {
1150 _flag = 2;
1151 _d1 = 1;
1152 _d2 = 2;
1153 _d3 = 0;
1154 }
1155 if ( d3 == KS && d1 == PIM && d2 == PI0 )
1156 {
1157 _flag = 2;
1158 _d1 = 2;
1159 _d2 = 0;
1160 _d3 = 1;
1161 }
1162 if ( d3 == KS && d2 == PIM && d1 == PI0 )
1163 {
1164 _flag = 2;
1165 _d1 = 2;
1166 _d2 = 1;
1167 _d3 = 0;
1168 }
1169
1170 if ( d1 == KP && d2 == PIM && d3 == PIM )
1171 {
1172 _flag = 1;
1173 _d1 = 0;
1174 _d2 = 1;
1175 _d3 = 2;
1176 }
1177 if ( d2 == KP && d1 == PIM && d3 == PIM )
1178 {
1179 _flag = 1;
1180 _d1 = 1;
1181 _d2 = 0;
1182 _d3 = 2;
1183 }
1184 if ( d3 == KP && d1 == PIM && d2 == PIM )
1185 {
1186 _flag = 1;
1187 _d1 = 2;
1188 _d2 = 0;
1189 _d3 = 1;
1190 }
1191
1192 if ( d1 == KP && d2 == KM && d3 == PIM )
1193 {
1194 _flag = 8;
1195 _d1 = 0;
1196 _d2 = 1;
1197 _d3 = 2;
1198 } // DLY: D- -> K+ K- pi-
1199 if ( d1 == KP && d3 == KM && d2 == PIM )
1200 {
1201 _flag = 8;
1202 _d1 = 0;
1203 _d2 = 2;
1204 _d3 = 1;
1205 }
1206 if ( d2 == KP && d1 == KM && d3 == PIM )
1207 {
1208 _flag = 8;
1209 _d1 = 1;
1210 _d2 = 0;
1211 _d3 = 2;
1212 }
1213 if ( d2 == KP && d3 == KM && d1 == PIM )
1214 {
1215 _flag = 8;
1216 _d1 = 1;
1217 _d2 = 2;
1218 _d3 = 0;
1219 }
1220 if ( d3 == KP && d1 == KM && d2 == PIM )
1221 {
1222 _flag = 8;
1223 _d1 = 2;
1224 _d2 = 0;
1225 _d3 = 1;
1226 }
1227 if ( d3 == KP && d2 == KM && d1 == PIM )
1228 {
1229 _flag = 8;
1230 _d1 = 2;
1231 _d2 = 1;
1232 _d3 = 0;
1233 }
1234
1235 if ( d1 == PIP && d2 == PIM && d3 == KM )
1236 {
1237 _flag = 9;
1238 _d1 = 0;
1239 _d2 = 1;
1240 _d3 = 2;
1241 } // DLY: D- -> pi+ pi- K-
1242 if ( d1 == PIP && d3 == PIM && d2 == KM )
1243 {
1244 _flag = 9;
1245 _d1 = 0;
1246 _d2 = 2;
1247 _d3 = 1;
1248 }
1249 if ( d2 == PIP && d1 == PIM && d3 == KM )
1250 {
1251 _flag = 9;
1252 _d1 = 1;
1253 _d2 = 0;
1254 _d3 = 2;
1255 }
1256 if ( d2 == PIP && d3 == PIM && d1 == KM )
1257 {
1258 _flag = 9;
1259 _d1 = 1;
1260 _d2 = 2;
1261 _d3 = 0;
1262 }
1263 if ( d3 == PIP && d1 == PIM && d2 == KM )
1264 {
1265 _flag = 9;
1266 _d1 = 2;
1267 _d2 = 0;
1268 _d3 = 1;
1269 }
1270 if ( d3 == PIP && d2 == PIM && d1 == KM )
1271 {
1272 _flag = 9;
1273 _d1 = 2;
1274 _d2 = 1;
1275 _d3 = 0;
1276 }
1277
1278 if ( d1 == PIP && d2 == PIM && d3 == PIM )
1279 {
1280 _flag = 10;
1281 _d1 = 0;
1282 _d2 = 1;
1283 _d3 = 2;
1284 } // DLY: D- -> pi+ pi- pi-
1285 if ( d2 == PIP && d1 == PIM && d3 == PIM )
1286 {
1287 _flag = 10;
1288 _d1 = 1;
1289 _d2 = 0;
1290 _d3 = 2;
1291 }
1292 if ( d3 == PIP && d1 == PIM && d2 == PIM )
1293 {
1294 _flag = 10;
1295 _d1 = 2;
1296 _d2 = 0;
1297 _d3 = 1;
1298 }
1299 }
1300
1301 if ( parnum == DSP )
1302 {
1303 if ( d1 == KM && d2 == KP && d3 == PIP )
1304 {
1305 _flag = 6;
1306 _d1 = 0;
1307 _d2 = 1;
1308 _d3 = 2;
1309 }
1310 if ( d1 == KM && d3 == KP && d2 == PIP )
1311 {
1312 _flag = 6;
1313 _d1 = 0;
1314 _d2 = 2;
1315 _d3 = 1;
1316 }
1317 if ( d2 == KM && d1 == KP && d3 == PIP )
1318 {
1319 _flag = 6;
1320 _d1 = 1;
1321 _d2 = 0;
1322 _d3 = 2;
1323 }
1324 if ( d2 == KM && d3 == KP && d1 == PIP )
1325 {
1326 _flag = 6;
1327 _d1 = 1;
1328 _d2 = 2;
1329 _d3 = 0;
1330 }
1331 if ( d3 == KM && d1 == KP && d2 == PIP )
1332 {
1333 _flag = 6;
1334 _d1 = 2;
1335 _d2 = 0;
1336 _d3 = 1;
1337 }
1338 if ( d3 == KM && d2 == KP && d1 == PIP )
1339 {
1340 _flag = 6;
1341 _d1 = 2;
1342 _d2 = 1;
1343 _d3 = 0;
1344 }
1345
1346 if ( d1 == PIM && d2 == PIP && d3 == PIP )
1347 {
1348 _flag = 7;
1349 _d1 = 0;
1350 _d2 = 1;
1351 _d3 = 2;
1352 }
1353 if ( d2 == PIM && d1 == PIP && d3 == PIP )
1354 {
1355 _flag = 7;
1356 _d1 = 1;
1357 _d2 = 0;
1358 _d3 = 2;
1359 }
1360 if ( d3 == PIM && d1 == PIP && d2 == PIP )
1361 {
1362 _flag = 7;
1363 _d1 = 2;
1364 _d2 = 0;
1365 _d3 = 1;
1366 }
1367 }
1368
1369 if ( parnum == DSM )
1370 {
1371 if ( d1 == KP && d2 == KM && d3 == PIM )
1372 {
1373 _flag = 6;
1374 _d1 = 0;
1375 _d2 = 1;
1376 _d3 = 2;
1377 }
1378 if ( d1 == KP && d3 == KM && d2 == PIM )
1379 {
1380 _flag = 6;
1381 _d1 = 0;
1382 _d2 = 2;
1383 _d3 = 1;
1384 }
1385 if ( d2 == KP && d1 == KM && d3 == PIM )
1386 {
1387 _flag = 6;
1388 _d1 = 1;
1389 _d2 = 0;
1390 _d3 = 2;
1391 }
1392 if ( d2 == KP && d3 == KM && d1 == PIM )
1393 {
1394 _flag = 6;
1395 _d1 = 1;
1396 _d2 = 2;
1397 _d3 = 0;
1398 }
1399 if ( d3 == KP && d1 == KM && d2 == PIM )
1400 {
1401 _flag = 6;
1402 _d1 = 2;
1403 _d2 = 0;
1404 _d3 = 1;
1405 }
1406 if ( d3 == KP && d2 == KM && d1 == PIM )
1407 {
1408 _flag = 6;
1409 _d1 = 2;
1410 _d2 = 1;
1411 _d3 = 0;
1412 }
1413
1414 if ( d1 == PIP && d2 == PIM && d3 == PIM )
1415 {
1416 _flag = 7;
1417 _d1 = 0;
1418 _d2 = 1;
1419 _d3 = 2;
1420 }
1421 if ( d2 == PIP && d1 == PIM && d3 == PIM )
1422 {
1423 _flag = 7;
1424 _d1 = 1;
1425 _d2 = 0;
1426 _d3 = 2;
1427 }
1428 if ( d3 == PIP && d1 == PIM && d2 == PIM )
1429 {
1430 _flag = 7;
1431 _d1 = 2;
1432 _d2 = 0;
1433 _d3 = 1;
1434 }
1435 }
1436
1437 /*
1438 cout << "DDalitz : flag = " << _flag;
1439 if (_flag==1) {
1440 cout << " = D+ -> K- pi+ pi+"<<endl;
1441 } else if (_flag==2) {
1442 cout << " = D+ -> K0bar pi+ pi0"<<endl;
1443 } else if (_flag==3) {
1444 cout << " = D0 -> K0bar pi+ pi-"<<endl;
1445 } else if (_flag==4) {
1446 cout << " = D0 -> K- pi+ pi0"<<endl;
1447 } else if (_flag==5) {
1448 cout << " = D0 -> K0 K+ K-"<<endl;
1449 } else if (_flag==6) {
1450 cout << " = Ds+ -> K- K+ pi+"<<endl;
1451 } else if (_flag==7) {
1452 cout << " = Ds+ -> pi+ pi- pi+"<<endl;
1453 } else if (_flag==8) {
1454 cout << " = D+ -> K- K+ pi+"<<endl;
1455 } else if (_flag==9) {
1456 cout << " = D+ -> pi- pi+ K+ WS (DCS)"<<endl;
1457 } else if (_flag==10) {
1458 cout << " = D+ -> pi- pi+ pi+"<<endl;
1459 } else if (_flag==11) {
1460 cout << " = D0 -> pi- pi+ pi0"<<endl;
1461 } else if (_flag==0) {
1462 cout << " = Invalid mode."<<endl;
1463 }
1464 */
1465
1466 if ( _flag == 6 )
1467 {
1468 _kkpi_params.push_back( EvtFlatteParam( MPI, MPI, 0.406 ) );
1469 _kkpi_params.push_back( EvtFlatteParam( MKP, MKP, 0.800 ) );
1470 }
1471
1472 if ( _flag == 0 )
1473 {
1474 report( ERROR, "EvtGen" ) << "EvtDDaltiz: Invalid mode." << endl;
1475 assert( 0 );
1476 }
1477}
ostream & report(Severity severity, const char *facility)
Definition EvtReport.cc:34
@ 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:43

◆ initProbMax()

void EvtDDalitz::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 1479 of file EvtDDalitz.cc.

1479 {
1480 if ( _flag == 1 ) { setProbMax( 2500.0 ); }
1481 if ( _flag == 2 ) { setProbMax( 10000 ); } // old if ( _flag==2 ) {setProbMax(147.9);}
1482 if ( _flag == 3 ) { setProbMax( 5000.0 ); }
1483 if ( _flag == 4 ) { setProbMax( 3000.0 ); }
1484 if ( _flag == 5 ) { setProbMax( 10000000.0 ); }
1485 if ( _flag == 6 ) { setProbMax( 50000.0 ); }
1486 if ( _flag == 7 ) { setProbMax( 50000.0 ); }
1487 if ( _flag == 8 ) { setProbMax( 35000.0 ); }
1488 if ( _flag == 9 ) { setProbMax( 2500.0 ); }
1489 if ( _flag == 10 ) { setProbMax( 1300.0 ); }
1490 if ( _flag == 11 ) { setProbMax( 1000.0 ); }
1491}
void setProbMax(double prbmx)

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