]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/fluka/bamjev.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / fluka / bamjev.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:19:53 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.41 by S.Giani
11*-- Author :
12*$ CREATE BAMJEV.FOR
13*COPY BAMJEV
14*
15*=== bamjev ===========================================================*
16*
17 SUBROUTINE BAMJEV ( IHAD, KFA1, KFA2, KFA3, KFA4, AE0, IOPT )
18
19#include "geant321/dblprc.inc"
20#include "geant321/dimpar.inc"
21#include "geant321/iounit.inc"
22*
23*----------------------------------------------------------------------*
24* Bamjet90: slight revision by A. Ferrari *
25*----------------------------------------------------------------------*
26*
27*----------------------------------------------------------------------*
28* Ihad = number of final hadrons and hadron resonances *
29* Ae0 = initial energy in GeV *
30* Kfai = initial quark flavours (u=1,d=2,s=3,c=4,ubar=7,dbar=8, *
31* sbar=9, cbar=10) *
32* Iopt = 1,2,3,4,5 means: *
33* 1: single (anti)quark jet, (kfa1) *
34* 2: single (anti)diquark jet, (kfa1-kfa2) *
35* 3: complete quark antiquark twojet event, (kfa1,kfa2) *
36* 4: complete (anti)quark-(anti)diquark two jet event, *
37* (kfa1,kfa2-kfa3) *
38* 5: complete diquark-(anti)diquark two jet event, *
39* (kfa1-kfa2,kfa3-kfa4) *
40* Common/finpar/ contains the momenta,energies and quantum numbers *
41* of the created hadrons *
42* Iv = actual vertex,iv=1,4,5,6,9,10 are meson verteces *
43* iv=2,3,7,8 are baryon verteces *
44* La = 1 means cut-off *
45* Ll = 0,1 means quark jet, antiquark jet, (diquark jet, anti- *
46* diquark jet) *
47* Common/remain/ contains rest jet energy,momenta and quantumnum- *
48* bers *
49*----------------------------------------------------------------------*
50*
51#include "geant321/bamjcm.inc"
52#include "geant321/finpar2.inc"
53#include "geant321/part.inc"
54#include "geant321/inpdat.inc"
55
56 COMMON/FKREMA/ RPXR,RPYR,RPZR,RER,KR1R,KR2R
57 SAVE NCOU, ITMX
58*
59 DATA NCOU/0/
60 DATA ITMX/0/
61 NCOU=NCOU+1
62 A1SAVE = A1
63 B1SAVE = B1
64 B2SAVE = B2
65 B3SAVE = B3
66 IF ( AE0 .LE. 4.D+00 )THEN
67 A1 = 0.88D+00
68 ELSE IF ( AE0 .LE. 8.0D+00 ) THEN
69 A1 = 0.88D+00
70 ELSE IF ( AE0 .LT. 30.D+00 ) THEN
71 A1 = 0.88D+00
72 ELSE
73 A1 = 0.88D+00
74 END IF
75 FRB12 = 0.5D+00
76 B1 = 4.D+00 + 1.D+00 / ( FRB12 * AE0 )**2
77 B2 = 4.D+00 + 1.D+00 / ( FRB12 * AE0 )**2
78 E00 = 40.D+00
79* The following is consistent with B3=6
80 B3 = B3 * LOG10 ( E00 ) /
81 & ( LOG10 ( 1.D+00 + ( AE0 / E00 )**2 ) + LOG10 ( E00 ) )
82C IF (NCOU.EQ.4701)LT=1
83*or IF (LT.EQ.1)WRITE(LUNOUT,3399)IOPT,NCOU
84 3399 FORMAT(' BAMJET',2I10 )
85*or IF (LT.EQ.1)WRITE(LUNOUT,288)IHAD,KFA1,KFA2,KFA3,KFA4,AE0,IOPT
86 288 FORMAT (5I5,2E12.4,' BAMJET,IHAD,KFA1,KFA2,KFA3,KFA4,AE0,IOPT')
87 63 CONTINUE
88 DO 62 I=1,ITMX
89 KFR1(I) = 0
90 KFR2(I) = 0
91 62 CONTINUE
92 ITMX=0
93 60 CONTINUE
94 IYY=0
95 IHAD=0
96 IT=0
97 E0=AE0*.5D0
98 IF(IOPT.EQ.1.OR.IOPT.EQ.2) E0=AE0
99 LL=0
100 IF(KFA1.GT.6.AND.IOPT.EQ.1) LL=1
101 IF(KFA1.LE.6.AND.IOPT.EQ.2) LL=1
102 IF(KFA1.GT.6.AND.IOPT.EQ.4) LL=1
103 PGX = 0.D0
104 PGY = 0.D0
105 PGZ = 0.D0
106 RPX0 = 0.D0
107 RPY0 = 0.D0
108* The following 6 initializations might be useless, but they make the
109* code much clearer
110 KR1R = 0
111 KR2R = 0
112 KR1L = 0
113 KR2L = 0
114 RER = 0.D+00
115 REL = 0.D+00
116 DO 10 I=1,KMXJCM
117 KFR1(I) = 0
118 KFR2(I) = 0
119 LA = 0
120 IT = IT+1
121 J = IT-1
122* The following line seems useless
123* K = IT+1
124 40 CONTINUE
125C*****CUT OFF TASK
126* | Abbrch is called to cut the chain
127 CALL ABBRCH(IT,LL,LA,LT,E0,PGX,PGY,PGZ,KFR1,KFR2,RE,
128 & KR1R,KR2R,KR1L,KR2L,RPX,RPY,RPZ,RPXR,RPYR,RPZR,RPXL,RPYL,RPZL,
129 & RER,REL,IV,B1,B2,KFA1,KFA2,KFA3,KFA4,IOPT,IYY)
130 ITMX=MAX(ITMX,IT)
131 IF(LA .EQ. 0) GO TO 20
132 IT=IT-1
133 IF(IOPT.EQ.3.AND.LL.EQ.0) GO TO 70
134 IF(IOPT.EQ.4.AND.KFA1.LE.6.AND.LL.EQ.0) GO TO 70
135 IF(IOPT.EQ.4.AND.KFA1.GT.6.AND.LL.EQ.1) GO TO 70
136 IF(IOPT.EQ.5.AND.LL.EQ.0) GO TO 70
137 GO TO 50
138 70 CONTINUE
139 IYY = 1
140 LL = 1
141 IF(IOPT.EQ.4.AND.KFA1.GT.6) LL = 0
142 IAR=IT
143 GO TO 30
144 20 CONTINUE
145C*****CHOICE OF THE VERTEX
146 CALL FKVERT(IT,LT,LL,KFA1,E0,IV,RE,KFR1,KFR2,AME,IOPT)
147C*****CHOICE OF THE FLAVOUR
148 CALL FKFLAV(IT,LT,LL,E0,IV,RE,KFR1,KFR2,ISU,BET,KFA1,KFA2,
149 & KFA3,KFA4,IOPT)
150C*****CLASSIFICATION OF THE PARTICLES
151 CALL HKLASS(IT,LT,LA,LL,KFR1,KFR2,KR1R,KR2R,KR1L,KR2L,IV,IMPS,
152 & IMVE,IB08,IA08,IB10,IA10,AS,B8,KFA1,KFA2,KFA3,KFA4,IOPT)
153 ITMX=MAX(ITMX,IT)
154 IF (IT .EQ. 1) RX = E0
155 IF (IT .GT. 1) RX = RE(J)
156 IF(AMF(IT) .GT. RX) GO TO 63
157 IF(AMF(IT) .LE. RX) GO TO 19
158 LA = 1
159 GO TO 40
160 19 CONTINUE
161 IHAD = IHAD + 1
162*or IF(LT .EQ. 0) GO TO 31
163*or WRITE(LUNOUT,32)IHAD
164*or 31 CONTINUE
165C*****CHOICE OF THE ENERGY
166 CALL ENERGI(IT,LL,LT,IV,RE,HMA,HE,E0,A1)
167C*****CHOICE OF THE MOMENTUM
168* |
169* | He is the total energy, hma the mass one (input) hpx, hpy, hpz
170* | the momentum components (output values), hps the transversal
171* | momentum (output)
172* |
173 CALL FKIMPU(HE,HMA,HPS,HPX,HPY,HPZ,LT,LL,B3)
174 IF (IT .GT. 1) GO TO 13
175 RPX(IT)=RPX0-HPX
176 RPY(IT)=RPY0-HPY
177 GO TO 14
178 13 RPX(IT)=RPX(J)-HPX
179 RPY(IT)=RPY(J)-HPY
180 14 CONTINUE
181 IF (IOPT.EQ.1.AND.LL.EQ.1)HPZ=-HPZ
182 IF(IOPT.EQ.2.AND.LL.EQ.1) HPZ=-HPZ
183 IF(IOPT.EQ.4.AND.KFA1.GT.6) HPZ=-HPZ
184 IF(IOPT.EQ.5) HPZ=-HPZ
185 PGX=PGX+HPX
186 PGY=PGY+HPY
187 PGZ=PGZ+HPZ
188 PXF(IT)=HPX
189 PYF(IT)=HPY
190 PZF(IT)=HPZ
191*or IF (LT .EQ. 0) GO TO 15
192*or WRITE(LUNOUT,16)PGX,PGY,PGZ
193*or 16 FORMAT(1H0,12HPGX,PGY,PGZ=,3F8.4)
194*or 15 CONTINUE
195 30 CONTINUE
196
197 10 CONTINUE
198*
199* we suppose that exiting from loop must be achieved via " go to 50
200*
201 WRITE (LUNERR,*)' BAMJEV: EXITING FROM LOOP ABNORMALLY!!!! '
202 WRITE (LUNOUT,*)' BAMJEV: EXITING FROM LOOP ABNORMALLY!!!! '
203 50 CONTINUE
204 ITMX=MAX(ITMX,IT)
205 IF(IOPT.EQ.1.OR.IOPT.EQ.2) GO TO 51
206C*****PUT THE RIGHT AND LEFT JET TOGETHER
207 CALL VEREIN(IT,LA,LT,RER,REL,RPXR,RPYR,RPZR,RPXL,RPYL,RPZL,
208 &KR1R,KR2R,KR1L,KR2L,IHAD,LL,KFR1,KFR2,IMPS,IMVE,IB08,IA08,
209 &IB10,IA10,B3,AS,B8,IAR,KFA1,KFA2,KFA3,KFA4,IOPT)
210 IF(LA.EQ.3) GO TO 63
211 IF(LA.EQ.2) GO TO 63
212 51 CONTINUE
213 IF(IOPT.EQ.3.OR.IOPT.EQ.4.OR.IOPT.EQ.5) GO TO 52
214 IF(LL.EQ.0) GO TO 52
215 RPXR=RPXL
216 RPYR=RPYL
217 RPZR=RPZL
218 RER=REL
219 KR1R=KR1L
220 KR2R=KR2L
221 52 CONTINUE
222 IF(LE.EQ.0) GO TO 1000
223 WRITE(LUNOUT,92)
224 92 FORMAT(2X,'NF,NAME,MASS,IQ,IB,PX,PY,PZ,E')
225 DO 91 J=1,IT
226 WRITE(LUNOUT,90)NREF(J),ANF(J),AMF(J),ICHF(J),IBARF(J),PXF(J),
227 & PYF(J),PZF(J),HEF(J)
228 90 FORMAT(2X,I3,A6,F6.3,2I4,4F8.4)
229 91 CONTINUE
230 1000 CONTINUE
231 64 FORMAT(1H0,38HNUMBER OF EVENTS WITH PREST GT. EREST=,I4,
232 */,21HNUMBER OF ALL EVENTS=,I4)
233 2000 FORMAT(1H0,'NUMBER OF EVENTS WITH ONLY ONE PARTICLE=',I4)
234*or IF(LT.EQ.0) GO TO 17
235*or WRITE(LUNOUT,18)IHAD
236*or 18 FORMAT(1H0,15HMULTIPLIZITAET=,I3)
237*or 32 FORMAT(1H0,13HHADRONANZAHL=,I3)
238*or 17 CONTINUE
239 A1 = A1SAVE
240 B1 = B1SAVE
241 B2 = B2SAVE
242 B3 = B3SAVE
243 RETURN
244 END