]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1995/10/24 10:20:04 cernlib | |
6 | * Geant | |
7 | * | |
8 | * | |
9 | #include "geant321/pilot.h" | |
10 | *CMZ : 3.21/02 29/03/94 15.41.44 by S.Giani | |
11 | *-- Author : | |
12 | *$ CREATE NUCREL.FOR | |
13 | *COPY NUCREL | |
14 | * | |
15 | *=== nucrel ===========================================================* | |
16 | * | |
17 | C | |
18 | C HJM 17/11/88 | |
19 | C | |
20 | C MODIFIED ELASTIC SCATTERING ROUTINE | |
21 | C (COMP. KMU-HEP INTERNAL NOTE 88-01) | |
22 | C | |
23 | C------------------------------------------------------------------ | |
24 | C | |
25 | SUBROUTINE NUCREL(IT,PLAB,EKIN,CX,CY,CZ,ANUC,WEE) | |
26 | ||
27 | #include "geant321/dblprc.inc" | |
28 | #include "geant321/dimpar.inc" | |
29 | #include "geant321/iounit.inc" | |
30 | C******************************************************************** | |
31 | C VERSION JULY 81 BY J. RANFT | |
32 | C LEIPZIG | |
33 | C LAST CHANGE A. FERRARI 26-9-89: RECOIL ENERGY SCORING ADDED | |
34 | C | |
35 | C THIS IS A SUBROUTINE OF FLUKA82 TO SAMPLE ELASTIC INTERACTIONS | |
36 | C | |
37 | C INPUT VARIABLES: | |
38 | C IT = TYPE OF THE PRIMARY | |
39 | C PLAB = PRIMARY PARTICLE LAB MOMENTUM (GEV/C) | |
40 | C CX,CY,CZ = PRIMARY PARTICLE DIRECTION COSINES | |
41 | C ANUC = ATOMIC WEIGHT OF THE TARGET NUCLEUS | |
42 | C | |
43 | C OUTPUT VARIABLES: | |
44 | C CCX,CCY,CCZ = DIRECTION COSINES OF SCATTERED PARTICLE | |
45 | C | |
46 | C******************************************************************** | |
47 | C | |
48 | PARAMETER (AMUC12 = 0.9314943228D0) | |
49 | #include "geant321/aadat.inc" | |
50 | #include "geant321/finuc.inc" | |
51 | *------ Common part has been added by A. Ferrari ----------------------* | |
52 | #include "geant321/part2.inc" | |
53 | C---------------------------------------------------------------- | |
54 | REAL RNDM(1) | |
55 | DIMENSION ITT(NALLWP),SHP(6),BP(6),XNN(6,6),BA(6,6),XNA(6),AM(6) | |
56 | SAVE ITT,SHP,BP,XNN,BA,XNA,AM | |
57 | DATA ITT/1,2,0,0,0,0,0,1,2,0,0,5,3,4,5,6,1,2,5,1,1,1,3,5,6, | |
58 | & 3,0,0,0,1,2,2,2,1,2,1,2,1,2/ | |
59 | C ITT(IT) - INTERNAL PARTICLE NUMBER | |
60 | DATA AM/ 9.01D0, 12.01D0, 26.98D0, 63.55D0, 118.69D0, 207.19D0/ | |
61 | C AM - ATOMIC WEIGHTS OF SEVERAL TARGET MATERIALS | |
62 | DATA XNA/3.5D0, 3.4D0, 4.5D0, 6.7D0, 8.2D0, 9.5D0/ | |
63 | C XNA(AM) - EFFECTIVE NUCLEON NUMBER | |
64 | DATA BP/12.D0, 12.D0, 4*10.D0/ | |
65 | C BP(IIT) - INCOHERENT SLOPE (GEV/C)**-2 | |
66 | DATA SHP/2*40.D0, 2*25.D0, 2*20.D0/ | |
67 | C SHP(IIT) - TOTAL HADRON - NUCLEON CROSS SECTION (MB) | |
68 | C((((((((((((((( BA(IIT,A) XNN(IIT,A) ((((((((((((((((( | |
69 | C BA - COHERENT SLOPE (GEV/C)**-2 | |
70 | C XNN - NORMALIZATION FOR PROJECTILE -NUCLEUS SCATTERING (MB) | |
71 | DATA XNN/ | |
72 | ( 256.6D0, 240.5D0, 181.0D0, 167.1D0, 144.0D0, 139.0D0, | |
73 | ( 335.3D0, 355.0D0, 241.0D0, 229.7D0, 181.5D0, 196.0D0, | |
74 | ( 755.1D0, 1344.0D0, 506.0D0, 480.8D0, 431.0D0, 403.0D0, | |
75 | (1656.0D0, 1886.0D0, 1104.0D0, 1144.0D0, 914.0D0, 939.0D0, | |
76 | (3005.0D0, 2559.0D0, 2112.0D0, 2068.0D0, 1723.0D0, 1791.0D0, | |
77 | (5123.0D0, 5444.0D0, 4071.0D0, 3391.0D0, 3368.0D0, 3168.0D0/ | |
78 | DATA BA/ | |
79 | ( 72.0D0, 69.3D0, 65.2D0, 63.4D0, 60.0D0, 65.6D0, | |
80 | ( 72.3D0, 75.9D0, 65.5D0, 63.1D0, 59.5D0, 68.1D0, | |
81 | (119.4D0, 128.7D0, 107.3D0, 105.0D0, 105.6D0, 98.8D0, | |
82 | (201.0D0, 212.0D0, 188.9D0, 183.0D0, 179.0D0, 178.0D0, | |
83 | (311.0D0, 315.0D0, 286.0D0, 277.0D0, 270.0D0, 266.0D0, | |
84 | (454.0D0, 448.0D0, 435.0D0, 397.0D0, 416.0D0, 403.0D0/ | |
85 | C | |
86 | C******************************************************************** | |
87 | C PARAMETRIZATION | |
88 | C DSIGMA/DOMEGA=C*EXP(-DS*THETA**2)+E*EXP(-FS*THETA**2) | |
89 | C COHERENT PART INCOHERENT PART | |
90 | C******************************************************************** | |
91 | C | |
92 | C*** | |
93 | NP=1 | |
94 | TV=0.D0 | |
95 | C*** | |
96 | IF(IT.EQ.30) GO TO 301 | |
97 | IF(ANUC.LT.0.99D0) THEN | |
98 | CXR(1)=CX | |
99 | CYR(1)=CY | |
100 | CZR(1)=CZ | |
101 | TKI(1)=EKIN | |
102 | PLR(1)=PLAB | |
103 | KPART(1)=IT | |
104 | RETURN | |
105 | ENDIF | |
106 | C | |
107 | C-------------------------------------------------------------------- | |
108 | C HJM 10/88 ELASTIC SCATTERING INTO 2-BODY FINALSTATE | |
109 | C FOR NUCLEON-PROTON INITIAL STATE | |
110 | C AF 9/91 ALSO PBAR,NBAR-PROTON | |
111 | C FINAL STATE PARTICLES IN /FINUC/ | |
112 | IF( (ANUC.LT.1.5D0) .AND. (IT.LE.2 .OR. IT.EQ.8 .OR. IT.EQ.9) | |
113 | & .AND. (EKIN.LT.3.5D0) ) THEN | |
114 | CALL NUPREL(IT,EKIN,PLAB,CX,CY,CZ) | |
115 | WEI(1)=WEE | |
116 | WEI(2)=WEE | |
117 | C | |
118 | RETURN | |
119 | ENDIF | |
120 | C------------------------------------------------------------------- | |
121 | C | |
122 | C******************************************************************** | |
123 | C 1=P,N, 2=AP,AN, 3=PI+, 4=PI-, 5=K+,K0, 6=K-,K0 BAR | |
124 | C******************************************************************** | |
125 | C | |
126 | IIT=ITT(IT) | |
127 | IF(IIT.EQ.0)RETURN | |
128 | AP=PLAB | |
129 | AP2=AP**2 | |
130 | A=ANUC | |
131 | IF(IIT.GE.2) GO TO 101 | |
132 | IF(AP.GT.20.D0) GO TO 101 | |
133 | C | |
134 | C******************************************************************** | |
135 | C FOR PROTONS BELOW 20 GEV/C | |
136 | C DSIGMA/DOMEGA=12.5*A**1.63*EXP(-14.5*A**0.66*T)+ | |
137 | C 17.5*A**0.33*EXP(-10*T) FOR A<62 | |
138 | C | |
139 | C DSIGMA/DOMEGA=50*A**1.33*EXP(-60*A**0.33*T)+ | |
140 | C 20*A**0.4*EXP(-10*T) FOR A>62 | |
141 | C******************************************************************** | |
142 | C | |
143 | A3=A**0.3333333333333333D0 | |
144 | ATAR=A | |
145 | IF (ATAR .GT. 62.D0) GO TO 1 | |
146 | C=12.5D0*A**1.63D0 | |
147 | DS=14.5D0*A3*A3*AP2 | |
148 | E=17.5D0*A3 | |
149 | GO TO 2 | |
150 | 1 CONTINUE | |
151 | C=50.D0*A3*A | |
152 | DS=60.D0*A3*AP2 | |
153 | E=20.D0*A**0.4D0 | |
154 | 2 CONTINUE | |
155 | FS=10.D0*AP2 | |
156 | GO TO 3 | |
157 | C | |
158 | C******************************************************************** | |
159 | C FOR PROTONS OVER 20 GEV/C AND OTHER PARTICLES | |
160 | C******************************************************************** | |
161 | C | |
162 | 101 CONTINUE | |
163 | DO 200 I=1,6 | |
164 | IF(A.LE.AM(I)) GO TO 201 | |
165 | 200 CONTINUE | |
166 | K=6 | |
167 | GO TO 202 | |
168 | 201 K=I | |
169 | 202 KK=K+1 | |
170 | IF(KK.GT.6) KK=K-1 | |
171 | XNEL=XNN(IIT,K)+(A-AM(K))*(XNN(IIT,KK)-XNN(IIT,K))/(AM(KK)-AM(K)) | |
172 | C=XNEL**2 | |
173 | DS=LOG(BA(IIT,KK)/BA(IIT,K))/LOG(AM(KK)/AM(K)) | |
174 | DS=BA(IIT,K)*(A/AM(K))**DS | |
175 | DS=DS*AP2 | |
176 | E=XNA(K)+(A-AM(K))*(XNA(KK)-XNA(K))/(AM(KK)-AM(K)) | |
177 | E=E*SHP(IIT)**2 | |
178 | FS=BP(IIT)*AP2 | |
179 | GO TO 3 | |
180 | C | |
181 | C******************************************************************** | |
182 | C FOR HEAVY IONS: | |
183 | C | |
184 | C FOR APROJ>25 OR (APROJ>10 AND ATARG>100) | |
185 | C DSIG/DOM = 216 * PTOT**1.86 * (AP**0.7 + AT**0.7)**2.2 * | |
186 | C EXP(-16.1 * (AP**1.2 + AT**0.9)**0.8 * T) + | |
187 | C 0.3 * PTOT**1.86 * (AP**0.7 + AT**0.7)**2.2 * EXP(-23 * T) | |
188 | C | |
189 | C FOR LIGHTER NUCLIDES: | |
190 | C DSIG/DOM = 78 * PTOT**1.78 * (AP + AT**0.9)**2.1 * | |
191 | C EXP(-16.1 * (AP**1.2 + AT**0.9)**0.8 * T) + | |
192 | C 0.5 * PTOT**1.78 * (AP + AT**0.9)**2.1 * EXP(-30 * T) | |
193 | C | |
194 | C THE PARAMETRIZATION IS OBTAINED BY FITTING TO | |
195 | C DATA GENERATED BY THE SOFT-SPHERES MODEL. | |
196 | C (REF. CHAUVIN & AL. PHYS.REV.C. 28 1970 (1983)) | |
197 | C THE PARAMETRIZATION IS QUITE CRUDE AND FAILS AT LARGE | |
198 | C ANGLES. | |
199 | C THERE IS NO EXPERIMENTAL VERIFICATION FOR THE MODEL AT | |
200 | C ENERGIES ABOVE 100 MEV/A | |
201 | C MIKA HUHTINEN 25.8.88 | |
202 | C******************************************************************** | |
203 | C | |
204 | 301 CONTINUE | |
205 | ITARA=NINT(ANUC) | |
206 | C ALWAYS LET THE LIGHTER PARTICLE BE THE PROJECTILE (THEN THE | |
207 | C PARAMETRIZATION WILL GIVE BETTER RESULTS) | |
208 | IF (ITARA.GE.IPROA) THEN | |
209 | PROA=IPROA | |
210 | TARA=ITARA | |
211 | ELSE | |
212 | PROA=ITARA | |
213 | TARA=IPROA | |
214 | ENDIF | |
215 | C TOTAL LAB. MOMENTUM | |
216 | PLTOT=PLAB*PROA | |
217 | C SQUARE OF CMS MOMENTUM | |
218 | AP2=((PLTOT*TARA)/(TARA+PROA))**2 | |
219 | ||
220 | DS=16.1D0*(PROA**1.2D0 + TARA**0.9D0)**0.8D0*AP2 | |
221 | ||
222 | IF (PROA.GT.25.D0) GO TO 302 | |
223 | IF ((PROA.GT.10.D0).AND.(TARA.GT.100.D0)) GO TO 302 | |
224 | ||
225 | CFF=PLTOT**1.78D0*(PROA + TARA**0.9D0)**2.1D0 | |
226 | C=78.D0*CFF | |
227 | E=0.5D0*CFF | |
228 | FS=30.D0*AP2 | |
229 | GO TO 3 | |
230 | ||
231 | 302 CONTINUE | |
232 | CFF=PLTOT**1.86D0*(PROA**0.7D0 + TARA**0.7D0)**2.2D0 | |
233 | C=216.D0*CFF | |
234 | E=0.3D0*CFF | |
235 | FS=23.D0*AP2 | |
236 | C | |
237 | C******************************************************************** | |
238 | C SAMPLE THE ANGLE AND ROTATE TO GET NEW DIRECTION COSINES | |
239 | C******************************************************************** | |
240 | C | |
241 | 3 CONTINUE | |
242 | EDS=1.D-9 | |
243 | IF(DS.LT.10.5D0) EDS=EXP(-2.D0*DS) | |
244 | EDS2=EDS**2 | |
245 | DD=C*(1.D0-EDS2)/DS | |
246 | EFS=1.D-9 | |
247 | IF(FS.LT.10.5D0) EFS=EXP(-2.D0*FS) | |
248 | EFS2=EFS**2 | |
249 | FF=E*(1.D0-EFS2)/FS | |
250 | DF=2.D0*DS | |
251 | CALL GRNDM(RNDM,1) | |
252 | VV=RNDM(1)*(DD+FF) | |
253 | IF (VV.GT.DD) DF=2.D0*FS | |
254 | 31 CONTINUE | |
255 | CALL GRNDM(RNDM,1) | |
256 | V2=LOG(RNDM(1))/DF | |
257 | IF (ABS(V2).GT.2.D0) GO TO 31 | |
258 | V1=V2 | |
259 | COD=V1+1.D0 | |
260 | SID=SQRT(-V1*(2.D0+V1)) | |
261 | * ******* Computing the recoil energy!!!! A. Ferrari, 26-9-89 ******* * | |
262 | KP = IPTOKP (IT) | |
263 | APP2 = AAM(KP)**2 | |
264 | EPROJ = EKIN + AAM(KP) | |
265 | * +-------------------------------------------------------------------* | |
266 | * | Hydrogen: generate the recoil proton | |
267 | IF ( ANUC .LT. 1.2D+00 ) THEN | |
268 | ATT = AAM (1) | |
269 | ATT2 = ATT**2 | |
270 | ETTT = EPROJ + ATT | |
271 | PTTL = PLAB | |
272 | PTTT = 0.D+00 | |
273 | HELP = ATT2 - APP2 * ( 1.D+00 - COD ) * ( 1.D+00 + COD ) | |
274 | * | Now: it can happen for amproj > amprot on hydrogen. | |
275 | IF ( HELP .LT. 0.D+00 ) GO TO 3 | |
276 | PLAB = PLAB * ( ( APP2 + ATT*EPROJ ) * COD + (EPROJ + ATT) | |
277 | & * SQRT (HELP) ) / ( (EPROJ + ATT)**2 - (PLAB*COD)**2 ) | |
278 | NP = 2 | |
279 | TV = 0.D+00 | |
280 | WEI (1) = WEE | |
281 | WEI (2) = WEE | |
282 | KPART (1) = IT | |
283 | KPART (2) = 1 | |
284 | TKI (1) = SQRT ( PLAB**2 + APP2 ) - AAM (KP) | |
285 | TKI (2) = EKIN - TKI (1) | |
286 | EKIN = TKI (1) | |
287 | PLR (1) = PLAB | |
288 | PLR (2) = SQRT ( TKI (2) * ( TKI (2) + 2.D+00 * AAM (1) ) ) | |
289 | CALL SFECFE ( SFE, CFE ) | |
290 | CALL TTRANS ( CX, CY, CZ, COD, SID, SFE, CFE, CCX, CCY, CCZ ) | |
291 | CXR (1) = CCX | |
292 | CYR (1) = CCY | |
293 | CZR (1) = CCZ | |
294 | SINTHE = PLAB / PLR (2) * SID | |
295 | COSTHE = SQRT ( ( 1.D+00 - SINTHE ) * ( 1.D+00 + SINTHE ) ) | |
296 | CFE = - CFE | |
297 | SFE = - SFE | |
298 | CALL TTRANS ( CX, CY, CZ, COSTHE, SINTHE, SFE, CFE, CXR (2), | |
299 | & CYR (2), CZR (2) ) | |
300 | RETURN | |
301 | * | | |
302 | * +-------------------------------------------------------------------* | |
303 | * | "Heavy" nuclei | |
304 | * | the following line to patch el. scatt. of an, ap, lambdas, sigmas | |
305 | * | etc on hydrogen ( Now it should be useless ) | |
306 | ELSE | |
307 | ATT = MAX ( ANUC * AMUC12, AAM (KP) ) | |
308 | ATT2 = ATT**2 | |
309 | HELP = ATT2 - APP2 * ( 1.D+00 - COD ) * ( 1.D+00 + COD ) | |
310 | PLAB = PLAB*( (APP2 + ATT*EPROJ)*COD + (EPROJ + ATT) | |
311 | & * SQRT (HELP) ) / ( (EPROJ + ATT)**2 - (PLAB*COD)**2 ) | |
312 | TV = EPROJ - SQRT ( PLAB**2 + APP2 ) | |
313 | EKIN = EKIN - TV | |
314 | * | ***** The following lines only for debugging ***** | |
315 | IF ( PLAB .LE. 0.D+00 ) THEN | |
316 | WRITE (LUNOUT,*)' *** Nucrel: plab',PLAB,' ***' | |
317 | WRITE (LUNERR,*)' *** Nucrel: plab',PLAB,' ***' | |
318 | END IF | |
319 | * | ***** End debugging lines ***** | |
320 | END IF | |
321 | * | Now the recoil energy is put into Tv | |
322 | * +-------------------------------------------------------------------* | |
323 | CALL SFECFE(SFE,CFE) | |
324 | CALL TTRANS(CX,CY,CZ,COD,SID,SFE,CFE,CCX,CCY,CCZ) | |
325 | C--------------------------------------------------------- | |
326 | C MODIFICATION HJM 28/10/88 | |
327 | C NOTE: HEAVY ION OPTION NOT CONSISTENTLY TREATED NOW]]] | |
328 | C | |
329 | WEI(1)=WEE | |
330 | CXR(1)=CCX | |
331 | CYR(1)=CCY | |
332 | CZR(1)=CCZ | |
333 | TKI(1)=EKIN | |
334 | PLR(1)=PLAB | |
335 | KPART(1)=IT | |
336 | RETURN | |
337 | END |