JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
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