]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/sigint.F
Separated TOF libraries (base,rec,sim)
[u/mrichter/AliRoot.git] / ISAJET / code / sigint.F
1 #include "isajet/pilot.h"
2       SUBROUTINE SIGINT(F,Z,A1S,B1S,A2S,B2S)
3 C
4 C          F(N+1) = INT(-Z,Z)(DX X**N/((A1+B1*X)*A2+B2*X)))
5 C          F(8) = F(9) = 0 (DUMMY VALUES)
6 C
7       DIMENSION F(9)
8 #if defined(CERNLIB_DOUBLE)
9       DOUBLE PRECISION A1,B1,A2,B2,A,B,C,Z,F,A1S,B1S,A2S,B2S
10 #endif
11 C
12       A1=A1S
13       B1=B1S
14       A2=A2S
15       B2=B2S
16       F(8)=0.
17       F(9)=0.
18 C
19 C          SPECIAL CASE: X**N/(A1*A2)
20       IF(B1.EQ.0..AND.B2.EQ.0.) THEN
21         F(1)=2.*Z/(A1*A2)
22         F(2)=0.
23         F(3)=2.*Z**3/(3.*A1*A2)
24         F(4)=0.
25         F(5)=2.*Z**5/(5.*A1*A2)
26         F(6)=0.
27         F(7)=2.*Z**7/(7.*A1*A2)
28         RETURN
29       ENDIF
30 C
31 C          SPECIAL CASE: X**N/(A+BX)
32       IF(B1.EQ.0..OR.B2.EQ.0.) THEN
33         IF(B1.EQ.0.) THEN
34           A=A2/B2
35           C=1./(A1*B2)
36         ELSE
37           A=A1/B1
38           C=1./(A2*B1)
39         ENDIF
40         F(1)=LOG((A+Z)/(A-Z))
41         F(1)=F(1)*C
42         F(2)=-A*LOG((A+Z)/(A-Z))+2.*Z
43         F(2)=F(2)*C
44         F(3)=A**2*LOG((A+Z)/(A-Z))-2.*A*Z
45         F(3)=F(3)*C
46         F(4)=-A**3*LOG((A+Z)/(A-Z))+2.*A**2*Z+2.*Z**3/3.
47         F(4)=F(4)*C
48         F(5)=A**4*LOG((A+Z)/(A-Z))-2.*A**3*Z-2.*A*Z**3/3.
49         F(5)=F(5)*C
50         F(6)=-A**5*LOG((A+Z)/(A-Z))+2.*A**4*Z+2.*A**2*Z**3/3.+2.*Z**5/5.
51         F(6)=F(6)*C
52         F(7)=A**6*LOG((A+Z)/(A-Z))-2.*A**5*Z-2.*A**3*Z**3/3.
53      $  -2.*A*Z**5/5.
54         F(7)=F(7)*C
55         RETURN
56       ENDIF
57 C
58 C          B1 AND B2 NONZERO
59       A1=A1/B1
60       A2=A2/B2
61       C=1./(B1*B2)
62 C
63 C          SPECIAL CASE: X**N/(A+B*X)**2
64       IF(A1.EQ.A2) THEN
65         A=A1
66         F(1)=2.*Z/(A**2-Z**2)
67         F(1)=F(1)*C
68         F(2)=-2.*A*Z/(A**2-Z**2)+LOG((A+Z)/(A-Z))
69         F(2)=F(2)*C
70         F(3)=(4.*A**2*Z-2.*Z**3)/(A**2-Z**2)-2.*A*LOG((A+Z)/(A-Z))
71         F(3)=F(3)*C
72         F(4)=(4.*A*Z**3-6.*A**3*Z)/(A**2-Z**2)+3.*A**2*LOG((A+Z)/(A-Z))
73         F(4)=F(4)*C
74         F(5)=(-16.*A**2*Z**3/3.+8.*A**4*Z-2.*Z**5/3.)/(A**2-Z**2)
75      $  -4.*A**3*LOG((A+Z)/(A-Z))
76         F(5)=F(5)*C
77         F(6)=(4.*A*Z**5/3.+20.*A**3*Z**3/3.-10.*A**5*Z)/(A**2-Z**2)
78      $  +5*A**4*LOG((A+Z)/(A-Z))
79         F(6)=F(6)*C
80         F(7)=(-8.*A**2*Z**5/5.-8.*A**4*Z**3+12.*A**6*Z-2.*Z**7/5.)
81      $  /(A**2-Z**2)-6.*A**5*LOG((A+Z)/(A-Z))
82         F(7)=F(7)*C
83         RETURN
84       ENDIF
85 C
86 C          GENERAL CASE
87       F(1)=(-LOG((A1+Z)/(A1-Z))+LOG((A2+Z)/(A2-Z)))/(A1-A2)
88       F(1)=F(1)*C
89       F(2)=(A1*LOG((A1+Z)/(A1-Z))-A2*LOG((A2+Z)/(A2-Z)))/(A1-A2)
90       F(2)=F(2)*C
91       F(3)=(-A1**2*LOG((A1+Z)/(A1-Z))+A2**2*LOG((A2+Z)/(A2-Z)))/(A1-A2)
92      $+2.*Z
93       F(3)=F(3)*C
94       F(4)=(A1**3*LOG((A1+Z)/(A1-Z))-A2**3*LOG((A2+Z)/(A2-Z)))/(A1-A2)
95      $+2.*Z*(-A1-A2)
96       F(4)=F(4)*C
97       F(5)=(-A1**4*LOG((A1+Z)/(A1-Z))+A2**4*LOG((A2+Z)/(A2-Z)))/(A1-A2)
98      $+2.*Z*(A1*A2+A1**2+A2**2)+2.*Z**3/3.
99       F(5)=F(5)*C
100       F(6)=(A1**5*LOG((A1+Z)/(A1-Z))-A2**5*LOG((A2+Z)/(A2-Z)))/(A1-A2)
101      $+2.*Z*(-A1*A2**2-A1**2*A2-A1**3-A2**3)+2.*Z**3/3.*(-A1-A2)
102       F(6)=F(6)*C
103       F(7)=(-A1**6*LOG((A1+Z)/(A1-Z))+A2**6*LOG((A2+Z)/(A2-Z)))/(A1-A2)
104      $+2.*Z*(A1*A2**3+A1**2*A2**2+A1**3*A2+A1**4+A2**4)
105      $+2.*Z**3/3.*(A1*A2+A1**2+A2**2)+2.*Z**5/5.
106       F(7)=F(7)*C
107       RETURN
108       END