5 * Revision 1.1.1.1 1995/10/24 10:21:02 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.39 by S.Giani
12 SUBROUTINE CASL0(K,INT,NFL)
14 C *** CASCADE OF LAMBDA ***
15 C *** NVE 04-MAY-1988 CERN GENEVA ***
17 C ORIGIN : H.FESEFELDT (13-SEP-1987)
19 C L0 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/s_kginit.inc"
34 #include "geant321/limits.inc"
37 DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),IIPA(10,2),B(2)
40 DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
41 DATA IIPA/20,21,14,14,16,21,22,16,16,14,
42 * 16,14,18,21,20,16,14,18,21,22/
43 DATA B/0.7,0.7/,C/1.25/
45 C --- INITIALIZATION INDICATED BY KGINIT(8) ---
46 IF (KGINIT(8) .NE. 0) GO TO 10
49 C --- INITIALIZE PMUL AND ANORM ARRAYS ---
53 IF (J .LE. 60) ANORM(I,J)=0.0
57 C** COMPUTE NORMALIZATION CONSTANTS
73 IF(NT.LE.0.OR.NT.GT.60) GOTO 1
74 PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
75 ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
91 IF(NT.LE.0.OR.NT.GT.60) GOTO 2
92 PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
93 ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
96 IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
97 IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
99 IF(.NOT.NPRT(10)) GOTO 10
102 WRITE(NEWBCD,2002) NFL
103 WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
104 WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
106 C** CHOOSE PROTON OR NEUTRON AS TARGET
109 IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
111 IF (NFL .EQ. 2) TARMAS=RMASS(16)
112 S=AMASQ+TARMAS**2+2.0*TARMAS*EN
114 ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
116 EAB=RS-TARMAS-RMASS(18)
117 C** ELASTIC SCATTERING
124 IF(NFL.EQ.2) IPA(2)=16
126 C** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTIONS
127 C** LP --> S+N, LP --> S0 P , LN --> S0 N , LN --> S- P
128 C** LP --> P L, LP --> P S0 , LP --> N S+
129 C** LN --> N L, LN --> N S0 , LN --> P S-
131 IF(IPLAB.GT.10) IPLAB=10
133 IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 120
142 C** CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
143 20 IF (EAB .LE. RMASS(7)) GOTO 55
145 C** NO. OF TOTAL PARTICLES VS SQRT(S)-MP-MSM
146 N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
147 * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
149 C** NORMALIZATION CONSTANT FOR KNO-DISTRIBUTION
152 TEST=-(PI/4.0)*(NT/N)**2
153 IF (TEST .LT. EXPXL) TEST=EXPXL
154 IF (TEST .GT. EXPXU) TEST=EXPXU
159 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
160 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
181 IF(L.GT.1200) GOTO 31
183 IF(NT.LE.0.OR.NT.GT.60) GOTO 31
184 TEST=-(PI/4.0)*(NT/N)**2
185 IF (TEST .LT. EXPXL) TEST=EXPXL
186 IF (TEST .GT. EXPXU) TEST=EXPXU
187 DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
191 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
192 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
194 IF(RAN.LT.EXCS) GOTO 100
209 IF(L.GT.1200) GOTO 41
211 IF(NT.LE.0.OR.NT.GT.60) GOTO 41
212 TEST=-(PI/4.0)*(NT/N)**2
213 IF (TEST .LT. EXPXL) TEST=EXPXL
214 IF (TEST .GT. EXPXU) TEST=EXPXU
215 DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
219 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
220 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
222 IF(RAN.LT.EXCS) GOTO 100
226 *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
227 IF(INT.EQ.1) CALL TWOB(18,NFL,N)
228 IF(INT.EQ.2) CALL GENXPT(18,NFL,N)
233 C** EXCLUSIVE REACTION NOT FOUND
235 *WRITE(NEWBCD,1004) RS,N
242 IF(NFL.EQ.2) IPA(2)=16
246 IF(INT.LE.0) GOTO 131
252 GOTO (103,104,105,106),NCHT
258 IF(RNDM(1).LT.0.5) IPA(1)=21
260 IF(RNDM(2).LT.0.5) GOTO 120
266 IF(RNDM(1).LT.0.5) IPA(1)=21
268 IF(RNDM(2).LT.0.5) GOTO 120
279 GOTO (113,114,115,116),NCHT
285 IF(RNDM(1).LT.0.5) IPA(1)=21
287 IF(RNDM(2).LT.0.5) GOTO 120
293 IF(RNDM(1).LT.0.5) IPA(1)=21
295 IF(RNDM(2).LT.0.5) GOTO 120
306 122 IF(NM.EQ.0) GOTO 124
310 124 IF(NZ.EQ.0) GOTO 130
315 *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
320 1001 FORMAT('0*CASL0* CASCADE ENERGETICALLY NOT POSSIBLE',
321 $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
322 1003 FORMAT(' *CASL0* LAMBDA-INDUCED CASCADE,',
323 $ ' AVAIL. ENERGY',2X,F8.4,
324 $ 2X,'<NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
325 1004 FORMAT(' *CASL0* LAMBDA-INDUCED CASCADE,',
326 $ ' EXCLUSIVE REACTION NOT FOUND',
327 $ ' TRY ELASTIC SCATTERING AVAIL. ENERGY',2X,F8.4,2X,
329 2001 FORMAT('0*CASL0* TABLES FOR MULT. DATA LAMBDA INDUCED REACTION',
330 $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
331 2002 FORMAT(' *CASL0* TARGET PARTICLE FLAG',2X,I5)
332 2003 FORMAT(1H ,10E12.4)
333 2004 FORMAT(' *CASL0* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
334 2005 FORMAT(' *CASL0* NO PARTICLES PRODUCED')