]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/fluka/decay.F
First commit
[u/mrichter/AliRoot.git] / GEANT321 / fluka / decay.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:19:59 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10#if defined(CERNLIB_OLDNAME)
11*CMZ : 3.21/02 29/03/94 15.41.44 by S.Giani
12*-- Author :
13*=== decay ============================================================*
14*
15 SUBROUTINE DECAY(IHAD,ISTAB)
16
17#include "geant321/dblprc.inc"
18#include "geant321/dimpar.inc"
19#include "geant321/iounit.inc"
20*
21*----------------------------------------------------------------------*
22* Decay89: slight revision by A. Ferrari *
23*----------------------------------------------------------------------*
24*
25#include "geant321/finpar2.inc"
26#include "geant321/metlsp.inc"
27#include "geant321/part.inc"
28#include "geant321/decayc.inc"
29 COMMON /FKDREI/ TEST(12)
30 COMMON /FKGAMR/REDU,AMO,AMM(15)
31 COMMON /FKPRUN/ISYS
32 REAL RNDM(1)
33C
34C
35 REDU=2.D0
36 DO 801 I=1,IHAD
37 ITS(I) = NREF(I)
38 PLS(I) = SQRT(PXF(I)**2 + PYF(I)**2 + PZF(I)**2)
39 IF (PLS(I) .NE. 0.D0) THEN
40 CXS(I) = PXF(I)/PLS(I)
41 CYS(I) = PYF(I)/PLS(I)
42 CZS(I) = PZF(I)/PLS(I)
43 END IF
44 ELS(I) = HEF(I)
45 801 CONTINUE
46 IST = IHAD
47 IR = 0
48 200 CONTINUE
49C*****TEST STABLE OR UNSTABLE
50C$$$$$ISTAB=1/2/3 MEANS STRONG + WEAK DECAYS / ONLY STRONG DECAYS /
51C*****STRONG DECAYS + WEAK DECAYS FOR CHARMED PARTICLES AND TAU LEPTONS
52 IF(ISTAB.EQ.1) GOTO 793
53 IF(ISTAB.EQ.2) GOTO 737
54 IF(ISTAB.EQ.3) GOTO 738
55 793 IF(ITS(IST).EQ.135.OR.ITS(IST).EQ.136) GOTO 202
56 IF(ITS(IST).GE.1.AND.ITS(IST).LE.7) GOTO 202
57 GOTO 300
58 738 IF(ITS(IST).GE.1.AND.ITS(IST).LE.23) GOTO 202
59 IF(ITS(IST).GE. 97.AND.ITS(IST).LE.103) GOTO 202
60 IF(ITS(IST).EQ.109.AND.ITS(IST).EQ.115) GOTO 202
61 IF(ITS(IST).GE.133.AND.ITS(IST).LE.136) GOTO 202
62 GOTO 300
63 737 IF(ITS(IST).GE. 1.AND.ITS(IST).LE. 30) GOTO 202
64 IF(ITS(IST).GE. 97.AND.ITS(IST).LE.103) GOTO 202
65 IF(ITS(IST).GE.115.AND.ITS(IST).LE.122) GOTO 202
66 IF(ITS(IST).GE.131.AND.ITS(IST).LE.136) GOTO 202
67 IF(ITS(IST).EQ.109) GO TO 202
68 IF(ITS(IST).GE.137.AND.ITS(IST).LE.160) GOTO 202
69 GO TO 300
70 202 IR = IR + 1
71 NREF(IR) = ITS(IST)
72 ITT = ITS(IST)
73 AMF(IR) = AM(ITT)
74 ANF(IR) = ANAME(ITT)
75 ICHF(IR) = ICH(ITT)
76 IBARF(IR) = IBAR(ITT)
77 HEF(IR) = ELS(IST)
78 PXF(IR) = CXS(IST)*PLS(IST)
79 PYF(IR) = CYS(IST)*PLS(IST)
80 PZF(IR) = CZS(IST)*PLS(IST)
81 IST = IST - 1
82 IF(IST .GE. 1) GO TO 200
83 GO TO 500
84 300 IT = ITS(IST)
85 GAM = ELS(IST)/AM(IT)
86 BGAM = PLS(IST)/AM(IT)
87 ECO = AM(IT)
88 KZ1 = K1(IT)
89 310 CONTINUE
90 CALL GRNDM(RNDM,1)
91 VV = RNDM(1) - 1.D-17
92 IIK = KZ1 - 1
93 301 IIK = IIK + 1
94 IF (VV.GT.WT(IIK)) GO TO 301
95C IIK IS THE DECAY CHANNEL
96 IT1 = NZK(IIK,1)
97 IT2 = NZK(IIK,2)
98 IF (IT2-1 .LT. 0) GO TO 110
99 IT3 = NZK(IIK,3)
100C IT1,IT2, IT3 ARE THE PRODUCED PARTICLES FROM IT
101 IF(IT3 .EQ. 0) GO TO 400
102 CALL THREPD(ECO,ECM1,ECM2,ECM3,PCM1,PCM2,PCM3,COD1,COF1,SIF1,COD2,
103 & COF2,SIF2,COD3,COF3,SIF3,AM(IT1),AM(IT2),AM(IT3))
104 GO TO 411
105 400 CALL TWOPAD(ECO,ECM1,ECM2,PCM1,PCM2,COD1,COF1,SIF1,COD2,COF2,SIF2,
106 & AM(IT1),AM(IT2))
107 411 CONTINUE
108 110 CONTINUE
109 ITS(IST) = IT1
110 IF (IT2-1 .LT. 0) GO TO 305
111 ITS(IST+1) = IT2
112 ITS(IST+2) = IT3
113 RX = CXS(IST)
114 RY = CYS(IST)
115 RZ = CZS(IST)
116 CALL TRAFO(GAM,BGAM,RX,RY,RZ,COD1,COF1,SIF1,PCM1,ECM1,
117 & PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
118 IST = IST + 1
119 CALL TRAFO(GAM,BGAM,RX,RY,RZ,COD2,COF2,SIF2,PCM2,ECM2,
120 & PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
121 IF (IT3 .LE. 0) GO TO 305
122 IST = IST + 1
123 CALL TRAFO(GAM,BGAM,RX,RY,RZ,COD3,COF3,SIF3,PCM3,ECM3,
124 & PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
125 305 CONTINUE
126 GO TO 200
127 500 CONTINUE
128 IDAPU = IDMAX3
129 IF(IR .GT. IDMAX3) WRITE(ISYS,928)IDAPU
130 928 FORMAT(' NUMBER OF STAB. FINAL PART. IS GREATER THAN',I5)
131 IHAD = IR
132 RETURN
133 END
134#endif