]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtLi2Spence.F
added a histogram
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtLi2Spence.F
1 C--------------------------------------------------------------------------
2 C
3 C Environment:
4 C      This software is part of the EvtGen package developed jointly
5 C      for the BaBar and CLEO collaborations.  If you use all or part
6 C      of it, please give an appropriate acknowledgement.
7 C
8 C Copyright Information: See EvtGen/COPYRIGHT
9 C      Copyright (C) 1998      Caltech, UCSB
10 C
11 C Module: EvtLi2Spence.F
12 C
13 C Description:
14 C
15 C Modification history:
16 C
17 C    DJL/RYD     August 11, 1998         Module created
18 C
19 C------------------------------------------------------------------------
20 C -----------------------------------------------------------------
21       DOUBLE PRECISION FUNCTION LI2SPENCE(X)
22 C *************************************************************
23 C REAL SPENCE FUNCTION OBTAINED FROM J. VAN DER BIJ
24 C *************************************************************
25        IMPLICIT REAL*8 (A-Z)
26       COMPLEX*16 Y,Z,Z2,SP
27       REAL*8 XR,XI,R2
28       REAL*8 A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2
29       DATA A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2/
30      1 -0.250000000000000D0,
31      2 -0.111111111111111D0,
32      3 -0.010000000000000D0,
33      4 -0.017006802721088D0,
34      5 -0.019444444444444D0,
35      6 -0.020661157024793D0,
36      7 -0.021417300648069D0,
37      8 -0.021948866377231D0,
38      9 -0.022349233811171D0,
39      1 -0.022663689135191D0,
40      2  1.644934066848226D0/
41
42       LI2SPENCE=0
43       XR=X
44       XI=0.0D0
45       R2=XR*XR+XI*XI
46       IF(R2.GT.1.D0.AND.(XR/R2).GT.0.5D0)THEN
47         Y=(X-1.D0)/X
48         Z=-LOG(1.D0-Y)
49         Z2=Z*Z
50         SP=Z*(1.D0+A1*Z*(1.D0+A2*Z*(1.D0+A3*Z2*(1.D0+A4*Z2*
51      1 (1.D0+A5*Z2*(1.D0+A6*Z2*(1.D0+A7*Z2*(1.D0+A8*Z2*(1.D0+A9*Z2*
52      2 (1.D0+A10*Z2))))))))))
53      3 +ZETA2-LOG(X)*LOG(1.D0-X)+0.5D0*LOG(X)**2
54         LI=DREAL(SP)
55         RETURN
56             ELSEIF(R2.GT.1.D0.AND.(XR/R2).LE.0.5D0)THEN
57         Y=1.D0/X
58         Z=-LOG(1.D0-Y)
59         Z2=Z*Z
60         SP=-Z*(1.D0+A1*Z*(1.D0+A2*Z*(1.D0+A3*Z2*(1.D0+A4*Z2*
61      1 (1.D0+A5*Z2*(1.D0+A6*Z2*(1.D0+A7*Z2*(1.D0+A8*Z2*(1.D0+A9*Z2*
62      2 (1.D0+A10*Z2))))))))))
63      3 -ZETA2-0.5D0*LOG(-X)**2
64         LI=DREAL(SP)
65         RETURN
66       ELSEIF(R2.EQ.1.D0.AND.XI.EQ.0.D0)THEN
67         SP=ZETA2
68         LI=DREAL(SP)
69         RETURN
70       ELSEIF(R2.LE.1.D0.AND.XR.GT.0.5D0)THEN
71         Y=1.D0-X
72         Z=-LOG(1.D0-Y)
73         Z2=Z*Z
74         SP=-Z*(1.D0+A1*Z*(1.D0+A2*Z*(1.D0+A3*Z2*(1.D0+A4*Z2*
75      1 (1.D0+A5*Z2*(1.D0+A6*Z2*(1.D0+A7*Z2*(1.D0+A8*Z2*(1.D0+A9*Z2*
76      2 (1.D0+A10*Z2))))))))))
77      3 +ZETA2-LOG(X)*LOG(1.D0-X)
78        LI=DREAL(SP)
79        RETURN
80       ELSEIF(R2.LE.1.D0.AND.XR.LE.0.5D0)THEN
81         Y=X
82         Z=-LOG(1.D0-Y)
83         Z2=Z*Z
84         SP=Z*(1.D0+A1*Z*(1.D0+A2*Z*(1.D0+A3*Z2*(1.D0+A4*Z2*
85      1 (1.D0+A5*Z2*(1.D0+A6*Z2*(1.D0+A7*Z2*(1.D0+A8*Z2*(1.D0+A9*Z2*
86      2 (1.D0+A10*Z2))))))))))
87         LI2SPENCE=DREAL(SP)
88         RETURN
89       ENDIF
90       END
91 C ----------------------------------------------------------------------
92