Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyhext.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyhext.f
1 
2 C*********************************************************************
3 
4 C...PYHEXT
5 C...Calculates the non-standard decay modes of the Higgs boson.
6 C...
7 C...Author: Stephen Mrenna
8 C...Last Update: April 2001
9 C......Allow complex values for Z,U, and V
10 
11  SUBROUTINE pyhext(KFIN,XLAM,IDLAM,IKNT)
12 
13 C...Double precision and integer declarations.
14  IMPLICIT DOUBLE PRECISION(a-h, o-z)
15  IMPLICIT INTEGER(i-n)
16  INTEGER pyk,pychge,pycomp
17 C...Parameter statement to help give large particle numbers.
18  parameter(ksusy1=1000000,ksusy2=2000000,ktechn=3000000,
19  &kexcit=4000000,kdimen=5000000)
20 C...Commonblocks.
21  common/pydat1/mstu(200),paru(200),mstj(200),parj(200)
22  common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
23  common/pypars/mstp(200),parp(200),msti(200),pari(200)
24  common/pymssm/imss(0:99),rmss(0:99)
25  common/pyssmt/zmix(4,4),umix(2,2),vmix(2,2),smz(4),smw(2),
26  &sfmix(16,4),zmixi(4,4),umixi(2,2),vmixi(2,2)
27  SAVE /pydat1/,/pydat2/,/pypars/,/pymssm/,/pyssmt/
28 
29 C...Local variables.
30  COMPLEX*16 zmixc(4,4),vmixc(2,2),umixc(2,2),olpp,orpp
31  COMPLEX*16 qij,rij,f21k,f12k
32  INTEGER kfin
33  DOUBLE PRECISION xmi,xmj,xmf,xmw,xmw2,xmz,axmj,axmi
34  DOUBLE PRECISION xmi2,xmi3,xmj2
35  DOUBLE PRECISION pylamf,xl,cf,ei
36  INTEGER idu,ifl
37  DOUBLE PRECISION tanw,xw,aem,c1,as
38  DOUBLE PRECISION pyh2xx,ghll,ghrr,ghlr
39  DOUBLE PRECISION xlam(0:400)
40  INTEGER idlam(400,3)
41  INTEGER lknt,ih,j,ij,i,iknt,ik
42  INTEGER ith(4)
43  INTEGER kfnchi(4),kfcchi(2)
44  DOUBLE PRECISION etah(3),ch(3),dh(3),eh(3)
45  DOUBLE PRECISION sr2
46  DOUBLE PRECISION beta,alfa
47  DOUBLE PRECISION cbeta,sbeta,gr,gl,tanb
48  DOUBLE PRECISION pyalem
49  DOUBLE PRECISION al,ar,alr
50  DOUBLE PRECISION xmk,axmk,cosa,sina,cw,xml
51  DOUBLE PRECISION xmuz,atrit,atrib,atril
52  DOUBLE PRECISION xmjl,xmjr,xm1,xm2
53  DATA ith/25,35,36,37/
54  DATA etah/1d0,1d0,-1d0/
55  DATA sr2/1.4142136d0/
56  DATA kfnchi/1000022,1000023,1000025,1000035/
57  DATA kfcchi/1000024,1000037/
58 
59 C...COUNT THE NUMBER OF DECAY MODES
60  lknt=iknt
61 
62  xmw=pmas(24,1)
63  xmw2=xmw**2
64  xmz=pmas(23,1)
65  xw=paru(102)
66  tanw = sqrt(xw/(1d0-xw))
67  cw=sqrt(1d0-xw)
68 
69 C...1 - 4 DEPENDING ON Higgs species.
70  ih=1
71  IF(kfin.EQ.ith(2)) ih=2
72  IF(kfin.EQ.ith(3)) ih=3
73  IF(kfin.EQ.ith(4)) ih=4
74 
75  xmi=pmas(kfin,1)
76  xmi2=xmi**2
77  axmi=abs(xmi)
78  aem=pyalem(xmi2)
79  c1=aem/xw
80  xmi3=abs(xmi**3)
81 
82  tanb=rmss(5)
83  beta=atan(tanb)
84  cbeta=cos(beta)
85  sbeta=tanb*cbeta
86  alfa=rmss(18)
87  cosa=cos(alfa)
88  sina=sin(alfa)
89  atrit=rmss(16)
90  atrib=rmss(15)
91  atril=rmss(17)
92  xmuz=-rmss(4)
93 
94  DO 110 i=1,4
95  DO 100 j=1,4
96  zmixc(j,i)=dcmplx(zmix(j,i),zmixi(j,i))
97  100 CONTINUE
98  110 CONTINUE
99  DO 130 i=1,2
100  DO 120 j=1,2
101  vmixc(j,i)=dcmplx(vmix(j,i),vmixi(j,i))
102  umixc(j,i)=dcmplx(umix(j,i),umixi(j,i))
103  120 CONTINUE
104  130 CONTINUE
105 
106 
107  IF(ih.EQ.4) goto 220
108 
109 C...CHECK ALL 2-BODY DECAYS TO GAUGE AND HIGGS BOSONS
110 C...H0_K -> CHI0_I + CHI0_J
111  eh(2)=sina
112  eh(1)=cosa
113  eh(3)=cbeta
114  dh(2)=cosa
115  dh(1)=-sina
116  dh(3)=sbeta
117  DO 150 ij=1,4
118  xmj=smz(ij)
119  axmj=abs(xmj)
120  DO 140 ik=1,ij
121  xmk=smz(ik)
122  axmk=abs(xmk)
123  IF(axmi.GE.axmj+axmk) THEN
124  lknt=lknt+1
125  qij=zmixc(ik,3)*zmixc(ij,2)+
126  & zmixc(ij,3)*zmixc(ik,2)-
127  & tanw*(zmixc(ik,3)*zmixc(ij,1)+
128  & zmixc(ij,3)*zmixc(ik,1))
129  rij=zmixc(ik,4)*zmixc(ij,2)+
130  & zmixc(ij,4)*zmixc(ik,2)-
131  & tanw*(zmixc(ik,4)*zmixc(ij,1)+
132  & zmixc(ij,4)*zmixc(ik,1))
133  f21k=0.5d0*dconjg(qij*dh(ih)-rij*eh(ih))
134  f12k=0.5d0*(qij*dh(ih)-rij*eh(ih))
135 C...SIGN OF MASSES I,J
136  xml=xmk*etah(ih)
137  gx2=abs(f12k)**2+abs(f21k)**2
138  glr=dble(f12k*dconjg(f21k))
139  xlam(lknt)=pyh2xx(c1,xmi,xmj,xml,gx2,glr)
140  IF(ij.EQ.ik) xlam(lknt)=xlam(lknt)*0.5d0
141  idlam(lknt,1)=kfnchi(ij)
142  idlam(lknt,2)=kfnchi(ik)
143  idlam(lknt,3)=0
144  ENDIF
145  140 CONTINUE
146  150 CONTINUE
147 
148 C...H0_K -> CHI+_I CHI-_J
149  DO 170 ij=1,2
150  xmj=smw(ij)
151  axmj=abs(xmj)
152  DO 160 ik=1,2
153  xmk=smw(ik)
154  axmk=abs(xmk)
155  IF(axmi.GE.axmj+axmk) THEN
156  lknt=lknt+1
157  olpp=dconjg(vmixc(ij,1)*umixc(ik,2)*dh(ih) +
158  & vmixc(ij,2)*umixc(ik,1)*eh(ih))/sr2
159  orpp=(vmixc(ik,1)*umixc(ij,2)*dh(ih) +
160  & vmixc(ik,2)*umixc(ij,1)*eh(ih))/sr2
161  gx2=abs(olpp)**2+abs(orpp)**2
162  glr=dble(olpp*dconjg(orpp))
163  xml=xmk*etah(ih)
164  xlam(lknt)=pyh2xx(c1,xmi,xmj,xml,gx2,glr)
165  idlam(lknt,1)=kfcchi(ij)
166  idlam(lknt,2)=-kfcchi(ik)
167  idlam(lknt,3)=0
168  ENDIF
169  160 CONTINUE
170  170 CONTINUE
171 
172 C...HIGGS TO SFERMION SFERMION
173  DO 200 ifl=1,16
174  IF(ifl.GE.7.AND.ifl.LE.10) goto 200
175  ij=ksusy1+ifl
176  xmjl=pmas(pycomp(ij),1)
177  xmjr=pmas(pycomp(ij+ksusy1),1)
178  IF(axmi.GE.2d0*min(xmjl,xmjr)) THEN
179  xmj=xmjl
180  xmj2=xmj**2
181  xl=pylamf(xmi2,xmj2,xmj2)
182  xmf=pmas(ifl,1)
183  ei=kchg(ifl,1)/3d0
184  idu=2-mod(ifl,2)
185 
186  IF(ih.EQ.1) THEN
187  IF(idu.EQ.1) THEN
188  ghll=-xmz/cw*(0.5d0+ei*xw)*sin(alfa+beta)+
189  & xmf**2/xmw*sina/cbeta
190  ghrr=xmz/cw*(ei*xw)*sin(alfa+beta)+
191  & xmf**2/xmw*sina/cbeta
192  IF(ifl.EQ.5) THEN
193  ghlr=-xmf/2d0/xmw/cbeta*(xmuz*cosa-
194  & atrib*sina)
195  ELSEIF(ifl.EQ.15) THEN
196  ghlr=-xmf/2d0/xmw/cbeta*(xmuz*cosa-
197  & atril*sina)
198  ELSE
199  ghlr=0d0
200  ENDIF
201  ELSE
202  ghll=xmz/cw*(0.5d0-ei*xw)*sin(alfa+beta)-
203  & xmf**2/xmw*cosa/sbeta
204  ghrr=xmz/cw*(ei*xw)*sin(alfa+beta)-
205  & xmf**2/xmw*cosa/sbeta
206  IF(ifl.EQ.6) THEN
207  ghlr=xmf/2d0/xmw/sbeta*(xmuz*sina-
208  & atrit*cosa)
209  ELSE
210  ghlr=0d0
211  ENDIF
212  ENDIF
213 
214  ELSEIF(ih.EQ.2) THEN
215  IF(idu.EQ.1) THEN
216  ghll=xmz/cw*(0.5d0+ei*xw)*cos(alfa+beta)-
217  & xmf**2/xmw*cosa/cbeta
218  ghrr=-xmz/cw*(ei*xw)*cos(alfa+beta)-
219  & xmf**2/xmw*cosa/cbeta
220  IF(ifl.EQ.5) THEN
221  ghlr=-xmf/2d0/xmw/cbeta*(xmuz*sina+
222  & atrib*cosa)
223  ELSEIF(ifl.EQ.15) THEN
224  ghlr=-xmf/2d0/xmw/cbeta*(xmuz*sina+
225  & atril*cosa)
226  ELSE
227  ghlr=0d0
228  ENDIF
229  ELSE
230  ghll=-xmz/cw*(0.5d0-ei*xw)*cos(alfa+beta)-
231  & xmf**2/xmw*sina/sbeta
232  ghrr=-xmz/cw*(ei*xw)*cos(alfa+beta)-
233  & xmf**2/xmw*sina/sbeta
234  IF(ifl.EQ.6) THEN
235  ghlr=-xmf/2d0/xmw/sbeta*(xmuz*cosa+
236  & atrit*sina)
237  ELSE
238  ghlr=0d0
239  ENDIF
240  ENDIF
241 
242  ELSEIF(ih.EQ.3) THEN
243  ghll=0d0
244  ghrr=0d0
245  ghlr=0d0
246  IF(idu.EQ.1) THEN
247  IF(ifl.EQ.5) THEN
248  ghlr=xmf/2d0/xmw*(atrib*tanb-xmuz)
249  ELSEIF(ifl.EQ.15) THEN
250  ghlr=xmf/2d0/xmw*(atril*tanb-xmuz)
251  ENDIF
252  ELSE
253  IF(ifl.EQ.6) THEN
254  ghlr=xmf/2d0/xmw*(atrit/tanb-xmuz)
255  ENDIF
256  ENDIF
257  ENDIF
258  IF(ih.EQ.3) goto 180
259 
260  al=sfmix(ifl,1)**2
261  ar=sfmix(ifl,2)**2
262  alr=sfmix(ifl,1)*sfmix(ifl,2)
263  IF(ifl.LE.6) THEN
264  cf=3d0
265  ELSE
266  cf=1d0
267  ENDIF
268 
269  IF(axmi.GE.2d0*xmj) THEN
270  lknt=lknt+1
271  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*
272  & (ghll*al+ghrr*ar
273  & +2d0*ghlr*alr)**2
274  idlam(lknt,1)=ij
275  idlam(lknt,2)=-ij
276  idlam(lknt,3)=0
277  ENDIF
278 
279  IF(axmi.GE.2d0*xmjr) THEN
280  lknt=lknt+1
281  al=sfmix(ifl,3)**2
282  ar=sfmix(ifl,4)**2
283  alr=sfmix(ifl,3)*sfmix(ifl,4)
284  xmj=xmjr
285  xmj2=xmj**2
286  xl=pylamf(xmi2,xmj2,xmj2)
287  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*
288  & (ghll*al+ghrr*ar
289  & +2d0*ghlr*alr)**2
290  idlam(lknt,1)=ij+ksusy1
291  idlam(lknt,2)=-(ij+ksusy1)
292  idlam(lknt,3)=0
293  ENDIF
294  180 CONTINUE
295 
296  IF(axmi.GE.xmjl+xmjr) THEN
297  lknt=lknt+1
298  al=sfmix(ifl,1)*sfmix(ifl,3)
299  ar=sfmix(ifl,2)*sfmix(ifl,4)
300  alr=sfmix(ifl,1)*sfmix(ifl,4)+sfmix(ifl,2)*sfmix(ifl,3)
301  xmj=xmjr
302  xmj2=xmj**2
303  xl=pylamf(xmi2,xmj2,xmjl**2)
304  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*
305  & (ghll*al+ghrr*ar)**2
306  idlam(lknt,1)=ij
307  idlam(lknt,2)=-(ij+ksusy1)
308  idlam(lknt,3)=0
309  lknt=lknt+1
310  idlam(lknt,1)=-ij
311  idlam(lknt,2)=ij+ksusy1
312  idlam(lknt,3)=0
313  xlam(lknt)=xlam(lknt-1)
314  ENDIF
315  ENDIF
316  190 CONTINUE
317  200 CONTINUE
318  210 CONTINUE
319 
320  goto 270
321  220 CONTINUE
322 
323 C...H+ -> CHI+_I + CHI0_J
324  DO 240 ij=1,4
325  xmj=smz(ij)
326  axmj=abs(xmj)
327  xmj2=xmj**2
328  DO 230 ik=1,2
329  xmk=smw(ik)
330  axmk=abs(xmk)
331  IF(axmi.GE.axmj+axmk) THEN
332  lknt=lknt+1
333  olpp=cbeta*dconjg(zmixc(ij,4)*vmixc(ik,1)+(zmixc(ij,2)+
334  & zmixc(ij,1)*tanw)*vmixc(ik,2)/sr2)
335  orpp=sbeta*(zmixc(ij,3)*umixc(ik,1)-
336  & (zmixc(ij,2)+zmixc(ij,1)*tanw)*umixc(ik,2)/sr2)
337  gx2=abs(olpp)**2+abs(orpp)**2
338  glr=dble(olpp*dconjg(orpp))
339  xlam(lknt)=pyh2xx(c1,xmi,xmj,-xmk,gx2,glr)
340  idlam(lknt,1)=kfnchi(ij)
341  idlam(lknt,2)=kfcchi(ik)
342  idlam(lknt,3)=0
343  ENDIF
344  230 CONTINUE
345  240 CONTINUE
346 
347  gl=-xmw/sr2*(sin(2d0*beta)-pmas(6,1)**2/tanb/xmw2)
348  gr=-pmas(6,1)/sr2/xmw*(xmuz-atrit/tanb)
349  al=0d0
350  ar=0d0
351  cf=3d0
352 
353 C...H+ -> T_1 B_1~
354  xm1=pmas(pycomp(ksusy1+6),1)
355  xm2=pmas(pycomp(ksusy1+5),1)
356  IF(xmi.GE.xm1+xm2) THEN
357  xl=pylamf(xmi2,xm1**2,xm2**2)
358  lknt=lknt+1
359  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*
360  & (gl*sfmix(6,1)*sfmix(5,1)+gr*sfmix(6,2)*sfmix(5,1))**2
361  idlam(lknt,1)=ksusy1+6
362  idlam(lknt,2)=-(ksusy1+5)
363  idlam(lknt,3)=0
364  ENDIF
365 
366 C...H+ -> T_2 B_1~
367  xm1=pmas(pycomp(ksusy2+6),1)
368  xm2=pmas(pycomp(ksusy1+5),1)
369  IF(xmi.GE.xm1+xm2) THEN
370  xl=pylamf(xmi2,xm1**2,xm2**2)
371  lknt=lknt+1
372  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*
373  & (gl*sfmix(6,3)*sfmix(5,1)+gr*sfmix(6,4)*sfmix(5,1))**2
374  idlam(lknt,1)=ksusy2+6
375  idlam(lknt,2)=-(ksusy1+5)
376  idlam(lknt,3)=0
377  ENDIF
378 
379 C...H+ -> T_1 B_2~
380  xm1=pmas(pycomp(ksusy1+6),1)
381  xm2=pmas(pycomp(ksusy2+5),1)
382  IF(xmi.GE.xm1+xm2) THEN
383  xl=pylamf(xmi2,xm1**2,xm2**2)
384  lknt=lknt+1
385  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*
386  & (gl*sfmix(6,1)*sfmix(5,3)+gr*sfmix(6,2)*sfmix(5,3))**2
387  idlam(lknt,1)=ksusy1+6
388  idlam(lknt,2)=-(ksusy2+5)
389  idlam(lknt,3)=0
390  ENDIF
391 
392 C...H+ -> T_2 B_2~
393  xm1=pmas(pycomp(ksusy2+6),1)
394  xm2=pmas(pycomp(ksusy2+5),1)
395  IF(xmi.GE.xm1+xm2) THEN
396  xl=pylamf(xmi2,xm1**2,xm2**2)
397  lknt=lknt+1
398  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*
399  & (gl*sfmix(6,3)*sfmix(5,3)+gr*sfmix(6,4)*sfmix(5,3))**2
400  idlam(lknt,1)=ksusy2+6
401  idlam(lknt,2)=-(ksusy2+5)
402  idlam(lknt,3)=0
403  ENDIF
404 
405 C...H+ -> UL DL~
406  gl=-xmw/sr2*sin(2d0*beta)
407  DO 250 ij=1,3,2
408  xm1=pmas(pycomp(ksusy1+ij),1)
409  xm2=pmas(pycomp(ksusy1+ij+1),1)
410  IF(xmi.GE.xm1+xm2) THEN
411  xl=pylamf(xmi2,xm1**2,xm2**2)
412  lknt=lknt+1
413  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*gl**2
414  idlam(lknt,1)=-(ksusy1+ij)
415  idlam(lknt,2)=ksusy1+ij+1
416  idlam(lknt,3)=0
417  ENDIF
418  250 CONTINUE
419 
420 C...H+ -> EL~ NUL
421  cf=1d0
422  DO 260 ij=11,13,2
423  xm1=pmas(pycomp(ksusy1+ij),1)
424  xm2=pmas(pycomp(ksusy1+ij+1),1)
425  IF(xmi.GE.xm1+xm2) THEN
426  xl=pylamf(xmi2,xm1**2,xm2**2)
427  lknt=lknt+1
428  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*gl**2
429  idlam(lknt,1)=-(ksusy1+ij)
430  idlam(lknt,2)=ksusy1+ij+1
431  idlam(lknt,3)=0
432  ENDIF
433  260 CONTINUE
434 
435 C...H+ -> TAU1 NUTAUL
436  xm1=pmas(pycomp(ksusy1+15),1)
437  xm2=pmas(pycomp(ksusy1+16),1)
438  IF(xmi.GE.xm1+xm2) THEN
439  xl=pylamf(xmi2,xm1**2,xm2**2)
440  lknt=lknt+1
441  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*gl**2*sfmix(15,1)**2
442  idlam(lknt,1)=-(ksusy1+15)
443  idlam(lknt,2)= ksusy1+16
444  idlam(lknt,3)=0
445  ENDIF
446 
447 C...H+ -> TAU2 NUTAUL
448  xm1=pmas(pycomp(ksusy2+15),1)
449  xm2=pmas(pycomp(ksusy1+16),1)
450  IF(xmi.GE.xm1+xm2) THEN
451  xl=pylamf(xmi2,xm1**2,xm2**2)
452  lknt=lknt+1
453  xlam(lknt)=cf*sqrt(xl)/4d0*c1/xmi3*gl**2*sfmix(15,3)**2
454  idlam(lknt,1)=-(ksusy2+15)
455  idlam(lknt,2)= ksusy1+16
456  idlam(lknt,3)=0
457  ENDIF
458 
459  270 CONTINUE
460  iknt=lknt
461  xlam(0)=0d0
462  DO 280 i=1,iknt
463  IF(xlam(i).LE.0d0) xlam(i)=0d0
464  xlam(0)=xlam(0)+xlam(i)
465  280 CONTINUE
466  IF(xlam(0).EQ.0d0) xlam(0)=1d-6
467 
468  RETURN
469  END