EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ctq4pdf.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ctq4pdf.F
1 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
2 C============================================================================
3 C CTEQ Parton Distribution Functions: Version 4.6
4 C June 21, 1996
5 C Modified: 10/17/96, 1/7/97, 1/15/97
6 C 2/17/97, 2/21/97
7 C Last Modified on April 2, 1997
8 C
9 C Ref[1]: "IMPROVED PARTON DISTRIBUTIONS FROM GLOBAL ANALYSIS OF RECENT DEEP
10 C INELASTIC SCATTERING AND INCLUSIVE JET DATA"
11 C By: H.L. Lai, J. Huston, S. Kuhlmann, F. Olness, J. Owens, D. Soper
12 C W.K. Tung, H. Weerts
13 C Phys. Rev. D55, 1280 (1997)
14 C
15 C Ref[2]: "CHARM PRODUCTION AND PARTON DISTRIBUTIONS"
16 C By: H.L. Lai and W.K. Tung
17 C MSU-HEP-61222, CTEQ-622, e-Print Archive: hep-ph/9701256
18 C to appear in Z. Phys.
19 C
20 C This package contains 13 sets of CTEQ4 PDFs. Details are:
21 C ---------------------------------------------------------------------------
22 C Iset PDF Description Alpha_s(Mz) Lam4 Lam5 Table_File
23 C ---------------------------------------------------------------------------
24 C Ref[1]
25 C 1 CTEQ4M Standard MSbar scheme 0.116 298 202 cteq4m.tbl
26 C 2 CTEQ4D Standard DIS scheme 0.116 298 202 cteq4d.tbl
27 C 3 CTEQ4L Leading Order 0.132 236 181 cteq4l.tbl
28 C 4 CTEQ4A1 Alpha_s series 0.110 215 140 cteq4a1.tbl
29 C 5 CTEQ4A2 Alpha_s series 0.113 254 169 cteq4a2.tbl
30 C 6 CTEQ4A3 ( same as CTEQ4M )
31 C 7 CTEQ4A4 Alpha_s series 0.119 346 239 cteq4a4.tbl
32 C 8 CTEQ4A5 Alpha_s series 0.122 401 282 cteq4a5.tbl
33 C 9 CTEQ4HJ High Jet 0.116 303 206 cteq4hj.tbl
34 C 10 CTEQ4LQ Low Q0 0.114 261 174 cteq4lq.tbl
35 C ---------------------------------------------------------------------------
36 C Ref[2]
37 C 11 CTEQ4HQ Heavy Quark 0.116 298 202 cteq4hq.tbl
38 C 12 CTEQ4HQ1 Heavy Quark:Q0=1,Mc=1.3 0.116 298 202 cteq4hq1.tbl
39 C (Improved version of CTEQ4HQ, recommended)
40 C 13 CTEQ4F3 Nf=3 FixedFlavorNumber 0.106 (Lam3=385) cteq4f3.tbl
41 C 14 CTEQ4F4 Nf=4 FixedFlavorNumber 0.111 292 XXX cteq4f4.tbl
42 C ---------------------------------------------------------------------------
43 C
44 C The available applied range is 10^-5 < x < 1 and 1.6 < Q < 10,000 (GeV)
45 C except CTEQ4LQ(4HQ1) for which Q starts at a lower value of 0.7(1.0) GeV.
46 C Lam5 (Lam4, Lam3) represents Lambda value (in MeV) for 5 (4,3) flavors.
47 C The matching alpha_s between 4 and 5 flavors takes place at Q=5.0 GeV,
48 C which is defined as the bottom quark mass, whenever it can be applied.
49 C
50 C The Table_Files are assumed to be in the working directory.
51 C
52 C Before using the PDF, it is necessary to do the initialization by
53 C Call SetCtq4(Iset)
54 C where Iset is the desired PDF specified in the above table.
55 C
56 C The function Ctq4Pdf (Iparton, X, Q)
57 C returns the parton distribution inside the proton for parton [Iparton]
58 C at [X] Bjorken_X and scale [Q] (GeV) in PDF set [Iset].
59 C Iparton is the parton label (5, 4, 3, 2, 1, 0, -1, ......, -5)
60 C for (b, c, s, d, u, g, u_bar, ..., b_bar),
61 C whereas CTEQ4F3 has, by definition, only 3 flavors and gluon;
62 C CTEQ4F4 has only 4 flavors and gluon.
63 C
64 C For detailed information on the parameters used, e.q. quark masses,
65 C QCD Lambda, ... etc., see info lines at the beginning of the
66 C Table_Files.
67 C
68 C These programs, as provided, are in double precision. By removing the
69 C "Implicit Double Precision" lines, they can also be run in single
70 C precision.
71 C
72 C If you have detailed questions concerning these CTEQ4 distributions,
73 C or if you find problems/bugs using this package, direct inquires to
74 C Hung-Liang Lai(Lai_H@pa.msu.edu) or Wu-Ki Tung(Tung@pa.msu.edu).
75 C
76 C===========================================================================
77 
78  Function ctq4pdf (Iparton, X, Q2)
79  Implicit Double Precision (a-h,o-z)
80 
81 *
82 * to avoid variable conflictions, a second keep element is necessary
83 * with the same common block name (see LEPTO2)
84 *
85 
86  COMMON /leptou/ cut(14),lst(40),parl(30),
87  & xlp,ylp,w2lp,q2lp,ulp
88  REAL cut,parl,xlp,ylp,w2lp,q2lp,ulp
89  INTEGER lst
90  SAVE /leptou/
91 
92 
93  Logical warn
94  Common
95  > / ctqpar2 / nx, nt, nfmx
96  > / qcdtable / alambda, nfl, iorder
97  > / xqrange / qini, qmax, xmin
98 
99  Data warn /.true./
100  save warn
101  q2sta = qini
102  q2fin = qmax
103  xmax = 1d0
104 
105 
106  if (q2.lt.q2sta) then
107  q2=q2sta
108  IF(cut(5).lt.q2.and.cut(6).gt.q2.AND.icount.lt.10) THEN
109  icount = icount + 1
110  WRITE(*,*) 'WARNING : CTEQ : Q^2 set to minimal value !',q2
111  ENDIF
112  endif
113  if (q2.gt.q2fin) then
114  q2=q2fin
115  IF(cut(5).lt.q2.and.cut(6).gt.q2.AND.icount.lt.10) THEN
116  icount = icount + 1
117  WRITE(*,*) 'WARNING : CTEQ : Q^2 set to maximal value !',q2
118  ENDIF
119  endif
120  if (x.lt.xmin) then
121  x=xmin
122  IF(cut(1).lt.x.and.cut(2).gt.x.AND.icount.lt.10) THEN
123  icount = icount + 1
124  WRITE(*,*) 'WARNING : CTEQ : X set to minimal value !',x
125  ENDIF
126  endif
127  if (x.gt.xmax) then
128  x=xmax
129  IF(cut(1).lt.x.and.cut(2).gt.x.AND.icount.lt.10) THEN
130  icount = icount + 1
131  WRITE(*,*) 'WARNING : CTEQ : X set to maximal value !',x
132  ENDIF
133  endif
134 
135  q=sqrt(q2)
136 
137  If (x .lt. 0d0 .or. x .gt. 1d0) Then
138  print *, 'X out of range in Ctq4Pdf: ', x
139  stop
140  Endif
141  If (q .lt. alambda) Then
142  print *, 'Q out of range in Ctq4Pdf: ', q
143  stop
144  Endif
145  If ((iparton .lt. -nfmx .or. iparton .gt. nfmx)) Then
146  If (warn) Then
147 C put a warning for calling extra flavor.
148  warn = .false.
149  print *, 'Warning: Iparton out of range in Ctq4Pdf: '
150  & , iparton
151  Endif
152  ctq4pdf = 0d0
153  Return
154  Endif
155 
156  ctq4pdf = partonx(iparton, x, q)
157  if(ctq4pdf.lt.0.d0) ctq4pdf = 0.d0
158 
159  Return
160 
161 C ********************
162  End