Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyct5m.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyct5m.f
1 
2 C*********************************************************************
3 
4 C...PYCT5M
5 C...Auxiliary function for parametrization of CTEQ5M1.
6 C...Author: J. Pumplin 9/99.
7 
8  FUNCTION pyct5m(IFL,X,Q)
9 
10 C...Double precision declaration.
11  IMPLICIT DOUBLE PRECISION(a-h, o-z)
12  IMPLICIT INTEGER(i-n)
13 
14  parameter(nex=8, nlf=2)
15  dimension am(0:nex,0:nlf,-5:2)
16  dimension alfvec(-5:2), qmavec(-5:2)
17  dimension mexvec(-5:2), mlfvec(-5:2)
18  dimension ut1vec(-5:2), ut2vec(-5:2)
19  dimension af(0:nex)
20 
21  DATA mexvec( 2) / 8 /
22  DATA mlfvec( 2) / 2 /
23  DATA ut1vec( 2) / 0.5141718e+01 /
24  DATA ut2vec( 2) / -0.1346944e+01 /
25  DATA alfvec( 2) / 0.5260555e+00 /
26  DATA qmavec( 2) / 0.0000000e+00 /
27  DATA (am( 0,k, 2),k=0, 2)
28  & / 0.4289071e+01, -0.2536870e+01, -0.1259948e+01 /
29  DATA (am( 1,k, 2),k=0, 2)
30  & / 0.9839410e+00, 0.4168426e-01, -0.5018952e-01 /
31  DATA (am( 2,k, 2),k=0, 2)
32  & / -0.1651961e+02, 0.9246261e+01, 0.5996400e+01 /
33  DATA (am( 3,k, 2),k=0, 2)
34  & / -0.2077936e+02, 0.9786469e+01, 0.7656465e+01 /
35  DATA (am( 4,k, 2),k=0, 2)
36  & / 0.3054926e+02, 0.1889536e+01, 0.1380541e+01 /
37  DATA (am( 5,k, 2),k=0, 2)
38  & / 0.3084695e+02, -0.1212303e+02, -0.1053551e+02 /
39  DATA (am( 6,k, 2),k=0, 2)
40  & / -0.1426778e+02, 0.6239537e+01, 0.5254819e+01 /
41  DATA (am( 7,k, 2),k=0, 2)
42  & / -0.1909811e+02, 0.3695678e+01, 0.5495729e+01 /
43  DATA (am( 8,k, 2),k=0, 2)
44  & / 0.1889751e-01, 0.5027193e-02, 0.6624896e-03 /
45 
46  DATA mexvec( 1) / 8 /
47  DATA mlfvec( 1) / 2 /
48  DATA ut1vec( 1) / 0.4138426e+01 /
49  DATA ut2vec( 1) / -0.3221374e+01 /
50  DATA alfvec( 1) / 0.4960962e+00 /
51  DATA qmavec( 1) / 0.0000000e+00 /
52  DATA (am( 0,k, 1),k=0, 2)
53  & / 0.1332497e+01, -0.3703718e+00, 0.1288638e+00 /
54  DATA (am( 1,k, 1),k=0, 2)
55  & / 0.7544687e+00, 0.3255075e-01, -0.4706680e-01 /
56  DATA (am( 2,k, 1),k=0, 2)
57  & / -0.7638814e+00, 0.5008313e+00, -0.9237374e-01 /
58  DATA (am( 3,k, 1),k=0, 2)
59  & / -0.3689889e+00, -0.1055098e+01, -0.4645065e+00 /
60  DATA (am( 4,k, 1),k=0, 2)
61  & / 0.3991610e+02, 0.1979881e+01, 0.1775814e+01 /
62  DATA (am( 5,k, 1),k=0, 2)
63  & / 0.6201080e+01, 0.2046288e+01, 0.3804571e+00 /
64  DATA (am( 6,k, 1),k=0, 2)
65  & / -0.8027900e+00, -0.7011688e+00, -0.8049612e+00 /
66  DATA (am( 7,k, 1),k=0, 2)
67  & / -0.8631305e+01, -0.3981200e+01, 0.6970153e+00 /
68  DATA (am( 8,k, 1),k=0, 2)
69  & / 0.2371230e-01, 0.5372683e-02, 0.1118701e-02 /
70 
71  DATA mexvec( 0) / 8 /
72  DATA mlfvec( 0) / 2 /
73  DATA ut1vec( 0) / -0.1026789e+01 /
74  DATA ut2vec( 0) / -0.9051707e+01 /
75  DATA alfvec( 0) / 0.9462977e+00 /
76  DATA qmavec( 0) / 0.0000000e+00 /
77  DATA (am( 0,k, 0),k=0, 2)
78  & / 0.1191990e+03, -0.8548739e+00, -0.1963040e+01 /
79  DATA (am( 1,k, 0),k=0, 2)
80  & / -0.9449972e+02, 0.1074771e+01, 0.2056055e+01 /
81  DATA (am( 2,k, 0),k=0, 2)
82  & / 0.3701064e+01, -0.1167947e-02, 0.1933573e+00 /
83  DATA (am( 3,k, 0),k=0, 2)
84  & / 0.1171345e+03, -0.1064540e+01, -0.1875312e+01 /
85  DATA (am( 4,k, 0),k=0, 2)
86  & / -0.1014453e+03, -0.5707427e+00, 0.4511242e-01 /
87  DATA (am( 5,k, 0),k=0, 2)
88  & / 0.6365168e+01, 0.1275354e+01, -0.4964081e+00 /
89  DATA (am( 6,k, 0),k=0, 2)
90  & / -0.3370693e+01, -0.1122020e+01, 0.5947751e-01 /
91  DATA (am( 7,k, 0),k=0, 2)
92  & / -0.5327270e+01, -0.9293556e+00, 0.6629940e+00 /
93  DATA (am( 8,k, 0),k=0, 2)
94  & / 0.2437513e-01, 0.1600939e-02, 0.6855336e-03 /
95 
96  DATA mexvec(-1) / 8 /
97  DATA mlfvec(-1) / 2 /
98  DATA ut1vec(-1) / 0.5243571e+01 /
99  DATA ut2vec(-1) / -0.2870513e+01 /
100  DATA alfvec(-1) / 0.6701448e+00 /
101  DATA qmavec(-1) / 0.0000000e+00 /
102  DATA (am( 0,k,-1),k=0, 2)
103  & / 0.2428863e+02, 0.1907035e+01, -0.4606457e+00 /
104  DATA (am( 1,k,-1),k=0, 2)
105  & / 0.2006810e+01, -0.1265915e+00, 0.7153556e-02 /
106  DATA (am( 2,k,-1),k=0, 2)
107  & / -0.1884546e+02, -0.2339471e+01, 0.5740679e+01 /
108  DATA (am( 3,k,-1),k=0, 2)
109  & / -0.2527892e+02, -0.2044124e+01, 0.1280470e+02 /
110  DATA (am( 4,k,-1),k=0, 2)
111  & / -0.1013824e+03, -0.1594199e+01, 0.2216401e+00 /
112  DATA (am( 5,k,-1),k=0, 2)
113  & / 0.8070930e+02, 0.1792072e+01, -0.2164364e+02 /
114  DATA (am( 6,k,-1),k=0, 2)
115  & / -0.4641050e+02, 0.1977338e+00, 0.1273014e+02 /
116  DATA (am( 7,k,-1),k=0, 2)
117  & / -0.3910568e+02, 0.1719632e+01, 0.1086525e+02 /
118  DATA (am( 8,k,-1),k=0, 2)
119  & / -0.1185496e+01, -0.1905847e+00, -0.8744118e-03 /
120 
121  DATA mexvec(-2) / 7 /
122  DATA mlfvec(-2) / 2 /
123  DATA ut1vec(-2) / 0.4782210e+01 /
124  DATA ut2vec(-2) / -0.1976856e+02 /
125  DATA alfvec(-2) / 0.7558374e+00 /
126  DATA qmavec(-2) / 0.0000000e+00 /
127  DATA (am( 0,k,-2),k=0, 2)
128  & / -0.6216935e+00, 0.2369963e+00, -0.7909949e-02 /
129  DATA (am( 1,k,-2),k=0, 2)
130  & / 0.1245440e+01, -0.1031510e+00, 0.4916523e-02 /
131  DATA (am( 2,k,-2),k=0, 2)
132  & / -0.7060824e+01, -0.3875283e-01, 0.1784981e+00 /
133  DATA (am( 3,k,-2),k=0, 2)
134  & / -0.7430595e+01, 0.1964572e+00, -0.1284999e+00 /
135  DATA (am( 4,k,-2),k=0, 2)
136  & / -0.6897810e+01, 0.2620543e+01, 0.8012553e-02 /
137  DATA (am( 5,k,-2),k=0, 2)
138  & / 0.1507713e+02, 0.2340307e-01, 0.2482535e+01 /
139  DATA (am( 6,k,-2),k=0, 2)
140  & / -0.1815341e+01, -0.1538698e+01, -0.2014208e+01 /
141  DATA (am( 7,k,-2),k=0, 2)
142  & / -0.2571932e+02, 0.2903941e+00, -0.2848206e+01 /
143 
144  DATA mexvec(-3) / 7 /
145  DATA mlfvec(-3) / 2 /
146  DATA ut1vec(-3) / 0.4518239e+01 /
147  DATA ut2vec(-3) / -0.2690590e+01 /
148  DATA alfvec(-3) / 0.6124079e+00 /
149  DATA qmavec(-3) / 0.0000000e+00 /
150  DATA (am( 0,k,-3),k=0, 2)
151  & / -0.2734458e+01, -0.7245673e+00, -0.6351374e+00 /
152  DATA (am( 1,k,-3),k=0, 2)
153  & / 0.2927174e+01, 0.4822709e+00, -0.1088787e-01 /
154  DATA (am( 2,k,-3),k=0, 2)
155  & / -0.1771017e+02, -0.1416635e+01, 0.8467622e+01 /
156  DATA (am( 3,k,-3),k=0, 2)
157  & / -0.4972782e+02, -0.3348547e+01, 0.1767061e+02 /
158  DATA (am( 4,k,-3),k=0, 2)
159  & / -0.7102770e+01, -0.3205337e+01, 0.4101704e+00 /
160  DATA (am( 5,k,-3),k=0, 2)
161  & / 0.7169698e+02, -0.2205985e+01, -0.2463931e+02 /
162  DATA (am( 6,k,-3),k=0, 2)
163  & / -0.4090347e+02, 0.2103486e+01, 0.1416507e+02 /
164  DATA (am( 7,k,-3),k=0, 2)
165  & / -0.2952639e+02, 0.5376136e+01, 0.7825585e+01 /
166 
167  DATA mexvec(-4) / 7 /
168  DATA mlfvec(-4) / 2 /
169  DATA ut1vec(-4) / 0.2783230e+01 /
170  DATA ut2vec(-4) / -0.1746328e+01 /
171  DATA alfvec(-4) / 0.1115653e+01 /
172  DATA qmavec(-4) / 0.1300000e+01 /
173  DATA (am( 0,k,-4),k=0, 2)
174  & / -0.1743872e+01, -0.1128921e+01, -0.2841969e+00 /
175  DATA (am( 1,k,-4),k=0, 2)
176  & / 0.3345755e+01, 0.3187765e+00, 0.1378124e+00 /
177  DATA (am( 2,k,-4),k=0, 2)
178  & / -0.2037615e+02, 0.4121687e+01, 0.2236520e+00 /
179  DATA (am( 3,k,-4),k=0, 2)
180  & / -0.4703104e+02, 0.5353087e+01, -0.1455347e+01 /
181  DATA (am( 4,k,-4),k=0, 2)
182  & / -0.1060230e+02, -0.1551122e+01, -0.1078863e+01 /
183  DATA (am( 5,k,-4),k=0, 2)
184  & / 0.5088892e+02, -0.8197304e+01, 0.8083451e+01 /
185  DATA (am( 6,k,-4),k=0, 2)
186  & / -0.2819070e+02, 0.4554086e+01, -0.5890995e+01 /
187  DATA (am( 7,k,-4),k=0, 2)
188  & / -0.1098238e+02, 0.2590096e+01, -0.8062879e+01 /
189 
190  DATA mexvec(-5) / 6 /
191  DATA mlfvec(-5) / 2 /
192  DATA ut1vec(-5) / 0.1619654e+02 /
193  DATA ut2vec(-5) / -0.3367346e+01 /
194  DATA alfvec(-5) / 0.5109891e-02 /
195  DATA qmavec(-5) / 0.4500000e+01 /
196  DATA (am( 0,k,-5),k=0, 2)
197  & / -0.6800138e+01, 0.2493627e+01, -0.1075724e+01 /
198  DATA (am( 1,k,-5),k=0, 2)
199  & / 0.3036555e+01, 0.3324733e+00, 0.2008298e+00 /
200  DATA (am( 2,k,-5),k=0, 2)
201  & / -0.5203879e+01, -0.8493476e+01, -0.4523208e+01 /
202  DATA (am( 3,k,-5),k=0, 2)
203  & / -0.1524239e+01, -0.3411912e+01, -0.1771867e+02 /
204  DATA (am( 4,k,-5),k=0, 2)
205  & / -0.1099444e+02, 0.1320930e+01, -0.2353831e+01 /
206  DATA (am( 5,k,-5),k=0, 2)
207  & / 0.1699299e+02, -0.3565802e+02, 0.3566872e+02 /
208  DATA (am( 6,k,-5),k=0, 2)
209  & / -0.1465793e+02, 0.2703365e+02, -0.2176372e+02 /
210 
211  IF(q .LE. qmavec(ifl)) THEN
212  pyct5m = 0.d0
213  RETURN
214  ENDIF
215 
216  IF(x .GE. 1.d0) THEN
217  pyct5m = 0.d0
218  RETURN
219  ENDIF
220 
221  tmp = log(q/alfvec(ifl))
222  IF(tmp .LE. 0.d0) THEN
223  pyct5m = 0.d0
224  RETURN
225  ENDIF
226 
227  sb = log(tmp)
228  sb1 = sb - 1.2d0
229  sb2 = sb1*sb1
230 
231  DO 110 i = 0, nex
232  af(i) = 0.d0
233  sbx = 1.d0
234  DO 100 k = 0, mlfvec(ifl)
235  af(i) = af(i) + sbx*am(i,k,ifl)
236  sbx = sb1*sbx
237  100 CONTINUE
238  110 CONTINUE
239 
240  y = -log(x)
241  u = log(x/0.00001d0)
242 
243  part1 = af(1)*y**(1.d0+0.01d0*af(4))*(1.d0+ af(8)*u)
244  part2 = af(0)*(1.d0 - x) + af(3)*x
245  part3 = x*(1.d0-x)*(af(5)+af(6)*(1.d0-x)+af(7)*x*(1.d0-x))
246  part4 = ut1vec(ifl)*log(1.d0-x) +
247  & af(2)*log(1.d0+exp(ut2vec(ifl))-x)
248 
249  pyct5m = exp(log(x) + part1 + part2 + part3 + part4)
250 
251 C...Include threshold factor.
252  pyct5m = pyct5m * (1.d0 - qmavec(ifl)/q)
253 
254  RETURN
255  END