]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/isabeg.F
Bug in V0A fixed (Guillermo)
[u/mrichter/AliRoot.git] / ISAJET / code / isabeg.F
1 #include "isajet/pilot.h"
2       SUBROUTINE ISABEG(IFL)
3 C----------------------------------------------------------------------
4 C-
5 C-   Purpose and Methods : 
6 C-       Initialize a process before event generation
7 C-
8 C-   Created   5-FEB-1988   Serban D. Protopopescu
9 C-
10 C    Ver 7.14: Do logic after setting physics parameters
11 C----------------------------------------------------------------------
12 #if defined(CERNLIB_IMPNONE)
13       IMPLICIT NONE
14 #endif
15 #include "isajet/nodcay.inc"
16 #include "isajet/idrun.inc"
17 #include "isajet/keys.inc"
18 #include "isajet/primar.inc"
19 #include "isajet/jetpar.inc"
20 #include "isajet/isloop.inc"
21 #include "isajet/xmssm.inc"
22 #include "isajet/isapw.inc"
23 C
24       INTEGER IFL,I
25       LOGICAL FIRST
26       SAVE FIRST
27       CHARACTER*30 ISAPW2
28       SAVE ISAPW2
29       DATA FIRST/.TRUE./
30 C          ISAPW2 is used to check whether ALDATA is loaded
31       DATA ISAPW2/'ALDATA REQUIRED BY FORTRAN G,H'/
32 C
33 C          Initialize
34 C
35       IF(ISAPW1.NE.ISAPW2) THEN
36         PRINT*, ' ISABEG ERROR: BLOCK DATA ALDATA HAS NOT BEEN LOADED.'
37         PRINT*, ' ISAJET CANNOT RUN WITHOUT IT.'
38         PRINT*, ' PLEASE READ THE FINE MANUAL FOR ISAJET.'
39         STOP99
40       ENDIF
41 C
42       IF (FIRST) THEN
43         FIRST=.FALSE.
44       ELSE
45         CALL SETNXT
46       ENDIF
47       IEVT=0
48       IEVGEN=0
49       NEVENT=0
50       IEVOL=1
51       IFRG=1
52 C
53 C          Read in user data and decay table
54 C
55
56       CALL READIN(IFL)
57       IF(IFL.NE.0) GOTO 999
58       CALL IDGEN
59       IF(GOMSSM) THEN
60         CALL DOMSSM
61       ENDIF
62       IF (KEYS(10).AND..NOT.GOMSSM) THEN
63         CALL SETH
64       END IF
65       CALL SETDKY(.FALSE.)
66 C
67 C          Generate NSIGMA unevolved events for SIGF calculation
68 C
69 C          TWOJET events
70       IF(KEYS(1)) THEN
71         CALL MBSET
72         CALL SETW
73         CALL LOGIC
74         CALL PRTLIM
75         CALL PTFUN
76         DO 105 I=1,NSIGMA
77 105     CALL TWOJET
78         CALL TIMER(1)
79 C
80 C          E+E- events
81       ELSE IF(KEYS(2)) THEN
82         CALL SETW
83         CALL LOGIC
84         CALL PRTLIM
85         CALL EEBEG
86         CALL EEMAX
87         DO 205 I=1,NSIGMA
88 205     CALL ELCTRN
89         CALL TIMER(1)
90 C
91 C          DRELLYAN events
92       ELSE IF(KEYS(3)) THEN
93         CALL SETW
94         CALL MBSET
95         CALL LOGIC
96         CALL PRTLIM
97         CALL QFUNC
98         DO 305 I=1,NSIGMA
99 305     CALL DRLLYN
100         CALL TIMER(1)
101 C
102 C          MINBIAS events
103       ELSE IF(KEYS(4)) THEN
104         PBEAM(1)=HALFE
105         PBEAM(2)=HALFE
106         CALL PRTLIM
107         CALL MBSET
108         CALL TIMER(1)
109 C
110 C          SUPERSYM events
111       ELSE IF(KEYS(5)) THEN
112         CALL SETW
113         CALL MBSET
114         CALL LOGIC
115         CALL PRTLIM
116         CALL PTFUN
117         DO 505 I=1,NSIGMA
118 505     CALL TWOJET
119         CALL TIMER(1)
120 C
121 C          WPAIR events
122       ELSE IF(KEYS(6)) THEN
123         CALL SETW
124         CALL MBSET
125         CALL LOGIC
126         CALL PRTLIM
127         CALL PTFUN
128         DO 605 I=1,NSIGMA
129         CALL TWOJET
130 605     CALL WPAIR
131         CALL TIMER(1)
132 C
133 C          HIGGS events
134       ELSE IF(KEYS(7)) THEN
135         CALL SETW
136         IF(GOMSSM) THEN
137           CALL SETHSS
138         ELSE
139           CALL SETH
140         ENDIF
141         CALL MBSET
142         CALL LOGIC
143         CALL PRTLIM
144         CALL QFUNC
145         DO 705 I=1,NSIGMA
146 705     CALL DRLLYN
147         CALL TIMER(1)
148 C
149 C          PHOTON events
150       ELSEIF(KEYS(8)) THEN
151         CALL MBSET
152         CALL SETW
153         CALL LOGIC
154         CALL PRTLIM
155         CALL PTFUN
156         DO 805 I=1,NSIGMA
157 805     CALL TWOJET
158         CALL TIMER(1)
159 C
160 C          TCOLOR events
161       ELSE IF(KEYS(9)) THEN
162         CALL SETW
163         CALL MBSET
164         CALL LOGIC
165         CALL PRTLIM
166         CALL QFUNC
167         DO 905 I=1,NSIGMA
168 905     CALL DRLLYN
169         CALL TIMER(1)
170 C
171 C          WHIGGS events
172       ELSE IF(KEYS(10)) THEN
173         CALL SETW
174         CALL MBSET
175         CALL LOGIC
176         CALL PRTLIM
177         CALL PTFUN
178         DO 906 I=1,NSIGMA
179         CALL TWOJET
180 906     CALL WHIGGS
181         CALL TIMER(1)
182 C
183 C          EXTRADIM events
184       ELSE IF(KEYS(11)) THEN
185         CALL SETW
186         CALL SETKKG
187         CALL MBSET
188         CALL LOGIC
189         CALL PRTLIM
190         CALL QFUNC
191         DO 1105 I=1,NSIGMA
192           CALL DRLLYN
193 1105    CONTINUE
194         CALL TIMER(1)
195 C
196 C          ZJJ events
197 C          ZJJ0 initializes cross sections, so no event loop
198       ELSEIF(KEYS(12)) THEN
199         CALL SETW
200         CALL MGINIT
201         CALL MBSET
202         CALL LOGIC
203         CALL PRTLIM
204         CALL ZJJ0
205         CALL TIMER(1)
206       ELSE
207         STOP 99
208       ENDIF
209 999   RETURN
210       END