]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gheisha/fissio.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gheisha / fissio.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:20:58 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.38 by S.Giani
11*-- Author :
12 FUNCTION FISSIO(EK1)
13C
14C *** GENERATION OF PHOTONS AND NEUTRONS BY FISSION ***
15C *** NVE 04-MAR-1988 CERN GENEVA ***
16C
17C ORIGIN : H.FESEFELDT (21-MAR-1987)
18C
19C THE PHYSICS IS BASED ON U(238)
20C FOR OTHER MATERIALS EXTRAPOLATIONS ARE USED
21C
22#include "geant321/s_defcom.inc"
23#include "geant321/s_kginit.inc"
24C
25 DIMENSION SPNEUT(10)
26 DIMENSION RNDM(2)
27 SAVE SPNEUT
28 DATA SPNEUT/10*0./
29C
30C --- INITIALIZATION INDICATED BY KGINIT(15) ---
31 IF (KGINIT(15) .NE. 0) GO TO 10
32 KGINIT(15)=1
33C
34 XX=1.-0.5
35 XXX=SQRT(2.29*XX)
36 SPNEUT(1)=EXP(-XX/0.965)*(EXP(XXX)-EXP(-XXX))/2.
37 DO 1 I=2,10
38 XX=I*1.-0.5
39 XXX=SQRT(2.29*XX)
40 1 SPNEUT(I)=SPNEUT(I-1)+EXP(-XX/0.965)*(EXP(XXX)-EXP(-XXX))/2.
41 DO 2 I=1,10
42 2 SPNEUT(I)=SPNEUT(I)/SPNEUT(10)
43C** IN THIS ROUTINE WE USE MEV AS UNIT FOR ENERGY AND MOMENTUM
44 10 NT=0
45 IER(82)=IER(82)+1
46 ND=IND+1
47 PV( 1,MXGKPV)=PX*P
48 PV( 2,MXGKPV)=PY*P
49 PV( 3,MXGKPV)=PZ*P
50 PV( 4,MXGKPV)=EN
51 PV( 5,MXGKPV)=ABS(AMAS)
52 PV( 6,MXGKPV)=NCH
53 PV( 7,MXGKPV)=TOF
54 PV( 8,MXGKPV)=IPART
55 PV( 9,MXGKPV)=0.
56 PV(10,MXGKPV)=USERW
57 PV( 1,MXGKPV-1)=0.
58 PV( 2,MXGKPV-1)=0.
59 PV( 3,MXGKPV-1)=0.
60 PV( 4,MXGKPV-1)=ATOMAS(ATNO(ND),ZNO(ND))
61 PV( 5,MXGKPV-1)=PV(4,MXGKPV-1)
62 PV( 6,MXGKPV-1)=ZNO(ND)
63 PV( 7,MXGKPV-1)=TOF
64 PV( 8,MXGKPV-1)=0.
65 PV( 9,MXGKPV-1)=0.
66 PV(10,MXGKPV-1)=0.
67 CALL ADD(MXGKPV,MXGKPV-1,MXGKPV-2)
68 PV(1,MXGKPV-2)=-PV(1,MXGKPV-2)
69 PV(2,MXGKPV-2)=-PV(2,MXGKPV-2)
70 PV(3,MXGKPV-2)=-PV(3,MXGKPV-2)
71C** NUMBER OF NEUTRONS AND PHOTONS
72 FISSIO=0.
73 E1=EK1*1000.
74 IF(E1.LT.1.0) E1=1.0
75 AVERN=2.569+0.559*LOG(E1)
76C** TAKE THE FOLLOWING VALUE IF PHOTOFISSION IS NOT INCLUDED
77 IF(IFIX(PARMAT(IND+1,8)).EQ.0)
78 *AVERN=2.569+0.900*LOG(E1)
79 AVERG=9.500+0.600*LOG(E1)
80 CALL NORMAL(RAN)
81 NN=IFIX(AVERN+RAN*1.23+0.5)
82 CALL NORMAL(RAN)
83 NG=IFIX(AVERG+RAN*3.+0.5)
84 IF(NN.LT.1) NN=1
85 IF(NG.LT.1) NG=1
86 EXN=0.
87 EXG=0.
88C** DISTRIBUTE KINETIC ENERGY
89 DO 15 I=1,NN
90 CALL GRNDM(RNDM,1)
91 RAN=RNDM(1)
92 DO 11 J=1,10
93 IF(RAN.LT.SPNEUT(J)) GOTO 12
94 11 CONTINUE
95 J=10
96 12 CALL GRNDM(RNDM,1)
97 EKIN=(J-1)*1.+RNDM(1)
98 EXN=EXN+EKIN
99 PV(4,I)=EKIN+RMASS(16)*1000.
100 PV(5,I)=RMASS(16)*1000.
101 PV(6,I)=0.
102C** EMISSION TIME FOR NEUTRONS =0.
103 PV(7,I)=TOF
104 PV(8,I)=16.
105 PV(9,I)=0.
106 PV(10,I)=0.
107 15 CONTINUE
108 NT=NN
109 DO 20 I=1,NG
110 CALL GRNDM(RNDM,1)
111 RAN=RNDM(1)
112 NT=NT+1
113 PV(4,NT)=-0.87*LOG(RAN)
114 EXG=EXG+PV(4,NT)
115 PV(5,NT)=0.
116 PV(6,NT)=0.
117C RAN=RNDM(1)
118C** EMISSION TIME FOR PHOTONS= 2.5 E-8 SEC
119C PV(7,NT)=TOF-500.*LOG(RAN)
120C** CHANGED 30.7.85
121 PV(7,NT)=TOF
122 PV(8,NT)=1.
123 PV(9,NT)=0.
124 PV(10,NT)=0.
125 20 CONTINUE
126 IF(NT.EQ.0) GO TO 9999
127 EX=EXN+EXG
128 IF(NPRT(4))
129 *WRITE(NEWBCD,2000) ATNO(IND+1),NN,NG,EX
130 FISSIO=EX/1000.
131 DO 49 I=1,NT
132 PV(5,I)=PV(5,I)/1000.
133 PV(4,I)=PV(4,I)/1000.
134 CALL GRNDM(RNDM,2)
135 COST=-1.+2.*RNDM(1)
136 SINT=SQRT(ABS(1.-COST*COST))
137 PHI=RNDM(2)*TWPI
138 PP=SQRT(ABS(PV(4,I)**2-PV(5,I)**2))
139 PV(1,I)=PP*SINT*SIN(PHI)
140 PV(2,I)=PP*SINT*COS(PHI)
141 PV(3,I)=PP*COST
142 CALL LOR(I,MXGKPV-2,I)
143 49 CONTINUE
144 INTCT=INTCT+1.
145 DO 50 I=1,NT
146 IF(NTOT.LT.NSIZE/12) GOTO 43
147 IER(39)=IER(39)+1
148 GO TO 9999
149 43 CALL SETTRK(I)
150 50 CONTINUE
151C
152 2000 FORMAT(1H ,'NUCLEAR FISSION ON MATERIAL ',F6.1,
153 *', NEUTRONS, PHOTONS PRODUCED= ',2I3,' WITH ',F8.4,' MEV TOTAL ENE
154 *RGY')
155C
156 9999 CONTINUE
157 END