Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:08

0001  
0002 C*********************************************************************
0003  
0004 C...PYALPS
0005 C...Gives the value of alpha_strong.
0006  
0007       FUNCTION PYALPS(Q2)
0008  
0009 C...Double precision and integer declarations.
0010       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011       IMPLICIT INTEGER(I-N)
0012       INTEGER PYK,PYCHGE,PYCOMP
0013 C...Commonblocks.
0014       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0015       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0016       SAVE /PYDAT1/,/PYDAT2/
0017 C...Coefficients for second-order threshold matching.
0018 C...From W.J. Marciano, Phys. Rev. D29 (1984) 580.
0019       DIMENSION STEPDN(6),STEPUP(6)
0020 c      DATA STEPDN/0D0,0D0,(2D0*107D0/2025D0),(2D0*963D0/14375D0),
0021 c     &(2D0*321D0/3703D0),0D0/
0022 c      DATA STEPUP/0D0,0D0,0D0,(-2D0*107D0/1875D0),
0023 c     &(-2D0*963D0/13225D0),(-2D0*321D0/3381D0)/
0024       DATA STEPDN/0D0,0D0,0.10568D0,0.13398D0,0.17337D0,0D0/
0025       DATA STEPUP/0D0,0D0,0D0,-0.11413D0,-0.14563D0,-0.18988D0/
0026  
0027 C...Constant alpha_strong trivial. Pick artificial Lambda.
0028       IF(MSTU(111).LE.0) THEN
0029         PYALPS=PARU(111)
0030         MSTU(118)=MSTU(112)
0031         PARU(117)=0.2D0
0032         IF(Q2.GT.0.04D0) PARU(117)=SQRT(Q2)*EXP(-6D0*PARU(1)/
0033      &  ((33D0-2D0*MSTU(112))*PARU(111)))
0034         PARU(118)=PARU(111)
0035         RETURN
0036       ENDIF
0037  
0038 C...Find effective Q2, number of flavours and Lambda.
0039       Q2EFF=Q2
0040       IF(MSTU(115).GE.2) Q2EFF=MAX(Q2,PARU(114))
0041       NF=MSTU(112)
0042       ALAM2=PARU(112)**2
0043   100 IF(NF.GT.MAX(3,MSTU(113))) THEN
0044         Q2THR=PARU(113)*PMAS(NF,1)**2
0045         IF(Q2EFF.LT.Q2THR) THEN
0046           NF=NF-1
0047           Q2RAT=Q2THR/ALAM2
0048           ALAM2=ALAM2*Q2RAT**(2D0/(33D0-2D0*NF))
0049           IF(MSTU(111).EQ.2) ALAM2=ALAM2*LOG(Q2RAT)**STEPDN(NF)
0050           GOTO 100
0051         ENDIF
0052       ENDIF
0053   110 IF(NF.LT.MIN(6,MSTU(114))) THEN
0054         Q2THR=PARU(113)*PMAS(NF+1,1)**2
0055         IF(Q2EFF.GT.Q2THR) THEN
0056           NF=NF+1
0057           Q2RAT=Q2THR/ALAM2
0058           ALAM2=ALAM2*Q2RAT**(-2D0/(33D0-2D0*NF))
0059           IF(MSTU(111).EQ.2) ALAM2=ALAM2*LOG(Q2RAT)**STEPUP(NF)
0060           GOTO 110
0061         ENDIF
0062       ENDIF
0063       IF(MSTU(115).EQ.1) Q2EFF=Q2EFF+ALAM2
0064       PARU(117)=SQRT(ALAM2)
0065  
0066 C...Evaluate first or second order alpha_strong.
0067       B0=(33D0-2D0*NF)/6D0
0068       ALGQ=LOG(MAX(1.0001D0,Q2EFF/ALAM2))
0069       IF(MSTU(111).EQ.1) THEN
0070         PYALPS=MIN(PARU(115),PARU(2)/(B0*ALGQ))
0071       ELSE
0072         B1=(153D0-19D0*NF)/6D0
0073         PYALPS=MIN(PARU(115),PARU(2)/(B0*ALGQ)*(1D0-B1*LOG(ALGQ)/
0074      &  (B0**2*ALGQ)))
0075       ENDIF
0076       MSTU(118)=NF
0077       PARU(118)=PYALPS
0078  
0079       RETURN
0080       END