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