11 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
15 parameter(ksusy1=1000000,ksusy2=2000000,ktechn=3000000,
16 &kexcit=4000000,kdimen=5000000)
18 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
19 common/
pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
20 common/
pymssm/imss(0:99),rmss(0:99)
21 common/
pyssmt/zmix(4,4),umix(2,2),vmix(2,2),smz(4),smw(2),
22 &sfmix(16,4),zmixi(4,4),umixi(2,2),vmixi(2,2)
27 DOUBLE PRECISION am2(2,2),rt(2,2),di(2,2)
28 DOUBLE PRECISION xmz2,xmw2,tanb,xmu,cos2b,xmql2,xmqr2
29 DOUBLE PRECISION xmf,xmf2,diff,same,xmf12,xmf22,
small
30 DOUBLE PRECISION atr,amqr,amql
31 INTEGER id1(3),id2(3),id3(3),id4(3)
58 xmql2=ctt2*xm12+stt2*xm22
59 xmqr2=stt2*xm12+ctt2*xm22
60 xmf2=
pymrun(6,pmas(6,1)**2)**2
61 atop=-xmu/tanb+ctt*stt*(xm12-xm22)/sqrt(xmf2)
64 xmql2=xmql2-xmf2-(4d0*xmw2-xmz2)*cos2b/6d0
65 xmqr2=xmqr2-xmf2+(xmw2-xmz2)*cos2b*2d0/3d0
69 rmss(10)=-sqrt(-xmql2)
74 rmss(12)=-sqrt(-xmqr2)
83 xmf2=
pymrun(5,pmas(6,1)**2)**2
84 xmql2=
sign(rmss(10)**2,rmss(10))-(2d0*xmw2+xmz2)*cos2b/6d0+xmf2
85 IF(abs(ctt).GE..9999d0)
THEN
88 ELSEIF(abs(ctt).LE.1d-4)
THEN
92 xm12=(xmql2-stt2*xm22)/ctt2
93 xmqr2=stt2*xm12+ctt2*xm22
94 abot=-xmu*tanb+ctt*stt*(xm12-xm22)/sqrt(xmf2)
98 xmqr2=xmqr2-(xmw2-xmz2)*cos2b/3d0-xmf2
102 rmss(11)=-sqrt(-xmqr2)
111 xmql2=ctt2*xm12+stt2*xm22
112 xmqr2=stt2*xm12+ctt2*xm22
115 atau=-xmu*tanb+ctt*stt*(xm12-xm22)/sqrt(xmf2)
118 xmql2=xmql2-xmf2+(-.5d0*xmz2+xmw2)*cos2b
119 xmqr2=xmqr2-xmf2+(xmz2-xmw2)*cos2b
120 IF(xmql2.GE.0d0)
THEN
123 rmss(13)=-sqrt(-xmql2)
125 IF(xmqr2.GE.0d0)
THEN
128 rmss(14)=-sqrt(-xmqr2)
146 xmf=
pymrun(
IF,pmas(6,1)**2)
150 IF(am2(1,1).EQ.am2(2,2)) am2(2,2)=am2(2,2)*1.00001d0
153 am2(1,1)=am2(1,1)-(2d0*xmw2+xmz2)*cos2b/6d0
154 am2(2,2)=am2(2,2)+(xmw2-xmz2)*cos2b/3d0
155 am2(1,2)=xmf*(atr+xmu*tanb)
157 am2(1,1)=am2(1,1)+(4d0*xmw2-xmz2)*cos2b/6d0
158 am2(2,2)=am2(2,2)-(xmw2-xmz2)*cos2b*2d0/3d0
159 am2(1,2)=xmf*(atr+xmu/tanb)
161 IF(imss(8).EQ.1)
THEN
168 am2(1,1)=am2(1,1)-(-.5d0*xmz2+xmw2)*cos2b
169 am2(2,2)=am2(2,2)-(xmz2-xmw2)*cos2b
170 am2(1,2)=xmf*(atr+xmu*tanb)
175 detm=am2(1,1)*am2(2,2)-am2(2,1)**2
177 WRITE(mstu(11),*) id2(l),detm,am2
178 CALL
pyerrm(30,
' NEGATIVE**2 MASS FOR SFERMION IN PYTHRG ')
180 same=0.5d0*(am2(1,1)+am2(2,2))
181 diff=0.5d0*sqrt((am2(1,1)-am2(2,2))**2+4d0*am2(1,2)*am2(2,1))
185 IF(xmf22-xmf12.GT.0d0)
THEN
186 rt(1,1) = sqrt(
max(0d0,(xmf22-am2(1,1))/(xmf22-xmf12)))
188 rt(1,2) = -
sign(sqrt(
max(0d0,1d0-rt(1,1)**2)),
189 & am2(1,2)/(xmf22-xmf12))
205 di(
i,jj)=di(
i,jj)+rt(
i,
j)*am2(
j,ii)*rt(jj,ii)
211 IF(di(1,1).GT.di(2,2))
THEN
212 WRITE(mstu(11),*)
' ERROR IN DIAGONALIZATION '
213 WRITE(mstu(11),*) l,sqrt(xmf12),sqrt(xmf22)
214 WRITE(mstu(11),*) am2
227 ELSEIF(abs(di(1,2)*di(2,1)/di(1,1)/di(2,2)).GT.
small)
THEN
228 WRITE(mstu(11),*)
' ERROR IN DIAGONALIZATION,'//
229 &
' OFF DIAGONAL ELEMENTS '
230 WRITE(mstu(11),*)
'MASSES = ',l,sqrt(xmf12),sqrt(xmf22)
232 WRITE(mstu(11),*)
' ROTATION = ',rt
234 ELSEIF(di(1,1).LT.0d0.OR.di(2,2).LT.0d0)
THEN
235 WRITE(mstu(11),*)
' ERROR IN DIAGONALIZATION,'//
236 &
' NEGATIVE MASSES '
239 pmas(
pycomp(ksusy1+
if),1)=sqrt(xmf12)
240 pmas(
pycomp(ksusy2+
if),1)=sqrt(xmf22)
249 xarg=am2(1,1)+xmw2*cos2b
251 WRITE(mstu(11),*)
' PYTHRG:: TAU SNEUTRINO MASS IS NEGATIVE'//
252 &
' FROM THE SUM RULE. '
253 WRITE(mstu(11),*)
' TRY A SMALLER VALUE OF TAN(BETA). '
256 pmas(
pycomp(ksusy1+16),1)=sqrt(xarg)