EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
polfit.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file polfit.F
1 
2 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
3 C C
4 C POLARIZED PARTON DISTRIBUTIONS (NLO and LO) C
5 C FROM CERN-TH/71-97 AND HEP-PH 9711440 C
6 C D. de Florian, R. Sassot and O. Sampayo C
7 C C
8 C MODE: 1 SET1 NLO (MSbar) C
9 C 2 SET2 NLO (MSbar) C
10 C 3 SET3 NLO (MSbar) C
11 C 4 SET1 LO C
12 C 5 SET2 LO C
13 C 6 SET3 LO C
14 C C
15 C Q2=Q^2 C
16 C DUV : X * U VALENCE DISTRIBUTION C
17 C DDV : X * D VALENCE DISTRIBUTION C
18 C DQBAR : X * UBAR= X * DBAR DISTRIBUTION C
19 C DSTR : X * STR= X * STRBAR DISTRIBUTION C
20 C DGLU : X * GLUON DISTRIBUTION C
21 C G1P : X * POLARIZED STRUCTURE FUNCTION (PROTON) C
22 C G1N : X * POLARIZED STRUCTURE FUNCTION (NEUTRON) C
23 C G1D : X * POLARIZED STRUCTURE FUNCTION(DEUTERON) C
24 C C
25 C REMEMBER: ALWAYS X*DISTRIBUTION !!! C
26 C BEFORE CALLING THE SUBRUTINE `POLFIT` FOR THE FIRST TIME, THE C
27 C SUBROUTINE `INI` MUST BE CALLED (ONLY ONCE) TO READ THE GRIDS. C
28 C (CALL INI) C
29 C C
30 C RANGE OF VALIDITY OF THE INTERPOLATION: C
31 C 10**(-4)< X < 0.9 C
32 C 1 < Q**2 < 5*10**4 C
33 C C
34 C IN CASE OF PROBLEMS, DOUBTS, ETC, PLEASE REPORT TO C
35 C Daniel.de.Florian@cern.ch C
36 C C
37 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
38  SUBROUTINE polfit(MODE,X,Q2,DUV,DDV,DQBAR,DSTR,DGLU)
39 ************************
40 *HI Speed optimized *
41 ************************
42  IMPLICIT NONE
43 
44  common/ xarray / xarray
45  common/ grid / gu,gd,gl,gs,gg,gp,gn
46  DOUBLE PRECISION xarray(102), gu(76,26), gd(76,26), gl(76,26),
47  & gs(76,26), gg(76,26), gp(76,26), gn(76,26)
48 
49  DOUBLE PRECISION xq(2),perinola,x3,x4,x5,x6,x7,x,q2
50  DOUBLE PRECISION duv,ddv,dqbar,dstr,dglu
51  INTEGER mode
52 
53  xq(1) = x
54  xq(2) = q2
55  x3=(1.d0-xq(1))**3.d0
56  x4=(1.d0-xq(1))**4.d0
57  x5=xq(1)**0.5d0
58  x6=xq(1)**0.6d0
59  x7=xq(1)**0.7d0
60  duv = perinola(xq,gu) * x3* x6
61  ddv = perinola(xq,gd) * x4 * x7
62  dqbar = perinola(xq,gl) * x3 * x5
63  dstr = perinola(xq,gs) * x3 * x5
64  dglu = perinola(xq,gg) * x3 * x5
65 *HI G1P = PERINOLA(XQ,GP) * X3 * X5
66 *HI G1N = PERINOLA(XQ,GN) * X4 * X5
67 *HI G1D=(G1P+G1N)*0.5D0*(1.D0-1.5D0*0.058D0)
68  RETURN
69  END