EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pystga.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pystga.F
1  SUBROUTINE pystga(X,Q2,XPGA)
2 
3 C...Gives photon structure function.
4  common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5  common/pypars/mstp(200),parp(200),msti(200),pari(200)
6  common/pyint1/mint(400),vint(400)
7  SAVE /ludat1/
8  SAVE /pypars/,/pyint1/
9  dimension xpga(-6:6),dgag(4,3),dgbg(4,3),dgcg(4,3),dgan(4,3),
10  &dgbn(4,3),dgcn(4,3),dgdn(4,3),dgen(4,3),dgas(4,3),dgbs(4,3),
11  &dgcs(4,3),dgds(4,3),dges(4,3)
12 
13 C...The following data lines are coefficients needed in the
14 C...Drees and Grassie photon structure function parametrization.
15  DATA dgag/-.207e0,.6158e0,1.074e0,0.e0,.8926e-2,.6594e0,
16  &.4766e0,.1975e-1,.03197e0,1.018e0,.2461e0,.2707e-1/
17  DATA dgbg/-.1987e0,.6257e0,8.352e0,5.024e0,.5085e-1,.2774e0,
18  &-.3906e0,-.3212e0,-.618e-2,.9476e0,-.6094e0,-.1067e-1/
19  DATA dgcg/5.119e0,-.2752e0,-6.993e0,2.298e0,-.2313e0,.1382e0,
20  &6.542e0,.5162e0,-.1216e0,.9047e0,2.653e0,.2003e-2/
21  DATA dgan/2.285e0,-.1526e-1,1330.e0,4.219e0,-.3711e0,1.061e0,
22  &4.758e0,-.1503e-1,15.8e0,-.9464e0,-.5e0,-.2118e0/
23  DATA dgbn/6.073e0,-.8132e0,-41.31e0,3.165e0,-.1717e0,.7815e0,
24  &1.535e0,.7067e-2,2.742e0,-.7332e0,.7148e0,3.287e0/
25  DATA dgcn/-.4202e0,.1778e-1,.9216e0,.18e0,.8766e-1,.2197e-1,
26  &.1096e0,.204e0,.2917e-1,.4657e-1,.1785e0,.4811e-1/
27  DATA dgdn/-.8083e-1,.6346e0,1.208e0,.203e0,-.8915e0,.2857e0,
28  &2.973e0,.1185e0,-.342e-1,.7196e0,.7338e0,.8139e-1/
29  DATA dgen/.5526e-1,1.136e0,.9512e0,.1163e-1,-.1816e0,.5866e0,
30  &2.421e0,.4059e0,-.2302e-1,.9229e0,.5873e0,-.79e-4/
31  DATA dgas/16.69e0,-.7916e0,1099.e0,4.428e0,-.1207e0,1.071e0,
32  &1.977e0,-.8625e-2,6.734e0,-1.008e0,-.8594e-1,.7625e-1/
33  DATA dgbs/.176e0,.4794e-1,1.047e0,.25e-1,25.e0,-1.648e0,
34  &-.1563e-1,6.438e0,59.88e0,-2.983e0,4.48e0,.9686e0/
35  DATA dgcs/-.208e-1,.3386e-2,4.853e0,.8404e0,-.123e-1,1.162e0,
36  &.4824e0,-.11e-1,-.3226e-2,.8432e0,.3616e0,.1383e-2/
37  DATA dgds/-.1685e-1,1.353e0,1.426e0,1.239e0,-.9194e-1,.7912e0,
38  &.6397e0,2.327e0,-.3321e-1,.9475e0,-.3198e0,.2132e-1/
39  DATA dges/-.1986e0,1.1e0,1.136e0,-.2779e0,.2015e-1,.9869e0,
40  &-.7036e-1,.1694e-1,.1059e0,.6954e0,-.6663e0,.3683e0/
41 
42 C...Photon structure function from Drees and Grassie.
43 C...Allowed variable range: 1 GeV^2 < Q^2 < 10000 GeV^2.
44  DO 100 kfl=-6,6
45  xpga(kfl)=0.
46  100 CONTINUE
47  vint(231)=1.
48  IF(mstp(57).LE.0) THEN
49  t=log(1./0.16)
50  ELSE
51  t=log(min(1e4,max(1.,q2))/0.16)
52  ENDIF
53  x1=1.-x
54  nf=3
55  IF(q2.GT.25.) nf=4
56  IF(q2.GT.300.) nf=5
57  nfe=nf-2
58  aem=paru(101)
59 
60 C...Evaluate gluon content.
61  dga=dgag(1,nfe)*t**dgag(2,nfe)+dgag(3,nfe)*t**(-dgag(4,nfe))
62  dgb=dgbg(1,nfe)*t**dgbg(2,nfe)+dgbg(3,nfe)*t**(-dgbg(4,nfe))
63  dgc=dgcg(1,nfe)*t**dgcg(2,nfe)+dgcg(3,nfe)*t**(-dgcg(4,nfe))
64  xpgl=dga*x**dgb*x1**dgc
65 
66 C...Evaluate up- and down-type quark content.
67  dga=dgan(1,nfe)*t**dgan(2,nfe)+dgan(3,nfe)*t**(-dgan(4,nfe))
68  dgb=dgbn(1,nfe)*t**dgbn(2,nfe)+dgbn(3,nfe)*t**(-dgbn(4,nfe))
69  dgc=dgcn(1,nfe)*t**dgcn(2,nfe)+dgcn(3,nfe)*t**(-dgcn(4,nfe))
70  dgd=dgdn(1,nfe)*t**dgdn(2,nfe)+dgdn(3,nfe)*t**(-dgdn(4,nfe))
71  dge=dgen(1,nfe)*t**dgen(2,nfe)+dgen(3,nfe)*t**(-dgen(4,nfe))
72  xpqn=x*(x**2+x1**2)/(dga-dgb*log(x1))+dgc*x**dgd*x1**dge
73  dga=dgas(1,nfe)*t**dgas(2,nfe)+dgas(3,nfe)*t**(-dgas(4,nfe))
74  dgb=dgbs(1,nfe)*t**dgbs(2,nfe)+dgbs(3,nfe)*t**(-dgbs(4,nfe))
75  dgc=dgcs(1,nfe)*t**dgcs(2,nfe)+dgcs(3,nfe)*t**(-dgcs(4,nfe))
76  dgd=dgds(1,nfe)*t**dgds(2,nfe)+dgds(3,nfe)*t**(-dgds(4,nfe))
77  dge=dges(1,nfe)*t**dges(2,nfe)+dges(3,nfe)*t**(-dges(4,nfe))
78  dgf=9.
79  IF(nf.EQ.4) dgf=10.
80  IF(nf.EQ.5) dgf=55./6.
81  xpqs=dgf*x*(x**2+x1**2)/(dga-dgb*log(x1))+dgc*x**dgd*x1**dge
82  IF(nf.LE.3) THEN
83  xpqu=(xpqs+9.*xpqn)/6.
84  xpqd=(xpqs-4.5*xpqn)/6.
85  ELSEIF(nf.EQ.4) THEN
86  xpqu=(xpqs+6.*xpqn)/8.
87  xpqd=(xpqs-6.*xpqn)/8.
88  ELSE
89  xpqu=(xpqs+7.5*xpqn)/10.
90  xpqd=(xpqs-5.*xpqn)/10.
91  ENDIF
92 
93 C...Put into output arrays.
94  xpga(0)=aem*xpgl
95  xpga(1)=aem*xpqd
96  xpga(2)=aem*xpqu
97  xpga(3)=aem*xpqd
98  IF(nf.GE.4) xpga(4)=aem*xpqu
99  IF(nf.GE.5) xpga(5)=aem*xpqd
100  DO 110 kfl=1,6
101  xpga(-kfl)=xpga(kfl)
102  110 CONTINUE
103 
104  RETURN
105  END