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 CASAL0(K,INT,NFL)
14 C *** CASCADE OF ANTI-LAMBDA ***
15 C *** NVE 04-MAY-1988 CERN GENEVA ***
17 C ORIGIN : H.FESEFELDT (13-SEP-1987)
19 C L0B 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 PMUL1(2,1200),PMUL2(2,400),ANORM1(2,60),ANORM2(2,60),
38 $ CECH(10),ANHL(25),IIPA(10,2),B(2)
40 SAVE PMUL1,ANORM1,PMUL2,ANORM2
41 DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
42 DATA ANHL/1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.97,0.88
43 $ ,0.85,0.81,0.75,0.64,0.64,0.55,0.55,0.45,0.47,0.40
44 $ ,0.39,0.36,0.33,0.10,0.01/
45 DATA IIPA/24,25,14,14,16,23,24,16,16,14,
46 $ 14,16,19,24,25,14,16,19,24,23/
47 DATA B/0.7,0.7/,C/1.25/
49 C --- INITIALIZATION INDICATED BY KGINIT(1) ---
50 IF (KGINIT(1) .NE. 0) GO TO 10
53 C --- INITIALIZE PMUL AND ANORM ARRAYS ---
57 IF (J .LE. 400) PMUL2(I,J)=0.0
58 IF (J .LE. 60) ANORM1(I,J)=0.0
59 IF (J .LE. 60) ANORM2(I,J)=0.0
63 C** COMPUTE NORMALIZATION CONSTANTS
79 IF(NT.LE.0.OR.NT.GT.60) GOTO 1
80 PMUL1(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
81 ANORM1(1,NT)=ANORM1(1,NT)+PMUL1(1,L)
97 IF(NT.LE.0.OR.NT.GT.60) GOTO 2
98 PMUL1(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
99 ANORM1(2,NT)=ANORM1(2,NT)+PMUL1(2,L)
102 IF(ANORM1(1,I).GT.0.) ANORM1(1,I)=1./ANORM1(1,I)
103 IF(ANORM1(2,I).GT.0.) ANORM1(2,I)=1./ANORM1(2,I)
105 IF(.NOT.NPRT(10)) GOTO 9
108 WRITE(NEWBCD,2002) NFL
109 WRITE(NEWBCD,2003) (ANORM1(NFL,I),I=1,60)
110 WRITE(NEWBCD,2003) (PMUL1(NFL,I),I=1,1200)
112 C** DO THE SAME FOR ANNIHILATION CHANNELS
124 IF(NT.LE.1.OR.NT.GT.60) GOTO 5
125 PMUL2(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
126 ANORM2(1,NT)=ANORM2(1,NT)+PMUL2(1,L)
138 IF(NT.LE.1.OR.NT.GT.60) GOTO 6
139 PMUL2(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
140 ANORM2(2,NT)=ANORM2(2,NT)+PMUL2(2,L)
143 IF(ANORM2(1,I).GT.0.) ANORM2(1,I)=1./ANORM2(1,I)
144 IF(ANORM2(2,I).GT.0.) ANORM2(2,I)=1./ANORM2(2,I)
146 IF(.NOT.NPRT(10)) GOTO 10
149 WRITE(NEWBCD,3002) NFL
150 WRITE(NEWBCD,3003) (ANORM2(NFL,I),I=1,60)
151 WRITE(NEWBCD,3003) (PMUL2(NFL,I),I=1,400)
153 C** CHOOSE PROTON OR NEUTRON AS TARGET
156 IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
158 IF (NFL .EQ. 2) TARMAS=RMASS(16)
159 S=AMASQ+TARMAS**2+2.0*TARMAS*EN
161 ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
163 EAB=RS-TARMAS-ABS(RMASS(19))
164 C** ELASTIC SCATTERING
170 IF(NFL.EQ.2) IPA(2)=16
174 IF(IPLAB.GT.10) IPLAB=10
176 IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 120
177 C** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTION
178 C** LB P --> S0B P, LB P --> S-B N, LB N --> S+B P, LB N --> S0B N
179 C** LB P --> P LB, LB P --> P S0B, LB P --> N S-B
180 C** LB N --> N LB, LB N --> N S0B, LB N --> P S+B
189 C** ANNIHILATION CHANNELS
190 20 IPLAB=IFIX(P*10.)+1
191 IF(IPLAB.GT.10) IPLAB=IFIX((P-1.)*5.)+11
192 IF(IPLAB.GT.15) IPLAB=IFIX( P-2. )+16
193 IF(IPLAB.GT.23) IPLAB=IFIX((P-10.)/10.)+24
194 IF(IPLAB.GT.25) IPLAB=25
196 IF(RNDM(1).GT.ANHL(IPLAB)) GOTO 19
198 IF (EAB .LE. RMASS(7)+RMASS(10)) GOTO 55
200 C** CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
201 19 IF (EAB .LE. RMASS(7)) GOTO 55
203 C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
204 N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
205 * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
207 C** NORMALIZATION CONSTANT FOR KNO-DISTRIBUTION
210 TEST=-(PI/4.0)*(NT/N)**2
211 IF (TEST .LT. EXPXL) TEST=EXPXL
212 IF (TEST .GT. EXPXU) TEST=EXPXU
217 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
218 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
239 IF(L.GT.1200) GOTO 31
241 IF(NT.LE.0.OR.NT.GT.60) GOTO 31
242 TEST=-(PI/4.0)*(NT/N)**2
243 IF (TEST .LT. EXPXL) TEST=EXPXL
244 IF (TEST .GT. EXPXU) TEST=EXPXU
245 DUM1=ANPN*PI*NT*PMUL1(1,L)*ANORM1(1,NT)/(2.0*N*N)
249 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
250 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
252 IF(RAN.LT.EXCS) GOTO 100
267 IF(L.GT.1200) GOTO 41
269 IF(NT.LE.0.OR.NT.GT.60) GOTO 41
270 TEST=-(PI/4.0)*(NT/N)**2
271 IF (TEST .LT. EXPXL) TEST=EXPXL
272 IF (TEST .GT. EXPXU) TEST=EXPXU
273 DUM1=ANPN*PI*NT*PMUL1(2,L)*ANORM1(2,NT)/(2.0*N*N)
277 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
278 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
280 IF(RAN.LT.EXCS) GOTO 100
283 C** ANNIHILATION CHANNELS
287 C** NO. OF TOTAL PARTICLES VS SQRT(S)
288 N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
289 * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
291 C** NORMALIZATION CONSTANT FOR KNO-DISTRIBUTION
294 TEST=-(PI/4.0)*(NT/N)**2
295 IF (TEST .LT. EXPXL) TEST=EXPXL
296 IF (TEST .GT. EXPXU) TEST=EXPXU
301 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
302 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
319 IF(L.GT.400) GOTO 231
321 IF(NT.LE.1.OR.NT.GT.60) GOTO 231
322 TEST=-(PI/4.0)*(NT/N)**2
323 IF (TEST .LT. EXPXL) TEST=EXPXL
324 IF (TEST .GT. EXPXU) TEST=EXPXU
325 DUM1=ANPN*PI*NT*PMUL2(1,L)*ANORM2(1,NT)/(2.0*N*N)
329 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
330 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
332 IF(RAN.LT.EXCS) GOTO 120
343 IF(L.GT.400) GOTO 241
345 IF(NT.LE.1.OR.NT.GT.60) GOTO 241
346 TEST=-(PI/4.0)*(NT/N)**2
347 IF (TEST .LT. EXPXL) TEST=EXPXL
348 IF (TEST .GT. EXPXU) TEST=EXPXU
349 DUM1=ANPN*PI*NT*PMUL2(2,L)*ANORM2(2,NT)/(2.0*N*N)
353 IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
354 IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
356 IF(RAN.LT.EXCS) GOTO 120
360 *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
361 IF(INT.EQ.1) CALL TWOB(19,NFL,N)
362 IF(INT.EQ.2) CALL GENXPT(19,NFL,N)
367 C** EXCLUSIVE REACTION NOT FOUND,ASSUME ELASTIC SCATTERING
369 *WRITE(NEWBCD,1004) RS,N
376 IF(NFL.EQ.2) IPA(2)=16
380 IF(INT.LE.0) GOTO 131
386 GOTO(103,104,105,106),NCHT
393 IF(RNDM(1).LT.0.5) IPA(1)=24
394 IF(RNDM(2).LT.0.5) GOTO 120
400 IF(RNDM(1).LT.0.5) IPA(1)=24
402 IF(RNDM(2).LT.0.5) GOTO 120
413 GOTO(113,114,115,116),NCHT
419 IF(RNDM(1).LT.0.5) IPA(1)=24
421 IF(RNDM(2).LT.0.5) GOTO 120
427 IF(RNDM(1).LT.0.5) IPA(1)=24
429 IF(RNDM(2).LT.0.5) GOTO 120
436 IF(IPA(1).NE.0) GOTO 119
440 IF(RNDM(1).LT.0.5) GOTO 118
445 118 IF(NM.EQ.0) GOTO 119
449 119 IF(NP.EQ.0) GOTO 122
453 122 IF(NM.EQ.0) GOTO 124
457 124 IF(NZ.EQ.0) GOTO 130
462 *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
467 1001 FORMAT('0*CASAL0* CASCADE ENERGETICALLY NOT POSSIBLE',
468 $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
469 1003 FORMAT(' *CASAL0* ANTILAMBDA-INDUCED CASCADE,',
470 $ 'AVAIL. ENERGY',2X,F8.4,
471 $ 2X,'<NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
472 1004 FORMAT(' *CASAL0* ANTILAMBDA-INDUCED CASCADE,',
473 $ ' EXCLUSIVE REACTION',
474 $' NOT FOUND TRY ELASTIC SCATTERING AVAIL. ENERGY',2X,F8.4,2X,
476 2001 FORMAT('0*CASAL0* TABLES FOR MULT. DATA ANTILAMBDA INDUCED ',
477 $'REACTION FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
478 2002 FORMAT(' *CASAL0* TARGET PARTICLE FLAG',2X,I5)
479 2003 FORMAT(1H ,10E12.4)
480 2004 FORMAT(' *CASAL0* ',I3,2X,'PARTICLES, MASS INDEX ARRAY',2X,20I4)
481 2005 FORMAT(' *CASAL0* NO PARTICLES PRODUCED')
482 3001 FORMAT('0*CASAL0* TABLES FOR MULT. DATA ANTIPROTON INDUCED ',
483 $'ANNIHILATION REACTION FOR DEFINITION OF NUMBERS SEE FORTRAN',
485 3002 FORMAT(' *CASAL0* TARGET PARTICLE FLAG',2X,I5)
486 3003 FORMAT(1H ,10E12.4)