19 real(
dp),
intent(out) :: res
20 real(
dp),
intent(in) :: p(4,6)
21 integer,
intent(in) :: my_idup(6:9)
22 complex(dp) :: a_vv(1:18), a0_vv(1:2)
23 integer :: i1,i2,i3,i4,vvmode,vvmode_swap
26 integer :: ordering(1:4),ordering_swap(1:4)
27 logical :: dointerference
30 intcolfac=1.0_dp/3.0_dp
37 if( vvmode.eq.
zzmode ) then
39 elseif( vvmode.eq.
wwmode )
then
41 elseif( vvmode.eq.
zgmode )
then
43 elseif( vvmode.eq.
ggmode )
then
56 call error(
"Contact terms only for WW, ZZ or Zg!")
58 do i1=1,2;
do i2=1,2;
do i3=1,2;
do i4=1,2
59 call calchelamp_gg(ordering,vvmode,p(1:4,1:6),my_idup,i1,i2,i3,i4
60 if( vvmode.eq.
zzmode )
then
75 elseif( vvmode.eq.
zgmode )
then
88 if( dointerference )
then
89 call calchelamp_gg(ordering_swap,vvmode_swap,p(1:4,1:6),my_idup
106 a0_vv(1) = a_vv(1)+a_vv(3)+a_vv(5)+a_vv(7)+a_vv(9)+a_vv(11)+a_vv
107 a0_vv(2) = a_vv(2)+a_vv(4)+a_vv(6)+a_vv(8)+a_vv(10)+a_vv(12)+a_vv
108 res = res + dreal(a0_vv(1)*dconjg(a0_vv(1)))
109 res = res + dreal(a0_vv(2)*dconjg(a0_vv(2)))
110 if( dointerference .and. (i3.eq.i4) ) then
111 res = res - 2d0*intcolfac*dreal( a0_vv(1)*dconjg(a0_vv(2))
113 enddo; enddo; enddo;
enddo
116 if( (vvmode.eq.
zzmode) .and. dointerference ) res = res *
symmfac
120 subroutine calchelamp_gg(ordering,VVMode,p,MY_IDUP,i1,i2,i3,i4,A)
122 integer :: ordering(1:4),i1,i2,i3,i4,l1,l2,l3,l4,MY_IDUP(6:9),VVMode
123 real(dp) :: p(1:4,1:6)
126 complex(dp) :: A(1:1), sp(4,4)
138 sp(1,:) =
pol_mless2(dcmplx(p(:,1)),-3+2*i1,
'in')
139 sp(2,:) =
pol_mless2(dcmplx(p(:,2)),-3+2*i2,
'in')
145 (/my_idup(l1+3),my_idup(l2+3),my_idup
146 (/p(:,l1),p(:,l2),p(:,l3),p(:,l4)
157 integer,
intent(in) :: VVMode
158 real(dp),
intent(in) :: p(4,4)
159 complex(dp),
intent(in) :: sp(4,4)
160 complex(dp),
intent(out) :: res
161 complex(dp) :: e1_e2, e1_e3, e1_e4
162 complex(dp) :: e2_e3, e2_e4
165 complex(dp) :: q1_q2,q1_q3,q1_q4,q3_q3,q4_q4
166 complex(dp) :: q2_q3,q2_q4
168 complex(dp) :: q1_e3,q1_e4,q2_e3,q2_e4
169 complex(dp) :: e1_q3,e1_q4,e2_q3,e2_q4, q1_e1,q1_e2,q2_e1,q2_e2,q4_e1
170 complex(dp) :: e3_q4,e4_q3
171 complex(dp) :: q1(4),q2(4),q3(4),q4(4),q(4)
172 complex(dp) :: e1(4),e2(4),e3(4),e4(4)
173 complex(dp) :: xxx1,xxx2,xxx3,xxx4,yyy1,yyy2,yyy3,yyy4,yyy41,yyy42
174 complex(dp) :: yyy7,abr1
175 complex(dp) :: b_dyn(1:10)
176 real(dp) :: q34,MZ3,MZ4,MG
178 real(dp) :: rr_gam, rr
185 q1 = dcmplx(p(1,:),0d0)
186 q2 = dcmplx(p(2,:),0d0)
187 q3 = dcmplx(p(3,:),0d0)
188 q4 = dcmplx(p(4,:),0d0)
228 mz3=dsqrt(cdabs(q3_q3))
229 mz4=dsqrt(cdabs(q4_q4))
231 mg = dsqrt(cdabs(q_q))
237 q34 = (mg**2-mz3**2-mz4**2)/2d0
240 xxx1 = (
a1 +
a2*rr_gam)
242 xxx3 = 4d0*
a5*rr_gam * mg**2/q_q
300 print *,
"VVMode",vvmode,
"not implemented"
303 yyy1 = q34*( b_dyn(1) + b_dyn(2)*rr*(
one+mz3**2/q34)*(
one+mz4*
304 yyy2 = -b_dyn(1)/
two + b_dyn(3)*rr*(1d0-(mz3**2+mz4**2)/(2d0*q34
305 yyy3 = (-b_dyn(2)/
two - b_dyn(3)-
two*b_dyn(4))*rr/q34
306 yyy41 = -b_dyn(1) - b_dyn(2)*(q34+mz3**2)/
lambda**2 - b_dyn(3)
307 yyy42 = -b_dyn(1) - b_dyn(2)*(q34+mz4**2)/
lambda**2 - b_dyn(3)
308 yyy5 =
two*b_dyn(8)*rr*mg**2/q34
310 yyy7 = b_dyn(10) * mg**2 *
m_v**2/
lambda**4
756 abr1 = mg**2 + mz3**2 - mz4**2 + 4*q1_q3
758 res = mg**2*xxx1*(e1_e4*(yyy1*e2_e3 + yyy42*e2_q3*e3_q4) + e1_e3
759 e1_q3*(yyy42*e2_e4*e3_q4 - yyy41*e2_e3*e4_q3 + 4*e2_q3*(yyy2
760 e1_e2*((xxx1*((mg**4*yyy2 + (mz3**2 - mz4**2)**2*yyy2 - 2*mg**2
761 (2*yyy1 + mg**4*yyy3 + (mz3 - mz4)*(mz3 + mz4)*((mz3 - mz4
762 e3_q4*e4_q3))/3d0 + (2*xxx2*(3*q1_e3*((2*yyy1 - abr1*yyy41
763 e3_e4*(abr1**2*yyy2 + abr1*(yyy1 + 2*mz3**2*yyy2) - (mz3
764 4*q1_q3*(yyy1 - abr1*yyy2 + 2*mz3**2*yyy2 + 8*yyy2*q1_q3
765 e3_q4*(3*(2*yyy1 + abr1*yyy42)*q1_e4 + e4_q3* &
766 (2*yyy1 + abr1**2*yyy3 - (mz3 - mz4)*(mz3 + mz4)*(2
767 2*q1_q3*(-2*abr1*yyy3 + 4*mz3**2*yyy3 + yyy41 + yyy42
768 mg**2*xxx1*yyy6*e2_q3*
et1(q,e1,e3,e4) + xxx1*yyy7*e2_q3*e4_q3*
et1
769 xxx1*yyy7*e2_q3*e3_q4*
et1(q,e1,e4,q3) - xxx1*yyy7*e2_q3*e3_q4*
et1
770 xxx1*yyy7*e1_q3*e4_q3*
et1(q,e2,e3,q3) - xxx1*yyy7*e1_q3*e4_q3*
et1
771 xxx1*yyy7*e1_q3*e3_q4*
et1(q,e2,e4,q4) +
et1(q,e3,e4,q3)* &
772 (((mg**2*xxx1*yyy6)/3d0 - (mg**2*xxx2*yyy6)/3d0)*e1_e2 - (xxx3
773 et1(q,e3,e4,q4)*((-(mg**2*xxx1*yyy6)/3d0 + (mg**2*xxx2*yyy6)/3d0
774 et1(q1,q,e3,e4)*(abr1*xxx2*yyy6*e1_e2 + (abr1*xxx3*yyy6*
et1(q1,q2
775 et1(q1,q,e4,q3)*(-((abr1*xxx2*yyy7*e1_e2*e3_q4)/mg**2) - (abr1*xxx3
776 et1(q1,q,e4,q4)*((abr1*xxx2*yyy7*e1_e2*e3_q4)/mg**2 + (abr1*xxx3
777 et1(q1,q,e3,q3)*(-((abr1*xxx2*yyy7*e1_e2*e4_q3)/mg**2) - (abr1*xxx3
778 et1(q1,q,e3,q4)*((abr1*xxx2*yyy7*e1_e2*e4_q3)/mg**2 + (abr1*xxx3
779 et1(e3,e4,q3,q4)*(4*xxx1*yyy5*e1_q3*e2_q3 + e1_e2* &
780 (((mg - mz3 - mz4)*(mg + mz3 - mz4)*(mg - mz3 + mz4)*(mg + mz3
781 (2*xxx2*yyy5*(abr1**2 + 2*abr1*mz3**2 - 2*mz3**4 + 2*mz3*
782 (2*xxx3*yyy5*(abr1**2 + 2*abr1*mz3**2 - 2*mz3**4 + 2*mz3**2*mz4
783 (3d0*mg**4)) - abr1*xxx2*yyy6*e1_e2*
et1(q2,q,e3,e4) + (abr1
784 (abr1*xxx2*yyy7*e1_e2*e4_q3*
et1(q2,q,e3,q4))/mg**2 + (abr1*xxx2
785 (abr1*xxx2*yyy7*e1_e2*e3_q4*
et1(q2,q,e4,q4))/mg**2 + &
786 et1(q1,q2,e1,e2)*((2*xxx3*(3*q1_e3*((2*yyy1 - abr1*yyy41)*e4_q3
787 e3_e4*(abr1**2*yyy2 + abr1*(yyy1 + 2*mz3**2*yyy2) - (mz3
788 4*q1_q3*(yyy1 - abr1*yyy2 + 2*mz3**2*yyy2 + 8*yyy2*q1_q3
789 e3_q4*(3*(2*yyy1 + abr1*yyy42)*q1_e4 + e4_q3* &
790 (2*yyy1 + abr1**2*yyy3 - (mz3 - mz4)*(mz3 + mz4)*(2
791 2*q1_q3*(-2*abr1*yyy3 + 4*mz3**2*yyy3 + yyy41 + yyy42
792 (abr1*xxx3*yyy6*
et1(q2,q,e3,e4))/mg**2 + (abr1*xxx3*yyy7*e4_q3
793 (abr1*xxx3*yyy7*e3_q4*
et1(q2,q,e4,q3))/mg**4 - (abr1*xxx3*yyy7
805 res = q1_e3*q2_e4*e1_e2 * (
m_reso**2 )
806 res = res + q1_e3*q2_q4*e1_e2*e4_q3 * ( - 2.0 )
807 res = res + q1_e4*q2_e3*e1_e2 * (
m_reso**2 )
808 res = res + q1_e4*q2_q3*e1_e2*e3_q4 * ( - 2.0 )
809 res = res + q1_q3*q2_e4*e1_e2*e3_q4 * ( - 2.0 )
810 res = res + q1_q3*q2_q4*e1_e2*e3_e4 * ( 2.0 )
811 res = res + q1_q3*e1_e2*e3_e4 * ( 1./2.*
m_reso**2 )
812 res = res + q1_q3*e1_e2*e3_q4*e4_q3 * ( - 1. )
813 res = res + q1_q4*q2_e3*e1_e2*e4_q3 * ( - 2. )
814 res = res + q1_q4*q2_q3*e1_e2*e3_e4 * ( 2 )
815 res = res + q1_q4*e1_e2*e3_e4 * ( 1./2.*
m_reso**2 )
816 res = res + q1_q4*e1_e2*e3_q4*e4_q3 * ( - 1. )
817 res = res + q2_q3*e1_e2*e3_e4 * ( 1./2.*
m_reso**2 )
818 res = res + q2_q3*e1_e2*e3_q4*e4_q3 * ( - 1 )
819 res = res + q2_q4*e1_e2*e3_e4 * ( 1./2.*
m_reso**2 )
820 res = res + q2_q4*e1_e2*e3_q4*e4_q3 * ( - 1. )
822 res = res + e1_e2*e3_q4*e4_q3 * (
m_reso**2 )
823 res = res + e1_e3*e2_e4 * ( 1./2.*
m_reso**4 )
824 res = res + e1_e3*e2_q4*e4_q3 * ( -
m_reso**2 )
825 res = res + e1_e4*e2_e3 * ( 1./2.*
m_reso**4 )
826 res = res + e1_e4*e2_q3*e3_q4 * ( -
m_reso**2 )
827 res = res + e1_q3*e2_e4*e3_q4 * ( -
m_reso**2 )
828 res = res + e1_q3*e2_q4*e3_e4 * (
m_reso**2 )
829 res = res + e1_q4*e2_e3*e4_q3 * ( -
m_reso**2 )
830 res = res + e1_q4*e2_q3*e3_e4 * (
m_reso**2 )
832 print *,
"this code should no longer be used"; stop 1
846 subroutine evalamp_qqb_g_vv(p,MY_IDUP,res)
848 real(dp),
intent(out) :: res
849 real(dp),
intent(in) :: p(4,6)
850 integer,
intent(in) :: MY_IDUP(6:9)
852 complex(dp) :: A_VV(1:18), A0_VV(1:2)
853 integer :: i1,i3,i4,VVMode,VVmode_swap
854 real(dp) :: prefactor
855 real(dp) :: intcolfac
856 integer :: ordering(1:4),ordering_swap(1:4)
857 logical :: doInterference
860 intcolfac=1.0_dp/3.0_dp
868 if( vvmode.eq.
zzmode ) then
870 elseif( vvmode.eq.
wwmode )
then
872 elseif( vvmode.eq.
zgmode )
then
874 elseif( vvmode.eq.
ggmode )
then
887 call error(
"Contact terms only for WW, ZZ or Zg!")
889 do i1=1,2;
do i3=1,2;
do i4=1,2
890 call calchelamp_qq(ordering,vvmode,p(1:4,1:6),my_idup,i1,i3,i4,a_vv
891 if( vvmode.eq.
zzmode )
then
906 elseif( vvmode.eq.
zgmode )
then
919 if( dointerference )
then
920 call calchelamp_qq(ordering_swap,vvmode_swap,p(1:4,1:6),my_idup
937 a0_vv(1) = a_vv(1)+a_vv(3)+a_vv(5)+a_vv(7)+a_vv(9)+a_vv(11)+a_vv
938 a0_vv(2) = a_vv(2)+a_vv(4)+a_vv(6)+a_vv(8)+a_vv(10)+a_vv(12)+a_vv
939 res = res + dreal(a0_vv(1)*dconjg(a0_vv(1)))
940 res = res + dreal(a0_vv(2)*dconjg(a0_vv(2)))
941 if( dointerference .and. (i3.eq.i4) ) then
942 res = res - 2d0*intcolfac*dreal( a0_vv(1)*dconjg(a0_vv(2))
947 if( (vvmode.eq.
zzmode) .and. dointerference ) res = res *
symmfac
951 subroutine calchelamp_qq(ordering,VVMode,p,MY_IDUP,i1,i3,i4,A)
953 integer :: ordering(1:4),i1,i3,i4,l1,l2,l3,l4,MY_IDUP(6:9),VVMode
954 real(dp) :: p(1:4,1:6)
955 complex(dp) :: propG, propZ1, propZ2
956 real(dp) :: s, pin(4,4)
957 complex(dp) :: A(1:1), sp(4,4)
970 s = 2d0*
scr(p(:,1),p(:,2))
974 sp(1,:) =
pol_dk2mom(dcmplx(p(:,2)),dcmplx(p(:,1)),-3+2*i1)
978 (/my_idup(l1+3),my_idup(l2+3),my_idup
979 (/p(:,l1),p(:,l2),p(:,l3),p(:,l4)
995 integer,
intent(in) :: VVMode
996 real(dp),
intent(in) :: p(4,4)
997 complex(dp),
intent(in) :: sp(4,4)
998 complex(dp),
intent(out) :: res
999 complex(dp) :: e1_e2, e1_e3, e1_e4
1000 complex(dp) :: e2_e3, e2_e4
1001 complex(dp) :: e3_e4
1002 complex(dp) :: q_q,q3_q3,q4_q4
1003 complex(dp) :: q1_q2,q1_q3,q1_q4
1004 complex(dp) :: q2_q3,q2_q4
1005 complex(dp) :: q3_q4
1006 complex(dp) :: q1_e3,q1_e4,q2_e3,q2_e4
1007 complex(dp) :: e1_q3,e1_q4,e2_q3,e2_q4
1008 complex(dp) :: e3_q4,e4_q3
1009 complex(dp) :: q1(4),q2(4),q3(4),q4(4),q(4)
1010 complex(dp) :: e1(4),e2(4),e3(4),e4(4),abr1
1011 complex(dp) :: yyy1,yyy2,yyy3,yyy41,yyy42,yyy5,yyy6,yyy7,yyy4
1012 complex(dp) :: b_dyn(1:10)
1013 real(dp) :: q34,MG,MZ3,MZ4
1018 q1 = dcmplx(p(1,:),0d0)
1019 q2 = dcmplx(p(2,:),0d0)
1020 q3 = dcmplx(p(3,:),0d0)
1021 q4 = dcmplx(p(4,:),0d0)
1064 mz3=dsqrt(cdabs(q3_q3))
1065 mz4=dsqrt(cdabs(q4_q4))
1067 mg = dsqrt(cdabs(q_q))
1072 q34 = (mg**2-mz3**2-mz4**2)/2d0
1129 print *,
"VVMode",vvmode,
"not implemented"
1132 yyy1 = q34*( b_dyn(1) + b_dyn(2)*rr*(
one+mz3**2/q34)*(
one+mz4*
1133 yyy2 = -b_dyn(1)/
two + b_dyn(3)*rr*(1d0-(mz3**2+mz4**2)/(2d0*q34
1134 yyy3 = (-b_dyn(2)/
two - b_dyn(3)-
two*b_dyn(4))*rr/q34
1135 yyy41 = -b_dyn(1) - b_dyn(2)*(q34+mz3**2)/
lambda**2 - b_dyn(3)
1136 yyy42 = -b_dyn(1) - b_dyn(2)*(q34+mz4**2)/
lambda**2 - b_dyn(3)
1137 yyy5 =
two*b_dyn(8)*rr*mg**2/q34
1139 yyy7 = b_dyn(10) * mg**2 *
m_v**2/
lambda**4
1234 abr1 = (mg**2 + mz3**2 - mz4**2 + 4*q1_q3)
1236 res = (e1_e3*(4*yyy1*q1_e4 + e4_q3*(2*yyy1 - (mg**2 + mz3**2 -
1237 e1_e4*(4*yyy1*q1_e3 + e3_q4*(2*yyy1 + (mg**2 + mz3**2 - mz4**
1238 2*e1_q3*(-2*yyy41*e4_q3*q1_e3 + 2*yyy2*e3_e4*abr1 + &
1239 e3_q4*(2*yyy42*q1_e4 + e4_q3*(2*(mg**2 + mz3**2 - mz4**2)*yyy3
1240 (yyy6*abr1*
et1(e3,e4,e1,q))/4d0 + (yyy6*e1_q3*
et1(e3,e4,q1,q))/2d0
1241 - (yyy6*e1_q3*
et1(e3,e4,q2,q))/2d0 + &
1242 (yyy5*e1_q3*abr1*
et1(e3,e4,q3,q4))/mg**2 + &
1243 yyy7*((e4_q3*abr1*
et1(e1,e3,q,q3))/(4d0*mg**2) - &
1244 (e4_q3*abr1*
et1(e1,e3,q,q4))/(4d0*mg**2) + &
1245 (e3_q4*abr1*
et1(e1,e4,q,q3))/(4d0*mg**2) - &
1246 (e3_q4*abr1*
et1(e1,e4,q,q4))/(4d0*mg**2) &
1247 + (e1_q3*e4_q3*
et1(q1,e3,q,q3))/(2d0*mg**2) - &
1248 (e1_q3*e4_q3*
et1(q1,e3,q,q4))/(2d0*mg**2) + (e1_q3*e3_q4*
et1(q1
1249 (e1_q3*e3_q4*
et1(q1,e4,q,q4))/(2d0*mg**2) - (e1_q3*e4_q3*
et1(q2
1250 (e1_q3*e4_q3*
et1(q2,e3,q,q4))/(2d0*mg**2) - (e1_q3*e3_q4*
et1(q2
1251 (e1_q3*e3_q4*
et1(q2,e4,q,q4))/(2d0*mg**2))
1262 subroutine evalamp_g_vv(p,MY_IDUP,res)
1264 real(dp),
intent(out) :: res
1265 real(dp),
intent(in) :: p(4,6)
1266 integer,
intent(in) :: MY_IDUP(6:9)
1267 complex(dp) :: A_VV(1:18),A0_VV(1:2)
1268 integer :: i1,i3,i4,VVMode,VVmode_swap
1269 real(dp) :: prefactor
1270 real(dp) :: intcolfac
1271 integer :: ordering(1:4),ordering_swap(1:4)
1272 logical :: doInterference
1275 intcolfac=1.0_dp/3.0_dp
1283 if( vvmode.eq.
zzmode ) then
1285 elseif( vvmode.eq.
wwmode )
then
1287 elseif( vvmode.eq.
zgmode )
then
1289 elseif( vvmode.eq.
ggmode )
then
1301 call error(
"Contact terms only for WW, ZZ or Zg!")
1303 do i1 =-2,2;
do i3=1,2;
do i4=1,2
1304 call calchelamp2(ordering,vvmode,p(1:4,1:6),my_idup,i1,i3,i4,a_vv
1305 if( vvmode.eq.
zzmode )
then
1320 elseif( vvmode.eq.
zgmode )
then
1333 if( dointerference )
then
1334 call calchelamp2(ordering_swap,vvmode_swap,p(1:4,1:6),my_idup
1351 a0_vv(1) = a_vv(1)+a_vv(3)+a_vv(5)+a_vv(7)+a_vv(9)+a_vv(11)+a_vv
1352 a0_vv(2) = a_vv(2)+a_vv(4)+a_vv(6)+a_vv(8)+a_vv(10)+a_vv(12)+a_vv
1353 res = res + dreal(a0_vv(1)*dconjg(a0_vv(1)))
1354 res = res + dreal(a0_vv(2)*dconjg(a0_vv(2)))
1355 if( dointerference .and. (i3.eq.i4) ) then
1356 res = res - 2d0*intcolfac*dreal( a0_vv(1)*dconjg(a0_vv(2))
1361 if( (vvmode.eq.
zzmode) .and. dointerference ) res = res *
symmfac
1365 subroutine calchelamp2(ordering,VVMode,p,MY_IDUP,i1,i3,i4,A)
1367 integer :: ordering(1:4),i1,i3,i4,l1,l2,l3,l4,mu,nu,MY_IDUP(6:9),VVMode
1368 real(dp) :: p(1:4,1:6)
1369 real(dp) :: pin(4,4)
1370 complex(dp) :: A(1:1), sp(0:4,1:4)
1380 sp(0,1:4) =
pol_mass2(dcmplx(p(1:4,1)), 0,
'in')
1381 sp(1,1:4) =
pol_mass2(dcmplx(p(1:4,1)),-1,
'in')
1382 sp(2,1:4) =
pol_mass2(dcmplx(p(1:4,1)),+1,
'in')
1385 (/my_idup(l1+3),my_idup(l2+3),my_idup
1386 (/p(:,l1),p(:,l2),p(:,l3),p(:,l4)
1388 sp(3:4,:),pin(3:4,:)
1390 call gzzampl(vvmode,pin,sp,i1,a(1))
1393 subroutine gzzampl(VVMode,p,sp,i1,res)
1395 integer,
intent(in) :: VVMode
1396 real(dp),
intent(in) :: p(4,4)
1397 complex(dp),
intent(in) :: sp(0:4,4)
1398 integer,
intent(in) :: i1
1399 complex(dp),
intent(out) :: res
1400 complex(dp) :: e1_e2, e1_e3, e1_e4
1401 complex(dp) :: e2_e3, e2_e4
1402 complex(dp) :: e3_e4
1403 complex(dp) :: q_q,q3_q3,q4_q4
1404 complex(dp) :: q1_q2,q1_q3,q1_q4
1405 complex(dp) :: q2_q3,q2_q4
1406 complex(dp) :: q3_q4
1407 complex(dp) :: q1_e3,q1_e4,q2_e3,q2_e4,e0_e3,e0_e4
1408 complex(dp) :: e1_q3,e1_q4,e2_q3,e2_q4,e0_q3,e0_q4,q_e3,q_e4
1409 complex(dp) :: e3_q4,e4_q3
1410 complex(dp) :: q1(4),q2(4),q3(4),q4(4),q(4)
1411 complex(dp) :: e1(4),e2(4),e3(4),e4(4),e0(4)
1412 complex(dp) :: yyy1,yyy2,yyy3,yyy41,yyy42,yyy5,yyy6,yyy7
1413 complex(dp) :: b_dyn(1:10)
1414 real(dp) :: q34,MG,MZ3,MZ4
1416 real(dp),
parameter :: sqrt6=dsqrt(6d0)
1420 q1 = dcmplx(p(1,:),0d0)
1421 q2 = dcmplx(p(2,:),0d0)
1422 q3 = dcmplx(p(3,:),0d0)
1423 q4 = dcmplx(p(4,:),0d0)
1432 elseif( i1.eq.+1 )
then
1436 elseif( i1.eq.0 )
then
1440 elseif( i1.eq.-1 )
then
1444 elseif( i1.eq.-2 )
then
1495 mz3=dsqrt(cdabs(q3_q3))
1496 mz4=dsqrt(cdabs(q4_q4))
1498 mg = dsqrt(cdabs(q_q))
1503 q34 = (mg**2-mz3**2-mz4**2)/2d0
1560 print *,
"VVMode",vvmode,
"not implemented"
1563 yyy1 = q34*( b_dyn(1) + b_dyn(2)*rr*(
one+mz3**2/q34)*(
one+mz4*
1564 yyy2 = -b_dyn(1)/
two + b_dyn(3)*rr*(1d0-(mz3**2+mz4**2)/(2d0*q34
1565 yyy3 = (-b_dyn(2)/
two - b_dyn(3)-
two*b_dyn(4))*rr/q34
1566 yyy41 = -b_dyn(1) - b_dyn(2)*(q34+mz3**2)/
lambda**2 - b_dyn(3)
1567 yyy42 = -b_dyn(1) - b_dyn(2)*(q34+mz4**2)/
lambda**2 - b_dyn(3)
1568 yyy5 =
two*b_dyn(8)*rr*mg**2/q34
1570 yyy7 = b_dyn(10) * mg**2 *
m_v**2/
lambda**4
1591 if( abs(i1).eq.2 )
then
1594 & + yyy7 * (
et1(e1,e3,q,q3)*q_e4*e2_q3*mg**(-2) -
et1(e1,e3,q,q3&
1595 & )*q_e4*e2_q4*mg**(-2) -
et1(e1,e3,q,q4)*q_e4*e2_q3*mg**(-2)&
1596 & +
et1(e1,e3,q,q4)*q_e4*e2_q4*mg**(-2) +
et1(e1,e4,q,q3)*q_e3&
1597 & *e2_q3*mg**(-2) -
et1(e1,e4,q,q3)*q_e3*e2_q4*mg**(-2) -
et1(&
1598 & e1,e4,q,q4)*q_e3*e2_q3*mg**(-2) +
et1(e1,e4,q,q4)*q_e3*e2_q4*&
1600 res = res + yyy6 * (
et1(e3,e4,e1,q)*e2_q3 -
et1(e3,e4,e1,q)*&
1602 res = res + yyy5 * (
et1(e3,e4,q3,q4)*e1_q3*e2_q3*mg**(-2) -
et1(&
1603 & e3,e4,q3,q4)*e1_q3*e2_q4*mg**(-2) -
et1(e3,e4,q3,q4)*e1_q4*&
1604 & e2_q3*mg**(-2) +
et1(e3,e4,q3,q4)*e1_q4*e2_q4*mg**(-2) )
1605 res = res + yyy42 * ( e1_e4*e2_q3*e3_q4 + e1_q3*e2_e4*e3_q4 )
1606 res = res + yyy41 * ( e1_e3*e2_q4*e4_q3 + e1_q4*e2_e3*e4_q3 )
1607 res = res + yyy3 * ( e1_q3*e2_q3*e3_q4*e4_q3 - e1_q3*e2_q4*e3_q4*&
1608 & e4_q3 - e1_q4*e2_q3*e3_q4*e4_q3 + e1_q4*e2_q4*e3_q4*e4_q3 )
1609 res = res + yyy2 * ( e1_q3*e2_q3*e3_e4 - e1_q3*e2_q4*e3_e4 - &
1610 & e1_q4*e2_q3*e3_e4 + e1_q4*e2_q4*e3_e4 )
1611 res = res + yyy1 * ( e1_e3*e2_e4 + e1_e4*e2_e3 )
1614 elseif( abs(i1).eq.1 )
then
1617 & + yyy7*
sqrt2**(-1) * (
et1(e1,e3,q,q3)*q_e4*e2_q3*mg**(-2) - &
1618 &
et1(e1,e3,q,q3)*q_e4*e2_q4*mg**(-2) -
et1(e1,e3,q,q4)*q_e4*&
1619 & e2_q3*mg**(-2) +
et1(e1,e3,q,q4)*q_e4*e2_q4*mg**(-2) +
et1(e1&
1620 & ,e4,q,q3)*q_e3*e2_q3*mg**(-2) -
et1(e1,e4,q,q3)*q_e3*e2_q4*&
1621 & mg**(-2) -
et1(e1,e4,q,q4)*q_e3*e2_q3*mg**(-2) +
et1(e1,e4,q,&
1622 & q4)*q_e3*e2_q4*mg**(-2) +
et1(e2,e3,q,q3)*q_e4*e1_q3*mg**(-2)&
1623 & -
et1(e2,e3,q,q3)*q_e4*e1_q4*mg**(-2) -
et1(e2,e3,q,q4)*q_e4&
1624 & *e1_q3*mg**(-2) +
et1(e2,e3,q,q4)*q_e4*e1_q4*mg**(-2) +
et1(&
1625 & e2,e4,q,q3)*q_e3*e1_q3*mg**(-2) -
et1(e2,e4,q,q3)*q_e3*e1_q4*&
1626 & mg**(-2) -
et1(e2,e4,q,q4)*q_e3*e1_q3*mg**(-2) +
et1(e2,e4,q,&
1627 & q4)*q_e3*e1_q4*mg**(-2) )
1628 res = res + yyy6*
sqrt2**(-1) * (
et1(e3,e4,e1,q)*e2_q3 -
et1(e3,&
1629 & e4,e1,q)*e2_q4 +
et1(e3,e4,e2,q)*e1_q3 -
et1(e3,e4,e2,q)*&
1631 res = res + yyy5*
sqrt2**(-1) * ( 2.0d0*
et1(e3,e4,q3,q4)*e1_q3*e2_q3
1632 & mg**(-2) - 2.0d0*
et1(e3,e4,q3,q4)*e1_q3*e2_q4*mg**(-2) - 2.0d0
1633 & e3,e4,q3,q4)*e1_q4*e2_q3*mg**(-2) + 2.0d0*
et1(e3,e4,q3,q4)*e1_q4
1635 res = res + yyy42*
sqrt2**(-1) * ( 2.0d0*e1_e4*e2_q3*e3_q4 + 2.0d0*e1_q3
1637 res = res + yyy41*
sqrt2**(-1) * ( 2.0d0*e1_e3*e2_q4*e4_q3 + 2.0d0*e1_q4
1639 res = res + yyy3*
sqrt2**(-1) * ( 2.0d0*e1_q3*e2_q3*e3_q4*e4_q3 - 2
1640 & e1_q3*e2_q4*e3_q4*e4_q3 - 2.0d0*e1_q4*e2_q3*e3_q4*e4_q3 + 2.0d0
1641 & e1_q4*e2_q4*e3_q4*e4_q3 )
1642 res = res + yyy2*
sqrt2**(-1) * ( 2.0d0*e1_q3*e2_q3*e3_e4 - 2.0d0*e1_q3
1643 & e2_q4*e3_e4 - 2.0d0*e1_q4*e2_q3*e3_e4 + 2.0d0*e1_q4*e2_q4*e3_e4
1644 res = res + yyy1*
sqrt2**(-1) * ( 2.0d0*e1_e3*e2_e4 + 2.0d0*e1_e4*e2_e3
1648 elseif( abs(i1).eq.0 )
then
1650 & + yyy7*sqrt6**(-1) * ( - 2.0d0*
et1(e0,e3,q,q3)*q_e4*e0_q3*&
1651 & mg**(-2) + 2.0d0*
et1(e0,e3,q,q3)*q_e4*e0_q4*mg**(-2) + 2.0d0*
et1
1652 & ,e3,q,q4)*q_e4*e0_q3*mg**(-2) - 2.0d0*
et1(e0,e3,q,q4)*q_e4*e0_q4
1653 & *mg**(-2) - 2.0d0*
et1(e0,e4,q,q3)*q_e3*e0_q3*mg**(-2) + 2.0d0*
et1
1654 & e0,e4,q,q3)*q_e3*e0_q4*mg**(-2) + 2.0d0*
et1(e0,e4,q,q4)*q_e3*&
1655 & e0_q3*mg**(-2) - 2.0d0*
et1(e0,e4,q,q4)*q_e3*e0_q4*mg**(-2) + &
1656 &
et1(e1,e3,q,q3)*q_e4*e2_q3*mg**(-2) -
et1(e1,e3,q,q3)*q_e4*&
1657 & e2_q4*mg**(-2) -
et1(e1,e3,q,q4)*q_e4*e2_q3*mg**(-2) +
et1(e1&
1658 & ,e3,q,q4)*q_e4*e2_q4*mg**(-2) +
et1(e1,e4,q,q3)*q_e3*e2_q3*&
1659 & mg**(-2) -
et1(e1,e4,q,q3)*q_e3*e2_q4*mg**(-2) -
et1(e1,e4,q,&
1660 & q4)*q_e3*e2_q3*mg**(-2) +
et1(e1,e4,q,q4)*q_e3*e2_q4*mg**(-2)&
1661 & +
et1(e2,e3,q,q3)*q_e4*e1_q3*mg**(-2) -
et1(e2,e3,q,q3)*q_e4&
1662 & *e1_q4*mg**(-2) -
et1(e2,e3,q,q4)*q_e4*e1_q3*mg**(-2) +
et1(&
1663 & e2,e3,q,q4)*q_e4*e1_q4*mg**(-2) +
et1(e2,e4,q,q3)*q_e3*e1_q3*&
1664 & mg**(-2) -
et1(e2,e4,q,q3)*q_e3*e1_q4*mg**(-2) -
et1(e2,e4,q,&
1665 & q4)*q_e3*e1_q3*mg**(-2) )
1666 res = res + yyy7*sqrt6**(-1) * (
et1(e2,e4,q,q4)*q_e3*e1_q4*&
1668 res = res + yyy6*sqrt6**(-1) * ( - 2.0d0*
et1(e3,e4,e0,q)*e0_q3 +
1669 & *
et1(e3,e4,e0,q)*e0_q4 +
et1(e3,e4,e1,q)*e2_q3 -
et1(e3,e4,e1&
1670 & ,q)*e2_q4 +
et1(e3,e4,e2,q)*e1_q3 -
et1(e3,e4,e2,q)*e1_q4 )
1671 res = res + yyy5*sqrt6**(-1) * ( 4.0d0*
et1(e3,e4,q3,q4)*e0_q3*e0_q4
1672 & mg**(-2) - 2.0d0*
et1(e3,e4,q3,q4)*e0_q3**2*mg**(-2) - 2.0d0*
et1
1673 & e4,q3,q4)*e0_q4**2*mg**(-2) + 2.0d0*
et1(e3,e4,q3,q4)*e1_q3*e2_q3
1674 & *mg**(-2) - 2.0d0*
et1(e3,e4,q3,q4)*e1_q3*e2_q4*mg**(-2) - 2.0d0
1675 &
et1(e3,e4,q3,q4)*e1_q4*e2_q3*mg**(-2) + 2.0d0*
et1(e3,e4,q3,q4)
1676 & e1_q4*e2_q4*mg**(-2) )
1677 res = res + yyy42*sqrt6**(-1) * ( - 4.0d0*e0_e4*e0_q3*e3_q4 + 2.0d0
1678 & e1_e4*e2_q3*e3_q4 + 2.0d0*e1_q3*e2_e4*e3_q4 )
1679 res = res + yyy41*sqrt6**(-1) * ( - 4.0d0*e0_e3*e0_q4*e4_q3 + 2.0d0
1680 & e1_e3*e2_q4*e4_q3 + 2.0d0*e1_q4*e2_e3*e4_q3 )
1681 res = res + yyy3*sqrt6**(-1) * ( 4.0d0*e0_q3*e0_q4*e3_q4*e4_q3 - 2
1682 & e0_q3**2*e3_q4*e4_q3 - 2.0d0*e0_q4**2*e3_q4*e4_q3 + 2.0d0*e1_q3
1683 & e2_q3*e3_q4*e4_q3 - 2.0d0*e1_q3*e2_q4*e3_q4*e4_q3 - 2.0d0*e1_q4
1684 & e2_q3*e3_q4*e4_q3 + 2.0d0*e1_q4*e2_q4*e3_q4*e4_q3 )
1685 res = res + yyy2*sqrt6**(-1) * ( 4.0d0*e0_q3*e0_q4*e3_e4 - 2.0d0*&
1686 & e0_q3**2*e3_e4 - 2.0d0*e0_q4**2*e3_e4 + 2.0d0*e1_q3*e2_q3*e3_e4
1687 & *e1_q3*e2_q4*e3_e4 - 2.0d0*e1_q4*e2_q3*e3_e4 + 2.0d0*e1_q4*e2_q4
1689 res = res + yyy1*sqrt6**(-1) * ( - 4.0d0*e0_e3*e0_e4 + 2.0d0*e1_e3
1690 & e2_e4 + 2.0d0*e1_e4*e2_e3 )
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
1713 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
1716 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
1719 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
1722 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
1729 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
1732 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
1735 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
1738 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
1741 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
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
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
1754 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1756 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1761 elseif( vvmode.eq.
wwmode )
then
1767 (abs(idordered(6)).eq.abs(
elp_) .and. abs(idordered(7)).eq.abs
1768 (abs(idordered(6)).eq.abs(
mup_) .and. abs(idordered(7)).eq.abs
1773 (abs(idordered(6)).eq.abs(
tap_) .and. abs(idordered(7)).eq.abs
1785 (abs(idordered(8)).eq.abs(
elm_) .and. abs(idordered(9)).eq.abs
1786 (abs(idordered(8)).eq.abs(
mum_) .and. abs(idordered(9)).eq.abs
1791 (abs(idordered(8)).eq.abs(
tam_) .and. abs(idordered(9)).eq.abs
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
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
1805 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1807 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1811 elseif( vvmode.eq.
zgmode )
then
1813 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
1816 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
1819 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
1822 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
1825 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
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
1838 sp(4,:) =
pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
1840 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
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
1866 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
1869 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
1872 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
1875 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
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))
1896 elseif( vvmode.eq.
gszmode )
then
1898 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
1901 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
1904 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
1907 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
1910 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
1917 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
1920 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
1923 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
1926 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
1929 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
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
1942 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1945 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1949 elseif( vvmode.eq.
zgsmode )
then
1951 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
1954 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
1957 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
1960 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
1963 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
1970 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
1973 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
1976 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
1979 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
1982 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
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
1993 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1995 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1997 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2004 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
2007 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
2010 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
2013 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
2016 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
2023 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
2026 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
2029 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
2032 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
2035 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
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))
2051 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2056 elseif( vvmode.eq.
zpzmode )
then
2060 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
2063 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
2066 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
2069 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
2072 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
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
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
2086 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2094 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2098 elseif( vvmode.eq.
zzpmode )
then
2100 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
2103 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
2106 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
2109 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
2112 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
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
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
2128 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2130 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
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
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
2153 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2161 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2175 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
2178 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
2181 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
2184 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
2187 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
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
2199 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
2201 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2209 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2215 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
2218 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
2221 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
2224 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
2227 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
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
2243 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2246 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
2256 elseif( vvmode.eq.
zpgmode )
then
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
2266 sp(4,:) =
pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
2267 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
2278 elseif( vvmode.eq.
wpwmode )
then
2286 (abs(idordered(8)).eq.abs(
elm_) .and. abs(idordered(9)).eq.abs
2287 (abs(idordered(8)).eq.abs(
mum_) .and. abs(idordered(9)).eq.abs
2292 (abs(idordered(8)).eq.abs(
tam_) .and. abs(idordered(9)).eq.abs
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
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
2306 s =
scr(pv(3,:),pv(3,:))
2314 s =
scr(pv(4,:),pv(4,:))
2318 elseif( vvmode.eq.
wwpmode )
then
2324 (abs(idordered(6)).eq.abs(
elp_) .and. abs(idordered(7)).eq.abs
2325 (abs(idordered(6)).eq.abs(
mup_) .and. abs(idordered(7)).eq.abs
2330 (abs(idordered(6)).eq.abs(
tap_) .and. abs(idordered(7)).eq.abs
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
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
2347 s =
scr(pv(3,:),pv(3,:))
2349 s =
scr(pv(4,:),pv(4,:))
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
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
2372 s =
scr(pv(3,:),pv(3,:))
2380 s =
scr(pv(4,:),pv(4,:))
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,:)
2412 integer,
intent(in) :: MY_IDUP(6:9)
2413 integer,
intent(out) :: VVMode,ordering(1:4),VVMode_swap,ordering_swap(
2414 integer :: idV(1:2),idV_swap(1:2)
2416 ordering=(/3,4,5,6/)
2419 if(my_idup(6).eq.
pho_ .or. my_idup(7).eq.
pho_) idv(1)=
pho_
2420 if(my_idup(8).eq.
pho_ .or. my_idup(9).eq.
pho_) idv(2)=
pho_
2422 call swap(ordering(1),ordering(2))
2425 call swap(ordering(3),ordering(4))
2428 (idv(1).eq.
wm_ .and. idv(2).eq.
wp_) .or. &
2429 (idv(2).eq.
z0_ .and. idv(1).eq.
pho_) &
2431 call swap(ordering(1),ordering(3))
2432 call swap(ordering(2),ordering(4))
2433 call swap(idv(1),idv(2))
2435 ordering_swap(:)=ordering(:)
2436 call swap(ordering_swap(1),ordering_swap(3))
2438 idv_swap(1) =
coupledvertex( (/ my_idup(3+ordering_swap(1)), my_idup(
2439 idv_swap(2) =
coupledvertex( (/ my_idup(3+ordering_swap(3)), my_idup(
2440 if ( (idv_swap(1).eq.
wm_) .and. (idv_swap(2).eq.
wp_) )
then
2441 call swap(ordering_swap(1),ordering_swap(3))
2442 call swap(ordering_swap(2),ordering_swap(4))
2443 call swap(idv_swap(1),idv_swap(2))
2446 if(idv(1).eq.
z0_ .and. idv(2).eq.
z0_)
then
2448 elseif(idv(1).eq.
z0_ .and. idv(2).eq.
pho_)
then
2450 elseif(idv(1).eq.
pho_ .and. idv(2).eq.
pho_)
then
2452 elseif(idv(1).eq.
wp_ .and. idv(2).eq.
wm_)
then
2456 call error(
"Unsupported decay mode")
2460 if(idv_swap(1).eq.
z0_ .and. idv_swap(2).eq.
z0_)
then
2462 elseif(idv_swap(1).eq.
wp_ .and. idv_swap(2).eq.
wm_)
then