EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyhiinre.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyhiinre.f
1 
2 C*********************************************************************
3 
4  SUBROUTINE pyhiinre
5 
6 C...Calculates full and effective widths of guage bosons, stores masses
7 C...and widths, rescales coefficients to be used for resonance
8 C...production generation.
9  common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
10  SAVE /ludat1/
11  common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
12  SAVE /ludat2/
13  common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
14  SAVE /ludat3/
15  common/pyhisubs/msel,msub(200),kfin(2,-40:40),ckin(200)
16  SAVE /pyhisubs/
17  common/pyhipars/mstp(200),parp(200),msti(200),pari(200)
18  SAVE /pyhipars/
19  common/pyhiint1/mint(400),vint(400)
20  SAVE /pyhiint1/
21  common/pyhiint2/iset(200),kfpr(200,2),coef(200,20),icol(40,4,2)
22  SAVE /pyhiint2/
23  common/pyhiint4/widp(21:40,0:40),wide(21:40,0:40),wids(21:40,3)
24  SAVE /pyhiint4/
25  common/pyhiint6/proc(0:200)
26  CHARACTER proc*28
27  SAVE /pyhiint6/
28  dimension wdtp(0:40),wdte(0:40,0:5)
29 
30 C...Calculate full and effective widths of gauge bosons.
31  aem=paru(101)
32  xw=paru(102)
33  DO 100 i=21,40
34  DO 100 j=0,40
35  widp(i,j)=0.
36  100 wide(i,j)=0.
37 
38 C...W+/-:
39  wmas=pmas(24,1)
40  wfac=aem/(24.*xw)*wmas
41  CALL pyhiwidt(24,wmas,wdtp,wdte)
42  wids(24,1)=((wdte(0,1)+wdte(0,2))*(wdte(0,1)+wdte(0,3))+
43  &(wdte(0,1)+wdte(0,2)+wdte(0,1)+wdte(0,3))*(wdte(0,4)+wdte(0,5))+
44  &2.*wdte(0,4)*wdte(0,5))/wdtp(0)**2
45  wids(24,2)=(wdte(0,1)+wdte(0,2)+wdte(0,4))/wdtp(0)
46  wids(24,3)=(wdte(0,1)+wdte(0,3)+wdte(0,4))/wdtp(0)
47  DO 110 i=0,40
48  widp(24,i)=wfac*wdtp(i)
49  110 wide(24,i)=wfac*wdte(i,0)
50 
51 C...H+/-:
52  hcmas=pmas(37,1)
53  hcfac=aem/(8.*xw)*(hcmas/wmas)**2*hcmas
54  CALL pyhiwidt(37,hcmas,wdtp,wdte)
55  wids(37,1)=((wdte(0,1)+wdte(0,2))*(wdte(0,1)+wdte(0,3))+
56  &(wdte(0,1)+wdte(0,2)+wdte(0,1)+wdte(0,3))*(wdte(0,4)+wdte(0,5))+
57  &2.*wdte(0,4)*wdte(0,5))/wdtp(0)**2
58  wids(37,2)=(wdte(0,1)+wdte(0,2)+wdte(0,4))/wdtp(0)
59  wids(37,3)=(wdte(0,1)+wdte(0,3)+wdte(0,4))/wdtp(0)
60  DO 120 i=0,40
61  widp(37,i)=hcfac*wdtp(i)
62  120 wide(37,i)=hcfac*wdte(i,0)
63 
64 C...Z0:
65  zmas=pmas(23,1)
66  zfac=aem/(48.*xw*(1.-xw))*zmas
67  CALL pyhiwidt(23,zmas,wdtp,wdte)
68  wids(23,1)=((wdte(0,1)+wdte(0,2))**2+
69  &2.*(wdte(0,1)+wdte(0,2))*(wdte(0,4)+wdte(0,5))+
70  &2.*wdte(0,4)*wdte(0,5))/wdtp(0)**2
71  wids(23,2)=(wdte(0,1)+wdte(0,2)+wdte(0,4))/wdtp(0)
72  wids(23,3)=0.
73  DO 130 i=0,40
74  widp(23,i)=zfac*wdtp(i)
75  130 wide(23,i)=zfac*wdte(i,0)
76 
77 C...H0:
78  hmas=pmas(25,1)
79  hfac=aem/(8.*xw)*(hmas/wmas)**2*hmas
80  CALL pyhiwidt(25,hmas,wdtp,wdte)
81  wids(25,1)=((wdte(0,1)+wdte(0,2))**2+
82  &2.*(wdte(0,1)+wdte(0,2))*(wdte(0,4)+wdte(0,5))+
83  &2.*wdte(0,4)*wdte(0,5))/wdtp(0)**2
84  wids(25,2)=(wdte(0,1)+wdte(0,2)+wdte(0,4))/wdtp(0)
85  wids(25,3)=0.
86  DO 140 i=0,40
87  widp(25,i)=hfac*wdtp(i)
88  140 wide(25,i)=hfac*wdte(i,0)
89 
90 C...Z'0:
91  zpmas=pmas(32,1)
92  zpfac=aem/(48.*xw*(1.-xw))*zpmas
93  CALL pyhiwidt(32,zpmas,wdtp,wdte)
94  wids(32,1)=((wdte(0,1)+wdte(0,2)+wdte(0,3))**2+
95  &2.*(wdte(0,1)+wdte(0,2))*(wdte(0,4)+wdte(0,5))+
96  &2.*wdte(0,4)*wdte(0,5))/wdtp(0)**2
97  wids(32,2)=(wdte(0,1)+wdte(0,2)+wdte(0,4))/wdtp(0)
98  wids(32,3)=0.
99  DO 150 i=0,40
100  widp(32,i)=zpfac*wdtp(i)
101  150 wide(32,i)=zpfac*wdte(i,0)
102 
103 C...R:
104  rmas=pmas(40,1)
105  rfac=0.08*rmas/((mstp(1)-1)*(1.+6.*(1.+ulalps(rmas**2)/paru(1))))
106  CALL pyhiwidt(40,rmas,wdtp,wdte)
107  wids(40,1)=((wdte(0,1)+wdte(0,2))*(wdte(0,1)+wdte(0,3))+
108  &(wdte(0,1)+wdte(0,2)+wdte(0,1)+wdte(0,3))*(wdte(0,4)+wdte(0,5))+
109  &2.*wdte(0,4)*wdte(0,5))/wdtp(0)**2
110  wids(40,2)=(wdte(0,1)+wdte(0,2)+wdte(0,4))/wdtp(0)
111  wids(40,3)=(wdte(0,1)+wdte(0,3)+wdte(0,4))/wdtp(0)
112  DO 160 i=0,40
113  widp(40,i)=wfac*wdtp(i)
114  160 wide(40,i)=wfac*wdte(i,0)
115 
116 C...Q:
117  kflqm=1
118  DO 170 i=1,min(8,mdcy(21,3))
119  idc=i+mdcy(21,2)-1
120  IF(mdme(idc,1).LE.0) goto 170
121  kflqm=i
122  170 CONTINUE
123  mint(46)=kflqm
124  kfpr(81,1)=kflqm
125  kfpr(81,2)=kflqm
126  kfpr(82,1)=kflqm
127  kfpr(82,2)=kflqm
128 
129 C...Set resonance widths and branching ratios in JETSET.
130  DO 180 i=1,6
131  IF(i.LE.3) kc=i+22
132  IF(i.EQ.4) kc=32
133  IF(i.EQ.5) kc=37
134  IF(i.EQ.6) kc=40
135  pmas(kc,2)=widp(kc,0)
136  pmas(kc,3)=min(0.9*pmas(kc,1),10.*pmas(kc,2))
137  DO 180 j=1,mdcy(kc,3)
138  idc=j+mdcy(kc,2)-1
139  brat(idc)=wide(kc,j)/wide(kc,0)
140  180 CONTINUE
141 
142 C...Special cases in treatment of gamma*/Z0: redefine process name.
143  IF(mstp(43).EQ.1) THEN
144  proc(1)='f + fb -> gamma*'
145  ELSEIF(mstp(43).EQ.2) THEN
146  proc(1)='f + fb -> Z0'
147  ELSEIF(mstp(43).EQ.3) THEN
148  proc(1)='f + fb -> gamma*/Z0'
149  ENDIF
150 
151 C...Special cases in treatment of gamma*/Z0/Z'0: redefine process name.
152  IF(mstp(44).EQ.1) THEN
153  proc(141)='f + fb -> gamma*'
154  ELSEIF(mstp(44).EQ.2) THEN
155  proc(141)='f + fb -> Z0'
156  ELSEIF(mstp(44).EQ.3) THEN
157  proc(141)='f + fb -> Z''0'
158  ELSEIF(mstp(44).EQ.4) THEN
159  proc(141)='f + fb -> gamma*/Z0'
160  ELSEIF(mstp(44).EQ.5) THEN
161  proc(141)='f + fb -> gamma*/Z''0'
162  ELSEIF(mstp(44).EQ.6) THEN
163  proc(141)='f + fb -> Z0/Z''0'
164  ELSEIF(mstp(44).EQ.7) THEN
165  proc(141)='f + fb -> gamma*/Z0/Z''0'
166  ENDIF
167 
168  RETURN
169  END