5 * Revision 1.1.1.1 1995/10/24 10:19:53 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.41 by S.Giani
15 *=== bamjev ===========================================================*
17 SUBROUTINE BAMJEV ( IHAD, KFA1, KFA2, KFA3, KFA4, AE0, IOPT )
19 #include "geant321/dblprc.inc"
20 #include "geant321/dimpar.inc"
21 #include "geant321/iounit.inc"
23 *----------------------------------------------------------------------*
24 * Bamjet90: slight revision by A. Ferrari *
25 *----------------------------------------------------------------------*
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, *
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, *
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- *
47 * Common/remain/ contains rest jet energy,momenta and quantumnum- *
49 *----------------------------------------------------------------------*
51 #include "geant321/bamjcm.inc"
52 #include "geant321/finpar2.inc"
53 #include "geant321/part.inc"
54 #include "geant321/inpdat.inc"
56 COMMON/FKREMA/ RPXR,RPYR,RPZR,RER,KR1R,KR2R
66 IF ( AE0 .LE. 4.D+00 )THEN
68 ELSE IF ( AE0 .LE. 8.0D+00 ) THEN
70 ELSE IF ( AE0 .LT. 30.D+00 ) THEN
76 B1 = 4.D+00 + 1.D+00 / ( FRB12 * AE0 )**2
77 B2 = 4.D+00 + 1.D+00 / ( FRB12 * AE0 )**2
79 * The following is consistent with B3=6
80 B3 = B3 * LOG10 ( E00 ) /
81 & ( LOG10 ( 1.D+00 + ( AE0 / E00 )**2 ) + LOG10 ( E00 ) )
82 C 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')
98 IF(IOPT.EQ.1.OR.IOPT.EQ.2) E0=AE0
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
108 * The following 6 initializations might be useless, but they make the
122 * The following line seems useless
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)
131 IF(LA .EQ. 0) GO TO 20
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
141 IF(IOPT.EQ.4.AND.KFA1.GT.6) LL = 0
145 C*****CHOICE OF THE VERTEX
146 CALL FKVERT(IT,LT,LL,KFA1,E0,IV,RE,KFR1,KFR2,AME,IOPT)
147 C*****CHOICE OF THE FLAVOUR
148 CALL FKFLAV(IT,LT,LL,E0,IV,RE,KFR1,KFR2,ISU,BET,KFA1,KFA2,
150 C*****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)
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
162 *or IF(LT .EQ. 0) GO TO 31
163 *or WRITE(LUNOUT,32)IHAD
165 C*****CHOICE OF THE ENERGY
166 CALL ENERGI(IT,LL,LT,IV,RE,HMA,HE,E0,A1)
167 C*****CHOICE OF THE MOMENTUM
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)
173 CALL FKIMPU(HE,HMA,HPS,HPX,HPY,HPZ,LT,LL,B3)
174 IF (IT .GT. 1) GO TO 13
178 13 RPX(IT)=RPX(J)-HPX
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
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)
199 * we suppose that exiting from loop must be achieved via " go to 50
201 WRITE (LUNERR,*)' BAMJEV: EXITING FROM LOOP ABNORMALLY!!!! '
202 WRITE (LUNOUT,*)' BAMJEV: EXITING FROM LOOP ABNORMALLY!!!! '
205 IF(IOPT.EQ.1.OR.IOPT.EQ.2) GO TO 51
206 C*****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)
213 IF(IOPT.EQ.3.OR.IOPT.EQ.4.OR.IOPT.EQ.5) GO TO 52
222 IF(LE.EQ.0) GO TO 1000
224 92 FORMAT(2X,'NF,NAME,MASS,IQ,IB,PX,PY,PZ,E')
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)
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)