]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/peanut/sigfer.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / peanut / sigfer.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:22:04 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.46 by S.Giani
11*-- Author :
12*$ CREATE SIGFER.FOR
13*COPY SIGFER
14*
15*=== sigfer ===========================================================*
16*
17 SUBROUTINE SIGFER ( KP, EKIN, POO, LFERMI )
18
19#include "geant321/dblprc.inc"
20#include "geant321/dimpar.inc"
21#include "geant321/iounit.inc"
22*
23*----------------------------------------------------------------------*
24*----------------------------------------------------------------------*
25*
26#include "geant321/nucdat.inc"
27#include "geant321/nucgeo.inc"
28#include "geant321/paprop.inc"
29 LOGICAL LFERMI
30*
31 IF ( LFERMI ) THEN
32 EKEWLL = EKIN + VPRBIM
33 EEMAX = EKEWLL + EKFBIM + AMNUCL (ITNCMX) + AM (KP)
34 PPRWLL = SQRT ( EKEWLL * ( EKEWLL + 2.D+00 * AM (KP) ) )
35 IF ( PFRBIM .LT. PPRWLL ) THEN
36 PPMAX = PPRWLL + PFRBIM
37 PPMIN = PPRWLL - PFRBIM
38 UMO2 = ( EEMAX + PPMAX ) * ( EEMAX - PPMAX )
39 EKEMIN = 0.5D+00 * ( UMO2 - AM (KP)**2 - AMNUSQ (ITNCMX) )
40 & / AMNUCL (ITNCMX) - AM (KP)
41 EKEMIN = MIN ( EKIN, EKEMIN )
42 TMPEKI = 0.1666D+00 * EKIN
43 EKEMIN = MAX ( EKEMIN, TMPEKI )
44 ELSE
45 EKEMIN = MAX ( 0.005D+00, 0.1666D+00 * EKIN )
46 PPMIN = 0.D+00
47 END IF
48 PPRMIN = SQRT ( EKEMIN * ( EKEMIN + 2.D+00 * AM (KP) ) )
49 UMO2 = ( EEMAX + PPMIN ) * ( EEMAX - PPMIN )
50 EKEMAX = 0.5D+00 * ( UMO2 - AM (KP)**2 - AMNUSQ (ITNCMX) )
51 & / AMNUCL (ITNCMX) - AM (KP)
52 PPRMAX = SQRT ( EKEMAX * ( EKEMAX + 2.D+00 * AM (KP) ) )
53 ELSE
54 EKEMIN = EKIN
55 PPRMIN = POO
56 EKEMAX = EKIN
57 PPRMAX = POO
58 END IF
59*
60 50 CONTINUE
61 GO TO ( 100, 200, 300, 400, 500, 600, 700, 800, 900,
62 & 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800,
63 & 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700,
64 & 2800, 2900, 3000, 3100, 3200, 3300, 3400, 3500, 3600,
65 & 3700, 3800, 3900 ), KP
66 STOP 'GEO-KP'
67 100 CONTINUE
68 IF ( EKEMIN .LE. 0.700D+00 ) THEN
69 BETAPR = PPRMIN / ( EKEMIN + AM (KP) )
70 IF ( EKEMIN .LE. 0.04D+00 ) THEN
71 SIGMAN = 3.D+03 * PI / ( 1.206D+03 * EKEMIN + ( -1.86D+00
72 & + 0.09415D+03 * EKEMIN + 0.0001306D+06 * EKEMIN**2
73 & )**2 ) + 1.D+03 * PI / ( 1.206D+03 * EKEMIN
74 & + ( 0.4223D+00 + 0.13D+03 * EKEMIN )**2 )
75 IF ( EKEMIN .LT. 0.02D+00 ) THEN
76 SIGMAP = 0.3333333333333333D+00 * SIGMAN
77 ELSE
78 SIGMAP = 10.63D+00 / BETAPR**2 - 29.92D+00 / BETAPR
79 & + 42.9D+00
80 END IF
81 ELSE
82 SIGMAN = 34.10D+00 / BETAPR**2 - 82.2D+00 / BETAPR
83 & + 82.2D+00
84 SIGMAP = 10.63D+00 / BETAPR**2 - 29.92D+00 / BETAPR
85 & + 42.9D+00
86 END IF
87 ELSE
88 STOP 'Sigfer: EKE'
89 END IF
90 GO TO 4000
91 200 CONTINUE
92 GO TO 4000
93 300 CONTINUE
94 GO TO 4000
95 400 CONTINUE
96 GO TO 4000
97 500 CONTINUE
98 GO TO 4000
99 600 CONTINUE
100 GO TO 4000
101 700 CONTINUE
102 SIGMAN = 0.D+00
103 SIGMAP = 0.D+00
104 GO TO 4000
105 800 CONTINUE
106 IF ( EKEMIN .LE. 0.700D+00 ) THEN
107 BETAPR = PPRMIN / ( EKEMIN + AM (KP) )
108 IF ( EKEMIN .LE. 0.04D+00 ) THEN
109 SIGMAP = 3.D+03 * PI / ( 1.206D+03 * EKEMIN + ( -1.86D+00
110 & + 0.09415D+03 * EKEMIN + 0.0001306D+06 * EKEMIN**2
111 & )**2 ) + 1.D+03 * PI / ( 1.206D+03 * EKEMIN
112 & + ( 0.4223D+00 + 0.13D+03 * EKEMIN )**2 )
113 IF ( EKEMIN .LT. 0.02D+00 ) THEN
114 SIGMAN = 0.3333333333333333D+00 * SIGMAP
115 ELSE
116 SIGMAN = 10.63D+00 / BETAPR**2 - 29.92D+00 / BETAPR
117 & + 42.9D+00
118 END IF
119 ELSE
120 SIGMAP = 34.10D+00 / BETAPR**2 - 82.2D+00 / BETAPR
121 & + 82.2D+00
122 SIGMAN = 10.63D+00 / BETAPR**2 - 29.92D+00 / BETAPR
123 & + 42.9D+00
124 END IF
125 ELSE
126 STOP 'Sigfer: EKE'
127 END IF
128 GO TO 4000
129 900 CONTINUE
130 GO TO 4000
131 1000 CONTINUE
132 GO TO 4000
133 1100 CONTINUE
134 GO TO 4000
135 1200 CONTINUE
136 GO TO 4000
137 1300 CONTINUE
138 GO TO 4000
139 1400 CONTINUE
140 GO TO 4000
141 1500 CONTINUE
142 GO TO 4000
143 1600 CONTINUE
144 GO TO 4000
145 1700 CONTINUE
146 GO TO 4000
147 1800 CONTINUE
148 GO TO 4000
149 1900 CONTINUE
150 GO TO 4000
151 2000 CONTINUE
152 GO TO 4000
153 2100 CONTINUE
154 GO TO 4000
155 2200 CONTINUE
156 GO TO 4000
157 2300 CONTINUE
158 GO TO 4000
159 2400 CONTINUE
160 GO TO 4000
161 2500 CONTINUE
162 GO TO 4000
163 2600 CONTINUE
164 GO TO 4000
165 2700 CONTINUE
166 GO TO 4000
167 2800 CONTINUE
168 GO TO 4000
169 2900 CONTINUE
170 GO TO 4000
171 3000 CONTINUE
172 GO TO 4000
173 3100 CONTINUE
174 GO TO 4000
175 3200 CONTINUE
176 GO TO 4000
177 3300 CONTINUE
178 GO TO 4000
179 3400 CONTINUE
180 GO TO 4000
181 3500 CONTINUE
182 GO TO 4000
183 3600 CONTINUE
184 GO TO 4000
185 3700 CONTINUE
186 GO TO 4000
187 3800 CONTINUE
188 GO TO 4000
189 3900 CONTINUE
190 GO TO 4000
191 4000 CONTINUE
192 SIGMAP = 0.1D+00 * SIGMAP
193 SIGMAN = 0.1D+00 * SIGMAN
194 RETURN
195*=== End of subroutine sigfer =========================================*
196 END