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