]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ISAJET/code/domssm.F
Allowing coding conventions to be checked
[u/mrichter/AliRoot.git] / ISAJET / code / domssm.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE DOMSSM
3C-----------------------------------------------------------------------
4C Initialize MSSM masses and decay modes from ISASUSY.
5C Check for validity with ISAJET masses.
6C Decay modes are transfered to /DKYTAB/ by /SETDKY/.
7C
8C F.E. Paige, November, 1992
9C
10C Ver. 7.01: Add test so that AMASS is not called if ID = 0
11C Ver. 7.07: Add checking for LEP bounds.
12C Ver. 7.10: Add SUGRA interface
13C Ver. 7.32: Extend to large tanb solution
14C Ver. 7.33: Add gauge-mediated SUSY model
15C Ver. 7.38: NOGRAV turns off gravitino and weaker decays
16C
17C-----------------------------------------------------------------------
18#if defined(CERNLIB_IMPNONE)
19 IMPLICIT NONE
20#endif
21C ISAJET common blocks
22#include "isajet/itapes.inc"
23#include "isajet/qlmass.inc"
24#include "isajet/xmssm.inc"
25#include "isajet/nodcay.inc"
26C ISASUSY common blocks
27#include "isajet/sslun.inc"
28#include "isajet/ssmode.inc"
29#include "isajet/sspar.inc"
30#include "isajet/sstype.inc"
31#include "isajet/sugmg.inc"
32#include "isajet/sugpas.inc"
33#include "isajet/sugxin.inc"
34C
35 INTEGER NOUT
36 PARAMETER (NOUT=33)
37 INTEGER IDOUT(NOUT)
38 REAL AMASS,AMPL
39 REAL AMI,SUMGAM,SUMMJ,WIDMX
40 INTEGER I,J,K,IFL1,IFL2,IFL3,JSPIN,INDEX,IALLOW,IITEST
41C
42 DATA IDOUT/
43 $IDTP,ISGL,ISUPL,ISDNL,ISSTL,ISCHL,ISBT1,ISTP1,ISUPR,ISDNR,
44 $ISSTR,ISCHR,ISBT2,ISTP2,ISEL,ISMUL,ISTAU1,ISNEL,ISNML,ISNTL,
45 $ISER,ISMUR,ISTAU2,ISZ1,ISZ2,ISZ3,ISZ4,ISW1,ISW2,
46 $ISHL,ISHH,ISHA,ISHC/
47 DATA AMPL/2.4E18/,IAL3UN/0/
48C
49C Generate masses and decays
50C
51C FIRST SET HIGH SCALE FOR SUSY BCs; default is M_GUT
52 XSUGIN(7)=XSBCS
53 IF (XMGVTO.LT.1.E19) AMGVSS=XMGVTO
54 IF(.NOT.GOMSSM) RETURN
55 LOUT=ITLIS
56 IF (AL3UNI) IAL3UN=1
57 IF(GOSUG) THEN
58C SUGRA input
59C First solve renormalization group equations
60 IF (XMAJNR.LT.1.E19) THEN
61 XNRIN(1)=XMN3NR
62 XNRIN(2)=XMAJNR
63 XNRIN(3)=XANSS
64 XNRIN(4)=XNRSS
65 ELSE
66 XNRIN(2)=1.E20
67 END IF
68 IF (GOAMSB) THEN
69 XA0SU=0.
70 CALL SUGRA(XM0SU,XMHSU,XA0SU,XTGBSU,XSMUSU,AMASS(6),7)
71 ELSE
72 CALL SUGRA(XM0SU,XMHSU,XA0SU,XTGBSU,XSMUSU,AMASS(6),1)
73 END IF
74 IF (NOGOOD.EQ.1) THEN
75 WRITE(LOUT,*) 'SUGRA BAD POINT: TACHYONIC PARTICLES!'
76 ELSE IF (NOGOOD.EQ.2) THEN
77 WRITE(LOUT,*) 'SUGRA BAD POINT: NO EW SYMMETRY BREAKING!'
78 ELSE IF (NOGOOD.EQ.3) THEN
79 WRITE(LOUT,*) 'SUGRA BAD POINT: M(H_P)^2<0!'
80 ELSE IF (NOGOOD.EQ.4) THEN
81 WRITE(LOUT,*) 'SUGRA BAD POINT: YUKAWA>10!'
82 ELSE IF (NOGOOD.EQ.5) THEN
83 WRITE(LOUT,*) 'SUGRA BAD POINT: Z1SS NOT LSP!'
84 ELSE IF (NOGOOD.EQ.7) THEN
85 WRITE(LOUT,*) 'SUGRA BAD POINT: XT EWSB IS BAD!'
86 ELSE IF (NOGOOD.EQ.8) THEN
87 WRITE(LOUT,*) 'SUGRA BAD POINT: MHL^2<0!'
88 END IF
89 IF(NOGOOD.NE.0) STOP99
90 IF(ITACHY.NE.0) THEN
91 WRITE(LOUT,*) 'WARNING: TACHYONIC SLEPTONS AT GUT SCALE'
92 WRITE(LOUT,*) ' POINT MAY BE INVALID'
93 ENDIF
94C Then calculate masses and decays
95 CALL SSMSSM(XISAIN(1),XISAIN(2),XISAIN(3),
96 $ XISAIN(4),XISAIN(5),XISAIN(6),XISAIN(7),XISAIN(8),XISAIN(9),
97 $ XISAIN(10),XISAIN(11),XISAIN(12),XISAIN(13),XISAIN(14),
98 $ XISAIN(15),XISAIN(16),XISAIN(17),XISAIN(18),XISAIN(19),
99 $ XISAIN(20),XISAIN(21),XISAIN(22),XISAIN(23),XISAIN(24),
100 $ AMASS(6),IALLOW,1)
101 ELSE IF(GOGMSB) THEN
102C GMSB input
103 XGMIN(8)=XRSLGM
104 XGMIN(9)=XDHDGM
105 XGMIN(10)=XDHUGM
106 XGMIN(11)=XDYGM
107 XGMIN(12)=XN51GM
108 XGMIN(13)=XN52GM
109 XGMIN(14)=XN53GM
110C First solve renormalization group equations
111 CALL SUGRA(XLAMGM,XMESGM,XN5GM,XTGBSU,XSMUSU,AMASS(6),2)
112 IF (NOGOOD.EQ.1) THEN
113 WRITE(LOUT,*) 'GMSB BAD POINT: TACHYONIC PARTICLES!'
114 ELSE IF (NOGOOD.EQ.2) THEN
115 WRITE(LOUT,*) 'GMSB BAD POINT: NO EW SYMMETRY BREAKING!'
116 ELSE IF (NOGOOD.EQ.3) THEN
117 WRITE(LOUT,*) 'GMSB BAD POINT: M(H_P)^2<0!'
118 ELSE IF (NOGOOD.EQ.4) THEN
119 WRITE(LOUT,*) 'GMSB BAD POINT: YUKAWA>100!'
120 ELSE IF (NOGOOD.EQ.7) THEN
121 WRITE(LOUT,*) 'GMSB BAD POINT: XT EWSB IS BAD!'
122 ELSE IF (NOGOOD.EQ.8) THEN
123 WRITE(LOUT,*) 'GMSB BAD POINT: MHL^2<0!'
124 END IF
125 IF(NOGOOD.NE.0) STOP99
126 IF(ITACHY.NE.0) THEN
127 WRITE(LOUT,*) 'WARNING: TACHYONIC SLEPTONS AT HIGH SCALE'
128 WRITE(LOUT,*) ' POINT MAY BE INVALID'
129 ENDIF
130C Then calculate masses and decays
131 AMGVSS=XLAMGM*XMESGM*XCMGV/SQRT(3.)/AMPL
132 CALL SSMSSM(XISAIN(1),XISAIN(2),XISAIN(3),
133 $ XISAIN(4),XISAIN(5),XISAIN(6),XISAIN(7),XISAIN(8),XISAIN(9),
134 $ XISAIN(10),XISAIN(11),XISAIN(12),XISAIN(13),XISAIN(14),
135 $ XISAIN(15),XISAIN(16),XISAIN(17),XISAIN(18),XISAIN(19),
136 $ XISAIN(20),XISAIN(21),XISAIN(22),XISAIN(23),XISAIN(24),
137 $ AMASS(6),IALLOW,2)
138 ELSE
139C Weak scale input
140C Values of 1.E20 indicate that SSMASS should calculate
141C M_1 and M_2 from M_3
142 CALL SSMSSM(XGLSS,XMUSS,XHASS,XTBSS,XQ1SS,XDRSS,XURSS,XL1SS,
143 $ XERSS,XQ2SS,XSRSS,XCRSS,XL2SS,XMRSS,XQ3SS,XBRSS,XTRSS,XL3SS,
144 $ XTARSS,XATSS,XABSS,XATASS,XM1SS,XM2SS,AMASS(6),IALLOW,1)
145 ENDIF
146C
147C Test parameters
148C
149 IF(IALLOW.NE.0) THEN
150 WRITE(LOUT,1000)
1511000 FORMAT(//' MSSM WARNING: Z1SS IS NOT LSP')
152 ENDIF
153 CALL SSTEST(IALLOW)
154 IITEST=IALLOW/2
155 IF(MOD(IITEST,2).NE.0) THEN
156 WRITE(LOUT,1002)
1571002 FORMAT(' MSSM WARNING: Z -> Z1SS Z1SS TOO BIG')
158 ENDIF
159 IITEST=IITEST/2
160 IF(MOD(IITEST,2).NE.0) THEN
161 WRITE(LOUT,1004)
1621004 FORMAT(' MSSM WARNING: Z -> CHARGINOS ALLOWED')
163 ENDIF
164 IITEST=IITEST/2
165 IF(MOD(IITEST,2).NE.0) THEN
166 WRITE(LOUT,1008)
1671008 FORMAT(' MSSM WARNING: Z -> Z1SS Z2SS TOO BIG')
168 ENDIF
169 IITEST=IITEST/2
170 IF(MOD(IITEST,2).NE.0) THEN
171 WRITE(LOUT,1008)
1721016 FORMAT(' MSSM WARNING: Z -> SQUARKS OR SLEPTONS')
173 ENDIF
174 IITEST=IITEST/2
175 IF(MOD(IITEST,2).NE.0) THEN
176 WRITE(LOUT,1032)
1771032 FORMAT(' MSSM WARNING: Z -> Z* HL0 TOO BIG')
178 ENDIF
179 IITEST=IITEST/2
180 IF(MOD(IITEST,2).NE.0) THEN
181 WRITE(LOUT,1064)
1821064 FORMAT(' MSSM WARNING: Z -> HL0 HA0 ALLOWED')
183 ENDIF
184 IITEST=IITEST/2
185 IF(MOD(IITEST,2).NE.0) THEN
186 WRITE(LOUT,1128)
1871128 FORMAT(' MSSM WARNING: Z -> H+ H- ALLOWED')
188 ENDIF
189C
190C Store masses in /QLMASS/
191C
192 CALL FLAVOR(ISUPL,IFL1,IFL2,IFL3,JSPIN,INDEX)
193 AMLEP(INDEX)=AMULSS
194 CALL FLAVOR(ISDNL,IFL1,IFL2,IFL3,JSPIN,INDEX)
195 AMLEP(INDEX)=AMDLSS
196 CALL FLAVOR(ISSTL,IFL1,IFL2,IFL3,JSPIN,INDEX)
197 AMLEP(INDEX)=AMSLSS
198 CALL FLAVOR(ISCHL,IFL1,IFL2,IFL3,JSPIN,INDEX)
199 AMLEP(INDEX)=AMCLSS
200 CALL FLAVOR(ISBT1,IFL1,IFL2,IFL3,JSPIN,INDEX)
201 AMLEP(INDEX)=AMB1SS
202 CALL FLAVOR(ISTP1,IFL1,IFL2,IFL3,JSPIN,INDEX)
203 AMLEP(INDEX)=AMT1SS
204 CALL FLAVOR(ISUPR,IFL1,IFL2,IFL3,JSPIN,INDEX)
205 AMLEP(INDEX)=AMURSS
206 CALL FLAVOR(ISDNR,IFL1,IFL2,IFL3,JSPIN,INDEX)
207 AMLEP(INDEX)=AMDRSS
208 CALL FLAVOR(ISSTR,IFL1,IFL2,IFL3,JSPIN,INDEX)
209 AMLEP(INDEX)=AMSRSS
210 CALL FLAVOR(ISCHR,IFL1,IFL2,IFL3,JSPIN,INDEX)
211 AMLEP(INDEX)=AMCRSS
212 CALL FLAVOR(ISBT2,IFL1,IFL2,IFL3,JSPIN,INDEX)
213 AMLEP(INDEX)=AMB2SS
214 CALL FLAVOR(ISTP2,IFL1,IFL2,IFL3,JSPIN,INDEX)
215 AMLEP(INDEX)=AMT2SS
216C
217 CALL FLAVOR(ISNEL,IFL1,IFL2,IFL3,JSPIN,INDEX)
218 AMLEP(INDEX)=AMN1SS
219 CALL FLAVOR(ISEL,IFL1,IFL2,IFL3,JSPIN,INDEX)
220 AMLEP(INDEX)=AMELSS
221 CALL FLAVOR(ISNML,IFL1,IFL2,IFL3,JSPIN,INDEX)
222 AMLEP(INDEX)=AMN2SS
223 CALL FLAVOR(ISMUL,IFL1,IFL2,IFL3,JSPIN,INDEX)
224 AMLEP(INDEX)=AMMLSS
225 CALL FLAVOR(ISNTL,IFL1,IFL2,IFL3,JSPIN,INDEX)
226 AMLEP(INDEX)=AMN3SS
227 CALL FLAVOR(ISTAU1,IFL1,IFL2,IFL3,JSPIN,INDEX)
228 AMLEP(INDEX)=AML1SS
229 CALL FLAVOR(ISER,IFL1,IFL2,IFL3,JSPIN,INDEX)
230 AMLEP(INDEX)=AMERSS
231 CALL FLAVOR(ISMUR,IFL1,IFL2,IFL3,JSPIN,INDEX)
232 AMLEP(INDEX)=AMMRSS
233 CALL FLAVOR(ISTAU2,IFL1,IFL2,IFL3,JSPIN,INDEX)
234 AMLEP(INDEX)=AML2SS
235C
236 CALL FLAVOR(ISGL,IFL1,IFL2,IFL3,JSPIN,INDEX)
237 AMLEP(INDEX)=ABS(AMGLSS)
238 CALL FLAVOR(ISZ1,IFL1,IFL2,IFL3,JSPIN,INDEX)
239 AMLEP(INDEX)=ABS(AMZ1SS)
240 CALL FLAVOR(ISZ2,IFL1,IFL2,IFL3,JSPIN,INDEX)
241 AMLEP(INDEX)=ABS(AMZ2SS)
242 CALL FLAVOR(ISZ3,IFL1,IFL2,IFL3,JSPIN,INDEX)
243 AMLEP(INDEX)=ABS(AMZ3SS)
244 CALL FLAVOR(ISZ4,IFL1,IFL2,IFL3,JSPIN,INDEX)
245 AMLEP(INDEX)=ABS(AMZ4SS)
246 CALL FLAVOR(ISW1,IFL1,IFL2,IFL3,JSPIN,INDEX)
247 AMLEP(INDEX)=ABS(AMW1SS)
248 CALL FLAVOR(ISW2,IFL1,IFL2,IFL3,JSPIN,INDEX)
249 AMLEP(INDEX)=ABS(AMW2SS)
250C
251 CALL FLAVOR(ISHL,IFL1,IFL2,IFL3,JSPIN,INDEX)
252 AMLEP(INDEX)=ABS(AMHL)
253 CALL FLAVOR(ISHH,IFL1,IFL2,IFL3,JSPIN,INDEX)
254 AMLEP(INDEX)=ABS(AMHH)
255 CALL FLAVOR(ISHA,IFL1,IFL2,IFL3,JSPIN,INDEX)
256 AMLEP(INDEX)=ABS(AMHA)
257 CALL FLAVOR(ISHC,IFL1,IFL2,IFL3,JSPIN,INDEX)
258 AMLEP(INDEX)=ABS(AMHC)
259C
260C Check decays with ISAJET masses
261C NOGRAV turns off gravitino decays and all weaker ones
262C
263 WIDMX=0
264 IF(NOGRAV) THEN
265 DO 90 J=1,NSSMOD
266 DO 91 K=1,5
267 IF(JSSMOD(K,J).EQ.ISGRAV) WIDMX=MAX(WIDMX,GSSMOD(J))
26891 CONTINUE
26990 CONTINUE
270 ENDIF
271 WIDMX=1.01*WIDMX
272C
273 DO 100 I=1,NOUT
274 SUMGAM=0
275 AMI=AMASS(IDOUT(I))
276 DO 110 J=1,NSSMOD
277 IF(IDOUT(I).NE.ISSMOD(J)) GO TO 110
278 SUMMJ=0
279 DO 111 K=1,5
280 IF(JSSMOD(K,J).NE.0) SUMMJ=SUMMJ+AMASS(JSSMOD(K,J))
281111 CONTINUE
282 IF(SUMMJ.GE.AMI.OR.GSSMOD(J).LT.WIDMX) GSSMOD(J)=0
283 SUMGAM=SUMGAM+GSSMOD(J)
284110 CONTINUE
285 DO 120 J=1,NSSMOD
286 IF(IDOUT(I).NE.ISSMOD(J)) GO TO 120
287 IF(SUMGAM.NE.0) THEN
288 BSSMOD(J)=GSSMOD(J)/SUMGAM
289 ELSE
290 BSSMOD(J)=0
291 ENDIF
292120 CONTINUE
293100 CONTINUE
294C
295 RETURN
296 END