Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyalps.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyalps.f
1 
2 C*********************************************************************
3 
4 C...PYALPS
5 C...Gives the value of alpha_strong.
6 
7  FUNCTION pyalps(Q2)
8 
9 C...Double precision and integer declarations.
10  IMPLICIT DOUBLE PRECISION(a-h, o-z)
11  IMPLICIT INTEGER(i-n)
12  INTEGER pyk,pychge,pycomp
13 C...Commonblocks.
14  common/pydat1/mstu(200),paru(200),mstj(200),parj(200)
15  common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
16  SAVE /pydat1/,/pydat2/
17 C...Coefficients for second-order threshold matching.
18 C...From W.J. Marciano, Phys. Rev. D29 (1984) 580.
19  dimension stepdn(6),stepup(6)
20 c DATA STEPDN/0D0,0D0,(2D0*107D0/2025D0),(2D0*963D0/14375D0),
21 c &(2D0*321D0/3703D0),0D0/
22 c DATA STEPUP/0D0,0D0,0D0,(-2D0*107D0/1875D0),
23 c &(-2D0*963D0/13225D0),(-2D0*321D0/3381D0)/
24  DATA stepdn/0d0,0d0,0.10568d0,0.13398d0,0.17337d0,0d0/
25  DATA stepup/0d0,0d0,0d0,-0.11413d0,-0.14563d0,-0.18988d0/
26 
27 C...Constant alpha_strong trivial. Pick artificial Lambda.
28  IF(mstu(111).LE.0) THEN
29  pyalps=paru(111)
30  mstu(118)=mstu(112)
31  paru(117)=0.2d0
32  IF(q2.GT.0.04d0) paru(117)=sqrt(q2)*exp(-6d0*paru(1)/
33  & ((33d0-2d0*mstu(112))*paru(111)))
34  paru(118)=paru(111)
35  RETURN
36  ENDIF
37 
38 C...Find effective Q2, number of flavours and Lambda.
39  q2eff=q2
40  IF(mstu(115).GE.2) q2eff=max(q2,paru(114))
41  nf=mstu(112)
42  alam2=paru(112)**2
43  100 IF(nf.GT.max(3,mstu(113))) THEN
44  q2thr=paru(113)*pmas(nf,1)**2
45  IF(q2eff.LT.q2thr) THEN
46  nf=nf-1
47  q2rat=q2thr/alam2
48  alam2=alam2*q2rat**(2d0/(33d0-2d0*nf))
49  IF(mstu(111).EQ.2) alam2=alam2*log(q2rat)**stepdn(nf)
50  goto 100
51  ENDIF
52  ENDIF
53  110 IF(nf.LT.min(6,mstu(114))) THEN
54  q2thr=paru(113)*pmas(nf+1,1)**2
55  IF(q2eff.GT.q2thr) THEN
56  nf=nf+1
57  q2rat=q2thr/alam2
58  alam2=alam2*q2rat**(-2d0/(33d0-2d0*nf))
59  IF(mstu(111).EQ.2) alam2=alam2*log(q2rat)**stepup(nf)
60  goto 110
61  ENDIF
62  ENDIF
63  IF(mstu(115).EQ.1) q2eff=q2eff+alam2
64  paru(117)=sqrt(alam2)
65 
66 C...Evaluate first or second order alpha_strong.
67  b0=(33d0-2d0*nf)/6d0
68  algq=log(max(1.0001d0,q2eff/alam2))
69  IF(mstu(111).EQ.1) THEN
70  pyalps=min(paru(115),paru(2)/(b0*algq))
71  ELSE
72  b1=(153d0-19d0*nf)/6d0
73  pyalps=min(paru(115),paru(2)/(b0*algq)*(1d0-b1*log(algq)/
74  & (b0**2*algq)))
75  ENDIF
76  mstu(118)=nf
77  paru(118)=pyalps
78 
79  RETURN
80  END