Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:13

0001  
0002 C*********************************************************************
0003  
0004 C...PYPDGA
0005 C...Gives photon parton distribution.
0006  
0007       SUBROUTINE PYPDGA(X,Q2,XPGA)
0008  
0009 C...Double precision and integer declarations.
0010       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011       IMPLICIT INTEGER(I-N)
0012       INTEGER PYK,PYCHGE,PYCOMP
0013 C...Commonblocks.
0014       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0015       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0016       COMMON/PYINT1/MINT(400),VINT(400)
0017       SAVE /PYDAT1/,/PYPARS/,/PYINT1/
0018 C...Local arrays.
0019       DIMENSION XPGA(-6:6),DGAG(4,3),DGBG(4,3),DGCG(4,3),DGAN(4,3),
0020      &DGBN(4,3),DGCN(4,3),DGDN(4,3),DGEN(4,3),DGAS(4,3),DGBS(4,3),
0021      &DGCS(4,3),DGDS(4,3),DGES(4,3)
0022  
0023 C...The following data lines are coefficients needed in the
0024 C...Drees and Grassie photon parton distribution parametrization.
0025       DATA DGAG/-.207D0,.6158D0,1.074D0,0.D0,.8926D-2,.6594D0,
0026      &.4766D0,.1975D-1,.03197D0,1.018D0,.2461D0,.2707D-1/
0027       DATA DGBG/-.1987D0,.6257D0,8.352D0,5.024D0,.5085D-1,.2774D0,
0028      &-.3906D0,-.3212D0,-.618D-2,.9476D0,-.6094D0,-.1067D-1/
0029       DATA DGCG/5.119D0,-.2752D0,-6.993D0,2.298D0,-.2313D0,.1382D0,
0030      &6.542D0,.5162D0,-.1216D0,.9047D0,2.653D0,.2003D-2/
0031       DATA DGAN/2.285D0,-.1526D-1,1330.D0,4.219D0,-.3711D0,1.061D0,
0032      &4.758D0,-.1503D-1,15.8D0,-.9464D0,-.5D0,-.2118D0/
0033       DATA DGBN/6.073D0,-.8132D0,-41.31D0,3.165D0,-.1717D0,.7815D0,
0034      &1.535D0,.7067D-2,2.742D0,-.7332D0,.7148D0,3.287D0/
0035       DATA DGCN/-.4202D0,.1778D-1,.9216D0,.18D0,.8766D-1,.2197D-1,
0036      &.1096D0,.204D0,.2917D-1,.4657D-1,.1785D0,.4811D-1/
0037       DATA DGDN/-.8083D-1,.6346D0,1.208D0,.203D0,-.8915D0,.2857D0,
0038      &2.973D0,.1185D0,-.342D-1,.7196D0,.7338D0,.8139D-1/
0039       DATA DGEN/.5526D-1,1.136D0,.9512D0,.1163D-1,-.1816D0,.5866D0,
0040      &2.421D0,.4059D0,-.2302D-1,.9229D0,.5873D0,-.79D-4/
0041       DATA DGAS/16.69D0,-.7916D0,1099.D0,4.428D0,-.1207D0,1.071D0,
0042      &1.977D0,-.8625D-2,6.734D0,-1.008D0,-.8594D-1,.7625D-1/
0043       DATA DGBS/.176D0,.4794D-1,1.047D0,.25D-1,25.D0,-1.648D0,
0044      &-.1563D-1,6.438D0,59.88D0,-2.983D0,4.48D0,.9686D0/
0045       DATA DGCS/-.208D-1,.3386D-2,4.853D0,.8404D0,-.123D-1,1.162D0,
0046      &.4824D0,-.11D-1,-.3226D-2,.8432D0,.3616D0,.1383D-2/
0047       DATA DGDS/-.1685D-1,1.353D0,1.426D0,1.239D0,-.9194D-1,.7912D0,
0048      &.6397D0,2.327D0,-.3321D-1,.9475D0,-.3198D0,.2132D-1/
0049       DATA DGES/-.1986D0,1.1D0,1.136D0,-.2779D0,.2015D-1,.9869D0,
0050      &-.7036D-1,.1694D-1,.1059D0,.6954D0,-.6663D0,.3683D0/
0051  
0052 C...Photon parton distribution from Drees and Grassie.
0053 C...Allowed variable range: 1 GeV^2 < Q^2 < 10000 GeV^2.
0054       DO 100 KFL=-6,6
0055         XPGA(KFL)=0D0
0056   100 CONTINUE
0057       VINT(231)=1D0
0058       IF(MSTP(57).LE.0) THEN
0059         T=LOG(1D0/0.16D0)
0060       ELSE
0061         T=LOG(MIN(1D4,MAX(1D0,Q2))/0.16D0)
0062       ENDIF
0063       X1=1D0-X
0064       NF=3
0065       IF(Q2.GT.25D0) NF=4
0066       IF(Q2.GT.300D0) NF=5
0067       NFE=NF-2
0068       AEM=PARU(101)
0069  
0070 C...Evaluate gluon content.
0071       DGA=DGAG(1,NFE)*T**DGAG(2,NFE)+DGAG(3,NFE)*T**(-DGAG(4,NFE))
0072       DGB=DGBG(1,NFE)*T**DGBG(2,NFE)+DGBG(3,NFE)*T**(-DGBG(4,NFE))
0073       DGC=DGCG(1,NFE)*T**DGCG(2,NFE)+DGCG(3,NFE)*T**(-DGCG(4,NFE))
0074       XPGL=DGA*X**DGB*X1**DGC
0075  
0076 C...Evaluate up- and down-type quark content.
0077       DGA=DGAN(1,NFE)*T**DGAN(2,NFE)+DGAN(3,NFE)*T**(-DGAN(4,NFE))
0078       DGB=DGBN(1,NFE)*T**DGBN(2,NFE)+DGBN(3,NFE)*T**(-DGBN(4,NFE))
0079       DGC=DGCN(1,NFE)*T**DGCN(2,NFE)+DGCN(3,NFE)*T**(-DGCN(4,NFE))
0080       DGD=DGDN(1,NFE)*T**DGDN(2,NFE)+DGDN(3,NFE)*T**(-DGDN(4,NFE))
0081       DGE=DGEN(1,NFE)*T**DGEN(2,NFE)+DGEN(3,NFE)*T**(-DGEN(4,NFE))
0082       XPQN=X*(X**2+X1**2)/(DGA-DGB*LOG(X1))+DGC*X**DGD*X1**DGE
0083       DGA=DGAS(1,NFE)*T**DGAS(2,NFE)+DGAS(3,NFE)*T**(-DGAS(4,NFE))
0084       DGB=DGBS(1,NFE)*T**DGBS(2,NFE)+DGBS(3,NFE)*T**(-DGBS(4,NFE))
0085       DGC=DGCS(1,NFE)*T**DGCS(2,NFE)+DGCS(3,NFE)*T**(-DGCS(4,NFE))
0086       DGD=DGDS(1,NFE)*T**DGDS(2,NFE)+DGDS(3,NFE)*T**(-DGDS(4,NFE))
0087       DGE=DGES(1,NFE)*T**DGES(2,NFE)+DGES(3,NFE)*T**(-DGES(4,NFE))
0088       DGF=9D0
0089       IF(NF.EQ.4) DGF=10D0
0090       IF(NF.EQ.5) DGF=55D0/6D0
0091       XPQS=DGF*X*(X**2+X1**2)/(DGA-DGB*LOG(X1))+DGC*X**DGD*X1**DGE
0092       IF(NF.LE.3) THEN
0093         XPQU=(XPQS+9D0*XPQN)/6D0
0094         XPQD=(XPQS-4.5D0*XPQN)/6D0
0095       ELSEIF(NF.EQ.4) THEN
0096         XPQU=(XPQS+6D0*XPQN)/8D0
0097         XPQD=(XPQS-6D0*XPQN)/8D0
0098       ELSE
0099         XPQU=(XPQS+7.5D0*XPQN)/10D0
0100         XPQD=(XPQS-5D0*XPQN)/10D0
0101       ENDIF
0102  
0103 C...Put into output arrays.
0104       XPGA(0)=AEM*XPGL
0105       XPGA(1)=AEM*XPQD
0106       XPGA(2)=AEM*XPQU
0107       XPGA(3)=AEM*XPQD
0108       IF(NF.GE.4) XPGA(4)=AEM*XPQU
0109       IF(NF.GE.5) XPGA(5)=AEM*XPQD
0110       DO 110 KFL=1,6
0111         XPGA(-KFL)=XPGA(KFL)
0112   110 CONTINUE
0113  
0114       RETURN
0115       END