1493 {
1494
1495
1511
1512 double oneby2 = 0.707106782;
1513
1514 bool isBToDK = false;
1516 {
1517 std::string name1;
1519
1521 if ( ( BP == parId ) || ( BM == parId ) || ( B0 == parId ) || ( B0B == parId ) )
1522 if ( name1 == "BTODDALITZCPK" ) isBToDK = true;
1523 }
1524
1525
1526
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
1538
1539
1540
1541
1542
1543
1544 if ( _flag == 1 )
1545 {
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
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 );
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 );
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 );
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 );
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 );
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
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
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 );
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
1625 EvtResonance2 DplusKpipi0Res6( p4_p, moms2, moms3, amp1[6], phi[6], 0.4, 1.465,
1626 1 );
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
1632
1633
1634
1635
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
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656 if ( isBToDK )
1657 {
1658
1660
1662
1664
1665 EvtComplex Factor( fabs( A ) *
cos( delta ), fabs( A ) *
sin( delta ) );
1666
1668 {
1669
1670 Factor = Factor * EvtComplex(
cos( gamma ),
sin( gamma ) );
1671 if ( p->
getId() == D0 )
1672 {
1673
1674
1675
1676
1677
1678
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 }
1689 {
1690 Factor = Factor * EvtComplex(
cos( gamma ), -
sin( gamma ) );
1691
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 );
1711 EvtResonance2 DKpipi0Res2( p4_p, moms1, moms2, 0.39, -0.2, 0.0505, 0.8961, 1 );
1712 EvtResonance2 DKpipi0Res3( p4_p, moms1, moms3, 0.44, 163.0, 0.050, 0.8915, 1 );
1713
1714 EvtResonance2 DKpipi0Res4( p4_p, moms1, moms3, 0.77, 55.5, 0.294, 1.412, 0 );
1715 EvtResonance2 DKpipi0Res5( p4_p, moms1, moms2, 0.85, 166.0, 0.294, 1.412, 0 );
1716 EvtResonance2 DKpipi0Res6( p4_p, moms2, moms3, 2.5, 171.0, 0.240, 1.700, 1 );
1717 EvtResonance2 DKpipi0Res7( p4_p, moms1, moms3, 2.5, 103.0, 0.322, 1.717, 1 );
1718
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
1731
1732
1733
1734
1735 if ( isBToDK )
1736 {
1737
1739
1741
1743
1744 EvtComplex Factor( fabs( A ) *
cos( delta ), fabs( A ) *
sin( delta ) );
1745
1747 {
1748
1749 Factor = Factor * EvtComplex(
cos( gamma ),
sin( gamma ) );
1750 if ( p->
getId() == D0 )
1751 {
1752
1753
1754
1755
1756
1757
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 }
1768 {
1769 Factor = Factor * EvtComplex(
cos( gamma ), -
sin( gamma ) );
1770
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
1787 if ( _flag == 6 )
1788 {
1789 EvtResonance2 DsKKpiRes1( p4_p, moms3, moms1, 1.0, 0.0, 0.0455, 0.8944, 1,
1790 true );
1791 EvtResonance2 DsKKpiRes2( p4_p, moms3, moms1, 1.48, 138., 0.290, 1.414, 0 );
1792 EvtFlatte DsKKpiRes3( p4_p, moms1, moms2, 5.07, 156., 0.965, _kkpi_params );
1793 EvtResonance2 DsKKpiRes4( p4_p, moms1, moms2, 1.15, -10., 0.00426, 1.019455, 1,
1794 true );
1795 EvtResonance2 DsKKpiRes5( p4_p, moms1, moms2, 1.28, 53., 0.265, 1.350, 0 );
1796 EvtResonance2 DsKKpiRes6( p4_p, moms1, moms2, 1.19, 87., 0.137, 1.724, 0 );
1797 amp = DsKKpiRes1.resAmpl() + DsKKpiRes2.resAmpl() + DsKKpiRes3.resAmpl() +
1798 DsKKpiRes4.resAmpl() + DsKKpiRes5.resAmpl() + DsKKpiRes6.resAmpl();
1799 }
1800
1801
1802 if ( _flag == 7 )
1803 {
1804
1805
1806
1807
1808
1809
1810
1811 EvtResonance2 DspipipiRes1( p4_p, moms1, moms2, 1.0, 0.0, 0.1867, 1.2755, 2, true,
1812 false );
1813 EvtResonance2 DspipipiRes2( p4_p, moms1, moms3, 1.0, 0.0, 0.1867, 1.2755, 2, true,
1814 false );
1815
1816 EvtResonance2 DspipipiRes3( p4_p, moms1, moms2, 1.25706e-01,
1818 false );
1819 EvtResonance2 DspipipiRes4( p4_p, moms1, moms3, 1.25706e-01,
1821 false );
1822 EvtResonance2 DspipipiRes5( p4_p, moms1, moms2, 9.06766e-01,
1824 false );
1825 EvtResonance2 DspipipiRes6( p4_p, moms1, moms3, 9.06766e-01,
1827 false );
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 };
1843 EvtCubicSpline Dspipipiswave1( p4_p, moms1, moms2 );
1844 EvtCubicSpline Dspipipiswave2( p4_p, moms1, moms3 );
1845
1846 amp = DspipipiRes1.resAmpl() + DspipipiRes2.resAmpl() + DspipipiRes3.resAmpl() +
1847 DspipipiRes4.resAmpl() + DspipipiRes5.resAmpl() + DspipipiRes6.resAmpl() +
1848 Dspipipiswave1.resAmpl() + Dspipipiswave2.resAmpl();
1849 }
1850
1851
1852
1853 if ( _flag == 8 )
1854 {
1855
1856 EvtResonance2 DpKKpiRes1( p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.8960, 1,
1857 true );
1858 EvtResonance2 DpKKpiRes2( p4_p, moms3, moms1, 3.7, 73.0, 0.290, 1.414, 0 );
1859 EvtResonance2 DpKKpiRes3( p4_p, moms1, moms2, 1.189, -179.0 + 180.0, 0.00426, 1.019455, 1,
1860 true );
1861 EvtResonance2 DpKKpiRes4( p4_p, moms1, moms2, 1.72, 123., 0.265, 1.474, 0 );
1862 EvtResonance2 DpKKpiRes5( p4_p, moms1, moms2, 1.9, -52.0 + 180.0, 0.15, 1.68, 1,
1863 true );
1864 EvtResonance2 DpKKpiRes6( p4_p, moms3, moms1, 6.4, 150., 0.109, 1.4324, 2,
1865 true );
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
1873
1874
1875
1876
1877
1878
1879 if ( _flag == 9 )
1880 {
1881 EvtResonance2 DpKpipiDCSRes1( p4_p, moms1, moms2, 1.0, 0.0, 0.149, 0.775, 1,
1882 true );
1883 EvtResonance2 DpKpipiDCSRes2( p4_p, moms3, moms1, 1.0971, -167.1, 0.0487, 0.896, 1,
1884 true );
1885 EvtResonance2 DpKpipiDCSRes3( p4_p, moms1, moms2, 0.4738, -134.5, 0.059, 0.972,
1886 0 );
1887 EvtResonance2 DpKpipiDCSRes4( p4_p, moms3, moms1, 2.2688, 54.4, 0.109, 1.432, 2,
1888 true );
1889 amp = DpKpipiDCSRes1.resAmpl() + DpKpipiDCSRes2.resAmpl() + DpKpipiDCSRes3.resAmpl() +
1890 DpKpipiDCSRes4.resAmpl();
1891 }
1892
1893
1894
1895
1896
1897
1898 if ( _flag == 10 )
1899 {
1900 EvtResonance2 DppipipiRes11( p4_p, moms1, moms2, 1.0, 0.0, 0.150, 0.769, 1,
1901 true );
1902 EvtResonance2 DppipipiRes12( p4_p, moms3, moms1, 1.0, 0.0, 0.150, 0.769, 1,
1903 true );
1904 EvtResonance2 DppipipiRes21( p4_p, moms1, moms2, 2.2811, 205.7, 0.324, 0.478,
1905 0 );
1906 EvtResonance2 DppipipiRes22( p4_p, moms3, moms1, 2.2811, 205.7, 0.324, 0.478,
1907 0 );
1908 EvtResonance2 DppipipiRes31( p4_p, moms1, moms2, 0.4265, 165.0, 0.044, 0.977,
1909 0 );
1910 EvtResonance2 DppipipiRes32( p4_p, moms3, moms1, 0.4265, 165.0, 0.044, 0.977,
1911 0 );
1912 EvtResonance2 DppipipiRes41( p4_p, moms1, moms2, 2.0321, 57.3, 0.185, 1.275, 2,
1913 true );
1914 EvtResonance2 DppipipiRes42( p4_p, moms3, moms1, 2.0321, 57.3, 0.185, 1.275, 2,
1915 true );
1916 EvtResonance2 DppipipiRes51( p4_p, moms1, moms2, 0.7888, 105.4, 0.173, 1.434,
1917 0 );
1918 EvtResonance2 DppipipiRes52( p4_p, moms3, moms1, 0.7888, 105.4, 0.173, 1.434,
1919 0 );
1920 EvtResonance2 DppipipiRes61( p4_p, moms1, moms2, 0.7363, 319.1, 0.310, 1.465, 1,
1921 true );
1922 EvtResonance2 DppipipiRes62( p4_p, moms3, moms1, 0.7363, 319.1, 0.310, 1.465, 1,
1923 true );
1925 amp = EvtComplex( -3.98 *
cos( 57.3 * pi180inv ), -3.98 *
sin( 57.3 * pi180inv ) ) +
1926 ( DppipipiRes11.resAmpl() - DppipipiRes12.resAmpl() )
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() );
1932 }
1933
1934
1935
1936 if ( _flag == 11 )
1937 {
1938 EvtResonance2 DpipipiRes1p( p4_p, moms2, moms3, 1.0, 0.0, 0.149, 0.775, 1,
1939 true );
1940 EvtResonance2 DpipipiRes1( p4_p, moms1, moms2, 0.588, 16.2, 0.149, 0.775, 1,
1941 true );
1942 EvtResonance2 DpipipiRes1m( p4_p, moms3, moms1, 0.714, -2.0, 0.149, 0.775, 1,
1943 true );
1944 EvtResonance2 DpipipiRes2p( p4_p, moms2, moms3, 0.21, -146.0, 0.400, 1.465, 1,
1945 true );
1946 EvtResonance2 DpipipiRes2( p4_p, moms1, moms2, 0.33, 10.0, 0.400, 1.465, 1,
1947 true );
1948 EvtResonance2 DpipipiRes2m( p4_p, moms3, moms1, 0.82, 16.0, 0.400, 1.465, 1,
1949 true );
1950 EvtResonance2 DpipipiRes3p( p4_p, moms2, moms3, 2.25, -17.0, 0.250, 1.720, 1,
1951 true );
1952 EvtResonance2 DpipipiRes3( p4_p, moms1, moms2, 2.51, -17.0, 0.250, 1.720, 1,
1953 true );
1954 EvtResonance2 DpipipiRes3m( p4_p, moms3, moms1, 2.00, -50.0, 0.250, 1.720, 1,
1955 true );
1956 EvtResonance2 DpipipiRes4( p4_p, moms1, moms2, 0.015, -59.0, 0.07, 0.980, 0 );
1957 EvtResonance2 DpipipiRes5( p4_p, moms1, moms2, 0.063, 156.0, 0.350, 1.370, 0 );
1958 EvtResonance2 DpipipiRes6( p4_p, moms1, moms2, 0.058, 12.0, 0.109, 1.505, 0 );
1959 EvtResonance2 DpipipiRes7( p4_p, moms1, moms2, 0.112, 51.0, 0.135, 1.720, 0 );
1960 EvtResonance2 DpipipiRes8( p4_p, moms1, moms2, 1.04, -171.0, 0.185, 1.275, 2,
1961 true );
1962 EvtResonance2 DpipipiRes9( p4_p, moms1, moms2, 0.069, 8.0, 0.600, 0.400, 0 );
1963
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
1974
1975 return;
1976}
double sin(const BesAngle a)
double cos(const BesAngle a)
static const double radToDegrees
static void setParams(const vector< double > x, const vector< double > ym, const vector< double > yp)
void vertex(const EvtComplex &)
virtual void getName(std::string &name)=0
static EvtDecayBase * getDecayFunc(EvtParticle *)
static EvtId getId(const std::string &name)
EvtParticle * getParent()
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void set(int i, double d)