]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/isabg2.F
Added the magnetic field as a static member of the AliL3Transform class,
[u/mrichter/AliRoot.git] / ISAJET / code / isabg2.F
1 #include "isajet/pilot.h"
2       SUBROUTINE ISABG2(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 C      CALL READIN(IFL)
56 C      IF(IFL.NE.0) GOTO 999
57       CALL IDGEN
58       IF(GOMSSM) THEN
59         CALL DOMSSM
60       ENDIF
61       IF (KEYS(10).AND..NOT.GOMSSM) THEN
62         CALL SETH
63       END IF
64       CALL SETDKY(.FALSE.)
65 C
66 C          Generate NSIGMA unevolved events for SIGF calculation
67 C
68 C          TWOJET events
69       IF(KEYS(1)) THEN
70         CALL MBSET
71         CALL SETW
72         CALL LOGIC
73         CALL PRTLIM
74         CALL PTFUN
75         DO 105 I=1,NSIGMA
76 105     CALL TWOJET
77         CALL TIMER(1)
78 C
79 C          E+E- events
80       ELSE IF(KEYS(2)) THEN
81         CALL SETW
82         CALL LOGIC
83         CALL PRTLIM
84         CALL EEBEG
85         CALL EEMAX
86         DO 205 I=1,NSIGMA
87 205     CALL ELCTRN
88         CALL TIMER(1)
89 C
90 C          DRELLYAN events
91       ELSE IF(KEYS(3)) THEN
92         CALL SETW
93         CALL MBSET
94         CALL LOGIC
95         CALL PRTLIM
96         CALL QFUNC
97         DO 305 I=1,NSIGMA
98 305     CALL DRLLYN
99         CALL TIMER(1)
100 C
101 C          MINBIAS events
102       ELSE IF(KEYS(4)) THEN
103         PBEAM(1)=HALFE
104         PBEAM(2)=HALFE
105         CALL PRTLIM
106         CALL MBSET
107         CALL TIMER(1)
108 C
109 C          SUPERSYM events
110       ELSE IF(KEYS(5)) THEN
111         CALL SETW
112         CALL MBSET
113         CALL LOGIC
114         CALL PRTLIM
115         CALL PTFUN
116         DO 505 I=1,NSIGMA
117 505     CALL TWOJET
118         CALL TIMER(1)
119 C
120 C          WPAIR events
121       ELSE IF(KEYS(6)) THEN
122         CALL SETW
123         CALL MBSET
124         CALL LOGIC
125         CALL PRTLIM
126         CALL PTFUN
127         DO 605 I=1,NSIGMA
128         CALL TWOJET
129 605     CALL WPAIR
130         CALL TIMER(1)
131 C
132 C          HIGGS events
133       ELSE IF(KEYS(7)) THEN
134         CALL SETW
135         IF(GOMSSM) THEN
136           CALL SETHSS
137         ELSE
138           CALL SETH
139         ENDIF
140         CALL MBSET
141         CALL LOGIC
142         CALL PRTLIM
143         CALL QFUNC
144         DO 705 I=1,NSIGMA
145 705     CALL DRLLYN
146         CALL TIMER(1)
147 C
148 C          PHOTON events
149       ELSEIF(KEYS(8)) THEN
150         CALL MBSET
151         CALL SETW
152         CALL LOGIC
153         CALL PRTLIM
154         CALL PTFUN
155         DO 805 I=1,NSIGMA
156 805     CALL TWOJET
157         CALL TIMER(1)
158 C
159 C          TCOLOR events
160       ELSE IF(KEYS(9)) THEN
161         CALL SETW
162         CALL MBSET
163         CALL LOGIC
164         CALL PRTLIM
165         CALL QFUNC
166         DO 905 I=1,NSIGMA
167 905     CALL DRLLYN
168         CALL TIMER(1)
169 C
170 C          WHIGGS events
171       ELSE IF(KEYS(10)) THEN
172         CALL SETW
173         CALL MBSET
174         CALL LOGIC
175         CALL PRTLIM
176         CALL PTFUN
177         DO 906 I=1,NSIGMA
178         CALL TWOJET
179 906     CALL WHIGGS
180         CALL TIMER(1)
181 C
182 C          EXTRADIM events
183       ELSE IF(KEYS(11)) THEN
184         CALL SETW
185         CALL SETKKG
186         CALL MBSET
187         CALL LOGIC
188         CALL PRTLIM
189         CALL QFUNC
190         DO 1105 I=1,NSIGMA
191           CALL DRLLYN
192 1105    CONTINUE
193         CALL TIMER(1)
194 C
195 C          ZJJ events
196 C          ZJJ0 initializes cross sections, so no event loop
197       ELSEIF(KEYS(12)) THEN
198         CALL SETW
199         CALL MGINIT
200         CALL MBSET
201         CALL LOGIC
202         CALL PRTLIM
203         CALL ZJJ0
204         CALL TIMER(1)
205       ELSE
206         STOP 99
207       ENDIF
208 999   RETURN
209       END