]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/domssm.F
First commit.
[u/mrichter/AliRoot.git] / ISAJET / code / domssm.F
1 #include "isajet/pilot.h"
2       SUBROUTINE DOMSSM
3 C-----------------------------------------------------------------------
4 C          Initialize MSSM masses and decay modes from ISASUSY. 
5 C          Check for validity with ISAJET masses.
6 C          Decay modes are transfered to /DKYTAB/ by /SETDKY/.
7 C
8 C          F.E. Paige, November, 1992
9 C
10 C          Ver. 7.01: Add test so that AMASS is not called if ID = 0
11 C          Ver. 7.07: Add checking for LEP bounds.
12 C          Ver. 7.10: Add SUGRA interface
13 C          Ver. 7.32: Extend to large tanb solution
14 C          Ver. 7.33: Add gauge-mediated SUSY model
15 C          Ver. 7.38: NOGRAV turns off gravitino and weaker decays
16 C
17 C-----------------------------------------------------------------------
18 #if defined(CERNLIB_IMPNONE)
19       IMPLICIT NONE
20 #endif
21 C          ISAJET common blocks
22 #include "isajet/itapes.inc"
23 #include "isajet/qlmass.inc"
24 #include "isajet/xmssm.inc"
25 #include "isajet/nodcay.inc"
26 C          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"
34 C
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
41 C
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/
48 C
49 C          Generate masses and decays
50 C
51 C     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
58 C          SUGRA input
59 C          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
94 C          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
102 C          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
110 C          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
130 C          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
139 C          Weak scale input
140 C          Values of 1.E20 indicate that SSMASS should calculate
141 C          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
146 C
147 C          Test parameters
148 C
149       IF(IALLOW.NE.0) THEN
150         WRITE(LOUT,1000)
151 1000    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)
157 1002    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)
162 1004    FORMAT(' MSSM WARNING: Z -> CHARGINOS ALLOWED')
163       ENDIF
164       IITEST=IITEST/2
165       IF(MOD(IITEST,2).NE.0) THEN
166         WRITE(LOUT,1008)
167 1008    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)
172 1016    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)
177 1032    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)
182 1064    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)
187 1128    FORMAT(' MSSM WARNING: Z -> H+ H- ALLOWED')
188       ENDIF
189 C
190 C          Store masses in /QLMASS/
191 C
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
216 C
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
235 C
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)
250 C
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)
259 C
260 C          Check decays with ISAJET masses
261 C          NOGRAV turns off gravitino decays and all weaker ones
262 C
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))
268 91        CONTINUE
269 90      CONTINUE
270       ENDIF
271       WIDMX=1.01*WIDMX
272 C
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))
281 111       CONTINUE
282           IF(SUMMJ.GE.AMI.OR.GSSMOD(J).LT.WIDMX) GSSMOD(J)=0
283           SUMGAM=SUMGAM+GSSMOD(J)
284 110     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
292 120     CONTINUE
293 100   CONTINUE
294 C
295       RETURN
296       END