EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyggam.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyggam.F
1  SUBROUTINE pyggam(ISET,X,Q2,P2,F2GM,XPDFGM)
2 C...Purpose: to construct the F2 and parton distributions of the photon
3 C...by summing homogeneous (VMD) and inhomogeneous (anomalous) terms.
4 C...For F2, c and b are included by the Bethe-Heitler formula;
5 C...in the 'MSbar' scheme additionally a Cgamma term is added.
6  dimension xpdfgm(-6:6)
7  common/pyint8/xpvmd(-6:6),xpanl(-6:6),xpanh(-6:6),xpbeh(-6:6),
8  &xpdir(-6:6)
9  SAVE /pyint8/
10 
11 C...Temporary array.
12  dimension xpga(-6:6)
13 C...Charm and bottom masses (low to compensate for J/psi etc.).
14  DATA pmc/1.3/, pmb/4.6/
15 C...alpha_em and alpha_em/(2*pi).
16  DATA aem/0.007297/, aem2pi/0.0011614/
17 C...Lambda value for 4 flavours.
18  DATA alam/0.20/
19 C...Mixture u/(u+d), = 0.5 for incoherent and = 0.8 for coherent sum.
20  DATA fracu/0.8/
21 C...VMD couplings f_V**2/(4*pi).
22  DATA frho/2.20/, fomega/23.6/, fphi/18.4/
23 C...Masses for rho (=omega) and phi.
24  DATA pmrho/0.770/, pmphi/1.020/
25 
26 C...Reset output.
27  f2gm=0.
28  DO 100 kfl=-6,6
29  xpdfgm(kfl)=0.
30  xpvmd(kfl)=0.
31  xpanl(kfl)=0.
32  xpanh(kfl)=0.
33  xpbeh(kfl)=0.
34  xpdir(kfl)=0.
35  100 CONTINUE
36 
37 C...Set k0 cut-off parameter as function of set used.
38  IF(iset.LE.2) THEN
39  ak0=0.6
40  ELSE
41  ak0=2.
42  ENDIF
43 
44 C...Call VMD parametrization for d quark and use to give rho+omega+ phi.
45 C...Note scale choice and dipole dampening for off-shell photon.
46  p2mx=max(p2,ak0**2)
47  CALL pygvmd(iset,1,x,q2,p2mx,alam,xpga)
48  xfval=xpga(1)-xpga(2)
49  xpga(1)=xpga(2)
50  xpga(-1)=xpga(-2)
51  facud=aem*(1./frho+1./fomega)*(pmrho**2/(pmrho**2+p2))**2
52  facs=aem*(1./fphi)*(pmphi**2/(pmphi**2+p2))**2
53  DO 110 kfl=-5,5
54  xpvmd(kfl)=(facud+facs)*xpga(kfl)
55  110 CONTINUE
56  xpvmd(1)=xpvmd(1)+(1.-fracu)*facud*xfval
57  xpvmd(2)=xpvmd(2)+fracu*facud*xfval
58  xpvmd(3)=xpvmd(3)+facs*xfval
59  xpvmd(-1)=xpvmd(-1)+(1.-fracu)*facud*xfval
60  xpvmd(-2)=xpvmd(-2)+fracu*facud*xfval
61  xpvmd(-3)=xpvmd(-3)+facs*xfval
62 
63 C...Call anomalous parametrization for d + u + s.
64  CALL pygano(-3,x,q2,p2mx,alam,xpga)
65  DO 120 kfl=-5,5
66  xpanl(kfl)=xpga(kfl)
67  120 CONTINUE
68 
69 C...Call anomalous parametrization for c and b.
70  CALL pygano(4,x,q2,p2mx,alam,xpga)
71  DO 130 kfl=-5,5
72  xpanh(kfl)=xpga(kfl)
73  130 CONTINUE
74  CALL pygano(5,x,q2,p2mx,alam,xpga)
75  DO 140 kfl=-5,5
76  xpanh(kfl)=xpanh(kfl)+xpga(kfl)
77  140 CONTINUE
78 
79 C...Call Bethe-Heitler term expression for charm and bottom.
80  CALL pygbeh(4,x,q2,p2,pmc**2,xpbh)
81  xpbeh(4)=xpbh
82  xpbeh(-4)=xpbh
83  CALL pygbeh(5,x,q2,p2,pmb**2,xpbh)
84  xpbeh(5)=xpbh
85  xpbeh(-5)=xpbh
86 
87 C...For MSbar subtraction call C^gamma term expression for d, u, s.
88  IF(iset.EQ.2.OR.iset.EQ.4) THEN
89  CALL pygdir(x,q2,p2,ak0,xpga)
90  DO 150 kfl=-5,5
91  xpdir(kfl)=xpga(kfl)
92  150 CONTINUE
93  ENDIF
94 
95 C...Store result in output array.
96  DO 160 kfl=-5,5
97  chsq=1./9.
98  IF(iabs(kfl).EQ.2.OR.iabs(kfl).EQ.4) chsq=4./9.
99  xpf2=xpvmd(kfl)+xpanl(kfl)+xpbeh(kfl)+xpdir(kfl)
100  IF(kfl.NE.0) f2gm=f2gm+chsq*xpf2
101  xpdfgm(kfl)=xpvmd(kfl)+xpanl(kfl)+xpanh(kfl)
102  160 CONTINUE
103 
104  RETURN
105  END