1700 integer,
intent(in) :: VVMode,idordered(6:9),h3,h4
1701 real(dp),
intent(in) :: pordered(1:4,6:9)
1702 complex(dp),
intent(out) :: sp(3:4,1:4)
1703 real(dp),
intent(out) :: pV(3:4,1:4)
1704 real(dp) :: s, aL1,aR1,aL2,aR2
1705 complex(dp) :: propV(1:2)
1708 if( vvmode.eq.zzmode )
then
1710 if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) )
then
1711 al1=al_lep * dsqrt(scale_alpha_z_ll)
1712 ar1=ar_lep * dsqrt(scale_alpha_z_ll)
1713 elseif( abs(idordered(6)).eq.abs(tam_) )
then
1714 al1=al_lep * dsqrt(scale_alpha_z_tt)
1715 ar1=ar_lep * dsqrt(scale_alpha_z_tt)
1716 elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) )
then
1717 al1=al_neu * dsqrt(scale_alpha_z_nn)
1718 ar1=ar_neu * dsqrt(scale_alpha_z_nn)
1719 elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) )
then
1720 al1=al_qup * dsqrt(scale_alpha_z_uu)
1721 ar1=ar_qup * dsqrt(scale_alpha_z_uu)
1722 elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) )
then
1723 al1=al_qdn * dsqrt(scale_alpha_z_dd)
1724 ar1=ar_qdn * dsqrt(scale_alpha_z_dd)
1729 if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) )
then
1730 al2=al_lep * dsqrt(scale_alpha_z_ll)
1731 ar2=ar_lep * dsqrt(scale_alpha_z_ll)
1732 elseif( abs(idordered(8)).eq.abs(tam_) )
then
1733 al2=al_lep * dsqrt(scale_alpha_z_tt)
1734 ar2=ar_lep * dsqrt(scale_alpha_z_tt)
1735 elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) )
then
1736 al2=al_neu * dsqrt(scale_alpha_z_nn)
1737 ar2=ar_neu * dsqrt(scale_alpha_z_nn)
1738 elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) )
then
1739 al2=al_qup * dsqrt(scale_alpha_z_uu)
1740 ar2=ar_qup * dsqrt(scale_alpha_z_uu)
1741 elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) )
then
1742 al2=al_qdn * dsqrt(scale_alpha_z_dd)
1743 ar2=ar_qdn * dsqrt(scale_alpha_z_dd)
1748 pv(3,:) = pordered(:,6)+pordered(:,7)
1749 pv(4,:) = pordered(:,8)+pordered(:,9)
1750 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
1751 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
1752 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
1753 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
1754 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1755 propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
1756 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1757 propv(2) = s/dcmplx(s - m_v**2,m_v*ga_v)
1761 elseif( vvmode.eq.wwmode )
then
1763 if( isaquark(idordered(6)) )
then
1764 al1 = bl * dsqrt(scale_alpha_w_ud)
1765 ar1 = br * dsqrt(scale_alpha_w_ud)
1767 (abs(idordered(6)).eq.abs(elp_) .and. abs(idordered(7)).eq.abs(nue_)) .or. (abs(idordered(7)).eq.abs(elp_) .and. abs(idordered(6)).eq.abs(nue_)) .or. &
1768 (abs(idordered(6)).eq.abs(mup_) .and. abs(idordered(7)).eq.abs(num_)) .or. (abs(idordered(7)).eq.abs(mup_) .and. abs(idordered(6)).eq.abs(num_)) &
1770 al1 = bl * dsqrt(scale_alpha_w_ln)
1771 ar1 = br * dsqrt(scale_alpha_w_ln)
1773 (abs(idordered(6)).eq.abs(tap_) .and. abs(idordered(7)).eq.abs(nut_)) .or. (abs(idordered(7)).eq.abs(tap_) .and. abs(idordered(6)).eq.abs(nut_)) &
1775 al1 = bl * dsqrt(scale_alpha_w_tn)
1776 ar1 = br * dsqrt(scale_alpha_w_tn)
1781 if( isaquark(idordered(8)) )
then
1782 al2 = bl * dsqrt(scale_alpha_w_ud)
1783 ar2 = br * dsqrt(scale_alpha_w_ud)
1785 (abs(idordered(8)).eq.abs(elm_) .and. abs(idordered(9)).eq.abs(anue_)) .or. (abs(idordered(9)).eq.abs(elm_) .and. abs(idordered(8)).eq.abs(anue_)) .or. &
1786 (abs(idordered(8)).eq.abs(mum_) .and. abs(idordered(9)).eq.abs(anum_)) .or. (abs(idordered(9)).eq.abs(mum_) .and. abs(idordered(8)).eq.abs(anum_)) &
1788 al2 = bl * dsqrt(scale_alpha_w_ln)
1789 ar2 = br * dsqrt(scale_alpha_w_ln)
1791 (abs(idordered(8)).eq.abs(tam_) .and. abs(idordered(9)).eq.abs(anut_)) .or. (abs(idordered(9)).eq.abs(tam_) .and. abs(idordered(8)).eq.abs(anut_)) &
1793 al2 = bl * dsqrt(scale_alpha_w_tn)
1794 ar2 = br * dsqrt(scale_alpha_w_tn)
1799 pv(3,:) = pordered(:,6)+pordered(:,7)
1800 pv(4,:) = pordered(:,8)+pordered(:,9)
1801 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
1802 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
1803 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
1804 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
1805 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1806 propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
1807 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1808 propv(2) = s/dcmplx(s - m_v**2,m_v*ga_v)
1811 elseif( vvmode.eq.zgmode )
then
1813 if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) )
then
1814 al1=al_lep * dsqrt(scale_alpha_z_ll)
1815 ar1=ar_lep * dsqrt(scale_alpha_z_ll)
1816 elseif( abs(idordered(6)).eq.abs(tam_) )
then
1817 al1=al_lep * dsqrt(scale_alpha_z_tt)
1818 ar1=ar_lep * dsqrt(scale_alpha_z_tt)
1819 elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) )
then
1820 al1=al_neu * dsqrt(scale_alpha_z_nn)
1821 ar1=ar_neu * dsqrt(scale_alpha_z_nn)
1822 elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) )
then
1823 al1=al_qup * dsqrt(scale_alpha_z_uu)
1824 ar1=ar_qup * dsqrt(scale_alpha_z_uu)
1825 elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) )
then
1826 al1=al_qdn * dsqrt(scale_alpha_z_dd)
1827 ar1=ar_qdn * dsqrt(scale_alpha_z_dd)
1834 pv(3,:) = pordered(:,6)+pordered(:,7)
1835 pv(4,:) = pordered(:,8)
1836 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
1837 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
1838 sp(4,:) = pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
1840 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1841 propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
1845 elseif( vvmode.eq.ggmode )
then
1851 pv(3,:) = pordered(:,6)
1852 pv(4,:) = pordered(:,8)
1853 sp(3,:) = pol_mless2(dcmplx(pordered(:,6)),h3,
'out')
1854 sp(4,:) = pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
1861 elseif( vvmode.eq.gsgmode )
then
1863 if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) )
then
1864 al1=cl_lep * dsqrt(scale_alpha_z_ll)
1865 ar1=cr_lep * dsqrt(scale_alpha_z_ll)
1866 elseif( abs(idordered(6)).eq.abs(tam_) )
then
1867 al1=cl_lep * dsqrt(scale_alpha_z_tt)
1868 ar1=cr_lep * dsqrt(scale_alpha_z_tt)
1869 elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) )
then
1870 al1=cl_neu * dsqrt(scale_alpha_z_nn)
1871 ar1=cr_neu * dsqrt(scale_alpha_z_nn)
1872 elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) )
then
1873 al1=cl_qup * dsqrt(scale_alpha_z_uu)
1874 ar1=cr_qup * dsqrt(scale_alpha_z_uu)
1875 elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) )
then
1876 al1=cl_qdn * dsqrt(scale_alpha_z_dd)
1877 ar1=cr_qdn * dsqrt(scale_alpha_z_dd)
1884 pv(3,:) = pordered(:,6)+pordered(:,7)
1885 pv(4,:) = pordered(:,8)
1886 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
1888 sp(4,:) = pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
1890 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1893 if( s.lt.mphotoncutoff**2 ) propv(1)=czero
1896 elseif( vvmode.eq.gszmode )
then
1898 if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) )
then
1899 al1=cl_lep * dsqrt(scale_alpha_z_ll)
1900 ar1=cr_lep * dsqrt(scale_alpha_z_ll)
1901 elseif( abs(idordered(6)).eq.abs(tam_) )
then
1902 al1=cl_lep * dsqrt(scale_alpha_z_tt)
1903 ar1=cr_lep * dsqrt(scale_alpha_z_tt)
1904 elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) )
then
1905 al1=cl_neu * dsqrt(scale_alpha_z_nn)
1906 ar1=cr_neu * dsqrt(scale_alpha_z_nn)
1907 elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) )
then
1908 al1=cl_qup * dsqrt(scale_alpha_z_uu)
1909 ar1=cr_qup * dsqrt(scale_alpha_z_uu)
1910 elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) )
then
1911 al1=cl_qdn * dsqrt(scale_alpha_z_dd)
1912 ar1=cr_qdn * dsqrt(scale_alpha_z_dd)
1917 if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) )
then
1918 al2=al_lep * dsqrt(scale_alpha_z_ll)
1919 ar2=ar_lep * dsqrt(scale_alpha_z_ll)
1920 elseif( abs(idordered(8)).eq.abs(tam_) )
then
1921 al2=al_lep * dsqrt(scale_alpha_z_tt)
1922 ar2=ar_lep * dsqrt(scale_alpha_z_tt)
1923 elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) )
then
1924 al2=al_neu * dsqrt(scale_alpha_z_nn)
1925 ar2=ar_neu * dsqrt(scale_alpha_z_nn)
1926 elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) )
then
1927 al2=al_qup * dsqrt(scale_alpha_z_uu)
1928 ar2=ar_qup * dsqrt(scale_alpha_z_uu)
1929 elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) )
then
1930 al2=al_qdn * dsqrt(scale_alpha_z_dd)
1931 ar2=ar_qdn * dsqrt(scale_alpha_z_dd)
1936 pv(3,:) = pordered(:,6)+pordered(:,7)
1937 pv(4,:) = pordered(:,8)+pordered(:,9)
1938 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
1940 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
1941 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
1942 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1944 if( s.lt.mphotoncutoff**2 ) propv(1)=czero
1945 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1946 propv(2) = s/dcmplx(s - m_v**2,m_v*ga_v)
1949 elseif( vvmode.eq.zgsmode )
then
1951 if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) )
then
1952 al1=al_lep * dsqrt(scale_alpha_z_ll)
1953 ar1=ar_lep * dsqrt(scale_alpha_z_ll)
1954 elseif( abs(idordered(6)).eq.abs(tam_) )
then
1955 al1=al_lep * dsqrt(scale_alpha_z_tt)
1956 ar1=ar_lep * dsqrt(scale_alpha_z_tt)
1957 elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) )
then
1958 al1=al_neu * dsqrt(scale_alpha_z_nn)
1959 ar1=ar_neu * dsqrt(scale_alpha_z_nn)
1960 elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) )
then
1961 al1=al_qup * dsqrt(scale_alpha_z_uu)
1962 ar1=ar_qup * dsqrt(scale_alpha_z_uu)
1963 elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) )
then
1964 al1=al_qdn * dsqrt(scale_alpha_z_dd)
1965 ar1=ar_qdn * dsqrt(scale_alpha_z_dd)
1970 if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) )
then
1971 al2=cl_lep * dsqrt(scale_alpha_z_ll)
1972 ar2=cr_lep * dsqrt(scale_alpha_z_ll)
1973 elseif( abs(idordered(8)).eq.abs(tam_) )
then
1974 al2=cl_lep * dsqrt(scale_alpha_z_tt)
1975 ar2=cr_lep * dsqrt(scale_alpha_z_tt)
1976 elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) )
then
1977 al2=cl_neu * dsqrt(scale_alpha_z_nn)
1978 ar2=cr_neu * dsqrt(scale_alpha_z_nn)
1979 elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) )
then
1980 al2=cl_qup * dsqrt(scale_alpha_z_uu)
1981 ar2=cr_qup * dsqrt(scale_alpha_z_uu)
1982 elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) )
then
1983 al2=cl_qdn * dsqrt(scale_alpha_z_dd)
1984 ar2=cr_qdn * dsqrt(scale_alpha_z_dd)
1989 pv(3,:) = pordered(:,6)+pordered(:,7)
1990 pv(4,:) = pordered(:,8)+pordered(:,9)
1991 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
1992 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
1993 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
1995 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1996 propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
1997 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1999 if( s.lt.mphotoncutoff**2 ) propv(2)=czero
2002 elseif( vvmode.eq.gsgsmode )
then
2004 if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) )
then
2005 al1=cl_lep * dsqrt(scale_alpha_z_ll)
2006 ar1=cr_lep * dsqrt(scale_alpha_z_ll)
2007 elseif( abs(idordered(6)).eq.abs(tam_) )
then
2008 al1=cl_lep * dsqrt(scale_alpha_z_tt)
2009 ar1=cr_lep * dsqrt(scale_alpha_z_tt)
2010 elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) )
then
2011 al1=cl_neu * dsqrt(scale_alpha_z_nn)
2012 ar1=cr_neu * dsqrt(scale_alpha_z_nn)
2013 elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) )
then
2014 al1=cl_qup * dsqrt(scale_alpha_z_uu)
2015 ar1=cr_qup * dsqrt(scale_alpha_z_uu)
2016 elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) )
then
2017 al1=cl_qdn * dsqrt(scale_alpha_z_dd)
2018 ar1=cr_qdn * dsqrt(scale_alpha_z_dd)
2023 if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) )
then
2024 al2=cl_lep * dsqrt(scale_alpha_z_ll)
2025 ar2=cr_lep * dsqrt(scale_alpha_z_ll)
2026 elseif( abs(idordered(8)).eq.abs(tam_) )
then
2027 al2=cl_lep * dsqrt(scale_alpha_z_tt)
2028 ar2=cr_lep * dsqrt(scale_alpha_z_tt)
2029 elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) )
then
2030 al2=cl_neu * dsqrt(scale_alpha_z_nn)
2031 ar2=cr_neu * dsqrt(scale_alpha_z_nn)
2032 elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) )
then
2033 al2=cl_qup * dsqrt(scale_alpha_z_uu)
2034 ar2=cr_qup * dsqrt(scale_alpha_z_uu)
2035 elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) )
then
2036 al2=cl_qdn * dsqrt(scale_alpha_z_dd)
2037 ar2=cr_qdn * dsqrt(scale_alpha_z_dd)
2042 pv(3,:) = pordered(:,6)+pordered(:,7)
2043 pv(4,:) = pordered(:,8)+pordered(:,9)
2044 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2046 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2048 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2050 if( s.lt.mphotoncutoff**2 ) propv(1)=czero
2051 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2053 if( s.lt.mphotoncutoff**2 ) propv(2)=czero
2056 elseif( vvmode.eq.zpzmode )
then
2058 al1 = vpffcoupling(idordered(6),-1,.false.)
2059 ar1 = vpffcoupling(idordered(6),+1,.false.)
2060 if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) )
then
2061 al2=al_lep * dsqrt(scale_alpha_z_ll)
2062 ar2=ar_lep * dsqrt(scale_alpha_z_ll)
2063 elseif( abs(idordered(8)).eq.abs(tam_) )
then
2064 al2=al_lep * dsqrt(scale_alpha_z_tt)
2065 ar2=ar_lep * dsqrt(scale_alpha_z_tt)
2066 elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) )
then
2067 al2=al_neu * dsqrt(scale_alpha_z_nn)
2068 ar2=ar_neu * dsqrt(scale_alpha_z_nn)
2069 elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) )
then
2070 al2=al_qup * dsqrt(scale_alpha_z_uu)
2071 ar2=ar_qup * dsqrt(scale_alpha_z_uu)
2072 elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) )
then
2073 al2=al_qdn * dsqrt(scale_alpha_z_dd)
2074 ar2=ar_qdn * dsqrt(scale_alpha_z_dd)
2080 pv(3,:) = pordered(:,6)+pordered(:,7)
2081 pv(4,:) = pordered(:,8)+pordered(:,9)
2082 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2083 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
2084 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2085 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
2086 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2087 if( m_vprime .gt. 0d0 )
then
2088 propv(1) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2089 elseif( m_vprime .eq. 0d0 )
then
2094 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2095 propv(2) = s/dcmplx(s - m_v**2,m_v*ga_v)
2098 elseif( vvmode.eq.zzpmode )
then
2100 if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) )
then
2101 al1=al_lep * dsqrt(scale_alpha_z_ll)
2102 ar1=ar_lep * dsqrt(scale_alpha_z_ll)
2103 elseif( abs(idordered(6)).eq.abs(tam_) )
then
2104 al1=al_lep * dsqrt(scale_alpha_z_tt)
2105 ar1=ar_lep * dsqrt(scale_alpha_z_tt)
2106 elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) )
then
2107 al1=al_neu * dsqrt(scale_alpha_z_nn)
2108 ar1=ar_neu * dsqrt(scale_alpha_z_nn)
2109 elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) )
then
2110 al1=al_qup * dsqrt(scale_alpha_z_uu)
2111 ar1=ar_qup * dsqrt(scale_alpha_z_uu)
2112 elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) )
then
2113 al1=al_qdn * dsqrt(scale_alpha_z_dd)
2114 ar1=ar_qdn * dsqrt(scale_alpha_z_dd)
2119 al2 = vpffcoupling(idordered(8),-1,.false.)
2120 ar2 = vpffcoupling(idordered(8),+1,.false.)
2122 pv(3,:) = pordered(:,6)+pordered(:,7)
2123 pv(4,:) = pordered(:,8)+pordered(:,9)
2124 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2125 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
2126 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2127 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
2128 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2129 propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
2130 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2131 if( m_vprime .gt. 0d0 )
then
2132 propv(2) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2133 elseif( m_vprime .eq. 0d0 )
then
2140 elseif( vvmode.eq.zpzpmode )
then
2142 al1 = vpffcoupling(idordered(6),-1,.false.)
2143 ar1 = vpffcoupling(idordered(6),+1,.false.)
2144 al2 = vpffcoupling(idordered(8),-1,.false.)
2145 ar2 = vpffcoupling(idordered(8),+1,.false.)
2147 pv(3,:) = pordered(:,6)+pordered(:,7)
2148 pv(4,:) = pordered(:,8)+pordered(:,9)
2149 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2150 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
2151 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2152 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
2153 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2154 if( m_vprime .gt. 0d0 )
then
2155 propv(1) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2156 elseif( m_vprime .eq. 0d0 )
then
2161 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2162 if( m_vprime .gt. 0d0 )
then
2163 propv(2) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2164 elseif( m_vprime .eq. 0d0 )
then
2171 elseif( vvmode.eq.zpgsmode )
then
2173 al1 = vpffcoupling(idordered(6),-1,.false.)
2174 ar1 = vpffcoupling(idordered(6),+1,.false.)
2175 if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) )
then
2176 al2=cl_lep * dsqrt(scale_alpha_z_ll)
2177 ar2=cr_lep * dsqrt(scale_alpha_z_ll)
2178 elseif( abs(idordered(8)).eq.abs(tam_) )
then
2179 al2=cl_lep * dsqrt(scale_alpha_z_tt)
2180 ar2=cr_lep * dsqrt(scale_alpha_z_tt)
2181 elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) )
then
2182 al2=cl_neu * dsqrt(scale_alpha_z_nn)
2183 ar2=cr_neu * dsqrt(scale_alpha_z_nn)
2184 elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) )
then
2185 al2=cl_qup * dsqrt(scale_alpha_z_uu)
2186 ar2=cr_qup * dsqrt(scale_alpha_z_uu)
2187 elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) )
then
2188 al2=cl_qdn * dsqrt(scale_alpha_z_dd)
2189 ar2=cr_qdn * dsqrt(scale_alpha_z_dd)
2195 pv(3,:) = pordered(:,6)+pordered(:,7)
2196 pv(4,:) = pordered(:,8)+pordered(:,9)
2197 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2198 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
2199 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2201 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2202 if( m_vprime .gt. 0d0 )
then
2203 propv(1) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2204 elseif( m_vprime .eq. 0d0 )
then
2209 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2211 if( s.lt.mphotoncutoff**2 ) propv(2)=czero
2213 elseif( vvmode.eq.gszpmode )
then
2215 if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) )
then
2216 al1=cl_lep * dsqrt(scale_alpha_z_ll)
2217 ar1=cr_lep * dsqrt(scale_alpha_z_ll)
2218 elseif( abs(idordered(6)).eq.abs(tam_) )
then
2219 al1=cl_lep * dsqrt(scale_alpha_z_tt)
2220 ar1=cr_lep * dsqrt(scale_alpha_z_tt)
2221 elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) )
then
2222 al1=cl_neu * dsqrt(scale_alpha_z_nn)
2223 ar1=cr_neu * dsqrt(scale_alpha_z_nn)
2224 elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) )
then
2225 al1=cl_qup * dsqrt(scale_alpha_z_uu)
2226 ar1=cr_qup * dsqrt(scale_alpha_z_uu)
2227 elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) )
then
2228 al1=cl_qdn * dsqrt(scale_alpha_z_dd)
2229 ar1=cr_qdn * dsqrt(scale_alpha_z_dd)
2234 al2 = vpffcoupling(idordered(8),-1,.false.)
2235 ar2 = vpffcoupling(idordered(8),+1,.false.)
2237 pv(3,:) = pordered(:,6)+pordered(:,7)
2238 pv(4,:) = pordered(:,8)+pordered(:,9)
2239 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2241 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2242 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
2243 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2245 if( s.lt.mphotoncutoff**2 ) propv(1)=czero
2246 s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2247 if( m_vprime .gt. 0d0 )
then
2248 propv(2) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2249 elseif( m_vprime .eq. 0d0 )
then
2256 elseif( vvmode.eq.zpgmode )
then
2258 al1 = vpffcoupling(idordered(6),-1,.false.)
2259 ar1 = vpffcoupling(idordered(6),+1,.false.)
2262 pv(3,:) = pordered(:,6)+pordered(:,7)
2263 pv(4,:) = pordered(:,8)
2264 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2265 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
2266 sp(4,:) = pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
2267 s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2268 if( m_vprime .gt. 0d0 )
then
2269 propv(1) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2270 elseif( m_vprime .eq. 0d0 )
then
2278 elseif( vvmode.eq.wpwmode )
then
2280 al1 = vpffcoupling(idordered(6),-1,.true.)
2281 ar1 = vpffcoupling(idordered(6),+1,.true.)
2282 if( isaquark(idordered(8)) )
then
2283 al2 = bl * dsqrt(scale_alpha_w_ud)
2284 ar2 = br * dsqrt(scale_alpha_w_ud)
2286 (abs(idordered(8)).eq.abs(elm_) .and. abs(idordered(9)).eq.abs(anue_)) .or. (abs(idordered(9)).eq.abs(elm_) .and. abs(idordered(8)).eq.abs(anue_)) .or. &
2287 (abs(idordered(8)).eq.abs(mum_) .and. abs(idordered(9)).eq.abs(anum_)) .or. (abs(idordered(9)).eq.abs(mum_) .and. abs(idordered(8)).eq.abs(anum_)) &
2289 al2 = bl * dsqrt(scale_alpha_w_ln)
2290 ar2 = br * dsqrt(scale_alpha_w_ln)
2292 (abs(idordered(8)).eq.abs(tam_) .and. abs(idordered(9)).eq.abs(anut_)) .or. (abs(idordered(9)).eq.abs(tam_) .and. abs(idordered(8)).eq.abs(anut_)) &
2294 al2 = bl * dsqrt(scale_alpha_w_tn)
2295 ar2 = br * dsqrt(scale_alpha_w_tn)
2300 pv(3,:) = pordered(:,6)+pordered(:,7)
2301 pv(4,:) = pordered(:,8)+pordered(:,9)
2302 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2303 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
2304 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2305 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
2306 s = scr(pv(3,:),pv(3,:))
2307 if( m_vprime .gt. 0d0 )
then
2308 propv(1) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2309 elseif( m_vprime .eq. 0d0 )
then
2314 s = scr(pv(4,:),pv(4,:))
2315 propv(2) = s/dcmplx(s - m_v**2,m_v*ga_v)
2318 elseif( vvmode.eq.wwpmode )
then
2320 if( isaquark(idordered(6)) )
then
2321 al1 = bl * dsqrt(scale_alpha_w_ud)
2322 ar1 = br * dsqrt(scale_alpha_w_ud)
2324 (abs(idordered(6)).eq.abs(elp_) .and. abs(idordered(7)).eq.abs(nue_)) .or. (abs(idordered(7)).eq.abs(elp_) .and. abs(idordered(6)).eq.abs(nue_)) .or. &
2325 (abs(idordered(6)).eq.abs(mup_) .and. abs(idordered(7)).eq.abs(num_)) .or. (abs(idordered(7)).eq.abs(mup_) .and. abs(idordered(6)).eq.abs(num_)) &
2327 al1 = bl * dsqrt(scale_alpha_w_ln)
2328 ar1 = br * dsqrt(scale_alpha_w_ln)
2330 (abs(idordered(6)).eq.abs(tap_) .and. abs(idordered(7)).eq.abs(nut_)) .or. (abs(idordered(7)).eq.abs(tap_) .and. abs(idordered(6)).eq.abs(nut_)) &
2332 al1 = bl * dsqrt(scale_alpha_w_tn)
2333 ar1 = br * dsqrt(scale_alpha_w_tn)
2338 al2 = vpffcoupling(idordered(8),-1,.true.)
2339 ar2 = vpffcoupling(idordered(8),+1,.true.)
2341 pv(3,:) = pordered(:,6)+pordered(:,7)
2342 pv(4,:) = pordered(:,8)+pordered(:,9)
2343 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2344 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
2345 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2346 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
2347 s = scr(pv(3,:),pv(3,:))
2348 propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
2349 s = scr(pv(4,:),pv(4,:))
2350 if( m_vprime .gt. 0d0 )
then
2351 propv(2) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2352 elseif( m_vprime .eq. 0d0 )
then
2359 elseif( vvmode.eq.wpwpmode )
then
2361 al1 = vpffcoupling(idordered(6),-1,.true.)
2362 ar1 = vpffcoupling(idordered(6),+1,.true.)
2363 al2 = vpffcoupling(idordered(8),-1,.true.)
2364 ar2 = vpffcoupling(idordered(8),+1,.true.)
2366 pv(3,:) = pordered(:,6)+pordered(:,7)
2367 pv(4,:) = pordered(:,8)+pordered(:,9)
2368 sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3)
2369 sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))
2370 sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4)
2371 sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))
2372 s = scr(pv(3,:),pv(3,:))
2373 if( m_vprime .gt. 0d0 )
then
2374 propv(1) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2375 elseif( m_vprime .eq. 0d0 )
then
2380 s = scr(pv(4,:),pv(4,:))
2381 if( m_vprime .gt. 0d0 )
then
2382 propv(2) = s/dcmplx(s - m_vprime**2,m_vprime*ga_vprime)
2383 elseif( m_vprime .eq. 0d0 )
then
2391 call error(
"Unsupported decay modes")
2394 sp(3,:) = sp(3,:)*propv(1)
2395 sp(4,:) = sp(4,:)*propv(2)
2397 sp(3,:) = al1 * sp(3,:)
2398 elseif(h3.eq.1)
then
2399 sp(3,:) = ar1 * sp(3,:)
2402 sp(4,:) = al2 * sp(4,:)
2403 elseif(h4.eq.1)
then
2404 sp(4,:) = ar2 * sp(4,:)