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