]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PDF/spdf/sasan1.F
update info about cvs installation using cvs account
[u/mrichter/AliRoot.git] / PDF / spdf / sasan1.F
CommitLineData
fe4da5cc 1#include "pdf/pilot.h"
2 SUBROUTINE SASAN1(KF,X,Q2,P2,ALAM,XPGA)
3C...Purpose: to evaluate the parton distributions of the anomalous
4C...photon, inhomogeneously evolved from a scale P2 (where it vanishes)
5C...to Q2.
6C...KF=0 gives the sum over (up to) 5 flavours,
7C...KF<0 limits to flavours up to abs(KF),
8C...KF>0 is for flavour KF only.
9C...ALAM is the 4-flavour Lambda, which is automatically converted
10C...to 3- and 5-flavour equivalents as needed.
11 DIMENSION XPGA(-6:6),ALAMSQ(3:5)
12 DATA PMC/1.3/, PMB/4.6/, AEM/0.007297/, AEM2PI/0.0011614/
13
14C...Reset output.
15 DO 100 KFL=-6,6
16 XPGA(KFL)=0.
17 100 CONTINUE
18 IF(Q2.LE.P2) RETURN
19 KFA=IABS(KF)
20
21C...Calculate Lambda; protect against unphysical Q2 and P2 input.
22 ALAMSQ(3)=(ALAM*(PMC/ALAM)**(2./27.))**2
23 ALAMSQ(4)=ALAM**2
24 ALAMSQ(5)=(ALAM*(ALAM/PMB)**(2./23.))**2
25 P2EFF=MAX(P2,1.2*ALAMSQ(3))
26 IF(KF.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
27 IF(KF.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
28 Q2EFF=MAX(Q2,P2EFF)
29 XL=-LOG(X)
30
31C...Find number of flavours at lower and upper scale.
32 NFP=4
33 IF(P2EFF.LT.PMC**2) NFP=3
34 IF(P2EFF.GT.PMB**2) NFP=5
35 NFQ=4
36 IF(Q2EFF.LT.PMC**2) NFQ=3
37 IF(Q2EFF.GT.PMB**2) NFQ=5
38
39C...Define range of flavour loop.
40 IF(KF.EQ.0) THEN
41 KFLMN=1
42 KFLMX=5
43 ELSEIF(KF.LT.0) THEN
44 KFLMN=1
45 KFLMX=KFA
46 ELSE
47 KFLMN=KFA
48 KFLMX=KFA
49 ENDIF
50
51C...Loop over flavours the photon can branch into.
52 DO 110 KFL=KFLMN,KFLMX
53
54C...Light flavours: calculate t range and (approximate) s range.
55 IF(KFL.LE.3.AND.(KFL.EQ.1.OR.KFL.EQ.KF)) THEN
56 TDIFF=LOG(Q2EFF/P2EFF)
57 S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
58 & LOG(P2EFF/ALAMSQ(NFQ)))
59 IF(NFQ.GT.NFP) THEN
60 Q2DIV=PMB**2
61 IF(NFQ.EQ.4) Q2DIV=PMC**2
62 SNFQ=(6./(33.-2.*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
63 & LOG(P2EFF/ALAMSQ(NFQ)))
64 SNFP=(6./(33.-2.*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
65 & LOG(P2EFF/ALAMSQ(NFQ-1)))
66 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
67 ENDIF
68 IF(NFQ.EQ.5.AND.NFP.EQ.3) THEN
69 Q2DIV=PMC**2
70 SNF4=(6./(33.-2.*4))*LOG(LOG(Q2DIV/ALAMSQ(4))/
71 & LOG(P2EFF/ALAMSQ(4)))
72 SNF3=(6./(33.-2.*3))*LOG(LOG(Q2DIV/ALAMSQ(3))/
73 & LOG(P2EFF/ALAMSQ(3)))
74 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNF3-SNF4)
75 ENDIF
76
77C...u and s quark do not need a separate treatment when d has been done.
78 ELSEIF(KFL.EQ.2.OR.KFL.EQ.3) THEN
79
80C...Charm: as above, but only include range above c threshold.
81 ELSEIF(KFL.EQ.4) THEN
82 IF(Q2.LE.PMC**2) GOTO 110
83 P2EFF=MAX(P2EFF,PMC**2)
84 Q2EFF=MAX(Q2EFF,P2EFF)
85 TDIFF=LOG(Q2EFF/P2EFF)
86 S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
87 & LOG(P2EFF/ALAMSQ(NFQ)))
88 IF(NFQ.EQ.5.AND.NFP.EQ.4) THEN
89 Q2DIV=PMB**2
90 SNFQ=(6./(33.-2.*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
91 & LOG(P2EFF/ALAMSQ(NFQ)))
92 SNFP=(6./(33.-2.*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
93 & LOG(P2EFF/ALAMSQ(NFQ-1)))
94 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
95 ENDIF
96
97C...Bottom: as above, but only include range above b threshold.
98 ELSEIF(KFL.EQ.5) THEN
99 IF(Q2.LE.PMB**2) GOTO 110
100 P2EFF=MAX(P2EFF,PMB**2)
101 Q2EFF=MAX(Q2,P2EFF)
102 TDIFF=LOG(Q2EFF/P2EFF)
103 S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
104 & LOG(P2EFF/ALAMSQ(NFQ)))
105 ENDIF
106
107C...Evaluate flavour-dependent prefactor (charge^2 etc.).
108 CHSQ=1./9.
109 IF(KFL.EQ.2.OR.KFL.EQ.4) CHSQ=4./9.
110 FAC=AEM2PI*2.*CHSQ*TDIFF
111
112C...Evaluate parton distributions (normalized to unit momentum sum).
113 IF(KFL.EQ.1.OR.KFL.EQ.4.OR.KFL.EQ.5.OR.KFL.EQ.KF) THEN
114 XVAL= ((1.5+2.49*S+26.9*S**2)/(1.+32.3*S**2)*X**2 +
115 & (1.5-0.49*S+7.83*S**2)/(1.+7.68*S**2)*(1.-X)**2 +
116 & 1.5*S/(1.-3.2*S+7.*S**2)*X*(1.-X)) *
117 & X**(1./(1.+0.58*S)) * (1.-X**2)**(2.5*S/(1.+10.*S))
118 XGLU= 2.*S/(1.+4.*S+7.*S**2) *
119 & X**(-1.67*S/(1.+2.*S)) * (1.-X**2)**(1.2*S) *
120 & ((4.*X**2+7.*X+4.)*(1.-X)/3. - 2.*X*(1.+X)*XL)
121 XSEA= 0.333*S**2/(1.+4.90*S+4.69*S**2+21.4*S**3) *
122 & X**(-1.18*S/(1.+1.22*S)) * (1.-X)**(1.2*S) *
123 & ((8.-73.*X+62.*X**2)*(1.-X)/9. + (3.-8.*X**2/3.)*X*XL +
124 & (2.*X-1.)*X*XL**2)
125
126C...Threshold factors for c and b sea.
127 SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
128 XCHM=0.
129 IF(Q2.GT.PMC**2.AND.Q2.GT.1.001*P2EFF) THEN
130 SCH=MAX(0.,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
131 XCHM=XSEA*(1.-(SCH/SLL)**3)
132 ENDIF
133 XBOT=0.
134 IF(Q2.GT.PMB**2.AND.Q2.GT.1.001*P2EFF) THEN
135 SBT=MAX(0.,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
136 XBOT=XSEA*(1.-(SBT/SLL)**3)
137 ENDIF
138 ENDIF
139
140C...Add contribution of each valence flavour.
141 XPGA(0)=XPGA(0)+FAC*XGLU
142 XPGA(1)=XPGA(1)+FAC*XSEA
143 XPGA(2)=XPGA(2)+FAC*XSEA
144 XPGA(3)=XPGA(3)+FAC*XSEA
145 XPGA(4)=XPGA(4)+FAC*XCHM
146 XPGA(5)=XPGA(5)+FAC*XBOT
147 XPGA(KFL)=XPGA(KFL)+FAC*XVAL
148 110 CONTINUE
149 DO 120 KFL=1,5
150 XPGA(-KFL)=XPGA(KFL)
151 120 CONTINUE
152
153 RETURN
154 END