22 real(
dp),
intent(out) :: res
23 real(
dp),
intent(in) :: p(4,6)
24 integer,
intent(in) :: my_idup(6:9)
25 complex(dp) :: a_vv(1:18), a0_vv(1:2)
26 integer :: i1,i2,i3,i4,vvmode,vvmode_swap
29 integer :: ordering(1:4),ordering_swap(1:4)
30 logical :: dointerference
33 intcolfac=1.0_dp/3.0_dp
41 if( vvmode.eq.
zzmode ) then
43 elseif( vvmode.eq.
wwmode )
then
45 elseif( vvmode.eq.
zgmode )
then
47 elseif( vvmode.eq.
ggmode )
then
52 prefactor = prefactor * (
alphas/(3.0_dp*pi*
vev))**2
75 call error(
"Contact terms only for WW, ZZ or Zg!")
77 do i1=1,2;
do i2=1,2;
do i3=1,2;
do i4=1,2
78 call calchelamp(ordering,vvmode,my_idup,p(1:4,1:6),i1,i2
79 if( vvmode.eq.
zzmode )
then
94 elseif( vvmode.eq.
zgmode )
then
107 if( dointerference )
then
108 call calchelamp(ordering_swap,vvmode_swap,my_idup,p
125 a0_vv(1) = a_vv(1)+a_vv(3)+a_vv(5)+a_vv(7)+a_vv(9)+a_vv
126 a0_vv(2) = a_vv(2)+a_vv(4)+a_vv(6)+a_vv(8)+a_vv(10)+a_vv
127 res = res + dreal(a0_vv(1)*dconjg(a0_vv(1)))
128 res = res + dreal(a0_vv(2)*dconjg(a0_vv(2)))
129 if( dointerference .and. (i3.eq.i4) ) then
130 res = res - 2d0*intcolfac*dreal( a0_vv(1)*dconjg(a0_vv
132 enddo; enddo; enddo;
enddo
156 if( (vvmode.eq.
zzmode) .and. dointerference ) res = res *
symmfac
167 subroutine calchelamp(ordering,VVMode,MY_IDUP,p,i1,i2,i3,i4,A)
169 integer :: ordering(1:4),vvmode,i1,i2,i3,i4,l1,l2,l3,l4,my_idup(6:
170 real(
dp) :: p(1:4,1:6)
173 complex(dp) :: a(1:1), sp(4,4)
197 sp(1,:) =
pol_mless2(dcmplx(p(:,1)),-3+2*i1,
'in')
198 sp(2,:) =
pol_mless2(dcmplx(p(:,2)),-3+2*i2,
'in')
203 (/my_idup(l1+3),my_idup(l2+3),my_idup
204 (/p(:,l1),p(:,l2),p(:,l3),p(:,l4)
214 integer,
intent(in) :: VVMode
215 real(dp),
intent(in) :: p(4,4)
216 complex(dp),
intent(in) :: sp(4,4)
217 complex(dp),
intent(out) :: res
218 complex(dp) :: e1_e2, e1_e3, e1_e4
219 complex(dp) :: e2_e3, e2_e4
221 complex(dp) :: q1_e3,q1_e4,q2_e3,q2_e4
222 complex(dp) :: e1_q3,e1_q4,e2_q3,e2_q4
223 complex(dp) :: e3_q4,e4_q3
224 complex(dp) :: q1(4),q2(4),q3(4),q4(4),q(4)
225 complex(dp) :: e1(4),e2(4),e3(4),e4(4)
226 complex(dp) :: xxx1,xxx2,xxx3,yyy1,yyy2,yyy3,yyy4
227 complex(dp) :: ghz1_dyn,ghz2_dyn,ghz3_dyn,ghz4_dyn
229 real(dp) :: q_q, q3_q3, q4_q4
233 q1 = dcmplx(p(1,:),0d0)
234 q2 = dcmplx(p(2,:),0d0)
235 q3 = dcmplx(p(3,:),0d0)
236 q4 = dcmplx(p(4,:),0d0)
268 if (q_q.lt.-0.1d0 .or. q3_q3.lt.-0.1d0 .or. q4_q4.lt.-0.1d0)
return
276 elseif( (vvmode.eq.
gszmode) )
then
321 print *,
"VVMode",vvmode,
"not implemented"
327 yyy1 = ghz1_dyn*
m_v**2/q_q &
328 + ghz2_dyn*(q_q-q3_q3-q4_q4)/q_q &
329 + ghz3_dyn/
lambda**2*(q_q-q3_q3-q4_q4)*(q_q-q4_q4-q3_q3)/4d0
330 yyy2 = -2d0*ghz2_dyn-ghz3_dyn/2d0/
lambda**2*(q_q-q3_q3-q4_q4)
345 yyy2 = -2*
ahz1*q_q/(q_q-q3_q3)
351 print *,
"VVMode",vvmode,
"not implemented in generate_as"
355 res= e1_e2*e3_e4*q_q**2*yyy1*xxx1 &
356 + e1_e2*e3_q4*e4_q3*q_q*yyy2*xxx1 &
357 +
et1(e1,e2,q1,q2)*e3_e4*q_q*yyy1*xxx3 &
358 +
et1(e1,e2,q1,q2)*e3_q4*e4_q3*yyy2*xxx3 &
359 +
et1(e1,e2,q1,q2)*
et1(e3,e4,q3,q4)*yyy3*xxx3 &
360 +
et1(e3,e4,q3,q4)*e1_e2*q_q*yyy3*xxx1
370 real(
dp),
intent(out) :: res
371 real(
dp),
intent(in) :: p(4,6)
372 integer,
intent(in) :: my_idup(6:9)
373 complex(dp) :: a_vv(1:18),a0_vv(1:2)
374 integer :: i3,i4,vvmode,vvmode_swap
375 real(
dp) :: prefactor
376 real(
dp) :: intcolfac
377 integer :: ordering(1:4),ordering_swap(1:4)
378 logical :: dointerference
381 intcolfac=1.0_dp/3.0_dp
389 if( vvmode.eq.
zzmode ) then
391 elseif( vvmode.eq.
wwmode )
then
393 elseif( vvmode.eq.
zgmode )
then
395 elseif( vvmode.eq.
ggmode )
then
422 call error(
"Contact terms only for WW, ZZ or Zg!")
425 call calchelamp2(ordering,vvmode,my_idup,p(1:4,1:6),i3
426 if( vvmode.eq.
zzmode )
then
441 elseif( vvmode.eq.
zgmode )
then
454 if( dointerference )
then
472 a0_vv(1) = a_vv(1)+a_vv(3)+a_vv(5)+a_vv(7)+a_vv(9)+a_vv
473 a0_vv(2) = a_vv(2)+a_vv(4)+a_vv(6)+a_vv(8)+a_vv(10)+a_vv
474 res = res + dreal(a0_vv(1)*dconjg(a0_vv(1)))
475 res = res + dreal(a0_vv(2)*dconjg(a0_vv(2)))
476 if( dointerference .and. (i3.eq.i4) ) then
477 res = res - 2d0*intcolfac*dreal( a0_vv(1)*dconjg(a0_vv
504 if( (vvmode.eq.
zzmode) .and. dointerference ) res = res *
symmfac
509 subroutine calchelamp2(ordering,VVMode,MY_IDUP,p,i3,i4,A)
511 integer :: ordering(1:4),VVMode,i3,i4,l1,l2,l3,l4,MY_IDUP(6:9)
512 real(dp) :: p(1:4,1:6)
514 complex(dp) :: A(1:1), sp(3:4,4)
525 (/my_idup(l1+3),my_idup(l2+3),my_idup
526 (/p(:,l1),p(:,l2),p(:,l3),p(:,l4)
530 call hzzampl(vvmode,pin,sp,a(1))
533 subroutine hzzampl(VVMode,p,sp,res)
535 integer,
intent(in) :: VVMode
536 real(dp),
intent(in) :: p(4,4)
537 complex(dp),
intent(in) :: sp(3:4,4)
538 complex(dp),
intent(out) :: res
540 complex(dp) :: e3_q4,e4_q3
541 complex(dp) :: q1(4),q3(4),q4(4),q(4)
542 complex(dp) :: e3(4),e4(4)
543 complex(dp) :: yyy1,yyy2,yyy3,yyy4
545 real(dp) :: q_q, q3_q3, q4_q4
546 complex(dp) :: ghz1_dyn,ghz2_dyn,ghz3_dyn,ghz4_dyn
551 q1 = dcmplx(p(1,:),0d0)
552 q3 = dcmplx(p(3,:),0d0)
553 q4 = dcmplx(p(4,:),0d0)
570 if ((q_q).lt.-0.1d0 .or. (q3_q3).lt.-0.1d0 .or. (q4_q4).lt.-0.1d0)
return
579 elseif( (vvmode.eq.
gszmode) )
then
624 print *,
"VVMode",vvmode,
"not implemented"
628 yyy1 = ghz1_dyn*
m_v**2/q_q &
629 + ghz2_dyn*(q_q-q3_q3-q4_q4)/q_q &
630 + ghz3_dyn/
lambda**2*(q_q-q3_q3-q4_q4)*(q_q-q4_q4-q3_q3)/4d0
631 yyy2 = -2d0*ghz2_dyn-ghz3_dyn/2d0/
lambda**2*(q_q-q3_q3-q4_q4)
644 yyy2 = -2*
ahz1*q_q/(q_q-q3_q3)
650 print *,
"VVMode",vvmode,
"not implemented in generate_as"
654 res = e3_e4*q_q*yyy1 &
656 +
et1(e3,e4,q3,q4)*yyy3
670 real(
dp),
intent(out) :: res
672 real(
dp),
intent(in) :: pin(1:4,1:2),mass_f
675 s12=2d0*(pin(1,1)*pin(1,2)-pin(2,1)*pin(2,2)-pin(3,1)*pin(3,2)-pin
677 amp2 = amp2*mass_f**2/
vev**2
693 real(
dp),
intent(out) :: res
694 real(
dp),
intent(in) :: pin(1:4,1:6),mass_f,ga_f
696 real(
dp) :: p(1:6,1:4),s12,s45,s123,s456,s(6,6)
697 complex(dp) :: za(6,6),zb(6,6),amp,kl,kr
708 s123=s(1,2)+s(1,3)+s(2,3)
709 s456=s(4,5)+s(4,6)+s(5,6)
714 amp = + kr * ( za(1,3)*za(1,4)*zb(1,2)*zb(5,6)- za(1,3)*za(3,4)*zb
715 + kl * (- za(1,3)*za(4,5)*zb(2,5)*zb(5,6)- za(1,3)*za(4,6)*zb
718 amp=amp/(s123-mass_f**2+
ci*mass_f*ga_f)/(s456-mass_f**2+
ci*mass_f*ga_f
719 amp=amp*16d0*
ci*mass_f*
gwsq**2
730 integer,
intent(in) :: VVMode,idordered(6:9),h3,h4
731 real(dp),
intent(in) :: pordered(1:4,6:9)
732 complex(dp),
intent(out) :: sp(3:4,1:4)
733 real(dp),
intent(out) :: pV(3:4,1:4)
735 complex(dp) :: propV(1:2), aL1,aR1,aL2,aR2
738 if( vvmode.eq.
zzmode )
then
740 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
743 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
746 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
749 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
752 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
759 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
762 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
765 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
768 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
771 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
778 pv(3,:) = pordered(:,6)+pordered(:,7)
779 pv(4,:) = pordered(:,8)+pordered(:,9)
780 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
781 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
782 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
783 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
784 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
786 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
791 elseif( vvmode.eq.
wwmode )
then
797 (abs(idordered(6)).eq.abs(
elp_) .and. abs(idordered(7)).eq.abs
798 (abs(idordered(6)).eq.abs(
mup_) .and. abs(idordered(7)).eq.abs
803 (abs(idordered(6)).eq.abs(
tap_) .and. abs(idordered(7)).eq.abs
815 (abs(idordered(8)).eq.abs(
elm_) .and. abs(idordered(9)).eq.abs
816 (abs(idordered(8)).eq.abs(
mum_) .and. abs(idordered(9)).eq.abs
821 (abs(idordered(8)).eq.abs(
tam_) .and. abs(idordered(9)).eq.abs
829 pv(3,:) = pordered(:,6)+pordered(:,7)
830 pv(4,:) = pordered(:,8)+pordered(:,9)
831 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
832 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
833 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
834 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
835 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
837 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
841 elseif( vvmode.eq.
zgmode )
then
843 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
846 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
849 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
852 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
855 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
864 pv(3,:) = pordered(:,6)+pordered(:,7)
865 pv(4,:) = pordered(:,8)
866 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
867 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
868 sp(4,:) =
pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
870 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
875 elseif( vvmode.eq.
ggmode )
then
881 pv(3,:) = pordered(:,6)
882 pv(4,:) = pordered(:,8)
883 sp(3,:) =
pol_mless2(dcmplx(pordered(:,6)),h3,
'out')
884 sp(4,:) =
pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
891 elseif( vvmode.eq.
gsgmode )
then
893 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
896 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
899 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
902 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
905 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
914 pv(3,:) = pordered(:,6)+pordered(:,7)
915 pv(4,:) = pordered(:,8)
916 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
918 sp(4,:) =
pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
920 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
926 elseif( vvmode.eq.
gszmode )
then
928 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
931 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
934 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
937 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
940 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
947 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
950 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
953 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
956 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
959 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
966 pv(3,:) = pordered(:,6)+pordered(:,7)
967 pv(4,:) = pordered(:,8)+pordered(:,9)
968 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
970 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
971 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
972 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
975 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
979 elseif( vvmode.eq.
zgsmode )
then
981 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
984 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
987 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
990 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
993 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
1000 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
1003 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
1006 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
1009 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
1012 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
1019 pv(3,:) = pordered(:,6)+pordered(:,7)
1020 pv(4,:) = pordered(:,8)+pordered(:,9)
1021 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1022 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1023 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1025 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1027 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1034 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
1037 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
1040 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
1043 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
1046 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
1053 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
1056 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
1059 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
1062 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
1065 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
1072 pv(3,:) = pordered(:,6)+pordered(:,7)
1073 pv(4,:) = pordered(:,8)+pordered(:,9)
1074 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1076 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1078 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1081 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1086 elseif( vvmode.eq.
zpzmode )
then
1090 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
1093 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
1096 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
1099 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
1102 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
1110 pv(3,:) = pordered(:,6)+pordered(:,7)
1111 pv(4,:) = pordered(:,8)+pordered(:,9)
1112 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1113 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1114 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1115 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
1116 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1124 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1128 elseif( vvmode.eq.
zzpmode )
then
1130 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
1133 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
1136 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
1139 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
1142 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
1152 pv(3,:) = pordered(:,6)+pordered(:,7)
1153 pv(4,:) = pordered(:,8)+pordered(:,9)
1154 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1155 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1156 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1157 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
1158 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1160 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1177 pv(3,:) = pordered(:,6)+pordered(:,7)
1178 pv(4,:) = pordered(:,8)+pordered(:,9)
1179 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1180 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1181 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1182 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
1183 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1191 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1205 if( abs(idordered(8)).eq.abs(
elm_) .or. abs(idordered(8)).eq.abs(
mum_then
1208 elseif( abs(idordered(8)).eq.abs(
tam_) )
then
1211 elseif( abs(idordered(8)).eq.abs(
nue_) .or. abs(idordered(8)).eq.abs
then
1214 elseif( abs(idordered(8)).eq.abs(
up_) .or. abs(idordered(8)).eq.abs
then
1217 elseif( abs(idordered(8)).eq.abs(
dn_) .or. abs(idordered(8)).eq.abs
then
1225 pv(3,:) = pordered(:,6)+pordered(:,7)
1226 pv(4,:) = pordered(:,8)+pordered(:,9)
1227 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1228 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1229 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1231 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1239 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1245 if( abs(idordered(6)).eq.abs(
elm_) .or. abs(idordered(6)).eq.abs(
mum_then
1248 elseif( abs(idordered(6)).eq.abs(
tam_) )
then
1251 elseif( abs(idordered(6)).eq.abs(
nue_) .or. abs(idordered(6)).eq.abs
then
1254 elseif( abs(idordered(6)).eq.abs(
up_) .or. abs(idordered(6)).eq.abs
then
1257 elseif( abs(idordered(6)).eq.abs(
dn_) .or. abs(idordered(6)).eq.abs
then
1267 pv(3,:) = pordered(:,6)+pordered(:,7)
1268 pv(4,:) = pordered(:,8)+pordered(:,9)
1269 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1271 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1272 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
1273 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1276 s =
scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
1286 elseif( vvmode.eq.
zpgmode )
then
1292 pv(3,:) = pordered(:,6)+pordered(:,7)
1293 pv(4,:) = pordered(:,8)
1294 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1295 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1296 sp(4,:) =
pol_mless2(dcmplx(pordered(:,8)),h4,
'out')
1297 s =
scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
1308 elseif( vvmode.eq.
wpwmode )
then
1316 (abs(idordered(8)).eq.abs(
elm_) .and. abs(idordered(9)).eq.abs
1317 (abs(idordered(8)).eq.abs(
mum_) .and. abs(idordered(9)).eq.abs
1322 (abs(idordered(8)).eq.abs(
tam_) .and. abs(idordered(9)).eq.abs
1330 pv(3,:) = pordered(:,6)+pordered(:,7)
1331 pv(4,:) = pordered(:,8)+pordered(:,9)
1332 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1333 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1334 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1335 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
1336 s =
scr(pv(3,:),pv(3,:))
1344 s =
scr(pv(4,:),pv(4,:))
1348 elseif( vvmode.eq.
wwpmode )
then
1354 (abs(idordered(6)).eq.abs(
elp_) .and. abs(idordered(7)).eq.abs
1355 (abs(idordered(6)).eq.abs(
mup_) .and. abs(idordered(7)).eq.abs
1360 (abs(idordered(6)).eq.abs(
tap_) .and. abs(idordered(7)).eq.abs
1371 pv(3,:) = pordered(:,6)+pordered(:,7)
1372 pv(4,:) = pordered(:,8)+pordered(:,9)
1373 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1374 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1375 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1376 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
1377 s =
scr(pv(3,:),pv(3,:))
1379 s =
scr(pv(4,:),pv(4,:))
1396 pv(3,:) = pordered(:,6)+pordered(:,7)
1397 pv(4,:) = pordered(:,8)+pordered(:,9)
1398 sp(3,:) =
pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3
1399 sp(3,:) = -sp(3,:) + pv(3,:)*(
sc(sp(3,:),dcmplx(pv(3,:))) )/
scr(pv
1400 sp(4,:) =
pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4
1401 sp(4,:) = -sp(4,:) + pv(4,:)*(
sc(sp(4,:),dcmplx(pv(4,:))) )/
scr(pv
1402 s =
scr(pv(3,:),pv(3,:))
1410 s =
scr(pv(4,:),pv(4,:))
1421 call error(
"Unsupported decay modes")
1431 sp(3,:) = sp(3,:)*propv(1)
1432 sp(4,:) = sp(4,:)*propv(2)
1434 sp(3,:) = al1 * sp(3,:)
1435 elseif(h3.eq.1)
then
1436 sp(3,:) = ar1 * sp(3,:)
1439 sp(4,:) = al2 * sp(4,:)
1440 elseif(h4.eq.1)
then
1441 sp(4,:) = ar2 * sp(4,:)
1449 integer,
intent(in) :: MY_IDUP(6:9)
1450 integer,
intent(out) :: VVMode,ordering(1:4),VVMode_swap,ordering_swap(
1451 integer :: idV(1:2),idV_swap(1:2)
1453 ordering=(/3,4,5,6/)
1456 if(my_idup(6).eq.
pho_ .or. my_idup(7).eq.
pho_) idv(1)=
pho_
1457 if(my_idup(8).eq.
pho_ .or. my_idup(9).eq.
pho_) idv(2)=
pho_
1459 call swap(ordering(1),ordering(2))
1462 call swap(ordering(3),ordering(4))
1465 (idv(1).eq.
wm_ .and. idv(2).eq.
wp_) .or. &
1466 (idv(2).eq.
z0_ .and. idv(1).eq.
pho_) &
1468 call swap(ordering(1),ordering(3))
1469 call swap(ordering(2),ordering(4))
1470 call swap(idv(1),idv(2))
1472 ordering_swap(:)=ordering(:)
1473 call swap(ordering_swap(1),ordering_swap(3))
1475 idv_swap(1) =
coupledvertex( (/ my_idup(3+ordering_swap(1)), my_idup(
1476 idv_swap(2) =
coupledvertex( (/ my_idup(3+ordering_swap(3)), my_idup(
1477 if ( (idv_swap(1).eq.
wm_) .and. (idv_swap(2).eq.
wp_) )
then
1478 call swap(ordering_swap(1),ordering_swap(3))
1479 call swap(ordering_swap(2),ordering_swap(4))
1480 call swap(idv_swap(1),idv_swap(2))
1483 if(idv(1).eq.
z0_ .and. idv(2).eq.
z0_)
then
1485 elseif(idv(1).eq.
z0_ .and. idv(2).eq.
pho_)
then
1487 elseif(idv(1).eq.
pho_ .and. idv(2).eq.
pho_)
then
1489 elseif(idv(1).eq.
wp_ .and. idv(2).eq.
wm_)
then
1493 call error(
"Unsupported decay mode")
1497 if(idv_swap(1).eq.
z0_ .and. idv_swap(2).eq.
z0_)
then
1499 elseif(idv_swap(1).eq.
wp_ .and. idv_swap(2).eq.
wm_)
then