JHUGen MELA  JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
mod_Zprime.F90
Go to the documentation of this file.
1  module modzprime
2  use modparameters
3  use modmisc
4  implicit none
5  private
6 
7 
8 !----- notation for subroutines
9  public :: evalamp_qqb_zprime_vv,evalamp_zprime_vv
10  public :: calchelamp,calchelamp2
11 
12  contains
13 
14 !----- a subroutine for q qbar -> Zprime -> ZZ/WW
15 !----- all outgoing convention and the following momentum assignment
16 !----- 0 -> bq(p1) + q(p2) + e-(p3) + e+(p4) +mu-(p5) +mu+(p6)
17  subroutine evalamp_qqb_zprime_vv(p,MY_IDUP,sum)
18  implicit none
19  real(dp), intent(out) :: sum
20  real(dp), intent(in) :: p(4,6)
21  integer, intent(in) :: MY_IDUP(6:9)
22  real(dp) :: pin(4,4)
23  complex(dp) :: A(2)
24  integer :: i1,i2,i3,i4,ordering(1:4),ordering_swap(1:4),idV(1:2),VVmode
25  real(dp) :: prefactor
26  real(dp) :: intcolfac
27 
28  if(isaquark(my_idup(6)) .and. isaquark(my_idup(8))) then
29  intcolfac=1.0_dp/3.0_dp
30  else
31  intcolfac=1.0_dp
32  endif
33 
34  call getdecay_vvmode_ordering(my_idup(6:9),vvmode,ordering,ordering_swap)
35 
36 !---- full prefactor; 3 is the color factor
37  if( vvmode.eq.zzmode ) then! Z decay
38  prefactor = 3d0*overallcouplvffsq**2
39  elseif( vvmode.eq.wwmode ) then ! W decay
40  prefactor = 3d0*overallcouplvffsq**2
41  elseif( vvmode.eq.zgmode ) then ! Z+photon "decay"
42  prefactor = 3d0*overallcouplvffsq ! Only single powers
43  elseif( vvmode.eq.ggmode ) then ! photon "decay"
44  prefactor = 3d0
45  else
46  prefactor = 0d0
47  endif
48 
49 
50  sum = zero
51 do i1=1,2
52 do i3 = 1,2
53 do i4 = 1,2
54 !do i3 = -1,1! on-shell check!
55 !do i4 = -1,1! on-shell check!
56 
57  call calchelamp(ordering,vvmode,p(1:4,1:6),my_idup,i1,i3,i4,a(1))
58  if( includeinterference .and. (my_idup(6).eq.my_idup(8)) .and. (my_idup(7).eq.my_idup(9)) ) then
59  call calchelamp(ordering_swap,vvmode,p(1:4,1:6),my_idup,i1,i3,i4,a(2))
60  a(2) = -a(2) ! minus comes from fermi statistics
61  endif
62  if( includeinterference .and. (my_idup(6).eq.my_idup(8)) .and. (my_idup(7).eq.my_idup(9)) ) then
63  sum = sum + symmfac * (cdabs( a(1)*dconjg(a(1)) ) + cdabs( a(2)*dconjg(a(2)) ))
64  if( i3.eq.i4 ) sum = sum + symmfac * 2d0*intcolfac*dreal(a(1)*dconjg(a(2)))
65  else
66  sum = sum + cdabs( a(1)*dconjg(a(1)) )
67  endif
68 
69 enddo
70 enddo
71 enddo
72 
73 ! sum ~ GeV~-8
74 ! prefactor ~ GeV^0
75  sum = sum*prefactor
76 
77  end subroutine
78 
79  subroutine calchelamp(ordering,VVmode,p,MY_IDUP,i1,i3,i4,A)
80  implicit none
81  integer :: ordering(1:4),i1,i3,i4,l1,l2,l3,l4,vvmode,my_idup(6:9)
82  real(dp) :: p(1:4,1:6)
83  complex(dp) :: propg
84  real(dp) :: s, pin(4,4)
85  complex(dp) :: a(1:1), sp(4,4)
86 
87 
88  l1=ordering(1)
89  l2=ordering(2)
90  l3=ordering(3)
91  l4=ordering(4)
92 
93  !print *,"p(6)=",(p(:,l1))
94  !print *,"p(7)=",(p(:,l2))
95  !print *,"p(8)=",(p(:,l3))
96  !print *,"p(9)=",(p(:,l4))
97  !pause
98 
99  s = two*scr(p(:,1),p(:,2))
100  propg = s/dcmplx(s - m_reso**2,m_reso*ga_reso)
101 !-------- For fermions, -1 == left, 1 == right
102  pin(1,:) = p(:,1)
103  pin(2,:) = p(:,2)
104  sp(1,:) = pol_dk2mom(dcmplx(p(:,2)),dcmplx(p(:,1)),-3+2*i1) !qbq
105  sp(2,:) = sp(1,:) !-- the same, isn't really needed but for uniform bookeeping
106 !-- on-shell check
107 ! sp(3,1:4) = pol_mass(dcmplx(p(1:4,3)+p(1:4,4)),dsqrt(2d0*scr(p(:,3),p(:,4))),i3)
108 ! sp(4,1:4) = pol_mass(dcmplx(p(1:4,5)+p(1:4,6)),dsqrt(2d0*scr(p(:,5),p(:,6))),i4)
109 
110 ! if( i3.eq.0 .and. i4.eq.0 ) then
111 ! a(:) = 0d0
112 ! return
113 ! endif
114 !-- end: on-shell check
116  vvmode, &
117  (/my_idup(l1+3),my_idup(l2+3),my_idup(l3+3),my_idup(l4+3)/), &
118  (/p(:,l1),p(:,l2),p(:,l3),p(:,l4)/), &
119  -3+2*i3,-3+2*i4, &
120  sp(3:4,:),pin(3:4,:) &
121  )
122  call qqzprimezzampl(pin,sp,a(1))
123 !---- chiral couplings of quarks to Zprimes
124  if (i1.eq.1) then
125  a(1) = zprime_qq_left*a(1)
126  else if(i1.eq.2) then
127  a(1) = zprime_qq_right*a(1)
128  endif
129  a(1) = a(1)*propg
130 ! A(1) ~ GeV^-2
131 ! propG*propZ1*propZ2 ~ GeV^-2
132  end subroutine
133 
134  subroutine qqzprimezzampl(p,sp,res)
135  implicit none
136  real(dp), intent(in) :: p(4,4)
137  complex(dp), intent(in) :: sp(4,4)
138  complex(dp), intent(out) :: res
139  complex(dp) :: e1_e2, e1_e3, e1_e4
140  complex(dp) :: e2_e3, e2_e4
141  complex(dp) :: e3_e4
142  complex(dp) :: q_q
143  complex(dp) :: q1_q2,q1_q3,q1_q4
144  complex(dp) :: q2_q3,q2_q4
145  complex(dp) :: q3_q4
146  complex(dp) :: q1_e3,q1_e4,q2_e3,q2_e4
147  complex(dp) :: e1_q3,e1_q4,e2_q3,e2_q4
148  complex(dp) :: e3_q4,e4_q3
149  complex(dp) :: q1(4),q2(4),q3(4),q4(4),q(4)
150  complex(dp) :: e1(4),e2(4),e3(4),e4(4)
151  complex(dp) :: yyy1,yyy2,yyy3,yyy4,xxx1,epsZpr(1:4,-1:+1)
152 
153  q1 = dcmplx(p(1,:),0d0)
154  q2 = dcmplx(p(2,:),0d0)
155  q3 = dcmplx(p(3,:),0d0)
156  q4 = dcmplx(p(4,:),0d0)
157 
158 
159  e1 = sp(1,:)
160  e2 = sp(2,:)
161  e3 = sp(3,:)
162  e4 = sp(4,:)
163 
164  q = -q1-q2
165 
166  q_q =sc(q,q)
167 
168 
169  q1_q2 = sc(q1,q2)
170  q1_q3 = sc(q1,q3)
171  q1_q4 = sc(q1,q4)
172  q2_q3 = sc(q2,q3)
173  q2_q4 = sc(q2,q4)
174  q3_q4 = sc(q3,q4)
175  e1_e2 = sc(e1,e2)
176 
177  e1_e3 = sc(e1,e3)
178  e1_e4 = sc(e1,e4)
179 
180 
181 
182 
183 
184 
185 ! epsZpr(1:4,-1) = pol_mass(q,m_reso,-1)
186 ! epsZpr(1:4, 0) = pol_mass(q,m_reso, 0)
187 ! epsZpr(1:4,+1) = pol_mass(q,m_reso,+1)
188 ! e1_e3 = sc(e1,epsZpr(1:4,-1)) * sc(e3,dconjg(epsZpr(1:4,-1))) &
189 ! + sc(e1,epsZpr(1:4,+1)) * sc(e3,dconjg(epsZpr(1:4,+1))) &
190 ! + sc(e1,epsZpr(1:4, 0)) * sc(e3,dconjg(epsZpr(1:4, 0)))
191 ! e1_e4 = sc(e1,epsZpr(1:4,-1)) * sc(e4,dconjg(epsZpr(1:4,-1))) &
192 ! + sc(e1,epsZpr(1:4,+1)) * sc(e4,dconjg(epsZpr(1:4,+1))) &
193 ! + sc(e1,epsZpr(1:4, 0)) * sc(e4,dconjg(epsZpr(1:4, 0)))
194 
195 
196 
197 
198  e2_e3 = sc(e2,e3)
199  e2_e4 = sc(e2,e4)
200 
201  e3_e4 = sc(e3,e4)
202 
203 
204  q1_e3 = sc(q1,e3)
205  q1_e4 = sc(q1,e4)
206  q2_e3 = sc(q2,e3)
207  q2_e4 = sc(q2,e4)
208  e1_q3 = sc(e1,q3)
209  e1_q4 = sc(e1,q4)
210  e2_q3 = sc(e2,q3)
211  e2_q4 = sc(e2,q4)
212  e3_q4 = sc(e3,q4)
213  e4_q3 = sc(e4,q3)
214 
215 
216  res = czero
217 
218  xxx1 = (1d0,0d0) ! different possibilities for fermion couplings
219  ! to zprime are accounted in the amplitude call
220 
221 
222  yyy1 = zprime_zz_1
223  yyy2 = zprime_zz_2
224 
225 
226  res= - e1_e3*e4_q3*xxx1*yyy1 &
227  - e1_e4*e3_q4*xxx1*yyy1 &
228  - et1(e1,e3,e4,q3)*xxx1*yyy2 + et1(e1,e3,e4,q4)*xxx1*yyy2
229 
230 
231 ! e3 = pol_mass(q3,dreal(cdsqrt(sc(q3,q3))),-1)
232 ! e4 = pol_mass(q4,dreal(cdsqrt(sc(q4,q4))),-1)
233 ! e1_e3 = sc(e1,e3)
234 ! e1_e4 = sc(e1,e4)
235 ! e3_q4 = sc(e3,q4)
236 ! e4_q3 = sc(e4,q3)
237 !print *, dreal(cdsqrt(sc(q3,q3))),dreal(cdsqrt(sc(q4,q4)))
238 !print * , "e3x",q3,dreal(cdsqrt(sc(q3,q3))),-1
239 !print *, - e1_e3*e4_q3 - e1_e4*e3_q4
240 !pause
241 
242 
243 
244  end subroutine qqzprimezzampl
245 
246 
247 
248 !----- a subroutine for Zprime -> ZZ/WW
249 !----- all outgoing convention and the following momentum assignment
250 !----- 0 --> Zprime(p1) e-(p3) + e+(p4) +mu-(p5) +mu+(p6)
251  subroutine evalamp_zprime_vv(p,MY_IDUP,sum)
252  implicit none
253  real(dp), intent(out) :: sum
254  real(dp), intent(in) :: p(4,6)
255  integer, intent(in) :: MY_IDUP(6:9)
256  real(dp) :: pin(4,4)
257  complex(dp) :: A(2)
258  integer :: i1,i2,i3,i4,ordering(1:4),ordering_swap(1:4),idV(1:2),VVmode
259  real(dp) :: aL1,aR1,aL2,aR2
260  real(dp) :: prefactor
261  real(dp) :: intcolfac
262 
263  if(isaquark(my_idup(6)) .and. isaquark(my_idup(8))) then
264  intcolfac=1.0_dp/3.0_dp
265  else
266  intcolfac=1.0_dp
267  endif
268 
269  call getdecay_vvmode_ordering(my_idup(6:9),vvmode,ordering,ordering_swap)
270 
271 !---- full prefactor
272  if( vvmode.eq.zzmode ) then! Z decay
273  prefactor = overallcouplvffsq**2
274  elseif( vvmode.eq.wwmode ) then ! W decay
275  prefactor = overallcouplvffsq**2
276  elseif( vvmode.eq.zgmode ) then ! Z+photon "decay"
277  prefactor = overallcouplvffsq ! Only single powers
278  elseif( vvmode.eq.ggmode ) then ! photon "decay"
279  prefactor = 1d0
280  else
281  prefactor = 0d0
282  endif
283 
284 
285  sum = zero
286 
287 do i1 =-1,1! Z' boson
288 do i3 = 1,2! lepton string1
289 do i4 = 1,2! lepton string2
290 
291  call calchelamp2(ordering,vvmode,p(1:4,1:6),my_idup,i1,i3,i4,a(1))
292  if( includeinterference .and. (my_idup(6).eq.my_idup(8)) .and. (my_idup(7).eq.my_idup(9)) ) then
293  call calchelamp2(ordering_swap,vvmode,p(1:4,1:6),my_idup,i1,i3,i4,a(2))
294  a(2) = -a(2) ! minus comes from fermi statistics
295  endif
296  if( includeinterference .and. (my_idup(6).eq.my_idup(8)) .and. (my_idup(7).eq.my_idup(9)) ) then
297  sum = sum + symmfac * (cdabs( a(1)*dconjg(a(1)) ) + cdabs( a(2)*dconjg(a(2)) ))
298  if( i3.eq.i4 ) sum = sum + symmfac * 2d0*intcolfac*dreal(a(1)*dconjg(a(2)))
299  else
300  sum = sum + cdabs( a(1)*dconjg(a(1)) )
301  endif
302 
303 enddo
304 enddo
305 enddo
306 
307  sum = sum*prefactor
308 
309  end subroutine
310 
311  subroutine calchelamp2(ordering,VVMode,p,MY_IDUP,i1,i3,i4,A)
312  implicit none
313  integer :: ordering(1:4),i1,i3,i4,l1,l2,l3,l4,vvmode,my_idup(6:9)
314  real(dp) :: p(1:4,1:6)
315  real(dp) :: pin(4,4)
316  complex(dp) :: a(1:1), sp(4,4)
317 
318  l1=ordering(1)
319  l2=ordering(2)
320  l3=ordering(3)
321  l4=ordering(4)
322 
323  pin(1,:) = p(:,1)
324  sp(1,:) = pol_mass2(dcmplx(p(1:4,1)),i1,'in')
325  pin(2,:) = 0d0 ! dummy
326  sp(2,:) = czero
328  vvmode, &
329  (/my_idup(l1+3),my_idup(l2+3),my_idup(l3+3),my_idup(l4+3)/), &
330  (/p(:,l1),p(:,l2),p(:,l3),p(:,l4)/), &
331  -3+2*i3,-3+2*i4, &
332  sp(3:4,:),pin(3:4,:) &
333  )
334  call zprimezzampl(pin,sp,a(1))
335  end subroutine
336 
337  subroutine zprimezzampl(p,sp,res)
338  implicit none
339  real(dp), intent(in) :: p(4,4)
340  complex(dp), intent(in) :: sp(4,4)
341  complex(dp), intent(out) :: res
342  complex(dp) :: e1_e2, e1_e3, e1_e4
343  complex(dp) :: e2_e3, e2_e4
344  complex(dp) :: e3_e4
345  complex(dp) :: q_q,MZ3,MZ4
346  complex(dp) :: q1_q2,q1_q3,q1_q4
347  complex(dp) :: q2_q3,q2_q4
348  complex(dp) :: q3_q4,q3_q3,q4_q4
349  complex(dp) :: q1_e3,q1_e4,q2_e3,q2_e4
350  complex(dp) :: e1_q3,e1_q4,e2_q3,e2_q4
351  complex(dp) :: e3_q4,e4_q3
352  complex(dp) :: q1(4),q2(4),q3(4),q4(4),q(4)
353  complex(dp) :: e1(4),e2(4),e3(4),e4(4)
354  complex(dp) :: yyy1,yyy2,yyy3,yyy4,epsZpr(1:4,-1:+1)
355 
356 
357  q1 = dcmplx(p(1,:),0d0)
358  q2 = dcmplx(p(2,:),0d0)
359  q3 = dcmplx(p(3,:),0d0)
360  q4 = dcmplx(p(4,:),0d0)
361 
362 
363  e1 = sp(1,:)
364  e2 = sp(2,:)
365  e3 = sp(3,:)
366  e4 = sp(4,:)
367 
368  q = -q1-q2
369 
370  q_q =sc(q,q)
371 
372 
373  q1_q2 = sc(q1,q2)
374  q3_q3 = sc(q3,q3)
375  q4_q4 = sc(q4,q4)
376  q1_q3 = sc(q1,q3)
377  q1_q4 = sc(q1,q4)
378  q2_q3 = sc(q2,q3)
379  q2_q4 = sc(q2,q4)
380  q3_q4 = sc(q3,q4)
381  e1_e2 = sc(e1,e2)
382 
383  e1_e3 = sc(e1,e3)
384  e1_e4 = sc(e1,e4)
385 
386 
387 
388 
389  e2_e3 = sc(e2,e3)
390  e2_e4 = sc(e2,e4)
391 
392  e3_e4 = sc(e3,e4)
393 
394 
395  q1_e3 = sc(q1,e3)
396  q1_e4 = sc(q1,e4)
397  q2_e3 = sc(q2,e3)
398  q2_e4 = sc(q2,e4)
399  e1_q3 = sc(e1,q3)
400  e1_q4 = sc(e1,q4)
401  e2_q3 = sc(e2,q3)
402  e2_q4 = sc(e2,q4)
403  e3_q4 = sc(e3,q4)
404  e4_q3 = sc(e4,q3)
405 
406 
407  mz3=dsqrt(cdabs(q3_q3))
408  mz4=dsqrt(cdabs(q4_q4))
409 
410 
411  res = czero
412 
413 
414  yyy1 = zprime_zz_1
415  yyy2 = zprime_zz_2
416 
417 
418  res= yyy1*( q1_e3*e1_e4 + q1_e4*e1_e3 ) + yyy2*( et1(e1,e3,e4,q3) - et1(e1,e3,e4,q4) )
419 
420 
421  end subroutine zprimezzampl
422 
423 
424 subroutine getdecay_couplings_spinors_props(VVMode,idordered,pordered,h3,h4, sp,pV)
425  implicit none
426  integer, intent(in) :: VVMode,idordered(6:9),h3,h4
427  real(dp), intent(in) :: pordered(1:4,6:9)
428  complex(dp), intent(out) :: sp(3:4,1:4)
429  real(dp), intent(out) :: pV(3:4,1:4)
430  real(dp) :: s, aL1,aR1,aL2,aR2
431  complex(dp) :: propV(1:2)
432 
433  ! h3/h4 helicities: -1 == left, 1 == right
434  if( vvmode.eq.zzmode ) then
435  ! ZZ DECAYS
436  if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) ) then
437  al1=al_lep * dsqrt(scale_alpha_z_ll)
438  ar1=ar_lep * dsqrt(scale_alpha_z_ll)
439  elseif( abs(idordered(6)).eq.abs(tam_) ) then
440  al1=al_lep * dsqrt(scale_alpha_z_tt)
441  ar1=ar_lep * dsqrt(scale_alpha_z_tt)
442  elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) ) then
443  al1=al_neu * dsqrt(scale_alpha_z_nn)
444  ar1=ar_neu * dsqrt(scale_alpha_z_nn)
445  elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) ) then
446  al1=al_qup * dsqrt(scale_alpha_z_uu)
447  ar1=ar_qup * dsqrt(scale_alpha_z_uu)
448  elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) ) then
449  al1=al_qdn * dsqrt(scale_alpha_z_dd)
450  ar1=ar_qdn * dsqrt(scale_alpha_z_dd)
451  else
452  al1=0d0
453  ar1=0d0
454  endif
455  if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) ) then
456  al2=al_lep * dsqrt(scale_alpha_z_ll)
457  ar2=ar_lep * dsqrt(scale_alpha_z_ll)
458  elseif( abs(idordered(8)).eq.abs(tam_) ) then
459  al2=al_lep * dsqrt(scale_alpha_z_tt)
460  ar2=ar_lep * dsqrt(scale_alpha_z_tt)
461  elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) ) then
462  al2=al_neu * dsqrt(scale_alpha_z_nn)
463  ar2=ar_neu * dsqrt(scale_alpha_z_nn)
464  elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) ) then
465  al2=al_qup * dsqrt(scale_alpha_z_uu)
466  ar2=ar_qup * dsqrt(scale_alpha_z_uu)
467  elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) ) then
468  al2=al_qdn * dsqrt(scale_alpha_z_dd)
469  ar2=ar_qdn * dsqrt(scale_alpha_z_dd)
470  else
471  al2=0d0
472  ar2=0d0
473  endif
474  pv(3,:) = pordered(:,6)+pordered(:,7)
475  pv(4,:) = pordered(:,8)+pordered(:,9)
476  sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3) ! ubar(l1), v(l2)
477  sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))! full propagator numerator
478  sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4) ! ubar(l3), v(l4)
479  sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))! full propagator numerator
480  s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
481  propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
482  s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
483  propv(2) = s/dcmplx(s - m_v**2,m_v*ga_v)
484 
485  elseif( vvmode.eq.wwmode ) then
486  ! WW DECAYS
487  if( isaquark(idordered(6)) ) then
488  al1 = bl * dsqrt(scale_alpha_w_ud)
489  ar1 = br * dsqrt(scale_alpha_w_ud)! = 0
490  elseif( &
491  (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. &
492  (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_)) &
493  ) then
494  al1 = bl * dsqrt(scale_alpha_w_ln)
495  ar1 = br * dsqrt(scale_alpha_w_ln)! = 0
496  elseif( &
497  (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_)) &
498  ) then
499  al1 = bl * dsqrt(scale_alpha_w_tn)
500  ar1 = br * dsqrt(scale_alpha_w_tn)! = 0
501  else
502  al1=0d0
503  ar1=0d0
504  endif
505  if( isaquark(idordered(8)) ) then
506  al2 = bl * dsqrt(scale_alpha_w_ud)
507  ar2 = br * dsqrt(scale_alpha_w_ud)! = 0
508  elseif( &
509  (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. &
510  (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_)) &
511  ) then
512  al2 = bl * dsqrt(scale_alpha_w_ln)
513  ar2 = br * dsqrt(scale_alpha_w_ln)! = 0
514  elseif( &
515  (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_)) &
516  ) then
517  al2 = bl * dsqrt(scale_alpha_w_tn)
518  ar2 = br * dsqrt(scale_alpha_w_tn)! = 0
519  else
520  al2=0d0
521  ar2=0d0
522  endif
523  pv(3,:) = pordered(:,6)+pordered(:,7)
524  pv(4,:) = pordered(:,8)+pordered(:,9)
525  sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3) ! ubar(l1), v(l2)
526  sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))! full propagator numerator
527  sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4) ! ubar(l3), v(l4)
528  sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))! full propagator numerator
529  s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
530  propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
531  s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
532  propv(2) = s/dcmplx(s - m_v**2,m_v*ga_v)
533 
534  elseif( vvmode.eq.zgmode ) then
535  ! Zgamma DECAYS
536  if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) ) then
537  al1=al_lep * dsqrt(scale_alpha_z_ll)
538  ar1=ar_lep * dsqrt(scale_alpha_z_ll)
539  elseif( abs(idordered(6)).eq.abs(tam_) ) then
540  al1=al_lep * dsqrt(scale_alpha_z_tt)
541  ar1=ar_lep * dsqrt(scale_alpha_z_tt)
542  elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) ) then
543  al1=al_neu * dsqrt(scale_alpha_z_nn)
544  ar1=ar_neu * dsqrt(scale_alpha_z_nn)
545  elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) ) then
546  al1=al_qup * dsqrt(scale_alpha_z_uu)
547  ar1=ar_qup * dsqrt(scale_alpha_z_uu)
548  elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) ) then
549  al1=al_qdn * dsqrt(scale_alpha_z_dd)
550  ar1=ar_qdn * dsqrt(scale_alpha_z_dd)
551  else
552  al1=0d0
553  ar1=0d0
554  endif
555  al2=1d0
556  ar2=1d0
557  pv(3,:) = pordered(:,6)+pordered(:,7)
558  pv(4,:) = pordered(:,8)
559  sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3) ! ubar(l1), v(l2)
560  sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))! full propagator numerator
561  sp(4,:) = pol_mless2(dcmplx(pordered(:,8)),h4,'out') ! photon
562  !sp(4,1:4)=pV(4,1:4); print *, "this checks gauge invariance"
563  s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
564  propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
565  propv(2)=1d0
566 
567  elseif( vvmode.eq.ggmode ) then
568  ! gamma gamma DECAYS
569  al1=1d0
570  ar1=1d0
571  al2=1d0
572  ar2=1d0
573  pv(3,:) = pordered(:,6)
574  pv(4,:) = pordered(:,8)
575  sp(3,:) = pol_mless2(dcmplx(pordered(:,6)),h3,'out') ! photon
576  sp(4,:) = pol_mless2(dcmplx(pordered(:,8)),h4,'out') ! photon
577  !sp(3,1:4)=pV(3,1:4); print *, "this checks gauge invariance"
578  !sp(4,1:4)=pV(4,1:4)
579  propv(1)=1d0
580  propv(2)=1d0
581 
582  elseif( vvmode.eq.gsgmode ) then
583  ! gamma* gamma DECAYS
584  if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) ) then
585  al1=cl_lep * dsqrt(scale_alpha_z_ll)
586  ar1=cr_lep * dsqrt(scale_alpha_z_ll)
587  elseif( abs(idordered(6)).eq.abs(tam_) ) then
588  al1=cl_lep * dsqrt(scale_alpha_z_tt)
589  ar1=cr_lep * dsqrt(scale_alpha_z_tt)
590  elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) ) then
591  al1=cl_neu * dsqrt(scale_alpha_z_nn)! = 0
592  ar1=cr_neu * dsqrt(scale_alpha_z_nn)! = 0
593  elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) ) then
594  al1=cl_qup * dsqrt(scale_alpha_z_uu)
595  ar1=cr_qup * dsqrt(scale_alpha_z_uu)
596  elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) ) then
597  al1=cl_qdn * dsqrt(scale_alpha_z_dd)
598  ar1=cr_qdn * dsqrt(scale_alpha_z_dd)
599  else
600  al1=0d0
601  ar1=0d0
602  endif
603  al2=1d0
604  ar2=1d0
605  pv(3,:) = pordered(:,6)+pordered(:,7)
606  pv(4,:) = pordered(:,8)
607  sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3) ! ubar(l1), v(l2)
608  sp(3,:) = -sp(3,:) ! photon propagator
609  sp(4,:) = pol_mless2(dcmplx(pordered(:,8)),h4,'out') ! photon
610  !sp(4,1:4)=pV(4,1:4); print *, "this checks gauge invariance"
611  s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
612  propv(1) = 1d0
613  propv(2) = 1d0
614  if( s.lt.mphotoncutoff**2 ) propv(1)=czero
615 
616  elseif( vvmode.eq.gszmode ) then
617  ! gamma* Z DECAYS
618  if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) ) then
619  al1=cl_lep * dsqrt(scale_alpha_z_ll)
620  ar1=cr_lep * dsqrt(scale_alpha_z_ll)
621  elseif( abs(idordered(6)).eq.abs(tam_) ) then
622  al1=cl_lep * dsqrt(scale_alpha_z_tt)
623  ar1=cr_lep * dsqrt(scale_alpha_z_tt)
624  elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) ) then
625  al1=cl_neu * dsqrt(scale_alpha_z_nn)
626  ar1=cr_neu * dsqrt(scale_alpha_z_nn)
627  elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) ) then
628  al1=cl_qup * dsqrt(scale_alpha_z_uu)
629  ar1=cr_qup * dsqrt(scale_alpha_z_uu)
630  elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) ) then
631  al1=cl_qdn * dsqrt(scale_alpha_z_dd)
632  ar1=cr_qdn * dsqrt(scale_alpha_z_dd)
633  else
634  al1=0d0
635  ar1=0d0
636  endif
637  if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) ) then
638  al2=al_lep * dsqrt(scale_alpha_z_ll)
639  ar2=ar_lep * dsqrt(scale_alpha_z_ll)
640  elseif( abs(idordered(8)).eq.abs(tam_) ) then
641  al2=al_lep * dsqrt(scale_alpha_z_tt)
642  ar2=ar_lep * dsqrt(scale_alpha_z_tt)
643  elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) ) then
644  al2=al_neu * dsqrt(scale_alpha_z_nn)
645  ar2=ar_neu * dsqrt(scale_alpha_z_nn)
646  elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) ) then
647  al2=al_qup * dsqrt(scale_alpha_z_uu)
648  ar2=ar_qup * dsqrt(scale_alpha_z_uu)
649  elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) ) then
650  al2=al_qdn * dsqrt(scale_alpha_z_dd)
651  ar2=ar_qdn * dsqrt(scale_alpha_z_dd)
652  else
653  al2=0d0
654  ar2=0d0
655  endif
656  pv(3,:) = pordered(:,6)+pordered(:,7)
657  pv(4,:) = pordered(:,8)+pordered(:,9)
658  sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3) ! ubar(l1), v(l2)
659  sp(3,:) = -sp(3,:)
660  sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4) ! ubar(l3), v(l4)
661  sp(4,:) = -sp(4,:) + pv(4,:)*( sc(sp(4,:),dcmplx(pv(4,:))) )/scr(pv(4,:),pv(4,:))! full propagator numerator
662  s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
663  propv(1) = 1d0! = s/dcmplx(s)
664  if( s.lt.mphotoncutoff**2 ) propv(1)=czero
665  s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
666  propv(2) = s/dcmplx(s - m_v**2,m_v*ga_v)
667 
668  elseif( vvmode.eq.zgsmode ) then
669  ! Z gamma* DECAYS
670  if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) ) then
671  al1=al_lep * dsqrt(scale_alpha_z_ll)
672  ar1=ar_lep * dsqrt(scale_alpha_z_ll)
673  elseif( abs(idordered(6)).eq.abs(tam_) ) then
674  al1=al_lep * dsqrt(scale_alpha_z_tt)
675  ar1=ar_lep * dsqrt(scale_alpha_z_tt)
676  elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) ) then
677  al1=al_neu * dsqrt(scale_alpha_z_nn)
678  ar1=ar_neu * dsqrt(scale_alpha_z_nn)
679  elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) ) then
680  al1=al_qup * dsqrt(scale_alpha_z_uu)
681  ar1=ar_qup * dsqrt(scale_alpha_z_uu)
682  elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) ) then
683  al1=al_qdn * dsqrt(scale_alpha_z_dd)
684  ar1=ar_qdn * dsqrt(scale_alpha_z_dd)
685  else
686  al1=0d0
687  ar1=0d0
688  endif
689  if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) ) then
690  al2=cl_lep * dsqrt(scale_alpha_z_ll)
691  ar2=cr_lep * dsqrt(scale_alpha_z_ll)
692  elseif( abs(idordered(8)).eq.abs(tam_) ) then
693  al2=cl_lep * dsqrt(scale_alpha_z_tt)
694  ar2=cr_lep * dsqrt(scale_alpha_z_tt)
695  elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) ) then
696  al2=cl_neu * dsqrt(scale_alpha_z_nn)! = 0
697  ar2=cr_neu * dsqrt(scale_alpha_z_nn)! = 0
698  elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) ) then
699  al2=cl_qup * dsqrt(scale_alpha_z_uu)
700  ar2=cr_qup * dsqrt(scale_alpha_z_uu)
701  elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) ) then
702  al2=cl_qdn * dsqrt(scale_alpha_z_dd)
703  ar2=cr_qdn * dsqrt(scale_alpha_z_dd)
704  else
705  al2=0d0
706  ar2=0d0
707  endif
708  pv(3,:) = pordered(:,6)+pordered(:,7)
709  pv(4,:) = pordered(:,8)+pordered(:,9)
710  sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3) ! ubar(l1), v(l2)
711  sp(3,:) = -sp(3,:) + pv(3,:)*( sc(sp(3,:),dcmplx(pv(3,:))) )/scr(pv(3,:),pv(3,:))! full propagator numerator
712  sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4) ! ubar(l3), v(l4)
713  sp(4,:) = -sp(4,:)
714  s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
715  propv(1) = s/dcmplx(s - m_v**2,m_v*ga_v)
716  s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
717  propv(2) = 1d0 ! = s/dcmplx(s)
718  if( s.lt.mphotoncutoff**2 ) propv(2)=czero
719 
720  elseif( vvmode.eq.gsgsmode ) then
721  ! gamma* gamma* DECAYS
722  if( abs(idordered(6)).eq.abs(elm_) .or. abs(idordered(6)).eq.abs(mum_) ) then
723  al1=cl_lep * dsqrt(scale_alpha_z_ll)
724  ar1=cr_lep * dsqrt(scale_alpha_z_ll)
725  elseif( abs(idordered(6)).eq.abs(tam_) ) then
726  al1=cl_lep * dsqrt(scale_alpha_z_tt)
727  ar1=cr_lep * dsqrt(scale_alpha_z_tt)
728  elseif( abs(idordered(6)).eq.abs(nue_) .or. abs(idordered(6)).eq.abs(num_) .or. abs(idordered(6)).eq.abs(nut_) ) then
729  al1=cl_neu * dsqrt(scale_alpha_z_nn)! = 0
730  ar1=cr_neu * dsqrt(scale_alpha_z_nn)! = 0
731  elseif( abs(idordered(6)).eq.abs(up_) .or. abs(idordered(6)).eq.abs(chm_) ) then
732  al1=cl_qup * dsqrt(scale_alpha_z_uu)
733  ar1=cr_qup * dsqrt(scale_alpha_z_uu)
734  elseif( abs(idordered(6)).eq.abs(dn_) .or. abs(idordered(6)).eq.abs(str_) .or. abs(idordered(6)).eq.abs(bot_) ) then
735  al1=cl_qdn * dsqrt(scale_alpha_z_dd)
736  ar1=cr_qdn * dsqrt(scale_alpha_z_dd)
737  else
738  al1=0d0
739  ar1=0d0
740  endif
741  if( abs(idordered(8)).eq.abs(elm_) .or. abs(idordered(8)).eq.abs(mum_) ) then
742  al2=cl_lep * dsqrt(scale_alpha_z_ll)
743  ar2=cr_lep * dsqrt(scale_alpha_z_ll)
744  elseif( abs(idordered(8)).eq.abs(tam_) ) then
745  al2=cl_lep * dsqrt(scale_alpha_z_tt)
746  ar2=cr_lep * dsqrt(scale_alpha_z_tt)
747  elseif( abs(idordered(8)).eq.abs(nue_) .or. abs(idordered(8)).eq.abs(num_) .or. abs(idordered(8)).eq.abs(nut_) ) then
748  al2=cl_neu * dsqrt(scale_alpha_z_nn)! = 0
749  ar2=cr_neu * dsqrt(scale_alpha_z_nn)! = 0
750  elseif( abs(idordered(8)).eq.abs(up_) .or. abs(idordered(8)).eq.abs(chm_) ) then
751  al2=cl_qup * dsqrt(scale_alpha_z_uu)
752  ar2=cr_qup * dsqrt(scale_alpha_z_uu)
753  elseif( abs(idordered(8)).eq.abs(dn_) .or. abs(idordered(8)).eq.abs(str_) .or. abs(idordered(8)).eq.abs(bot_) ) then
754  al2=cl_qdn * dsqrt(scale_alpha_z_dd)
755  ar2=cr_qdn * dsqrt(scale_alpha_z_dd)
756  else
757  al2=0d0
758  ar2=0d0
759  endif
760  pv(3,:) = pordered(:,6)+pordered(:,7)
761  pv(4,:) = pordered(:,8)+pordered(:,9)
762  sp(3,:) = pol_dk2mom(dcmplx(pordered(:,6)),dcmplx(pordered(:,7)),h3) ! ubar(l1), v(l2)
763  sp(3,:) = -sp(3,:)
764  sp(4,:) = pol_dk2mom(dcmplx(pordered(:,8)),dcmplx(pordered(:,9)),h4) ! ubar(l3), v(l4)
765  sp(4,:) = -sp(4,:)
766  s = scr(pordered(:,6)+pordered(:,7),pordered(:,6)+pordered(:,7))
767  propv(1) = 1d0 ! = s/dcmplx(s)
768  if( s.lt.mphotoncutoff**2 ) propv(1)=czero
769  s = scr(pordered(:,8)+pordered(:,9),pordered(:,8)+pordered(:,9))
770  propv(2) = 1d0 ! = s/dcmplx(s)
771  if( s.lt.mphotoncutoff**2 ) propv(2)=czero
772 
773  else
774  call error("Unsupported decay modes")
775  endif
776 
777  sp(3,:) = sp(3,:)*propv(1)
778  sp(4,:) = sp(4,:)*propv(2)
779  if (h3.eq.-1) then
780  sp(3,:) = al1 * sp(3,:)
781  elseif(h3.eq.1) then
782  sp(3,:) = ar1 * sp(3,:)
783  endif
784  if (h4.eq.-1) then
785  sp(4,:) = al2 * sp(4,:)
786  elseif(h4.eq.1) then
787  sp(4,:) = ar2 * sp(4,:)
788  endif
789 
790  return
791 end subroutine
792 
793 subroutine getdecay_vvmode_ordering(MY_IDUP, VVMode,ordering,ordering_swap)
794  implicit none
795  integer, intent(in) :: MY_IDUP(6:9)
796  integer, intent(out) :: VVMode,ordering(1:4),ordering_swap(1:4)
797  integer :: idV(1:2)
798 
799  ordering=(/3,4,5,6/)
800  idv(1)=coupledvertex(my_idup(6:7),-1)
801  idv(2)=coupledvertex(my_idup(8:9),-1)
802  if(my_idup(6).eq.pho_ .or. my_idup(7).eq.pho_) idv(1)=pho_
803  if(my_idup(8).eq.pho_ .or. my_idup(9).eq.pho_) idv(2)=pho_
804  if(convertlhe(my_idup(6)).lt.0 .or. my_idup(6).eq.not_a_particle_) then
805  call swap(ordering(1),ordering(2))
806  endif
807  if(convertlhe(my_idup(8)).lt.0 .or. my_idup(8).eq.not_a_particle_) then
808  call swap(ordering(3),ordering(4))
809  endif
810  if( &
811  (idv(1).eq.wm_ .and. idv(2).eq.wp_) .or. &
812  (idv(2).eq.z0_ .and. idv(1).eq.pho_) &
813  ) then
814  call swap(ordering(1),ordering(3))
815  call swap(ordering(2),ordering(4))
816  call swap(idv(1),idv(2))
817  endif
818  ordering_swap(:)=ordering(:)
819  call swap(ordering_swap(1),ordering_swap(3))
820 
821  if(idv(1).eq.z0_ .and. idv(2).eq.z0_) then
822  vvmode=zzmode
823  elseif(idv(1).eq.z0_ .and. idv(2).eq.pho_) then
824  vvmode=zgmode
825  elseif(idv(1).eq.pho_ .and. idv(2).eq.pho_) then
826  vvmode=ggmode
827  elseif(idv(1).eq.wp_ .and. idv(2).eq.wm_) then
828  vvmode=wwmode
829  else
830  print *,"idV=",idv
831  call error("Unsupported decay Modes")
832  endif
833  return
834 end subroutine
835 
836 
837  end module
838 
839 
modparameters::elm_
integer, target, public elm_
Definition: mod_Parameters.F90:1112
modparameters::mphotoncutoff
real(8), public mphotoncutoff
Definition: mod_Parameters.F90:215
modparameters::coupledvertex
integer function coupledvertex(id, hel, useAHcoupl)
Definition: mod_Parameters.F90:2467
modparameters::zgmode
integer, parameter, public zgmode
Definition: mod_Parameters.F90:13
modparameters::cl_neu
real(8), public cl_neu
Definition: mod_Parameters.F90:1071
modparameters::zprime_zz_1
complex(8), public zprime_zz_1
Definition: mod_Parameters.F90:914
modzprime::qqzprimezzampl
subroutine qqzprimezzampl(p, sp, res)
Definition: mod_Zprime.F90:135
modmisc::et1
double complex function et1(e1, e2, e3, e4)
Definition: mod_Misc.F90:109
modparameters::dn_
integer, target, public dn_
Definition: mod_Parameters.F90:1085
modparameters::pol_mless2
complex(dp) function, dimension(4) pol_mless2(p, i, out)
Definition: mod_Parameters.F90:3053
modzprime::calchelamp
subroutine, public calchelamp(ordering, VVmode, p, MY_IDUP, i1, i3, i4, A)
Definition: mod_Zprime.F90:80
modparameters::scale_alpha_w_tn
real(8), public scale_alpha_w_tn
Definition: mod_Parameters.F90:335
modparameters::zgsmode
integer, parameter, public zgsmode
Definition: mod_Parameters.F90:13
modparameters::scale_alpha_w_ln
real(8), public scale_alpha_w_ln
Definition: mod_Parameters.F90:334
modparameters::two
real(8), parameter, public two
Definition: mod_Parameters.F90:84
modmisc::error
subroutine error(Message, ErrNum)
Definition: mod_Misc.F90:366
modparameters::cr_qdn
real(8), public cr_qdn
Definition: mod_Parameters.F90:1074
modparameters::pol_mass2
complex(dp) function, dimension(4) pol_mass2(p, i, out)
Definition: mod_Parameters.F90:3176
modmisc::sc
double complex function sc(q1, q2)
Definition: mod_Misc.F90:127
modparameters::cr_neu
real(8), public cr_neu
Definition: mod_Parameters.F90:1070
modparameters::wm_
integer, target, public wm_
Definition: mod_Parameters.F90:1115
modparameters::zero
real(8), parameter, public zero
Definition: mod_Parameters.F90:85
modparameters::chm_
integer, target, public chm_
Definition: mod_Parameters.F90:1086
modparameters::up_
integer, target, public up_
Definition: mod_Parameters.F90:1084
modparameters::bot_
integer, target, public bot_
Definition: mod_Parameters.F90:1089
modparameters::cl_lep
real(8), public cl_lep
Definition: mod_Parameters.F90:1069
modparameters::cr_lep
real(8), public cr_lep
Definition: mod_Parameters.F90:1068
modparameters::ga_reso
real(8), public ga_reso
Definition: mod_Parameters.F90:231
modparameters::zprime_qq_right
complex(8), public zprime_qq_right
Definition: mod_Parameters.F90:913
modparameters::zzmode
integer, parameter, public zzmode
Definition: mod_Parameters.F90:13
modparameters::ar_qdn
real(8), public ar_qdn
Definition: mod_Parameters.F90:1064
modparameters::gsgmode
integer, parameter, public gsgmode
Definition: mod_Parameters.F90:13
modparameters::scale_alpha_z_ll
real(8), public scale_alpha_z_ll
Definition: mod_Parameters.F90:329
modparameters::bl
real(8), public bl
Definition: mod_Parameters.F90:1066
modparameters::includeinterference
logical, public includeinterference
Definition: mod_Parameters.F90:77
modparameters::ar_neu
real(8), public ar_neu
Definition: mod_Parameters.F90:1060
modparameters::tam_
integer, target, public tam_
Definition: mod_Parameters.F90:1114
modzprime
Definition: mod_Zprime.F90:1
modparameters::scale_alpha_w_ud
real(8), public scale_alpha_w_ud
Definition: mod_Parameters.F90:332
modzprime::calchelamp2
subroutine, public calchelamp2(ordering, VVMode, p, MY_IDUP, i1, i3, i4, A)
Definition: mod_Zprime.F90:312
modparameters::zprime_qq_left
complex(8), public zprime_qq_left
Definition: mod_Parameters.F90:912
modparameters::al_qdn
real(8), public al_qdn
Definition: mod_Parameters.F90:1065
modparameters::cl_qdn
real(8), public cl_qdn
Definition: mod_Parameters.F90:1075
modparameters::nue_
integer, target, public nue_
Definition: mod_Parameters.F90:1097
modparameters::ar_lep
real(8), public ar_lep
Definition: mod_Parameters.F90:1058
modparameters::czero
complex(8), parameter, public czero
Definition: mod_Parameters.F90:86
modparameters::gszmode
integer, parameter, public gszmode
Definition: mod_Parameters.F90:13
modparameters::elp_
integer, target, public elp_
Definition: mod_Parameters.F90:1090
modzprime::getdecay_vvmode_ordering
subroutine getdecay_vvmode_ordering(MY_IDUP, VVMode, ordering, ordering_sw
Definition: mod_Zprime.F90:794
modparameters::scale_alpha_z_tt
real(8), public scale_alpha_z_tt
Definition: mod_Parameters.F90:330
modparameters::m_v
real(8), public m_v
Definition: mod_Parameters.F90:78
modparameters::anum_
integer, target, public anum_
Definition: mod_Parameters.F90:1117
modparameters::al_qup
real(8), public al_qup
Definition: mod_Parameters.F90:1063
modparameters::ga_v
real(8), public ga_v
Definition: mod_Parameters.F90:78
modparameters::anut_
integer, target, public anut_
Definition: mod_Parameters.F90:1118
modparameters::pol_dk2mom
complex(dp) function, dimension(4) pol_dk2mom(plepton, antilepton, i, outgoing)
Definition: mod_Parameters.F90:3068
modparameters::anue_
integer, target, public anue_
Definition: mod_Parameters.F90:1116
modzprime::zprimezzampl
subroutine zprimezzampl(p, sp, res)
Definition: mod_Zprime.F90:338
modparameters
Definition: mod_Parameters.F90:1
modparameters::scale_alpha_z_nn
real(8), public scale_alpha_z_nn
Definition: mod_Parameters.F90:331
modmisc
Definition: mod_Misc.F90:1
modparameters::convertlhe
integer function convertlhe(Part)
Definition: mod_Parameters.F90:1798
modparameters::cr_qup
real(8), public cr_qup
Definition: mod_Parameters.F90:1072
modparameters::scale_alpha_z_dd
real(8), public scale_alpha_z_dd
Definition: mod_Parameters.F90:328
modparameters::symmfac
real(8), parameter, public symmfac
Definition: mod_Parameters.F90:91
modparameters::br
real(8), public br
Definition: mod_Parameters.F90:1067
modparameters::nut_
integer, target, public nut_
Definition: mod_Parameters.F90:1099
modparameters::wwmode
integer, parameter, public wwmode
Definition: mod_Parameters.F90:13
modparameters::dp
integer, parameter, public dp
Definition: mod_Parameters.F90:11
modparameters::mum_
integer, target, public mum_
Definition: mod_Parameters.F90:1113
modparameters::wp_
integer, target, public wp_
Definition: mod_Parameters.F90:1096
modmisc::scr
double precision function scr(p1, p2)
Definition: mod_Misc.F90:135
modparameters::m_reso
real(8), public m_reso
Definition: mod_Parameters.F90:230
modparameters::str_
integer, target, public str_
Definition: mod_Parameters.F90:1087
modparameters::isaquark
logical function isaquark(PartType)
Definition: mod_Parameters.F90:2369
modparameters::scale_alpha_z_uu
real(8), public scale_alpha_z_uu
Definition: mod_Parameters.F90:327
modparameters::not_a_particle_
integer, parameter, public not_a_particle_
Definition: mod_Parameters.F90:1121
modzprime::getdecay_couplings_spinors_props
subroutine getdecay_couplings_spinors_props(VVMode, idordered, pordered, h3
Definition: mod_Zprime.F90:425
modparameters::ggmode
integer, parameter, public ggmode
Definition: mod_Parameters.F90:13
modparameters::al_lep
real(8), public al_lep
Definition: mod_Parameters.F90:1059
modparameters::num_
integer, target, public num_
Definition: mod_Parameters.F90:1098
modparameters::cl_qup
real(8), public cl_qup
Definition: mod_Parameters.F90:1073
modparameters::zprime_zz_2
complex(8), public zprime_zz_2
Definition: mod_Parameters.F90:915
modparameters::tap_
integer, target, public tap_
Definition: mod_Parameters.F90:1092
modparameters::gsgsmode
integer, parameter, public gsgsmode
Definition: mod_Parameters.F90:13
modparameters::overallcouplvffsq
real(8), public overallcouplvffsq
Definition: mod_Parameters.F90:1057
modparameters::pho_
integer, target, public pho_
Definition: mod_Parameters.F90:1094
modparameters::z0_
integer, target, public z0_
Definition: mod_Parameters.F90:1095
modmisc::swap
Definition: mod_Misc.F90:5
modparameters::al_neu
real(8), public al_neu
Definition: mod_Parameters.F90:1061
modparameters::mup_
integer, target, public mup_
Definition: mod_Parameters.F90:1091
modparameters::ar_qup
real(8), public ar_qup
Definition: mod_Parameters.F90:1062