Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pynjdc.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pynjdc.f
1 
2 C*********************************************************************
3 
4 C...PYNJDC
5 C...Calculates decay widths for the neutralinos (admixtures of
6 C...Bino, W3-ino, Higgs1-ino, Higgs2-ino)
7 
8 C...Input: KCIN = KF code for particle
9 C...Output: XLAM = widths
10 C... IDLAM = KF codes for decay particles
11 C... IKNT = number of decay channels defined
12 C...AUTHOR: STEPHEN MRENNA
13 C...Last change:
14 C...10-15-95: force decay chi^0_2 -> chi^0_1 + gamma
15 C...when CHIGAMMA .NE. 0
16 C...10 FEB 96: Calculate this decay for small tan(beta)
17 
18  SUBROUTINE pynjdc(KFIN,XLAM,IDLAM,IKNT)
19 
20 C...Double precision and integer declarations.
21  IMPLICIT DOUBLE PRECISION(a-h, o-z)
22  IMPLICIT INTEGER(i-n)
23  INTEGER pyk,pychge,pycomp
24 C...Parameter statement to help give large particle numbers.
25  parameter(ksusy1=1000000,ksusy2=2000000,ktechn=3000000,
26  &kexcit=4000000,kdimen=5000000)
27 C...Commonblocks.
28  common/pydat1/mstu(200),paru(200),mstj(200),parj(200)
29  common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
30  common/pymssm/imss(0:99),rmss(0:99)
31 c COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
32 c &SFMIX(16,4)
33  common/pyssmt/zmix(4,4),umix(2,2),vmix(2,2),smz(4),smw(2),
34  &sfmix(16,4),zmixi(4,4),umixi(2,2),vmixi(2,2)
35 C COMMON/PYINTS/XXM(20)
36  COMPLEX*16 cxc
37  common/pyintc/xxc(10),cxc(8)
38  SAVE /pydat1/,/pydat2/,/pymssm/,/pyssmt/,/pyintc/
39 
40 C...Local variables.
41  COMPLEX*16 zmixc(4,4),vmixc(2,2),umixc(2,2),olpp,orpp,glij,grij
42  COMPLEX*16 qij,rij,f21k,f12k,cal,car,cbl,cbr,ca,cb
43  INTEGER kfin
44  DOUBLE PRECISION xmi,xmj,xmf,xmsf1,xmsf2,xmw,xmw2,
45  &xmz,xmz2,axmj,axmi
46  DOUBLE PRECISION s12min,s12max
47  DOUBLE PRECISION xmi2,xmi3,xmj2,xmh,xmh2,xmhp,xma2,xmb2
48  DOUBLE PRECISION pylamf,xl
49  DOUBLE PRECISION tanw,xw,aem,c1,as,ei,t3i
50  DOUBLE PRECISION pyx2xh,pyx2xg
51  DOUBLE PRECISION xlam(0:400)
52  INTEGER idlam(400,3)
53  INTEGER lknt,ix,ih,j,ij,i,iknt,fid
54  INTEGER ith(3),kf1,kf2
55  INTEGER ithc
56  DOUBLE PRECISION dh(3),eh(3)
57  DOUBLE PRECISION sr2
58  DOUBLE PRECISION cbeta,sbeta
59  DOUBLE PRECISION gamcon,xmt1,xmt2
60  DOUBLE PRECISION pyalem,pi,pyalps
61  DOUBLE PRECISION rat1,rat2
62  DOUBLE PRECISION t3t,fcol
63  DOUBLE PRECISION alfa,beta,tanb
64  DOUBLE PRECISION pyxxga
65  EXTERNAL pygaus,pyxxz6
66  DOUBLE PRECISION pygaus,pyxxz6
67  DOUBLE PRECISION prec
68  INTEGER kfnchi(4),kfcchi(2)
69  DATA ith/25,35,36/
70  DATA ithc/37/
71  DATA prec/1d-2/
72  DATA pi/3.141592654d0/
73  DATA sr2/1.4142136d0/
74  DATA kfnchi/1000022,1000023,1000025,1000035/
75  DATA kfcchi/1000024,1000037/
76 
77 C...COUNT THE NUMBER OF DECAY MODES
78  lknt=0
79 
80  xmw=pmas(24,1)
81  xmw2=xmw**2
82  xmz=pmas(23,1)
83  xmz2=xmz**2
84  xw=1d0-xmw2/xmz2
85  xw1=1d0-xw
86  tanw = sqrt(xw/xw1)
87 
88 C...IX IS 1 - 4 DEPENDING ON SEQUENCE NUMBER
89  ix=1
90  IF(kfin.EQ.kfnchi(2)) ix=2
91  IF(kfin.EQ.kfnchi(3)) ix=3
92  IF(kfin.EQ.kfnchi(4)) ix=4
93 
94  xmi=smz(ix)
95  xmi2=xmi**2
96  axmi=abs(xmi)
97  aem=pyalem(xmi2)
98  as =pyalps(xmi2)
99  c1=aem/xw
100  xmi3=abs(xmi**3)
101 
102  tanb=rmss(5)
103  beta=atan(tanb)
104  alfa=rmss(18)
105  cbeta=cos(beta)
106  sbeta=tanb*cbeta
107  calfa=cos(alfa)
108  salfa=sin(alfa)
109 
110  DO 110 i=1,4
111  DO 100 j=1,4
112  zmixc(j,i)=dcmplx(zmix(j,i),zmixi(j,i))
113  100 CONTINUE
114  110 CONTINUE
115  DO 130 i=1,2
116  DO 120 j=1,2
117  vmixc(j,i)=dcmplx(vmix(j,i),vmixi(j,i))
118  umixc(j,i)=dcmplx(umix(j,i),umixi(j,i))
119  120 CONTINUE
120  130 CONTINUE
121 
122 C...CHECK ALL 2-BODY DECAYS TO GAUGE AND HIGGS BOSONS
123  IF(ix.EQ.1.AND.imss(11).EQ.0) goto 300
124 
125 C...FORCE CHI0_2 -> CHI0_1 + GAMMA
126  IF(ix.EQ.2 .AND. imss(10).NE.0 ) THEN
127  xmj=smz(1)
128  axmj=abs(xmj)
129  lknt=lknt+1
130  gamcon=aem**3/8d0/pi/xmw2/xw
131  xmt1=(pmas(pycomp(ksusy1+6),1)/pmas(6,1))**2
132  xmt2=(pmas(pycomp(ksusy2+6),1)/pmas(6,1))**2
133  xlam(lknt)=pyxxga(gamcon,axmi,axmj,xmt1,xmt2)
134  idlam(lknt,1)=ksusy1+22
135  idlam(lknt,2)=22
136  idlam(lknt,3)=0
137  WRITE(mstu(11),*) 'FORCED N2 -> N1 + GAMMA ',xlam(lknt)
138  goto 340
139  ENDIF
140 
141 C...GRAVITINO DECAY MODES
142 
143  IF(imss(11).EQ.1) THEN
144  xmp=rmss(29)
145  idg=39+ksusy1
146  xmgr=pmas(pycomp(idg),1)
147  sinw=sqrt(xw)
148  cosw=sqrt(1d0-xw)
149  xfac=(xmi2/(xmp*xmgr))**2*axmi/48d0/pi
150  IF(axmi.GT.xmgr+pmas(22,1)) THEN
151  lknt=lknt+1
152  idlam(lknt,1)=idg
153  idlam(lknt,2)=22
154  idlam(lknt,3)=0
155  xlam(lknt)=xfac*abs(zmixc(ix,1)*cosw+zmixc(ix,2)*sinw)**2
156  ENDIF
157  IF(axmi.GT.xmgr+xmz) THEN
158  lknt=lknt+1
159  idlam(lknt,1)=idg
160  idlam(lknt,2)=23
161  idlam(lknt,3)=0
162  xlam(lknt)=xfac*(abs(zmixc(ix,1)*sinw-zmixc(ix,2)*cosw)**2 +
163  $ .5d0*abs(zmixc(ix,3)*cbeta-zmixc(ix,4)*sbeta)**2)*
164  & (1d0-xmz2/xmi2)**4
165  ENDIF
166  IF(axmi.GT.xmgr+pmas(25,1)) THEN
167  lknt=lknt+1
168  idlam(lknt,1)=idg
169  idlam(lknt,2)=25
170  idlam(lknt,3)=0
171  xlam(lknt)=xfac*(abs(zmixc(ix,3)*salfa-zmixc(ix,4)*calfa)**2)*
172  $ .5d0*(1d0-pmas(25,1)**2/xmi2)**4
173  ENDIF
174  IF(axmi.GT.xmgr+pmas(35,1)) THEN
175  lknt=lknt+1
176  idlam(lknt,1)=idg
177  idlam(lknt,2)=35
178  idlam(lknt,3)=0
179  xlam(lknt)=xfac*(abs(zmixc(ix,3)*calfa+zmixc(ix,4)*salfa)**2)*
180  $ .5d0*(1d0-pmas(35,1)**2/xmi2)**4
181  ENDIF
182  IF(axmi.GT.xmgr+pmas(36,1)) THEN
183  lknt=lknt+1
184  idlam(lknt,1)=idg
185  idlam(lknt,2)=36
186  idlam(lknt,3)=0
187  xlam(lknt)=xfac*(abs(zmixc(ix,3)*sbeta+zmixc(ix,4)*cbeta)**2)*
188  $ .5d0*(1d0-pmas(36,1)**2/xmi2)**4
189  ENDIF
190  IF(ix.EQ.1) goto 300
191  ENDIF
192 
193  DO 220 ij=1,ix-1
194  xmj=smz(ij)
195  axmj=abs(xmj)
196  xmj2=xmj**2
197 
198 C...CHI0_I -> CHI0_J + GAMMA
199  IF(axmi.GE.axmj.AND.sbeta/cbeta.LE.2d0) THEN
200  rat1=abs(zmixc(ij,1))**2+abs(zmixc(ij,2))**2
201  rat1=rat1/( 1d-6+abs(zmixc(ix,3))**2+abs(zmixc(ix,4))**2 )
202  rat2=abs(zmixc(ix,1))**2+abs(zmixc(ix,2))**2
203  rat2=rat2/( 1d-6+abs(zmixc(ij,3))**2+abs(zmixc(ij,4))**2 )
204  IF((rat1.GT. 0.90d0 .AND. rat1.LT. 1.10d0) .OR.
205  & (rat2.GT. 0.90d0 .AND. rat2.LT. 1.10d0)) THEN
206  lknt=lknt+1
207  idlam(lknt,1)=kfnchi(ij)
208  idlam(lknt,2)=22
209  idlam(lknt,3)=0
210  gamcon=aem**3/8d0/pi/xmw2/xw
211  xmt1=(pmas(pycomp(ksusy1+6),1)/pmas(6,1))**2
212  xmt2=(pmas(pycomp(ksusy2+6),1)/pmas(6,1))**2
213  xlam(lknt)=pyxxga(gamcon,axmi,axmj,xmt1,xmt2)
214  ENDIF
215  ENDIF
216 
217 C...CHI0_I -> CHI0_J + Z0
218  IF(axmi.GE.axmj+xmz) THEN
219  lknt=lknt+1
220  olpp=(zmixc(ix,3)*dconjg(zmixc(ij,3))-
221  & zmixc(ix,4)*dconjg(zmixc(ij,4)))/2d0
222  orpp=-dconjg(olpp)
223  gx2=abs(olpp)**2+abs(orpp)**2
224  glr=dble(olpp*dconjg(orpp))
225  xlam(lknt)=pyx2xg(c1/xmw2,xmi,xmj,xmz,gx2,glr)
226  idlam(lknt,1)=kfnchi(ij)
227  idlam(lknt,2)=23
228  idlam(lknt,3)=0
229  ELSEIF(axmi.GE.axmj) THEN
230  xxc(1)=0d0
231  xxc(2)=xmj
232  xxc(3)=0d0
233  xxc(4)=xmi
234  xxc(9)=xmz
235  xxc(10)=pmas(23,2)
236  olpp=(zmixc(ix,3)*dconjg(zmixc(ij,3))-
237  & zmixc(ix,4)*dconjg(zmixc(ij,4)))/2d0
238  orpp=dconjg(olpp)
239 C...CHARGED LEPTONS
240  fid=11
241  xxc(5)=pmas(pycomp(ksusy1+fid),1)
242  xxc(6)=pmas(pycomp(ksusy2+fid),1)
243  ei=kchg(fid,1)/3d0
244  t3i=sign(1d0,ei+1d-6)/2d0
245  glij=(t3i*zmixc(ix,2)-tanw*(t3i-ei)*zmixc(ix,1))*
246  & dconjg(t3i*zmixc(ij,2)-tanw*(t3i-ei)*zmixc(ij,1))
247  grij=zmixc(ix,1)*dconjg(zmixc(ij,1))*(ei*tanw)**2
248  cxc(1)=dcmplx((t3i-ei*xw)/xw1)*olpp
249  cxc(2)=-glij
250  cxc(3)=-dcmplx((t3i-ei*xw)/xw1)*orpp
251  cxc(4)=dconjg(glij)
252  cxc(5)=-dcmplx((ei*xw)/xw1)*olpp
253  cxc(6)=grij
254  cxc(7)=dcmplx((ei*xw)/xw1)*orpp
255  cxc(8)=-dconjg(grij)
256  s12min=0d0
257  s12max=(axmi-axmj)**2
258  IF( xxc(5).LT.axmi ) THEN
259  xxc(5)=1d6
260  ENDIF
261  IF(xxc(6).LT.axmi ) THEN
262  xxc(6)=1d6
263  ENDIF
264  xxc(7)=xxc(5)
265  xxc(8)=xxc(6)
266 
267  IF(axmi.GE.axmj+2d0*pmas(11,1)) THEN
268  lknt=lknt+1
269  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
270  & pygaus(pyxxz6,s12min,s12max,1d-3)
271  idlam(lknt,1)=kfnchi(ij)
272  idlam(lknt,2)=fid
273  idlam(lknt,3)=-fid
274  IF(axmi.GE.axmj+2d0*pmas(13,1)) THEN
275  lknt=lknt+1
276  xlam(lknt)=xlam(lknt-1)
277  idlam(lknt,1)=kfnchi(ij)
278  idlam(lknt,2)=13
279  idlam(lknt,3)=-13
280  ENDIF
281  ENDIF
282  140 CONTINUE
283  IF(abs(sfmix(15,1)).GT.abs(sfmix(15,2))) THEN
284  xxc(5)=pmas(pycomp(ksusy1+15),1)
285  xxc(6)=pmas(pycomp(ksusy2+15),1)
286  ELSE
287  xxc(6)=pmas(pycomp(ksusy1+15),1)
288  xxc(5)=pmas(pycomp(ksusy2+15),1)
289  ENDIF
290  IF( xxc(5).LT.axmi ) THEN
291  xxc(5)=1d6
292  ENDIF
293  IF(xxc(6).LT.axmi ) THEN
294  xxc(6)=1d6
295  ENDIF
296  xxc(7)=xxc(5)
297  xxc(8)=xxc(6)
298 
299  IF(axmi.GE.axmj+2d0*pmas(15,1)) THEN
300  lknt=lknt+1
301  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
302  & pygaus(pyxxz6,s12min,s12max,1d-3)
303  idlam(lknt,1)=kfnchi(ij)
304  idlam(lknt,2)=15
305  idlam(lknt,3)=-15
306  ENDIF
307 
308 C...NEUTRINOS
309  150 CONTINUE
310  fid=12
311  xxc(5)=pmas(pycomp(ksusy1+fid),1)
312  xxc(6)=pmas(pycomp(ksusy2+fid),1)
313  ei=kchg(fid,1)/3d0
314  t3i=sign(1d0,ei+1d-6)/2d0
315  glij=(t3i*zmixc(ix,2)-tanw*(t3i-ei)*zmixc(ix,1))*
316  & dconjg(t3i*zmixc(ij,2)-tanw*(t3i-ei)*zmixc(ij,1))
317  grij=zmixc(ix,1)*dconjg(zmixc(ij,1))*(ei*tanw)**2
318  cxc(1)=dcmplx((t3i-ei*xw)/xw1)*olpp
319  cxc(2)=-glij
320  cxc(3)=-dcmplx((t3i-ei*xw)/xw1)*orpp
321  cxc(4)=dconjg(glij)
322  cxc(5)=-dcmplx((ei*xw)/xw1)*olpp
323  cxc(6)=grij
324  cxc(7)=dcmplx((ei*xw)/xw1)*orpp
325  cxc(8)=-dconjg(grij)
326  s12min=0d0
327  s12max=(axmi-axmj)**2
328  IF( xxc(5).LT.axmi ) THEN
329  xxc(5)=1d6
330  ENDIF
331  IF( xxc(6).LT.axmi ) THEN
332  xxc(6)=1d6
333  ENDIF
334  xxc(7)=xxc(5)
335  xxc(8)=xxc(6)
336 
337  lknt=lknt+1
338  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
339  & pygaus(pyxxz6,s12min,s12max,1d-3)
340  idlam(lknt,1)=kfnchi(ij)
341  idlam(lknt,2)=12
342  idlam(lknt,3)=-12
343  lknt=lknt+1
344  xlam(lknt)=xlam(lknt-1)
345  idlam(lknt,1)=kfnchi(ij)
346  idlam(lknt,2)=14
347  idlam(lknt,3)=-14
348  160 CONTINUE
349 
350  IF(pmas(pycomp(ksusy1+16),1).NE.pmas(pycomp(ksusy1+12),1))
351  & THEN
352  xxc(5)=pmas(pycomp(ksusy1+16),1)
353  IF( xxc(5).LT.axmi ) THEN
354  xxc(5)=1d6
355  ENDIF
356  xxc(7)=xxc(5)
357  lknt=lknt+1
358  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
359  & pygaus(pyxxz6,s12min,s12max,1d-3)
360  ELSE
361  lknt=lknt+1
362  xlam(lknt)=xlam(lknt-1)
363  ENDIF
364  idlam(lknt,1)=kfnchi(ij)
365  idlam(lknt,2)=16
366  idlam(lknt,3)=-16
367 C...D-TYPE QUARKS
368  170 CONTINUE
369  fid=1
370  xxc(5)=pmas(pycomp(ksusy1+fid),1)
371  xxc(6)=pmas(pycomp(ksusy2+fid),1)
372  ei=kchg(fid,1)/3d0
373  t3i=sign(1d0,ei+1d-6)/2d0
374  glij=(t3i*zmixc(ix,2)-tanw*(t3i-ei)*zmixc(ix,1))*
375  & dconjg(t3i*zmixc(ij,2)-tanw*(t3i-ei)*zmixc(ij,1))
376  grij=zmixc(ix,1)*dconjg(zmixc(ij,1))*(ei*tanw)**2
377  cxc(1)=dcmplx((t3i-ei*xw)/xw1)*olpp
378  cxc(2)=-glij
379  cxc(3)=-dcmplx((t3i-ei*xw)/xw1)*orpp
380  cxc(4)=dconjg(glij)
381  cxc(5)=-dcmplx((ei*xw)/xw1)*olpp
382  cxc(6)=grij
383  cxc(7)=dcmplx((ei*xw)/xw1)*orpp
384  cxc(8)=-dconjg(grij)
385  s12min=0d0
386  s12max=(axmi-axmj)**2
387  IF( xxc(5).LT.axmi ) THEN
388  xxc(5)=1d6
389  ENDIF
390  IF( xxc(6).LT.axmi ) THEN
391  xxc(6)=1d6
392  ENDIF
393  xxc(7)=xxc(5)
394  xxc(8)=xxc(6)
395 
396  IF(axmi.GE.axmj+2d0*pmas(1,1)) THEN
397  lknt=lknt+1
398  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
399  & pygaus(pyxxz6,s12min,s12max,1d-3)*3d0
400  idlam(lknt,1)=kfnchi(ij)
401  idlam(lknt,2)=1
402  idlam(lknt,3)=-1
403  IF(axmi.GE.axmj+2d0*pmas(3,1)) THEN
404  lknt=lknt+1
405  xlam(lknt)=xlam(lknt-1)
406  idlam(lknt,1)=kfnchi(ij)
407  idlam(lknt,2)=3
408  idlam(lknt,3)=-3
409  ENDIF
410  ENDIF
411  180 CONTINUE
412  IF(abs(sfmix(5,1)).GT.abs(sfmix(5,2))) THEN
413  xxc(5)=pmas(pycomp(ksusy1+5),1)
414  xxc(6)=pmas(pycomp(ksusy2+5),1)
415  ELSE
416  xxc(6)=pmas(pycomp(ksusy1+5),1)
417  xxc(5)=pmas(pycomp(ksusy2+5),1)
418  ENDIF
419  IF( xxc(5).LT.axmi .AND. xxc(6).LT.axmi ) goto 190
420  IF(xxc(5).LT.axmi) THEN
421  xxc(5)=1d6
422  ELSEIF(xxc(6).LT.axmi) THEN
423  xxc(6)=1d6
424  ENDIF
425  xxc(7)=xxc(5)
426  xxc(8)=xxc(6)
427  IF(axmi.GE.axmj+2d0*pmas(5,1)) THEN
428  lknt=lknt+1
429  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
430  & pygaus(pyxxz6,s12min,s12max,1d-3)*3d0
431  idlam(lknt,1)=kfnchi(ij)
432  idlam(lknt,2)=5
433  idlam(lknt,3)=-5
434  ENDIF
435 
436 C...U-TYPE QUARKS
437  190 CONTINUE
438  fid=2
439  xxc(5)=pmas(pycomp(ksusy1+fid),1)
440  xxc(6)=pmas(pycomp(ksusy2+fid),1)
441  ei=kchg(fid,1)/3d0
442  t3i=sign(1d0,ei+1d-6)/2d0
443  glij=(t3i*zmixc(ix,2)-tanw*(t3i-ei)*zmixc(ix,1))*
444  & dconjg(t3i*zmixc(ij,2)-tanw*(t3i-ei)*zmixc(ij,1))
445  grij=zmixc(ix,1)*dconjg(zmixc(ij,1))*(ei*tanw)**2
446  cxc(1)=dcmplx((t3i-ei*xw)/xw1)*olpp
447  cxc(2)=-glij
448  cxc(3)=-dcmplx((t3i-ei*xw)/xw1)*orpp
449  cxc(4)=dconjg(glij)
450  cxc(5)=-dcmplx((ei*xw)/xw1)*olpp
451  cxc(6)=grij
452  cxc(7)=dcmplx((ei*xw)/xw1)*orpp
453  cxc(8)=-dconjg(grij)
454 
455  IF( xxc(5).LT.axmi .AND. xxc(6).LT.axmi ) goto 200
456  IF(xxc(5).LT.axmi) THEN
457  xxc(5)=1d6
458  ELSEIF(xxc(6).LT.axmi) THEN
459  xxc(6)=1d6
460  ENDIF
461  xxc(7)=xxc(5)
462  xxc(8)=xxc(6)
463 
464  IF(axmi.GE.axmj+2d0*pmas(2,1)) THEN
465  lknt=lknt+1
466  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
467  & pygaus(pyxxz6,s12min,s12max,1d-3)*3d0
468  idlam(lknt,1)=kfnchi(ij)
469  idlam(lknt,2)=2
470  idlam(lknt,3)=-2
471  IF(axmi.GE.axmj+2d0*pmas(4,1)) THEN
472  lknt=lknt+1
473  xlam(lknt)=xlam(lknt-1)
474  idlam(lknt,1)=kfnchi(ij)
475  idlam(lknt,2)=4
476  idlam(lknt,3)=-4
477  ENDIF
478  ENDIF
479  200 CONTINUE
480  ENDIF
481 
482 C...CHI0_I -> CHI0_J + H0_K
483  eh(1)=sin(alfa)
484  eh(2)=cos(alfa)
485  eh(3)=-sin(beta)
486  dh(1)=cos(alfa)
487  dh(2)=-sin(alfa)
488  dh(3)=cos(beta)
489  qij=zmixc(ix,3)*dconjg(zmixc(ij,2))+
490  & dconjg(zmixc(ij,3))*zmixc(ix,2)-
491  & tanw*(zmixc(ix,3)*dconjg(zmixc(ij,1))+
492  & dconjg(zmixc(ij,3))*zmixc(ix,1))
493  rij=dconjg(zmixc(ix,4))*zmixc(ij,2)+
494  & zmixc(ij,4)*dconjg(zmixc(ix,2))-
495  & tanw*(dconjg(zmixc(ix,4))*zmixc(ij,1)+
496  & zmixc(ij,4)*dconjg(zmixc(ix,1)))
497  DO 210 ih=1,3
498  xmh=pmas(ith(ih),1)
499  xmh2=xmh**2
500  IF(axmi.GE.axmj+xmh) THEN
501  lknt=lknt+1
502  xl=pylamf(xmi2,xmj2,xmh2)
503  f21k=0.5d0*(qij*eh(ih)+rij*dh(ih))
504  f12k=f21k
505 C...SIGN OF MASSES I,J
506  xmk=xmj
507  IF(ih.EQ.3) xmk=-xmk
508  gx2=abs(f21k)**2+abs(f12k)**2
509  glr=dble(f21k*dconjg(f12k))
510  xlam(lknt)=pyx2xh(c1,xmi,xmk,xmh,gx2,glr)
511  idlam(lknt,1)=kfnchi(ij)
512  idlam(lknt,2)=ith(ih)
513  idlam(lknt,3)=0
514  ENDIF
515  210 CONTINUE
516  220 CONTINUE
517 
518 C...CHI0_I -> CHI+_J + W-
519  DO 260 ij=1,2
520  xmj=smw(ij)
521  axmj=abs(xmj)
522  xmj2=xmj**2
523  IF(axmi.GE.axmj+xmw) THEN
524  lknt=lknt+1
525  cxc(1)=(dconjg(zmixc(ix,2))*vmixc(ij,1)-
526  & dconjg(zmixc(ix,4))*vmixc(ij,2)/sr2)
527  cxc(3)=(zmixc(ix,2)*dconjg(umixc(ij,1))+
528  & zmixc(ix,3)*dconjg(umixc(ij,2))/sr2)
529  gx2=abs(cxc(1))**2+abs(cxc(3))**2
530  glr=dble(cxc(1)*dconjg(cxc(3)))
531  xlam(lknt)=pyx2xg(c1/xmw2,xmi,xmj,xmw,gx2,glr)
532  idlam(lknt,1)=kfcchi(ij)
533  idlam(lknt,2)=-24
534  idlam(lknt,3)=0
535  lknt=lknt+1
536  xlam(lknt)=xlam(lknt-1)
537  idlam(lknt,1)=-kfcchi(ij)
538  idlam(lknt,2)=24
539  idlam(lknt,3)=0
540  ELSEIF(axmi.GE.axmj) THEN
541  s12min=0d0
542  s12max=(axmi-axmj)**2
543  rt2i = 1d0/sqrt(2d0)
544  cxc(1)=(dconjg(zmixc(ix,2))*vmixc(ij,1)-
545  & dconjg(zmixc(ix,4))*vmixc(ij,2)*rt2i)*rt2i
546  cxc(3)=(zmixc(ix,2)*dconjg(umixc(ij,1))+
547  & zmixc(ix,3)*dconjg(umixc(ij,2))*rt2i)*rt2i
548  cxc(5)=dcmplx(0d0,0d0)
549  cxc(7)=dcmplx(0d0,0d0)
550  ia=11
551  ja=12
552  ei=kchg(ia,1)/3d0
553  t3i=sign(1d0,ei+1d-6)/2d0
554  ej=kchg(ja,1)/3d0
555  t3j=sign(1d0,ej+1d-6)/2d0
556  cxc(2)=vmixc(ij,1)*dconjg(zmixc(ix,1)*(ej-t3j)*
557  & tanw+zmixc(ix,2)*t3j)*rt2i
558  cxc(4)=-dconjg(umixc(ij,1))*(
559  & zmixc(ix,1)*(ei-t3i)*tanw+zmixc(ix,2)*t3i)*rt2i
560  cxc(6)=dcmplx(0d0,0d0)
561  cxc(8)=dcmplx(0d0,0d0)
562  xxc(1)=0d0
563  xxc(2)=xmj
564  xxc(3)=0d0
565  xxc(4)=xmi
566  xxc(5)=pmas(pycomp(ksusy1+ja),1)
567  xxc(6)=pmas(pycomp(ksusy1+ia),1)
568  xxc(9)=pmas(24,1)
569  xxc(10)=pmas(24,2)
570  IF( xxc(5).LT.axmi .AND. xxc(6).LT.axmi ) goto 230
571  IF(xxc(5).LT.axmi) THEN
572  xxc(5)=1d6
573  ELSEIF(xxc(6).LT.axmi) THEN
574  xxc(6)=1d6
575  ENDIF
576  xxc(7)=xxc(6)
577  xxc(8)=xxc(5)
578  IF(axmi.GE.axmj+pmas(11,1)+pmas(12,1)) THEN
579  lknt=lknt+1
580  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
581  & pygaus(pyxxz6,s12min,s12max,prec)
582  idlam(lknt,1)=kfcchi(ij)
583  idlam(lknt,2)=11
584  idlam(lknt,3)=-12
585  lknt=lknt+1
586  xlam(lknt)=xlam(lknt-1)
587  idlam(lknt,1)=-idlam(lknt-1,1)
588  idlam(lknt,2)=-idlam(lknt-1,2)
589  idlam(lknt,3)=-idlam(lknt-1,3)
590  IF(axmi.GE.axmj+pmas(13,1)+pmas(14,1)) THEN
591  lknt=lknt+1
592  xlam(lknt)=xlam(lknt-1)
593  idlam(lknt,1)=kfcchi(ij)
594  idlam(lknt,2)=13
595  idlam(lknt,3)=-14
596  lknt=lknt+1
597  xlam(lknt)=xlam(lknt-1)
598  idlam(lknt,1)=-idlam(lknt-1,1)
599  idlam(lknt,2)=-idlam(lknt-1,2)
600  idlam(lknt,3)=-idlam(lknt-1,3)
601  ENDIF
602  ENDIF
603  230 CONTINUE
604  IF(abs(sfmix(15,1)).GT.abs(sfmix(15,2))) THEN
605  xxc(5)=pmas(pycomp(ksusy1+15),1)
606  xxc(6)=pmas(pycomp(ksusy1+16),1)
607  ELSE
608  xxc(5)=pmas(pycomp(ksusy2+15),1)
609  xxc(6)=pmas(pycomp(ksusy1+16),1)
610  ENDIF
611  IF(xxc(5).LT.axmi) THEN
612  xxc(5)=1d6
613  ENDIF
614  IF(xxc(6).LT.axmi) THEN
615  xxc(6)=1d6
616  ENDIF
617  xxc(7)=xxc(6)
618  xxc(8)=xxc(5)
619  IF(axmi.GE.axmj+pmas(15,1)+pmas(16,1)) THEN
620  lknt=lknt+1
621  xlam(lknt)=c1**2/xmi3/(16d0*pi)*
622  & pygaus(pyxxz6,s12min,s12max,prec)
623  xlam(lknt)=xlam(lknt-1)
624  idlam(lknt,1)=kfcchi(ij)
625  idlam(lknt,2)=15
626  idlam(lknt,3)=-16
627  lknt=lknt+1
628  xlam(lknt)=xlam(lknt-1)
629  idlam(lknt,1)=-idlam(lknt-1,1)
630  idlam(lknt,2)=-idlam(lknt-1,2)
631  idlam(lknt,3)=-idlam(lknt-1,3)
632  ENDIF
633 
634 C...NOW, DO THE QUARKS
635  240 CONTINUE
636  ia=1
637  ja=2
638  ei=kchg(ia,1)/3d0
639  t3i=sign(1d0,ei+1d-6)/2d0
640  ej=kchg(ja,1)/3d0
641  t3j=sign(1d0,ej+1d-6)/2d0
642  cxc(2)=vmixc(ij,1)*dconjg(zmixc(ix,1)*(ej-t3j)*
643  & tanw+zmixc(ix,2)*t3j)
644  cxc(4)=-dconjg(umixc(ij,1))*(
645  & zmixc(ix,1)*(ei-t3i)*tanw+zmixc(ix,2)*t3i)
646  xxc(5)=pmas(pycomp(ksusy1+ia),1)
647  xxc(6)=pmas(pycomp(ksusy1+ja),1)
648  IF(xxc(5).LT.axmi) THEN
649  xxc(5)=1d6
650  ENDIF
651  IF(xxc(6).LT.axmi) THEN
652  xxc(6)=1d6
653  ENDIF
654  xxc(7)=xxc(6)
655  xxc(8)=xxc(5)
656  IF(axmi.GE.axmj+pmas(2,1)+pmas(1,1)) THEN
657  lknt=lknt+1
658  xlam(lknt)=3d0*c1**2/xmi3/(16d0*pi)*
659  & pygaus(pyxxz6,s12min,s12max,prec)
660  idlam(lknt,1)=kfcchi(ij)
661  idlam(lknt,2)=1
662  idlam(lknt,3)=-2
663  lknt=lknt+1
664  xlam(lknt)=xlam(lknt-1)
665  idlam(lknt,1)=-idlam(lknt-1,1)
666  idlam(lknt,2)=-idlam(lknt-1,2)
667  idlam(lknt,3)=-idlam(lknt-1,3)
668  IF(axmi.GE.axmj+pmas(3,1)+pmas(4,1)) THEN
669  lknt=lknt+1
670  xlam(lknt)=xlam(lknt-1)
671  idlam(lknt,1)=kfcchi(ij)
672  idlam(lknt,2)=3
673  idlam(lknt,3)=-4
674  lknt=lknt+1
675  xlam(lknt)=xlam(lknt-1)
676  idlam(lknt,1)=-idlam(lknt-1,1)
677  idlam(lknt,2)=-idlam(lknt-1,2)
678  idlam(lknt,3)=-idlam(lknt-1,3)
679  ENDIF
680  ENDIF
681  250 CONTINUE
682  ENDIF
683  260 CONTINUE
684  270 CONTINUE
685 
686 C...CHI0_I -> CHI+_I + H-
687  DO 280 ij=1,2
688  xmj=smw(ij)
689  axmj=abs(xmj)
690  xmj2=xmj**2
691  xmhp=pmas(ithc,1)
692  IF(axmi.GE.axmj+xmhp) THEN
693  lknt=lknt+1
694  olpp=cbeta*(zmixc(ix,4)*dconjg(vmixc(ij,1))+(zmixc(ix,2)+
695  & zmixc(ix,1)*tanw)*dconjg(vmixc(ij,2))/sr2)
696  orpp=sbeta*(dconjg(zmixc(ix,3))*umixc(ij,1)-
697  & (dconjg(zmixc(ix,2))+dconjg(zmixc(ix,1))*tanw)*
698  & umixc(ij,2)/sr2)
699  gx2=abs(olpp)**2+abs(orpp)**2
700  glr=dble(olpp*dconjg(orpp))
701  xlam(lknt)=pyx2xh(c1,xmi,xmj,xmhp,gx2,glr)
702  idlam(lknt,1)=kfcchi(ij)
703  idlam(lknt,2)=-ithc
704  idlam(lknt,3)=0
705  lknt=lknt+1
706  xlam(lknt)=xlam(lknt-1)
707  idlam(lknt,1)=-idlam(lknt-1,1)
708  idlam(lknt,2)=-idlam(lknt-1,2)
709  idlam(lknt,3)=-idlam(lknt-1,3)
710  ELSE
711 
712  ENDIF
713  280 CONTINUE
714 
715 C...2-BODY DECAYS TO FERMION SFERMION
716  DO 290 j=1,16
717  IF(j.GE.7.AND.j.LE.10) goto 290
718  kf1=ksusy1+j
719  kf2=ksusy2+j
720  xmsf1=pmas(pycomp(kf1),1)
721  xmsf2=pmas(pycomp(kf2),1)
722  xmf=pmas(j,1)
723  IF(j.LE.6) THEN
724  fcol=3d0
725  ELSE
726  fcol=1d0
727  ENDIF
728 
729  ei=kchg(j,1)/3d0
730  t3t=sign(1d0,ei)
731  IF(j.EQ.12.OR.j.EQ.14.OR.j.EQ.16) t3t=1d0
732  IF(mod(j,2).EQ.0) THEN
733  cbl=t3t*zmixc(ix,2)+tanw*zmixc(ix,1)*(2d0*ei-t3t)
734  cal=xmf*zmixc(ix,4)/xmw/sbeta
735  car=-2d0*ei*tanw*zmixc(ix,1)
736  cbr=cal
737  ELSE
738  cbl=t3t*zmixc(ix,2)+tanw*zmixc(ix,1)*(2d0*ei-t3t)
739  cal=xmf*zmixc(ix,3)/xmw/cbeta
740  car=-2d0*ei*tanw*zmixc(ix,1)
741  cbr=cal
742  ENDIF
743 
744 C...D~ D_L
745  IF(axmi.GE.xmf+xmsf1) THEN
746  lknt=lknt+1
747  xma2=xmsf1**2
748  xmb2=xmf**2
749  xl=pylamf(xmi2,xma2,xmb2)
750  ca=cal*sfmix(j,1)+car*sfmix(j,2)
751  cb=cbl*sfmix(j,1)+cbr*sfmix(j,2)
752  xlam(lknt)=0.5d0*fcol*c1/8d0/xmi3*sqrt(xl)*( (xmi2+xmb2-xma2)*
753  & (abs(ca)**2+abs(cb)**2)+4d0*dble(ca*dconjg(cb))*xmf*xmi)
754  idlam(lknt,1)=kf1
755  idlam(lknt,2)=-j
756  idlam(lknt,3)=0
757  lknt=lknt+1
758  xlam(lknt)=xlam(lknt-1)
759  idlam(lknt,1)=-idlam(lknt-1,1)
760  idlam(lknt,2)=-idlam(lknt-1,2)
761  idlam(lknt,3)=0
762  ENDIF
763 
764 C...D~ D_R
765  IF(axmi.GE.xmf+xmsf2) THEN
766  lknt=lknt+1
767  xma2=xmsf2**2
768  xmb2=xmf**2
769  ca=cal*sfmix(j,3)+car*sfmix(j,4)
770  cb=cbl*sfmix(j,3)+cbr*sfmix(j,4)
771  xl=pylamf(xmi2,xma2,xmb2)
772  xlam(lknt)=0.5d0*fcol*c1/8d0/xmi3*sqrt(xl)*( (xmi2+xmb2-xma2)*
773  & (abs(ca)**2+abs(cb)**2)+4d0*dble(ca*dconjg(cb))*xmf*xmi)
774  idlam(lknt,1)=kf2
775  idlam(lknt,2)=-j
776  idlam(lknt,3)=0
777  lknt=lknt+1
778  xlam(lknt)=xlam(lknt-1)
779  idlam(lknt,1)=-idlam(lknt-1,1)
780  idlam(lknt,2)=-idlam(lknt-1,2)
781  idlam(lknt,3)=0
782  ENDIF
783  290 CONTINUE
784  300 CONTINUE
785 C...3-BODY DECAY TO Q Q~ GLUINO
786  xmj=pmas(pycomp(ksusy1+21),1)
787  IF(axmi.GE.xmj) THEN
788  rt2i = 1d0/sqrt(2d0)
789  olpp=dcmplx(cos(rmss(32)),sin(rmss(32)))*rt2i
790  orpp=dconjg(olpp)
791  axmj=abs(xmj)
792  xxc(1)=0d0
793  xxc(2)=xmj
794  xxc(3)=0d0
795  xxc(4)=xmi
796  fid=1
797  xxc(5)=pmas(pycomp(ksusy1+fid),1)
798  xxc(6)=pmas(pycomp(ksusy2+fid),1)
799  IF( xxc(5).LT.axmi .OR. xxc(6).LT.axmi ) goto 310
800  xxc(7)=xxc(5)
801  xxc(8)=xxc(6)
802  xxc(9)=1d6
803  xxc(10)=0d0
804  ei=kchg(fid,1)/3d0
805  t3i=sign(1d0,ei+1d-6)/2d0
806  glij=(t3i*zmixc(ix,2)-tanw*(t3i-ei)*zmixc(ix,1))*olpp
807  grij=zmixc(ix,1)*(ei*tanw)*orpp
808  cxc(1)=0d0
809  cxc(2)=-glij
810  cxc(3)=0d0
811  cxc(4)=dconjg(glij)
812  cxc(5)=0d0
813  cxc(6)=grij
814  cxc(7)=0d0
815  cxc(8)=-dconjg(grij)
816  s12min=0d0
817  s12max=(axmi-axmj)**2
818 C...ALL QUARKS BUT T
819  IF(axmi.GE.axmj+2d0*pmas(1,1)) THEN
820  lknt=lknt+1
821  xlam(lknt)=4d0*c1*as/xmi3/(16d0*pi)*
822  & pygaus(pyxxz6,s12min,s12max,1d-3)
823  idlam(lknt,1)=ksusy1+21
824  idlam(lknt,2)=1
825  idlam(lknt,3)=-1
826  IF(axmi.GE.axmj+2d0*pmas(3,1)) THEN
827  lknt=lknt+1
828  xlam(lknt)=xlam(lknt-1)
829  idlam(lknt,1)=ksusy1+21
830  idlam(lknt,2)=3
831  idlam(lknt,3)=-3
832  ENDIF
833  ENDIF
834  310 CONTINUE
835  IF(abs(sfmix(5,1)).GT.abs(sfmix(5,2))) THEN
836  xxc(5)=pmas(pycomp(ksusy1+5),1)
837  xxc(6)=pmas(pycomp(ksusy2+5),1)
838  ELSE
839  xxc(6)=pmas(pycomp(ksusy1+5),1)
840  xxc(5)=pmas(pycomp(ksusy2+5),1)
841  ENDIF
842  IF( xxc(5).LT.axmi .OR. xxc(6).LT.axmi ) goto 320
843  xxc(7)=xxc(5)
844  xxc(8)=xxc(6)
845  IF(axmi.GE.axmj+2d0*pmas(5,1)) THEN
846  lknt=lknt+1
847  xlam(lknt)=0.5d0*c1*as/xmi3/(16d0*pi)*
848  & pygaus(pyxxz6,s12min,s12max,1d-3)
849  idlam(lknt,1)=ksusy1+21
850  idlam(lknt,2)=5
851  idlam(lknt,3)=-5
852  ENDIF
853 C...U-TYPE QUARKS
854  320 CONTINUE
855  fid=2
856  xxc(5)=pmas(pycomp(ksusy1+fid),1)
857  xxc(6)=pmas(pycomp(ksusy2+fid),1)
858  IF( xxc(5).LT.axmi .OR. xxc(6).LT.axmi ) goto 330
859  xxc(7)=xxc(5)
860  xxc(8)=xxc(6)
861  ei=kchg(fid,1)/3d0
862  t3i=sign(1d0,ei+1d-6)/2d0
863  glij=(t3i*zmixc(ix,2)-tanw*(t3i-ei)*zmixc(ix,1))*olpp
864  grij=zmixc(ix,1)*(ei*tanw)*orpp
865  cxc(2)=-glij
866  cxc(4)=dconjg(glij)
867  cxc(6)=grij
868  cxc(8)=-dconjg(grij)
869  IF(axmi.GE.axmj+2d0*pmas(2,1)) THEN
870  lknt=lknt+1
871  xlam(lknt)=0.5d0*c1*as/xmi3/(16d0*pi)*
872  & pygaus(pyxxz6,s12min,s12max,1d-3)
873  idlam(lknt,1)=ksusy1+21
874  idlam(lknt,2)=2
875  idlam(lknt,3)=-2
876  IF(axmi.GE.axmj+2d0*pmas(4,1)) THEN
877  lknt=lknt+1
878  xlam(lknt)=xlam(lknt-1)
879  idlam(lknt,1)=ksusy1+21
880  idlam(lknt,2)=4
881  idlam(lknt,3)=-4
882  ENDIF
883  ENDIF
884  330 CONTINUE
885  ENDIF
886 
887 C...R-violating decay modes (SKANDS).
888  CALL pyrvne(kfin,xlam,idlam,lknt)
889 
890  340 iknt=lknt
891  xlam(0)=0d0
892  DO 350 i=1,iknt
893  IF(xlam(i).LT.0d0) xlam(i)=0d0
894  xlam(0)=xlam(0)+xlam(i)
895  350 CONTINUE
896  IF(xlam(0).EQ.0d0) xlam(0)=1d-6
897 
898  RETURN
899  END