]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PDF/spdf/alphas2.F
Number of pads along z is corrected
[u/mrichter/AliRoot.git] / PDF / spdf / alphas2.F
CommitLineData
21886bb6 1*
2* $Id$
3*
4* $Log$
7ef50f50 5* Revision 1.4 2000/09/18 10:02:35 hristov
6* Makefile added to PDF8
7*
21886bb6 8* Revision 1.3 1996/10/30 11:05:22 cernlib
9* Conflicts resolved
10*
11* Revision 1.1.1.2 1996/10/30 08:32:07 cernlib
12* Version 7.04
13*
14* Revision 1.2 1996/05/31 13:57:48 pdflib
15* replace # by +
16*
17* Revision 1.1.1.1 1996/04/12 15:29:01 plothow
18* Version 7.01
19*
20*
21#include "pdf/pilot.h"
22C-----------------------------------------------------------------------
23#if defined(CERNLIB_SINGLE)
24 FUNCTION ALPHAS2(SCALE)
25#endif
26#if defined(CERNLIB_DOUBLE)
27 DOUBLE PRECISION FUNCTION ALPHAS2(SCALE)
28
29#endif
30C
31C **********************************************************************
32C * *
33C * Program to calculate alfa strong to second order *
34C * as a function of lambda of 5 flavours *
35C * and the desired number of flavours (NFL) *
36C * for the selected set of structure functions which fixes lambda. *
37C * NFL is limited to max. of 6 flavours. *
38C * The value of alfa is matched at the thresholds q = mq. *
39C * When invoked with NFL < 0, it chooses NFL *
40C * as the number of flavours with mass less then q. *
41C * (mc = 1.5 GeV, mb = 4.75 GeV, mt = 100 GeV) *
42C * *
43C * Input: SCALE = QCD scale in GeV *
44C * *
45C * Output: ALPHAS2 = alpha strong to second order, *
46C * if not LO = 1 *
47C * *
48C * The variables NPTYPE,NGROUP,NSET,NFL,LO,TMAS,QCDL4,QCDL5 *
49C * should be provided by the user via a call to the *
50C * subroutine PDFSET at the initialization phase. *
51C * *
52C * Author: H. Plothow-Besch (CERN-PPE) *
53C * *
54C **********************************************************************
55C
56#include "pdf/impdp.inc"
57C
58#include "pdf/w5051p1.inc"
59#include "pdf/w5051p2.inc"
60#include "pdf/w5051p7.inc"
61#include "pdf/w50510.inc"
62#include "pdf/w50511.inc"
63#include "pdf/w50512.inc"
64#include "pdf/w50513.inc"
65#include "pdf/w50515.inc"
66#include "pdf/w50516.inc"
67#include "pdf/w50517.inc"
68#include "pdf/w50519.inc"
69#include "pdf/w505120.inc"
70#include "pdf/w505121.inc"
71C
7ef50f50 72#if defined(CERNLIB_DOUBLE)
73 DOUBLE PRECISION
74#endif
75#if defined(CERNLIB_SINGLE)
76 REAL
77#endif
21886bb6 78 + NF,KNF
79 CHARACTER*20 PARM(NCHDIM)
7ef50f50 80#if defined(CERNLIB_DOUBLE)
81 DOUBLE PRECISION
82#endif
83#if defined(CERNLIB_SINGLE)
84 REAL
85#endif
21886bb6 86 + VAL(NCHDIM)
87 DATA XMC/1.5D0/,XMB/4.75D0/,XMT/100.D0/
88 DATA ZEROD/0.D0/,PONED/0.001D0/,ONED/1.D0/,TWOD/2.D0/
89C.
90C. initialization of the parameters for the coupling constant
91C.
92C. QCDL4 : QCD scale, which is matched to the scale used in the
93C. parton distribution function chosen above for 4 flavours.
94C.
95C. QCDL5 : QCD scale, which is matched to the scale used in the
96C. parton distribution function chosen above.
97C.
98C. be aware, this lambda is given for 5 flavours (mb = 4.75 GeV/c**2) !!
99C.
100C
101C set the default values
102C
103 ALPHAS2 = ZEROD
104C
105 IF(N6.LE.0) N6 = L6
106C.
107#include "pdf/w50511c.inc"
108C.
109C User wants new version (4.0 or bigger) of PDFLIB format
110 IF (IFLSET.NE.1) THEN
111 IF(FIRST) THEN
112 WRITE(N6,*) ' Warning : NO initialisation via PDFSET made !!'
113 WRITE(N6,*)
114 + ' ALL Parameters set to default (Nucleon PDFs) !!'
115 ENDIF
116 NPTYPE = LPTYPE
117 NGROUP = LGROUP
118 NSET = LNSET
119C
120 PARM(1) = 'NPTYPE'
121 VAL(1) = NPTYPE
122 PARM(2) = 'NGROUP'
123 VAL(2) = NGROUP
124 PARM(3) = 'NSET'
125 VAL(3) = NSET
126C
127 CALL PDFSET(PARM,VAL)
128 ENDIF
129C.
130C User wants old version (3.0 or less) of PDFLIB format
131 IF(.NOT.NEWVER) THEN
132 IF (MODE .GE.0 .AND. MODE .LE.MODEMX) THEN
133 IF(MODE.EQ.0) THEN
134 NPTYPE = LPTYPO
135 NGROUP = LGROPO
136 NSET = LNSETO
137 ELSE
138 NPTYPE = NPTYCR(MODE)
139 NGROUP = NGROCR(MODE)
140 NSET = NSETCR(MODE)
141C Check on validity of parameter values
142 IF (NPTYPE.LT.0 .OR. NGROUP.LT.0 .OR. NSET.LT.0) THEN
143 IF(FIRST) THEN
144 WRITE(N6,*) ' PDFLIB : MODE value INCORRECT, MODE = ',
145 + MODE
146 WRITE(N6,*) ' Warning : MODE value set to OLD default !!'
147 ENDIF
148 NPTYPE = LPTYPO
149 NGROUP = LGROPO
150 NSET = LNSETO
151 ENDIF
152 ENDIF
153 ENDIF
154 ENDIF
155C.
156 IF (QCDL5 .LE. PONED) THEN
157 IF(FIRST) THEN
158 WRITE (N6,*) ' PDFLIB: QCD-Lambda5 is not defined !! '
159 ENDIF
160 ALPHAS2 = ZEROD
161 RETURN
162 ENDIF
163C.
164 PI=4.0D0*ATAN(ONED)
165 B6 = (33.D0-2.D0*6.D0)/PI/12.D0
166 BP6 = (153.D0 - 19.D0*6.D0) / PI / TWOD / (33.D0 - 2.D0*6.D0)
167 B5 = (33.D0-2.D0*5.D0)/PI/12.D0
168 BP5 = (153.D0 - 19.D0*5.D0) / PI / TWOD / (33.D0 - 2.D0*5.D0)
169 B4 = (33.D0-2.D0*4.D0)/PI/12.D0
170 BP4 = (153.D0 - 19.D0*4.D0) / PI / TWOD / (33.D0 - 2.D0*4.D0)
171 B3 = (33.D0-2.D0*3.D0)/PI/12.D0
172 BP3 = (153.D0 - 19.D0*3.D0) / PI / TWOD / (33.D0 - 2.D0*3.D0)
173 XLC = TWOD * LOG( XMC/QCDL5)
174 XLB = TWOD * LOG( XMB/QCDL5)
175 XLT = TWOD * LOG( XMT/QCDL5 * TMAS/XMT)
176 XLLC = LOG( XLC)
177 XLLB = LOG( XLB)
178 XLLT = LOG( XLT)
179 C65 = ONED/( ONED/(B5 * XLT) - XLLT*BP5/(B5 * XLT)**2 )
180 + - ONED/( ONED/(B6 * XLT) - XLLT*BP6/(B6 * XLT)**2 )
181 C45 = ONED/( ONED/(B5 * XLB) - XLLB*BP5/(B5 * XLB)**2 )
182 + - ONED/( ONED/(B4 * XLB) - XLLB*BP4/(B4 * XLB)**2 )
183 C35 = ONED/( ONED/(B4 * XLC) - XLLC*BP4/(B4 * XLC)**2 )
184 + - ONED/( ONED/(B3 * XLC) - XLLC*BP3/(B3 * XLC)**2 ) + C45
185C
186 Q = SCALE
187 XLQ = TWOD * LOG( Q/QCDL5 )
188 XLLQ = LOG( XLQ )
189 KNF = NFL
190 NF = KNF
191 IF ( NF .LT. ZEROD) THEN
192 IF ( Q .GT. XMT * TMAS/XMT) THEN
193 NF = 6.D0
194 ELSEIF ( Q .GT. XMB ) THEN
195 NF = 5.D0
196 ELSEIF ( Q .GT. XMC ) THEN
197 NF = 4.D0
198 ELSE
199 NF = 3.D0
200 ENDIF
201 ENDIF
202 IF(NF .GT. 6.D0) NF = 6.D0
203 IF ( NF .EQ. 6.D0 ) THEN
204 ALF = ONED/(ONED/(ONED/(B6*XLQ)- BP6/(B6*XLQ)**2*XLLQ) + C65)
205 IF (LO.EQ.1) ALF = ONED/B6/XLQ
206 ELSEIF ( NF .EQ. 5.D0 ) THEN
207 ALF = ONED/(B5 * XLQ) - BP5/(B5 * XLQ)**2 * XLLQ
208 IF (LO.EQ.1) ALF = ONED/B5/XLQ
209 ELSEIF ( NF .EQ. 4.D0 ) THEN
210 ALF = ONED/(ONED/(ONED/(B4*XLQ)- BP4/(B4*XLQ)**2*XLLQ) + C45)
211 IF (LO.EQ.1) ALF = ONED/B4/XLQ
212 ELSEIF ( NF .EQ. 3.D0 ) THEN
213 ALF = ONED/(ONED/(ONED/(B3*XLQ)- BP3/(B3*XLQ)**2*XLLQ) + C35)
214 IF (LO.EQ.1) ALF = ONED/B3/XLQ
215 ELSE
216 WRITE(N6,*)'Error in Alphas2: unimplemented # of light flavours',
217 + NFL
218 STOP
219 ENDIF
220 ALPHAS2 = ALF
221 RETURN
222 END