1 #include "isajet/pilot.h"
2 LOGICAL FUNCTION SETTYP(LPRT)
4 C Set JETTYPE flags and WMODE flags for WPAIR.
5 C Set WMODES and ZMODES flags for secondary W+- and Z0.
6 C Return .FALSE. if no error, .TRUE. otherwise.
8 C Ver 7.18: Initialize all GOQ to false (limit = MXGOQ)
9 C Use LISTSS for Higgs if GOMSSM
10 C Ver 7.29: SUSY Higgs decays are done in SETHSS and SIGHSS
11 C using LISTSS order, so SUSY list should be used.
12 C I.e., 7.18 fix was wrong.
14 #if defined(CERNLIB_IMPNONE)
17 #include "isajet/itapes.inc"
18 #include "isajet/keys.inc"
19 #include "isajet/types.inc"
20 #include "isajet/q1q2.inc"
21 #include "isajet/xmssm.inc"
23 INTEGER JET,K,I,IW,LPRT
25 CHARACTER*8 WORD,BLANK,LIST(30),LISTW(4),LISTXY(4),LISTSS(85)
27 DATA LIST/'GL','UP','UB','DN','DB','ST','SB','CH','CB','BT','BB',
28 $'TP','TB','NUE','ANUE','E-','E+','NUM','ANUM','MU-','MU+',
29 $'NUT','ANUT','TAU-','TAU+','GM','W+','W-','Z0','HIGGS'/
30 DATA LISTW/'GM','W+','W-','Z0'/
31 DATA LISTXY/'Y','YB','X','XB'/
33 $'UPSSL','UBSSL','DNSSL','DBSSL','STSSL','SBSSL','CHSSL','CBSSL',
34 $'BTSS1','BBSS1','TPSS1','TBSS1',
35 $'UPSSR','UBSSR','DNSSR','DBSSR','STSSR','SBSSR','CHSSR','CBSSR',
36 $'BTSS2','BBSS2','TPSS2','TBSS2',
37 $'W1SS+','W1SS-','W2SS+','W2SS-','Z1SS','Z2SS','Z3SS','Z4SS',
38 $'NUEL','ANUEL','EL-','EL+','NUML','ANUML','MUL-','MUL+',
39 $'NUTL','ANUTL','TAU1-','TAU1+','ER-','ER+','MUR-','MUR+',
41 $'GL','UP','UB','DN','DB','ST','SB','CH','CB','BT','BB',
42 $'TP','TB','NUE','ANUE','E-','E+','NUM','ANUM','MU-','MU+',
43 $'NUT','ANUT','TAU-','TAU+','GM','W+','W-','Z0',
44 $'HL0','HH0','HA0','H+','H-'/
49 IF(KEYS(2).AND.GOMSSM) GO TO 5
50 IF(KEYS(6).OR.KEYS(9)) GO TO 6
51 IF(KEYS(7).AND..NOT.GOMSSM) GO TO 7
52 IF(KEYS(7).AND.GOMSSM) GO TO 5
53 IF(KEYS(10).AND.GOMSSM) GO TO 5
55 C JETTYPE flags all processes except WPAIR and HIGGS.
56 C NJTTYP is set in READIN to number of non-blank values read.
57 C Check for legal jet type names and set appropriate flags.
60 IF(NJTTYP(JET).EQ.0) GO TO 1000
61 C Initialize everything to .FALSE.
66 C Loop over non-blank JETTYPE entries
67 DO 1200 I=1,NJTTYP(JET)
70 IF(WORD.EQ.BLANK) THEN
74 IF(WORD.EQ.'ALL ') THEN
77 1210 GOQ(K,JET)=.TRUE.
81 IF(WORD.EQ.'QUARKS ') THEN
83 1220 GOQ(K,JET)=.TRUE.
87 IF(WORD.EQ.'LEPTONS ') THEN
90 1230 GOQ(K+1,JET)=.TRUE.
94 IF(WORD.EQ.'NUS ') THEN
97 1240 GOQ(K+1,JET)=.TRUE.
101 C E+E- now also contains W+, W-, Z0
102 IF(KEYS(10).OR.KEYS(11).OR.KEYS(12)) THEN
104 ELSE IF(KEYS(2)) THEN
110 IF(WORD.EQ.LIST(K)) THEN
115 C Special types for TWOJET
117 IF(KEYS(1).AND.WORD.EQ.LISTXY(K)) THEN
122 C Special type for PHOTON
123 IF(KEYS(8).AND.WORD.EQ.LISTW(1)) THEN
128 WRITE(ITLIS,1300) WORD,JET
129 1300 FORMAT(1X,A8,' IS NOT RECOGNIZABLE FOR JETTYPE',I1)
135 C JETTYPE flags for SUSY
138 IF(NJTTYP(JET).EQ.0) GO TO 5000
141 5100 GOQ(K,JET)=.FALSE.
142 DO 5200 I=1,NJTTYP(JET)
145 IF(WORD.EQ.BLANK) THEN
149 IF(WORD.EQ.'ALL ') THEN
152 5210 GOQ(K,JET)=.TRUE.
156 IF(WORD.EQ.'SQUARKS ') THEN
158 5220 GOQ(K,JET)=.TRUE.
162 IF(WORD.EQ.'GAUGINOS') THEN
164 5230 GOQ(K,JET)=.TRUE.
168 IF(WORD.EQ.'SLEPTONS') THEN
170 5240 GOQ(K,JET)=.TRUE.
173 C Explicit susy types
175 IF(WORD.EQ.LISTSS(K)) THEN
184 C JETTYPE and WMODE flags for WPAIR
185 C NJTTYP and NWWTYP are the number of non-blank values.
188 IF(NJTTYP(JET).EQ.0) GO TO 2300
189 C Initialize to FALSE
192 2100 GOQ(K,JET)=.FALSE.
194 C Loop over non-blank JETTYPE flags
196 DO 2200 I=1,NJTTYP(JET)
199 IF(WORD.EQ.BLANK) THEN
203 IF(WORD.EQ.'ALL ') THEN
206 2210 GOQ(K,JET)=.TRUE.
211 IF(WORD.EQ.LISTW(K)) THEN
217 WRITE(ITLIS,1300) WORD,JET
221 C Loop over nonblank WMODE flags
223 2300 IF(NWWTYP(JET).EQ.0) GO TO 2000
225 C Initialize everything to FALSE
227 2350 GOWW(K,JET)=.FALSE.
229 DO 2400 I=1,NWWTYP(JET)
231 IF(WORD.NE.BLANK) NWWTYP(JET)=I
233 IF(WORD.EQ.BLANK) THEN
237 IF(WORD.EQ.'ALL ') THEN
240 2410 GOWW(K,JET)=.TRUE.
244 IF(WORD.EQ.'QUARKS ') THEN
246 2420 GOWW(K,JET)=.TRUE.
250 IF(WORD.EQ.'LEPTONS ') THEN
253 2430 GOWW(K+1,JET)=.TRUE.
257 IF(WORD.EQ.'NUS ') THEN
260 2440 GOWW(K+1,JET)=.TRUE.
265 IF(WORD.EQ.LIST(K)) THEN
271 WRITE(ITLIS,2500) WORD,JET
272 2500 FORMAT(1X,A8,' IS NOT A VALID CODE FOR WMODE',I1)
278 C JETTYPE and WMODE flags for HIGGS
279 C SUSY HIGGS uses LISTSS order and hence SUSY part
282 IF(NJTTYP(JET).EQ.0) GO TO 3300
283 C Initialize to FALSE
286 3100 GOQ(K,JET)=.FALSE.
288 C Loop over non-blank JETTYPE flags
290 DO 3200 I=1,NJTTYP(JET)
293 IF(WORD.EQ.BLANK) THEN
297 IF(WORD.EQ.'ALL ') THEN
300 3210 GOQ(K,JET)=.TRUE.
304 IF(WORD.EQ.'QUARKS ') THEN
306 3220 GOQ(K,JET)=.TRUE.
310 IF(WORD.EQ.'LEPTONS ') THEN
313 3240 GOQ(K+1,JET)=.TRUE.
317 IF(WORD.EQ.LIST(K)) THEN
323 WRITE(ITLIS,1300) WORD,JET
327 C Loop over nonblank WMODE flags
329 3300 IF(NWWTYP(JET).EQ.0) GO TO 3000
331 C Initialize everything to FALSE
333 3350 GOWW(K,JET)=.FALSE.
335 DO 3400 I=1,NWWTYP(JET)
337 IF(WORD.NE.BLANK) NWWTYP(JET)=I
339 IF(WORD.EQ.BLANK) THEN
343 IF(WORD.EQ.'ALL ') THEN
346 3410 GOWW(K,JET)=.TRUE.
350 IF(WORD.EQ.'QUARKS ') THEN
352 3420 GOWW(K,JET)=.TRUE.
356 IF(WORD.EQ.'LEPTONS ') THEN
359 3430 GOWW(K+1,JET)=.TRUE.
363 IF(WORD.EQ.'NUS ') THEN
366 3440 GOWW(K+1,JET)=.TRUE.
371 IF(WORD.EQ.LIST(K)) THEN
377 WRITE(ITLIS,2500) WORD,JET
378 3500 FORMAT(1X,A8,' IS NOT A VALID CODE FOR WMODE',I1)
383 C Set WMODES and ZMODES flags for secondary W+- and Z0
386 IF(NWMODE(IW).EQ.0) GO TO 4100
387 C Initialize everything to .FALSE.
389 4200 GOWMOD(K,IW)=.FALSE.
390 C Loop over non-blank WMODE entries
391 DO 4300 I=1,NWMODE(IW)
394 IF(WORD.EQ.BLANK) THEN
398 IF(WORD.EQ.'ALL ') THEN
400 4310 GOWMOD(K,IW)=.TRUE.
404 IF(WORD.EQ.'QUARKS ') THEN
406 4320 GOWMOD(K,IW)=.TRUE.
410 IF(WORD.EQ.'LEPTONS ') THEN
413 4330 GOWMOD(K+1,IW)=.TRUE.
417 IF(WORD.EQ.'NUS ') THEN
420 4340 GOWMOD(K+1,IW)=.TRUE.
425 IF(WORD.EQ.LIST(K)) THEN
431 WRITE(ITLIS,4380) WORD
432 4380 FORMAT(1X,A8,' IS NOT RECOGNIZABLE FOR SECONDARY WS')
437 C Loop over nonblank WMODE flags FOR WHIGGS
441 6300 IF(NWWTYP(JET).EQ.0) GO TO 6000
443 C Initialize everything to FALSE
445 6350 GOWW(K,JET)=.FALSE.
447 DO 6400 I=1,NWWTYP(JET)
449 IF(WORD.NE.BLANK) NWWTYP(JET)=I
451 IF(WORD.EQ.BLANK) THEN
455 IF(WORD.EQ.'ALL ') THEN
458 6410 GOWW(K,JET)=.TRUE.
462 IF(WORD.EQ.'QUARKS ') THEN
464 6420 GOWW(K,JET)=.TRUE.
468 IF(WORD.EQ.'LEPTONS ') THEN
471 6430 GOWW(K+1,JET)=.TRUE.
475 IF(WORD.EQ.'NUS ') THEN
478 6440 GOWW(K+1,JET)=.TRUE.
483 IF(WORD.EQ.LIST(K)) THEN
489 WRITE(ITLIS,6500) WORD,JET
490 6500 FORMAT(1X,A8,' IS NOT A VALID CODE FOR WMODE',I1)