Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyfeyn.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyfeyn.f
1 
2 C*********************************************************************
3 
4 C...PYFEYN
5 C...Interface to FeynHiggs for MSSM Higgs sector.
6 C...Pythia6.402: Updated to FeynHiggs v.2.3.0+ w/ DOUBLE COMPLEX
7 C...P. Skands
8 
9  SUBROUTINE pyfeyn(IERR)
10 
11 C...Double precision and integer declarations.
12  IMPLICIT DOUBLE PRECISION(a-h, o-z)
13  IMPLICIT INTEGER(i-n)
14  INTEGER pyk,pychge,pycomp
15 C...Commonblocks.
16  common/pydat1/mstu(200),paru(200),mstj(200),parj(200)
17  common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
18 C...SUSY blocks
19  common/pymssm/imss(0:99),rmss(0:99)
20 C...FeynHiggs variables
21  DOUBLE PRECISION rmhigg(4)
22  DOUBLE COMPLEX saeff, uhiggs(3,3)
23  DOUBLE COMPLEX dmu,
24  & ae33, au33, ad33, ae22, au22, ad22, ae11, au11, ad11,
25  & dm1, dm2, dm3
26 C...SLHA Common Block
27  common/pylh3p/modsel(200),parmin(100),parext(200),rmsoft(0:100),
28  & au(3,3),ad(3,3),ae(3,3)
29  SAVE /pydat1/,/pydat2/,/pymssm/,/pylh3p/
30 
31  ierr=0
32  CALL fhsetflags(ierr,4,0,0,2,0,2,1,1)
33  IF (ierr.NE.0) THEN
34  CALL pyerrm(11,'(PYHGGM:) Caught error from FHSETFLAGS.'
35  & //'Will not use FeynHiggs for this run.')
36  RETURN
37  ENDIF
38  q=rmsoft(0)
39  dmb=pmas(5,1)
40  dmt=pmas(6,1)
41  dmz=pmas(23,1)
42  dmw=pmas(24,1)
43  dma=pmas(36,1)
44  dm1=rmsoft(1)
45  dm2=rmsoft(2)
46  dm3=rmsoft(3)
47  dtanb=rmss(5)
48  dmu=rmss(4)
49  dm3sl=rmsoft(33)
50  dm3se=rmsoft(36)
51  dm3sq=rmsoft(43)
52  dm3su=rmsoft(46)
53  dm3sd=rmsoft(49)
54  dm2sl=rmsoft(32)
55  dm2se=rmsoft(35)
56  dm2sq=rmsoft(42)
57  dm2su=rmsoft(45)
58  dm2sd=rmsoft(48)
59  dm1sl=rmsoft(31)
60  dm1se=rmsoft(34)
61  dm1sq=rmsoft(41)
62  dm1su=rmsoft(44)
63  dm1sd=rmsoft(47)
64  ae33=ae(3,3)
65  ae22=ae(2,2)
66  ae11=ae(1,1)
67  au33=au(3,3)
68  au22=au(2,2)
69  au11=au(1,1)
70  ad33=ad(3,3)
71  ad22=ad(2,2)
72  ad11=ad(1,1)
73  CALL fhsetpara(ierr, 1d0, dmt, dmb, dmw, dmz, dtanb,
74  & dma,0d0, dm3sl, dm3se, dm3sq, dm3su, dm3sd,
75  & dm2sl, dm2se, dm2sq, dm2su, dm2sd,
76  & dm1sl, dm1se, dm1sq, dm1su, dm1sd,dmu,
77  & ae33, au33, ad33, ae22, au22, ad22, ae11, au11, ad11,
78  & dm1, dm2, dm3, 0d0, 0d0,q,q,q)
79  IF (ierr.NE.0) THEN
80  CALL pyerrm(11,'(PYHGGM:) Caught error from FHSETPARA.'
81  & //' Will not use FeynHiggs for this run.')
82  RETURN
83  ENDIF
84 C... Get Higgs masses & alpha_eff. (UHIGGS redundant here, only for CPV)
85  saeff=0d0
86  CALL fhhiggscorr(ierr, rmhigg, saeff, uhiggs)
87  IF (ierr.NE.0) THEN
88  CALL pyerrm(11,'(PYFEYN:) Caught error from FHHIG'//
89  & 'GSCORR. Will not use FeynHiggs for this run.')
90  RETURN
91  ENDIF
92  alpha = asin(dble(saeff))
93  r=rmss(18)/alpha
94  IF (r.LT.0d0.OR.abs(r).GT.1.2d0.OR.abs(r).LT.0.8d0) THEN
95  CALL pyerrm(1,'(PYFEYN:) Large corrections in Higgs sector.')
96  WRITE(mstu(11),*) ' Old Alpha:', rmss(18)
97  WRITE(mstu(11),*) ' New Alpha:', alpha
98  ENDIF
99  IF (rmhigg(1).LT.0.85d0*pmas(25,1).OR.rmhigg(1).GT.
100  & 1.15d0*pmas(25,1)) THEN
101  CALL pyerrm(1,'(PYFEYN:) Large corrections in Higgs sector.')
102  WRITE(mstu(11),*) ' Old m(h0):', pmas(25,1)
103  WRITE(mstu(11),*) ' New m(h0):', rmhigg(1)
104  ENDIF
105  rmss(18)=alpha
106  pmas(25,1)=rmhigg(1)
107  pmas(35,1)=rmhigg(2)
108  pmas(36,1)=rmhigg(3)
109  pmas(37,1)=rmhigg(4)
110 
111  RETURN
112  END