]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ISAJET/code/sigint.F
Added the magnetic field as a static member of the AliL3Transform class,
[u/mrichter/AliRoot.git] / ISAJET / code / sigint.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE SIGINT(F,Z,A1S,B1S,A2S,B2S)
3C
4C F(N+1) = INT(-Z,Z)(DX X**N/((A1+B1*X)*A2+B2*X)))
5C F(8) = F(9) = 0 (DUMMY VALUES)
6C
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
11C
12 A1=A1S
13 B1=B1S
14 A2=A2S
15 B2=B2S
16 F(8)=0.
17 F(9)=0.
18C
19C 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
30C
31C 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
57C
58C B1 AND B2 NONZERO
59 A1=A1/B1
60 A2=A2/B2
61 C=1./(B1*B2)
62C
63C 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
85C
86C 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