Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyapps.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyapps.f
1 
2 
3 C*********************************************************************
4 
5 C...PYAPPS
6 C...Uses approximate analytical formulae to determine the full set of
7 C...MSSM parameters from SUGRA input.
8 C...See M. Drees and S.P. Martin, hep-ph/9504124
9 
10  SUBROUTINE pyapps
11 
12 C...Double precision and integer declarations.
13  IMPLICIT DOUBLE PRECISION(a-h, o-z)
14  IMPLICIT INTEGER(i-n)
15  INTEGER pyk,pychge,pycomp
16 C...Parameter statement to help give large particle numbers.
17  parameter(ksusy1=1000000,ksusy2=2000000,ktechn=3000000,
18  &kexcit=4000000,kdimen=5000000)
19 C...Commonblocks.
20  common/pydat1/mstu(200),paru(200),mstj(200),parj(200)
21  common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
22  common/pymssm/imss(0:99),rmss(0:99)
23  SAVE /pydat1/,/pydat2/,/pymssm/
24 
25  WRITE(mstu(11),*) '(PYAPPS:) approximate mSUGRA relations'//
26  &' not intended for serious physics studies'
27  imss(5)=0
28  imss(8)=0
29  xmt=pmas(6,1)
30  xmz2=pmas(23,1)**2
31  xmw2=pmas(24,1)**2
32  tanb=rmss(5)
33  beta=atan(tanb)
34  xw=paru(102)
35  xmg=rmss(1)
36  xmg2=xmg*xmg
37  xm0=rmss(8)
38  xm02=xm0*xm0
39 C...Temporary sign change for AT. Others unchanged.
40  at=-rmss(16)
41  rmss(15)=rmss(16)
42  rmss(17)=rmss(16)
43  sinb=tanb/sqrt(tanb**2+1d0)
44  cosb=sinb/tanb
45 
46  dterm=xmz2*cos(2d0*beta)
47  xmer=sqrt(xm02+0.15d0*xmg2-xw*dterm)
48  xmel=sqrt(xm02+0.52d0*xmg2-(0.5d0-xw)*dterm)
49  rmss(6)=xmel
50  rmss(7)=xmer
51  xmur=sqrt(pyrnmq(2,2d0/3d0*xw*dterm))
52  xmdr=sqrt(pyrnmq(3,-1d0/3d0*xw*dterm))
53  xmul=sqrt(pyrnmq(1,(0.5d0-2d0/3d0*xw)*dterm))
54  xmdl=sqrt(pyrnmq(1,-(0.5d0-1d0/3d0*xw)*dterm))
55  DO 100 i=1,5,2
56  pmas(pycomp(ksusy1+i),1)=xmdl
57  pmas(pycomp(ksusy2+i),1)=xmdr
58  pmas(pycomp(ksusy1+i+1),1)=xmul
59  pmas(pycomp(ksusy2+i+1),1)=xmur
60  100 CONTINUE
61  xarg=xmel**2-xmw2*abs(cos(2d0*beta))
62  IF(xarg.LT.0d0) THEN
63  WRITE(mstu(11),*) ' SNEUTRINO MASS IS NEGATIVE'//
64  & ' FROM THE SUM RULE. '
65  WRITE(mstu(11),*) ' TRY A SMALLER VALUE OF TAN(BETA). '
66  RETURN
67  ELSE
68  xarg=sqrt(xarg)
69  ENDIF
70  DO 110 i=11,15,2
71  pmas(pycomp(ksusy1+i),1)=xmel
72  pmas(pycomp(ksusy2+i),1)=xmer
73  pmas(pycomp(ksusy1+i+1),1)=xarg
74  pmas(pycomp(ksusy2+i+1),1)=9999d0
75  110 CONTINUE
76  rmt=pymrun(6,pmas(6,1)**2)
77  xtop=(rmt/150d0/sinb)**2*(.9d0*xm02+2.1d0*xmg2+
78  &(1d0-(rmt/190d0/sinb)**3)*(.24d0*at**2+at*xmg))
79  rmb=pymrun(5,pmas(6,1)**2)
80  xbot=(rmb/150d0/cosb)**2*(.9d0*xm02+2.1d0*xmg2+
81  &(1d0-(rmb/190d0/cosb)**3)*(.24d0*at**2+at*xmg))
82  xtau=1d-4/cosb**2*(xm02+0.15d0*xmg2+at**2/3d0)
83  atp=at*(1d0-(rmt/190d0/sinb)**2)+xmg*(3.47d0-1.9d0*(rmt/190d0/
84  &sinb)**2)
85  rmss(16)=-atp
86  xmu2=-.5d0*xmz2+(sinb**2*(xm02+.52d0*xmg2-xtop)-
87  &cosb**2*(xm02+.52d0*xmg2-xbot-xtau/3d0))/(cosb**2-sinb**2)
88  xma2=2d0*(xm02+.52d0*xmg2+xmu2)-xtop-xbot-xtau/3d0
89  xmu=sign(sqrt(xmu2),rmss(4))
90  rmss(4)=xmu
91  IF(xma2.GT.0d0) THEN
92  rmss(19)=sqrt(xma2)
93  ELSE
94  WRITE(mstu(11),*) ' PYAPPS:: PSEUDOSCALAR MASS**2 < 0 '
95  CALL pystop(102)
96  ENDIF
97  arg=xm02+0.15d0*xmg2-2d0*xtau/3d0-xw*dterm
98  IF(arg.GT.0d0) THEN
99  rmss(14)=sqrt(arg)
100  ELSE
101  WRITE(mstu(11),*) ' PYAPPS:: RIGHT STAU MASS**2 < 0 '
102  CALL pystop(102)
103  ENDIF
104  arg=xm02+0.52d0*xmg2-xtau/3d0-(0.5d0-xw)*dterm
105  IF(arg.GT.0d0) THEN
106  rmss(13)=sqrt(arg)
107  ELSE
108  WRITE(mstu(11),*) ' PYAPPS:: LEFT STAU MASS**2 < 0 '
109  CALL pystop(102)
110  ENDIF
111  arg=pyrnmq(1,-(xbot+xtop)/3d0)
112  IF(arg.GT.0d0) THEN
113  rmss(10)=sqrt(arg)
114  ELSE
115  rmss(10)=-sqrt(-arg)
116  ENDIF
117  arg=pyrnmq(2,-2d0*xtop/3d0)
118  IF(arg.GT.0d0) THEN
119  rmss(12)=sqrt(arg)
120  ELSE
121  rmss(12)=-sqrt(-arg)
122  ENDIF
123  arg=pyrnmq(3,-2d0*xbot/3d0)
124  IF(arg.GT.0d0) THEN
125  rmss(11)=sqrt(arg)
126  ELSE
127  rmss(11)=-sqrt(-arg)
128  ENDIF
129 
130  RETURN
131  END