5 * Revision 1.1.1.1 1995/10/24 10:21:00 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.38 by S.Giani
12 SUBROUTINE CASPIM(K,INT,NFL)
14 C *** CASCADE OF PI- ***
15 C *** NVE 04-MAY-1988 CERN GENEVA ***
17 C ORIGIN : H.FESEFELDT 13-SEP-1987
19 C PI- UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
20 C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
21 C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
22 C IS DEGRADED IN ENERGY. NO OTHER PARTICLES PRODUCED.
23 C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
24 C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
25 C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
26 C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
28 #include "geant321/mxgkgh.inc"
29 #include "geant321/s_consts.inc"
30 #include "geant321/s_curpar.inc"
31 #include "geant321/s_result.inc"
32 #include "geant321/s_prntfl.inc"
33 #include "geant321/limits.inc"
34 #include "geant321/s_kginit.inc"
37 DIMENSION PMUL(2,1200),ANORM(2,60),SUPP(10),CECH(10),B(2)
40 DATA SUPP/0.,0.4,0.55,0.65,0.75,0.82,0.86,0.90,0.94,0.98/
41 DATA CECH/1.,0.95,0.79,0.32,0.19,0.16,0.14,0.12,0.10,0.08/
42 DATA B/0.7,0.7/,C/1.25/
44 C --- INITIALIZATION INDICATED BY KGINIT(16) ---
45 IF (KGINIT(16) .NE. 0) GO TO 10
48 C --- INITIALIZE PMUL AND ANORM ARRAYS ---
52 IF (J .LE. 60) ANORM(I,J)=0.0
56 C *** COMPUTATION OF NORMALIZATION CONSTANTS ***
63 IF (NMM1 .LE. 1) NMM1=1
72 IF (L .GT. 1200) GOTO 1199
74 IF (NT .LE. 0) GO TO 1102
75 IF (NT .GT. 60) GO TO 1102
76 PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
77 ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
98 IF (L .GT. 1200) GO TO 1299
100 IF (NT .LE. 0) GO TO 1202
101 IF (NT .GT. 60) GO TO 1202
102 PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
103 ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
113 IF (ANORM(1,I) .GT. 0.0) ANORM(1,I)=1.0/ANORM(1,I)
114 IF (ANORM(2,I) .GT. 0.0) ANORM(2,I)=1.0/ANORM(2,I)
117 IF (.NOT. NPRT(10)) GO TO 10
120 WRITE(NEWBCD,2002) NFL
121 WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
122 WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
125 C --- CHOOSE PROTON OR NEUTRON AS TARGET ---
129 IF (RNDM(1) .LT. ZNO2/ATNO2) NFL=1
131 IF (NFL .EQ. 2) TARMAS=RMASS(16)
132 S=AMASQ+TARMAS**2+2.0*TARMAS*EN
134 ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
136 EAB=RS-TARMAS-RMASS(9)
138 C --- ELASTIC SCATTERING ---
145 IF (NFL .EQ. 2) IPA(2)=16
146 IF (INT .EQ. 2) GOTO 20
149 C --- CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
151 IF (EAB .LE. RMASS(9)) GO TO 55
153 C --- SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM ---
155 IF (IEAB .GT. 10) GO TO 22
157 IF (RNDM(1) .LT. SUPP(IEAB)) GO TO 22
159 C --- CHARGE EXCHANGE REACTION (IS INCLUDED IN INELASTIC CROSS SECTION)
161 IF (IPLAB .GT. 10) IPLAB=10
163 IF (RNDM(1) .GT. CECH(IPLAB)) GO TO 23
165 IF (NFL .EQ. 1) GOTO 24
182 IF (NFL .EQ. 1) GO TO 26
185 DUM=-(1+B(2))**2/(2.0*C**2)
186 IF (DUM .LT. EXPXL) DUM=EXPXL
187 IF (DUM .GT. EXPXU) DUM=EXPXU
189 DUM=-(-1+B(2))**2/(2.0*C**2)
190 IF (DUM .LT. EXPXL) DUM=EXPXL
191 IF (DUM .GT. EXPXU) DUM=EXPXU
198 IF (RAN .LT. W0/(W0+WM)) GO TO 50
206 DUM=-(1+B(1))**2/(2.0*C**2)
207 IF (DUM .LT. EXPXL) DUM=EXPXL
208 IF (DUM .GT. EXPXU) DUM=EXPXU
211 DUM=-(-1+B(1))**2/(2.0*C**2)
212 IF (DUM .LT. EXPXL) DUM=EXPXL
213 IF (DUM .GT. EXPXU) DUM=EXPXU
223 IF (RAN .LT. W0/WT) GO TO 50
227 IF (RAN .LT. WP/WT) GO TO 50
236 C --- NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP ---
237 N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
238 $ +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
241 C --- NORMALIZATION CONSTANT FOR KNO-DISTRIBUTION ---
244 TEST=-(PI/4.0)*(NT/N)**2
245 IF (TEST .LT. EXPXL) TEST=EXPXL
246 IF (TEST .GT. EXPXU) TEST=EXPXU
251 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
252 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
260 IF (NFL .EQ. 2) GO TO 40
267 IF (NMM1 .LE. 1) NMM1=1
276 IF (L .GT. 1200) GO TO 80
278 IF (NT .LE. 0) GO TO 312
279 IF (NT .GT. 60) GO TO 312
280 TEST=-(PI/4.0)*(NT/N)**2
281 IF (TEST .LT. EXPXL) TEST=EXPXL
282 IF (TEST .GT. EXPXU) TEST=EXPXU
283 DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
287 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
288 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
290 IF (RAN .LT. EXCS) GOTO 50
311 IF (L .GT. 1200) GO TO 80
313 IF (NT .LE. 0) GO TO 412
314 IF (NT .GT. 60) GO TO 412
315 TEST=-(PI/4.0)*(NT/N)**2
316 IF (TEST .LT. EXPXL) TEST=EXPXL
317 IF (TEST .GT. EXPXU) TEST=EXPXU
318 DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
322 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
323 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
325 IF (RAN .LT. EXCS) GOTO 50
334 IF (NFL .EQ. 2) GO TO 65
337 IF (NP .EQ. NM) GO TO 61
338 IF (NP .EQ. 1+NM) GO TO 63
345 IF (RNDM(1) .LT. 0.75) GO TO 62
362 IF (NP .EQ. -1+NM) GO TO 66
363 IF (NP .EQ. NM) GO TO 68
370 IF (RNDM(1) .LT. 0.50) GO TO 67
386 IF (NPRT(4)) WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
388 IF (INT .EQ. 1) CALL TWOB(9,NFL,N)
389 IF (INT .EQ. 2) CALL GENXPT(9,NFL,N)
392 C --- ENERGETICALLY NOT POSSIBLE TO PRODUCE CASCADE-PARTICLES ---
393 C --- CONTINUE WITH QUASI-ELASTIC SCATTERING ---
395 IF (NPRT(4)) WRITE(NEWBCD,1001)
398 C --- EXCLUSIVE REACTION NOT FOUND ---
400 IF (NPRT(4)) WRITE(NEWBCD,1004) RS,N
410 IF (NFL .EQ. 2) IPA(2)=16
416 IF (INT .LE. 0) GO TO 131
420 IF (NP .EQ. 0) GO TO 122
427 IF (NM .EQ. 0) GO TO 124
434 IF (NZ .EQ. 0) GO TO 130
441 IF (NPRT(4)) WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
442 IF (IPA(1) .EQ. 7) NP=NP+1
443 IF (IPA(1) .EQ. 8) NZ=NZ+1
444 IF (IPA(1) .EQ. 9) NM=NM+1
448 IF (NPRT(4)) WRITE(NEWBCD,2005)
450 1001 FORMAT('0*CASPIM* CASCADE ENERGETICALLY NOT POSSIBLE',
451 $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
452 1003 FORMAT(' *CASPIM* PION- -INDUCED CASCADE, AVAIL. ENERGY',2X,F8.4,
453 $ 2X,'<NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
454 1004 FORMAT(' *CASPIM* PION- -INDUCED CASCADE, EXCLUSIVE REACTION',
455 $ ' NOT FOUND TRY ELASTIC SCATTERING AVAIL. ENERGY',2X,F8.4,2X,
457 2001 FORMAT('0*CASPIM* TABLES FOR MULTIPLICITY DATA PION- INDUCED',
458 $ 'REACTION FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
459 2002 FORMAT(' *CASPIM* TARGET PARTICLE FLAG',2X,I5)
460 2003 FORMAT(1H ,10E12.4)
461 2004 FORMAT(' *CASPIM* ',I3,2X,'PARTICLES, MASS INDEX ARRAY',2X,20I4)
462 2005 FORMAT(' *CASPIM* NO PARTICLES PRODUCED')