~maddevelopers/mg5amcnlo/new_clustering

« back to all changes in this revision

Viewing changes to Template/LO/Source/PDF/PhotonFlux.f

  • Committer: Rikkert Frederix
  • Date: 2021-09-09 15:51:40 UTC
  • mfrom: (78.75.502 3.2.1)
  • Revision ID: frederix@physik.uzh.ch-20210909155140-rg6umfq68h6h47cf
merge with 3.2.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
c/* ********************************************************* */
2
2
c/*  Equivalent photon approximation structure function.   * */
 
3
c/*   V.M.Budnev et al., Phys.Rep. 15C (1975) 181          * */
3
4
c/*     Improved Weizsaecker-Williams formula              * */
4
 
c/*   V.M.Budnev et al., Phys.Rep. 15C (1975) 181          * */
 
5
c/*     http://inspirehep.net/record/359425                * */  
5
6
c/* ********************************************************* */
6
7
c   provided by Tomasz Pierzchala - UCL
7
8
 
8
 
      real*8 function epa_electron(x,q2max)
9
 
      integer i
 
9
      real*8 function epa_lepton(x,q2max, mode)
 
10
      implicit none
 
11
      integer i, mode, imode
 
12
c     mode is +3/-3  for electron and +4/-4 for muon      
10
13
      real*8 x,phi_f
11
 
      real*8 xin
 
14
      real*8 xin(3:4)
12
15
      real*8 alpha
13
16
      real*8 f, q2min,q2max
14
17
      real*8 PI
15
18
      data PI/3.14159265358979323846/
16
19
 
17
 
      data xin/0.511d-3/ !electron mass in GeV
 
20
      data xin/0.511d-3, 0.105658d0/ !electron mass in GeV
18
21
 
19
22
      alpha = .0072992701
20
 
 
 
23
      imode = abs(mode)
 
24
      
21
25
C     // x = omega/E = (E-E')/E
22
26
      if (x.lt.1) then
23
 
         q2min= xin*xin*x*x/(1-x)
 
27
         q2min= xin(imode)*xin(imode)*x*x/(1-x)
24
28
         if(q2min.lt.q2max) then 
25
 
            f = alpha/2d0/PI*
26
 
     &           (2d0*xin*xin*x*(-1/q2min+1/q2max)+
 
29
             f = alpha/2d0/PI*
 
30
     &           (2d0*xin(imode)*xin(imode)*x*(-1/q2min+1/q2max)+
27
31
     &           (2-2d0*x+x*x)/x*dlog(q2max/q2min))
28
32
            
29
33
         else
34
38
      endif
35
39
c      write (*,*) x,dsqrt(q2min),dsqrt(q2max),f
36
40
      if (f .lt. 0) f = 0
37
 
      epa_electron= f
 
41
      epa_lepton = f
38
42
 
39
43
      end
40
44