]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/pysigh_hijing.F
- Reset TProcessID count after each event
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / pysigh_hijing.F
1 * $Id$
2     
3 C***********************************************************************    
4     
5       SUBROUTINE PYSIGH_HIJING(NCHN,SIGS)  
6     
7 C...Differential matrix elements for all included subprocesses. 
8 C...Note that what is coded is (disregarding the COMFAC factor) 
9 C...1) for 2 -> 1 processes: s-hat/pi*d(sigma-hat), where,  
10 C...when d(sigma-hat) is given in the zero-width limit, the delta   
11 C...function in tau is replaced by a Breit-Wigner:  
12 C...1/pi*(s*m_res*Gamma_res)/((s*tau-m_res^2)^2+(m_res*Gamma_res)^2);   
13 C...2) for 2 -> 2 processes: (s-hat)**2/pi*d(sigma-hat)/d(t-hat);   
14 C...i.e., dimensionless quantities. COMFAC contains the factor  
15 C...pi/s and the conversion factor from GeV^-2 to mb.   
16 #include "ludat1_hijing.inc"
17 #include "ludat2_hijing.inc"
18 #include "ludat3_hijing.inc"
19 #include "pysubs_hijing.inc"
20 #include "pypars_hijing.inc"
21 #include "pyint1_hijing.inc"
22 #include "pyint2_hijing.inc"
23 #include "pyint3_hijing.inc"
24 #include "pyint4_hijing.inc"
25 #include "pyint5_hijing.inc"
26       DIMENSION X(2),XPQ(-6:6),KFAC(2,-40:40),WDTP(0:40),WDTE(0:40,0:5) 
27     
28 C...Reset number of channels and cross-section. 
29       NCHN=0    
30       SIGS=0.   
31     
32 C...Read kinematical variables and limits.  
33       ISUB=MINT(1)  
34       TAUMIN=VINT(11)   
35       YSTMIN=VINT(12)   
36       CTNMIN=VINT(13)   
37       CTPMIN=VINT(14)   
38       XT2MIN=VINT(15)   
39       TAUPMN=VINT(16)   
40       TAU=VINT(21)  
41       YST=VINT(22)  
42       CTH=VINT(23)  
43       XT2=VINT(25)  
44       TAUP=VINT(26) 
45       TAUMAX=VINT(31)   
46       YSTMAX=VINT(32)   
47       CTNMAX=VINT(33)   
48       CTPMAX=VINT(34)   
49       XT2MAX=VINT(35)   
50       TAUPMX=VINT(36)   
51     
52 C...Derive kinematical quantities.  
53       IF(ISET(ISUB).LE.2.OR.ISET(ISUB).EQ.5) THEN   
54         X(1)=SQRT(TAU)*EXP(YST) 
55         X(2)=SQRT(TAU)*EXP(-YST)    
56       ELSE  
57         X(1)=SQRT(TAUP)*EXP(YST)    
58         X(2)=SQRT(TAUP)*EXP(-YST)   
59       ENDIF 
60       IF(MINT(43).EQ.4.AND.ISET(ISUB).GE.1.AND. 
61      &(X(1).GT.0.999.OR.X(2).GT.0.999)) RETURN  
62       SH=TAU*VINT(2)    
63       SQM3=VINT(63) 
64       SQM4=VINT(64) 
65       RM3=SQM3/SH   
66       RM4=SQM4/SH   
67       BE34=SQRT((1.-RM3-RM4)**2-4.*RM3*RM4) 
68       RPTS=4.*VINT(71)**2/SH    
69       BE34L=SQRT(MAX(0.,(1.-RM3-RM4)**2-4.*RM3*RM4-RPTS))   
70       RM34=2.*RM3*RM4   
71       RSQM=1.+RM34  
72       RTHM=(4.*RM3*RM4+RPTS)/(1.-RM3-RM4+BE34L) 
73       TH=-0.5*SH*MAX(RTHM,1.-RM3-RM4-BE34*CTH)  
74       UH=-0.5*SH*MAX(RTHM,1.-RM3-RM4+BE34*CTH)  
75       SQPTH=0.25*SH*BE34**2*(1.-CTH**2) 
76       SH2=SH**2 
77       TH2=TH**2 
78       UH2=UH**2 
79     
80 C...Choice of Q2 scale. 
81       IF(ISET(ISUB).EQ.1.OR.ISET(ISUB).EQ.3) THEN   
82         Q2=SH   
83       ELSEIF(MOD(ISET(ISUB),2).EQ.0.OR.ISET(ISUB).EQ.5) THEN    
84         IF(MSTP(32).EQ.1) THEN  
85           Q2=2.*SH*TH*UH/(SH**2+TH**2+UH**2)    
86         ELSEIF(MSTP(32).EQ.2) THEN  
87           Q2=SQPTH+0.5*(SQM3+SQM4)  
88         ELSEIF(MSTP(32).EQ.3) THEN  
89           Q2=MIN(-TH,-UH)   
90         ELSEIF(MSTP(32).EQ.4) THEN  
91           Q2=SH 
92         ENDIF   
93         IF(ISET(ISUB).EQ.5.AND.MSTP(82).GE.2) Q2=Q2+PARP(82)**2 
94       ENDIF 
95     
96 C...Store derived kinematical quantities.   
97       VINT(41)=X(1) 
98       VINT(42)=X(2) 
99       VINT(44)=SH   
100       VINT(43)=SQRT(SH) 
101       VINT(45)=TH   
102       VINT(46)=UH   
103       VINT(48)=SQPTH    
104       VINT(47)=SQRT(SQPTH)  
105       VINT(50)=TAUP*VINT(2) 
106       VINT(49)=SQRT(MAX(0.,VINT(50)))   
107       VINT(52)=Q2   
108       VINT(51)=SQRT(Q2) 
109     
110 C...Calculate parton structure functions.   
111       IF(ISET(ISUB).LE.0) GOTO 145  
112       IF(MINT(43).GE.2) THEN    
113         Q2SF=Q2 
114         IF(ISET(ISUB).EQ.3.OR.ISET(ISUB).EQ.4) THEN 
115           Q2SF=PMAS(23,1)**2    
116           IF(ISUB.EQ.8.OR.ISUB.EQ.76.OR.ISUB.EQ.77) Q2SF=PMAS(24,1)**2  
117         ENDIF   
118         DO 100 I=3-MINT(41),MINT(42)    
119         XSF=X(I)    
120         IF(ISET(ISUB).EQ.5) XSF=X(I)/VINT(142+I)    
121         CALL PYSTFU_HIJING(MINT(10+I),XSF,Q2SF,XPQ,I)    
122         DO 100 KFL=-6,6 
123   100   XSFX(I,KFL)=XPQ(KFL)
124       ENDIF 
125     
126 C...Calculate alpha_strong and K-factor.    
127       IF(MSTP(33).NE.3) AS=ULALPS_HIJING(Q2)   
128       FACK=1.   
129       FACA=1.   
130       IF(MSTP(33).EQ.1) THEN    
131         FACK=PARP(31)   
132       ELSEIF(MSTP(33).EQ.2) THEN    
133         FACK=PARP(31)   
134         FACA=PARP(32)/PARP(31)  
135       ELSEIF(MSTP(33).EQ.3) THEN    
136         Q2AS=PARP(33)*Q2    
137         IF(ISET(ISUB).EQ.5.AND.MSTP(82).GE.2) Q2AS=Q2AS+    
138      &  PARU(112)*PARP(82)  
139         AS=ULALPS_HIJING(Q2AS) 
140       ENDIF 
141       RADC=1.+AS/PARU(1)    
142     
143 C...Set flags for allowed reacting partons/leptons. 
144       DO 130 I=1,2  
145       DO 110 J=-40,40   
146   110 KFAC(I,J)=0   
147       IF(MINT(40+I).EQ.1) THEN  
148         KFAC(I,MINT(10+I))=1    
149       ELSE  
150         DO 120 J=-40,40 
151         KFAC(I,J)=KFIN(I,J) 
152         IF(ABS(J).GT.MSTP(54).AND.J.NE.21) KFAC(I,J)=0  
153         IF(ABS(J).LE.6) THEN    
154           IF(XSFX(I,J).LT.1.E-10) KFAC(I,J)=0   
155         ELSEIF(J.EQ.21) THEN    
156           IF(XSFX(I,0).LT.1.E-10) KFAC(I,21)=0  
157         ENDIF   
158   120   CONTINUE    
159       ENDIF 
160   130 CONTINUE  
161     
162 C...Lower and upper limit for flavour loops.    
163       MIN1=0    
164       MAX1=0    
165       MIN2=0    
166       MAX2=0    
167       DO 140 J=-20,20   
168       IF(KFAC(1,-J).EQ.1) MIN1=-J   
169       IF(KFAC(1,J).EQ.1) MAX1=J 
170       IF(KFAC(2,-J).EQ.1) MIN2=-J   
171       IF(KFAC(2,J).EQ.1) MAX2=J 
172   140 CONTINUE  
173       MINA=MIN(MIN1,MIN2)   
174       MAXA=MAX(MAX1,MAX2)   
175     
176 C...Common conversion factors (including Jacobian) for subprocesses.    
177       SQMZ=PMAS(23,1)**2    
178       GMMZ=PMAS(23,1)*PMAS(23,2)    
179       SQMW=PMAS(24,1)**2    
180       GMMW=PMAS(24,1)*PMAS(24,2)    
181       SQMH=PMAS(25,1)**2    
182       GMMH=PMAS(25,1)*PMAS(25,2)    
183       SQMZP=PMAS(32,1)**2   
184       GMMZP=PMAS(32,1)*PMAS(32,2)   
185       SQMHC=PMAS(37,1)**2   
186       GMMHC=PMAS(37,1)*PMAS(37,2)   
187       SQMR=PMAS(40,1)**2    
188       GMMR=PMAS(40,1)*PMAS(40,2)    
189       AEM=PARU(101) 
190       XW=PARU(102)  
191     
192 C...Phase space integral in tau and y*. 
193       COMFAC=PARU(1)*PARU(5)/VINT(2)    
194       IF(MINT(43).EQ.4) COMFAC=COMFAC*FACK  
195       IF((MINT(43).GE.2.OR.ISET(ISUB).EQ.3.OR.ISET(ISUB).EQ.4).AND. 
196      &ISET(ISUB).NE.5) THEN 
197         ATAU0=LOG(TAUMAX/TAUMIN)    
198         ATAU1=(TAUMAX-TAUMIN)/(TAUMAX*TAUMIN)   
199         H1=COEF(ISUB,1)+(ATAU0/ATAU1)*COEF(ISUB,2)/TAU  
200         IF(MINT(72).GE.1) THEN  
201           TAUR1=VINT(73)    
202           GAMR1=VINT(74)    
203           ATAU2=LOG(TAUMAX/TAUMIN*(TAUMIN+TAUR1)/(TAUMAX+TAUR1))/TAUR1  
204           ATAU3=(ATAN((TAUMAX-TAUR1)/GAMR1)-ATAN((TAUMIN-TAUR1)/GAMR1))/    
205      &    GAMR1 
206           H1=H1+(ATAU0/ATAU2)*COEF(ISUB,3)/(TAU+TAUR1)+ 
207      &    (ATAU0/ATAU3)*COEF(ISUB,4)*TAU/((TAU-TAUR1)**2+GAMR1**2)  
208         ENDIF   
209         IF(MINT(72).EQ.2) THEN  
210           TAUR2=VINT(75)    
211           GAMR2=VINT(76)    
212           ATAU4=LOG(TAUMAX/TAUMIN*(TAUMIN+TAUR2)/(TAUMAX+TAUR2))/TAUR2  
213           ATAU5=(ATAN((TAUMAX-TAUR2)/GAMR2)-ATAN((TAUMIN-TAUR2)/GAMR2))/    
214      &    GAMR2 
215           H1=H1+(ATAU0/ATAU4)*COEF(ISUB,5)/(TAU+TAUR2)+ 
216      &    (ATAU0/ATAU5)*COEF(ISUB,6)*TAU/((TAU-TAUR2)**2+GAMR2**2)  
217         ENDIF   
218         COMFAC=COMFAC*ATAU0/(TAU*H1)    
219       ENDIF 
220       IF(MINT(43).EQ.4.AND.ISET(ISUB).NE.5) THEN    
221         AYST0=YSTMAX-YSTMIN 
222         AYST1=0.5*(YSTMAX-YSTMIN)**2    
223         AYST2=AYST1 
224         AYST3=2.*(ATAN(EXP(YSTMAX))-ATAN(EXP(YSTMIN)))  
225         H2=(AYST0/AYST1)*COEF(ISUB,7)*(YST-YSTMIN)+(AYST0/AYST2)*   
226      &  COEF(ISUB,8)*(YSTMAX-YST)+(AYST0/AYST3)*COEF(ISUB,9)/COSH(YST)  
227         COMFAC=COMFAC*AYST0/H2  
228       ENDIF 
229     
230 C...2 -> 1 processes: reduction in angular part of phase space integral 
231 C...for case of decaying resonance. 
232       ACTH0=CTNMAX-CTNMIN+CTPMAX-CTPMIN 
233       IF((ISET(ISUB).EQ.1.OR.ISET(ISUB).EQ.3).AND.  
234      &MDCY(KFPR(ISUB,1),1).EQ.1) THEN   
235         IF(KFPR(ISUB,1).EQ.25.OR.KFPR(ISUB,1).EQ.37) THEN   
236           COMFAC=COMFAC*0.5*ACTH0   
237         ELSE    
238           COMFAC=COMFAC*0.125*(3.*ACTH0+CTNMAX**3-CTNMIN**3+    
239      &    CTPMAX**3-CTPMIN**3)  
240         ENDIF   
241     
242 C...2 -> 2 processes: angular part of phase space integral. 
243       ELSEIF(ISET(ISUB).EQ.2.OR.ISET(ISUB).EQ.4) THEN   
244         ACTH1=LOG((MAX(RM34,RSQM-CTNMIN)*MAX(RM34,RSQM-CTPMIN))/    
245      &  (MAX(RM34,RSQM-CTNMAX)*MAX(RM34,RSQM-CTPMAX)))  
246         ACTH2=LOG((MAX(RM34,RSQM+CTNMAX)*MAX(RM34,RSQM+CTPMAX))/    
247      &  (MAX(RM34,RSQM+CTNMIN)*MAX(RM34,RSQM+CTPMIN)))  
248         ACTH3=1./MAX(RM34,RSQM-CTNMAX)-1./MAX(RM34,RSQM-CTNMIN)+    
249      &  1./MAX(RM34,RSQM-CTPMAX)-1./MAX(RM34,RSQM-CTPMIN)   
250         ACTH4=1./MAX(RM34,RSQM+CTNMIN)-1./MAX(RM34,RSQM+CTNMAX)+    
251      &  1./MAX(RM34,RSQM+CTPMIN)-1./MAX(RM34,RSQM+CTPMAX)   
252         H3=COEF(ISUB,10)+   
253      &  (ACTH0/ACTH1)*COEF(ISUB,11)/MAX(RM34,RSQM-CTH)+ 
254      &  (ACTH0/ACTH2)*COEF(ISUB,12)/MAX(RM34,RSQM+CTH)+ 
255      &  (ACTH0/ACTH3)*COEF(ISUB,13)/MAX(RM34,RSQM-CTH)**2+  
256      &  (ACTH0/ACTH4)*COEF(ISUB,14)/MAX(RM34,RSQM+CTH)**2   
257         COMFAC=COMFAC*ACTH0*0.5*BE34/H3 
258       ENDIF 
259     
260 C...2 -> 3, 4 processes: phace space integral in tau'.  
261       IF(MINT(43).GE.2.AND.(ISET(ISUB).EQ.3.OR.ISET(ISUB).EQ.4)) THEN   
262         ATAUP0=LOG(TAUPMX/TAUPMN)   
263         ATAUP1=((1.-TAU/TAUPMX)**4-(1.-TAU/TAUPMN)**4)/(4.*TAU) 
264         H4=COEF(ISUB,15)+   
265      &  ATAUP0/ATAUP1*COEF(ISUB,16)/TAUP*(1.-TAU/TAUP)**3   
266         IF(1.-TAU/TAUP.GT.1.E-4) THEN   
267           FZW=(1.+TAU/TAUP)*LOG(TAUP/TAU)-2.*(1.-TAU/TAUP)  
268         ELSE    
269           FZW=1./6.*(1.-TAU/TAUP)**3*TAU/TAUP   
270         ENDIF   
271         COMFAC=COMFAC*ATAUP0*FZW/H4 
272       ENDIF 
273     
274 C...Phase space integral for low-pT and multiple interactions.  
275       IF(ISET(ISUB).EQ.5) THEN  
276         COMFAC=PARU(1)*PARU(5)*FACK*0.5*VINT(2)/SH2 
277         ATAU0=LOG(2.*(1.+SQRT(1.-XT2))/XT2-1.)  
278         ATAU1=2.*ATAN(1./XT2-1.)/SQRT(XT2)  
279         H1=COEF(ISUB,1)+(ATAU0/ATAU1)*COEF(ISUB,2)/SQRT(TAU)    
280         COMFAC=COMFAC*ATAU0/H1  
281         AYST0=YSTMAX-YSTMIN 
282         AYST1=0.5*(YSTMAX-YSTMIN)**2    
283         AYST3=2.*(ATAN(EXP(YSTMAX))-ATAN(EXP(YSTMIN)))  
284         H2=(AYST0/AYST1)*COEF(ISUB,7)*(YST-YSTMIN)+(AYST0/AYST1)*   
285      &  COEF(ISUB,8)*(YSTMAX-YST)+(AYST0/AYST3)*COEF(ISUB,9)/COSH(YST)  
286         COMFAC=COMFAC*AYST0/H2  
287         IF(MSTP(82).LE.1) COMFAC=COMFAC*XT2**2*(1./VINT(149)-1.)    
288 C...For MSTP(82)>=2 an additional factor (xT2/(xT2+VINT(149))**2 is 
289 C...introduced to make cross-section finite for xT2 -> 0.   
290         IF(MSTP(82).GE.2) COMFAC=COMFAC*XT2**2/(VINT(149)*  
291      &  (1.+VINT(149))) 
292       ENDIF 
293     
294 C...A: 2 -> 1, tree diagrams.   
295     
296   145 IF(ISUB.LE.10) THEN   
297       IF(ISUB.EQ.1) THEN    
298 C...f + fb -> gamma*/Z0.    
299         MINT(61)=2  
300         CALL PYWIDT_HIJING(23,SQRT(SH),WDTP,WDTE)  
301         FACZ=COMFAC*AEM**2*4./3.    
302         DO 150 I=MINA,MAXA  
303         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 150    
304         EI=KCHG(IABS(I),1)/3.   
305         AI=SIGN(1.,EI)  
306         VI=AI-4.*EI*XW  
307         FACF=1. 
308         IF(IABS(I).LE.10) FACF=FACA/3.  
309         NCHN=NCHN+1 
310         ISIG(NCHN,1)=I  
311         ISIG(NCHN,2)=-I 
312         ISIG(NCHN,3)=1  
313         SIGH(NCHN)=FACF*FACZ*(EI**2*VINT(111)+EI*VI/(8.*XW*(1.-XW))*    
314      &  SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)*VINT(112)+(VI**2+AI**2)/    
315      &  (16.*XW*(1.-XW))**2*SH2/((SH-SQMZ)**2+GMMZ**2)*VINT(114))   
316   150   CONTINUE    
317     
318       ELSEIF(ISUB.EQ.2) THEN    
319 C...f + fb' -> W+/-.    
320         CALL PYWIDT_HIJING(24,SQRT(SH),WDTP,WDTE)  
321         FACW=COMFAC*(AEM/XW)**2*1./24*SH2/((SH-SQMW)**2+GMMW**2)    
322         DO 170 I=MIN1,MAX1  
323         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 170   
324         IA=IABS(I)  
325         DO 160 J=MIN2,MAX2  
326         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 160   
327         JA=IABS(J)  
328         IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 160  
329         IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10)) GOTO 160 
330         KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3    
331         FACF=1. 
332         IF(IA.LE.10) FACF=VCKM((IA+1)/2,(JA+1)/2)*FACA/3.   
333         NCHN=NCHN+1 
334         ISIG(NCHN,1)=I  
335         ISIG(NCHN,2)=J  
336         ISIG(NCHN,3)=1  
337         SIGH(NCHN)=FACF*FACW*(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))   
338   160   CONTINUE    
339   170   CONTINUE    
340     
341       ELSEIF(ISUB.EQ.3) THEN    
342 C...f + fb -> H0.   
343         CALL PYWIDT_HIJING(25,SQRT(SH),WDTP,WDTE)  
344         FACH=COMFAC*(AEM/XW)**2*1./48.*(SH/SQMW)**2*    
345      &  SH2/((SH-SQMH)**2+GMMH**2)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))  
346         DO 180 I=MINA,MAXA  
347         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 180    
348         RMQ=PMAS(IABS(I),1)**2/SH   
349         NCHN=NCHN+1 
350         ISIG(NCHN,1)=I  
351         ISIG(NCHN,2)=-I 
352         ISIG(NCHN,3)=1  
353         SIGH(NCHN)=FACH*RMQ*SQRT(MAX(0.,1.-4.*RMQ)) 
354   180   CONTINUE    
355     
356       ELSEIF(ISUB.EQ.4) THEN    
357 C...gamma + W+/- -> W+/-.   
358     
359       ELSEIF(ISUB.EQ.5) THEN    
360 C...Z0 + Z0 -> H0.  
361         CALL PYWIDT_HIJING(25,SQRT(SH),WDTP,WDTE)  
362         FACH=COMFAC*1./(128.*PARU(1)**2*16.*(1.-XW)**3)*(AEM/XW)**4*    
363      &  (SH/SQMW)**2*SH2/((SH-SQMH)**2+GMMH**2)*    
364      &  (WDTE(0,1)+WDTE(0,2)+WDTE(0,4)) 
365         DO 200 I=MIN1,MAX1  
366         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 200   
367         DO 190 J=MIN2,MAX2  
368         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 190   
369         EI=KCHG(IABS(I),1)/3.   
370         AI=SIGN(1.,EI)  
371         VI=AI-4.*EI*XW  
372         EJ=KCHG(IABS(J),1)/3.   
373         AJ=SIGN(1.,EJ)  
374         VJ=AJ-4.*EJ*XW  
375         NCHN=NCHN+1 
376         ISIG(NCHN,1)=I  
377         ISIG(NCHN,2)=J  
378         ISIG(NCHN,3)=1  
379         SIGH(NCHN)=FACH*(VI**2+AI**2)*(VJ**2+AJ**2) 
380   190   CONTINUE    
381   200   CONTINUE    
382     
383       ELSEIF(ISUB.EQ.6) THEN    
384 C...Z0 + W+/- -> W+/-.  
385     
386       ELSEIF(ISUB.EQ.7) THEN    
387 C...W+ + W- -> Z0.  
388     
389       ELSEIF(ISUB.EQ.8) THEN    
390 C...W+ + W- -> H0.  
391         CALL PYWIDT_HIJING(25,SQRT(SH),WDTP,WDTE)  
392         FACH=COMFAC*1./(128*PARU(1)**2)*(AEM/XW)**4*(SH/SQMW)**2*   
393      &  SH2/((SH-SQMH)**2+GMMH**2)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))  
394         DO 220 I=MIN1,MAX1  
395         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 220   
396         EI=SIGN(1.,FLOAT(I))*KCHG(IABS(I),1)    
397         DO 210 J=MIN2,MAX2  
398         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 210   
399         EJ=SIGN(1.,FLOAT(J))*KCHG(IABS(J),1)    
400         IF(EI*EJ.GT.0.) GOTO 210    
401         NCHN=NCHN+1 
402         ISIG(NCHN,1)=I  
403         ISIG(NCHN,2)=J  
404         ISIG(NCHN,3)=1  
405         SIGH(NCHN)=FACH*VINT(180+I)*VINT(180+J) 
406   210   CONTINUE    
407   220   CONTINUE    
408       ENDIF 
409     
410 C...B: 2 -> 2, tree diagrams.   
411     
412       ELSEIF(ISUB.LE.20) THEN   
413       IF(ISUB.EQ.11) THEN   
414 C...f + f' -> f + f'.   
415         FACQQ1=COMFAC*AS**2*4./9.*(SH2+UH2)/TH2 
416         FACQQB=COMFAC*AS**2*4./9.*((SH2+UH2)/TH2*FACA-  
417      &  MSTP(34)*2./3.*UH2/(SH*TH)) 
418         FACQQ2=COMFAC*AS**2*4./9.*((SH2+TH2)/UH2-   
419      &  MSTP(34)*2./3.*SH2/(TH*UH)) 
420         DO 240 I=MIN1,MAX1  
421         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 240   
422         DO 230 J=MIN2,MAX2  
423         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 230   
424         NCHN=NCHN+1 
425         ISIG(NCHN,1)=I  
426         ISIG(NCHN,2)=J  
427         ISIG(NCHN,3)=1  
428         SIGH(NCHN)=FACQQ1   
429         IF(I.EQ.-J) SIGH(NCHN)=FACQQB   
430         IF(I.EQ.J) THEN 
431           SIGH(NCHN)=0.5*SIGH(NCHN) 
432           NCHN=NCHN+1   
433           ISIG(NCHN,1)=I    
434           ISIG(NCHN,2)=J    
435           ISIG(NCHN,3)=2    
436           SIGH(NCHN)=0.5*FACQQ2 
437         ENDIF   
438   230   CONTINUE    
439   240   CONTINUE    
440     
441       ELSEIF(ISUB.EQ.12) THEN   
442 C...f + fb -> f' + fb' (q + qb -> q' + qb' only).   
443         CALL PYWIDT_HIJING(21,SQRT(SH),WDTP,WDTE)  
444         FACQQB=COMFAC*AS**2*4./9.*(TH2+UH2)/SH2*(WDTE(0,1)+WDTE(0,2)+   
445      &  WDTE(0,3)+WDTE(0,4))    
446         DO 250 I=MINA,MAXA  
447         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 250    
448         NCHN=NCHN+1 
449         ISIG(NCHN,1)=I  
450         ISIG(NCHN,2)=-I 
451         ISIG(NCHN,3)=1  
452         SIGH(NCHN)=FACQQB   
453   250   CONTINUE    
454     
455       ELSEIF(ISUB.EQ.13) THEN   
456 C...f + fb -> g + g (q + qb -> g + g only). 
457         FACGG1=COMFAC*AS**2*32./27.*(UH/TH-(2.+MSTP(34)*1./4.)*UH2/SH2) 
458         FACGG2=COMFAC*AS**2*32./27.*(TH/UH-(2.+MSTP(34)*1./4.)*TH2/SH2) 
459         DO 260 I=MINA,MAXA  
460         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 260    
461         NCHN=NCHN+1 
462         ISIG(NCHN,1)=I  
463         ISIG(NCHN,2)=-I 
464         ISIG(NCHN,3)=1  
465         SIGH(NCHN)=0.5*FACGG1   
466         NCHN=NCHN+1 
467         ISIG(NCHN,1)=I  
468         ISIG(NCHN,2)=-I 
469         ISIG(NCHN,3)=2  
470         SIGH(NCHN)=0.5*FACGG2   
471   260   CONTINUE    
472     
473       ELSEIF(ISUB.EQ.14) THEN   
474 C...f + fb -> g + gamma (q + qb -> g + gamma only). 
475         FACGG=COMFAC*AS*AEM*8./9.*(TH2+UH2)/(TH*UH) 
476         DO 270 I=MINA,MAXA  
477         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 270    
478         EI=KCHG(IABS(I),1)/3.   
479         NCHN=NCHN+1 
480         ISIG(NCHN,1)=I  
481         ISIG(NCHN,2)=-I 
482         ISIG(NCHN,3)=1  
483         SIGH(NCHN)=FACGG*EI**2  
484   270   CONTINUE    
485     
486       ELSEIF(ISUB.EQ.15) THEN   
487 C...f + fb -> g + Z0 (q + qb -> g + Z0 only).   
488         FACZG=COMFAC*AS*AEM/(XW*(1.-XW))*1./18.*    
489      &  (TH2+UH2+2.*SQM4*SH)/(TH*UH)    
490         FACZG=FACZG*WIDS(23,2)  
491         DO 280 I=MINA,MAXA  
492         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 280    
493         EI=KCHG(IABS(I),1)/3.   
494         AI=SIGN(1.,EI)  
495         VI=AI-4.*EI*XW  
496         NCHN=NCHN+1 
497         ISIG(NCHN,1)=I  
498         ISIG(NCHN,2)=-I 
499         ISIG(NCHN,3)=1  
500         SIGH(NCHN)=FACZG*(VI**2+AI**2)  
501   280   CONTINUE    
502     
503       ELSEIF(ISUB.EQ.16) THEN   
504 C...f + fb' -> g + W+/- (q + qb' -> g + W+/- only). 
505         FACWG=COMFAC*AS*AEM/XW*2./9.*(TH2+UH2+2.*SQM4*SH)/(TH*UH)   
506         DO 300 I=MIN1,MAX1  
507         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 300   
508         IA=IABS(I)  
509         DO 290 J=MIN2,MAX2  
510         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 290   
511         JA=IABS(J)  
512         IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 290  
513         KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3    
514         FCKM=1. 
515         IF(MINT(43).EQ.4) FCKM=VCKM((IA+1)/2,(JA+1)/2)  
516         NCHN=NCHN+1 
517         ISIG(NCHN,1)=I  
518         ISIG(NCHN,2)=J  
519         ISIG(NCHN,3)=1  
520         SIGH(NCHN)=FACWG*FCKM*WIDS(24,(5-KCHW)/2)   
521   290   CONTINUE    
522   300   CONTINUE    
523     
524       ELSEIF(ISUB.EQ.17) THEN   
525 C...f + fb -> g + H0 (q + qb -> g + H0 only).   
526     
527       ELSEIF(ISUB.EQ.18) THEN   
528 C...f + fb -> gamma + gamma.    
529         FACGG=COMFAC*FACA*AEM**2*1./3.*(TH2+UH2)/(TH*UH)    
530         DO 310 I=MINA,MAXA  
531         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 310    
532         EI=KCHG(IABS(I),1)/3.   
533         NCHN=NCHN+1 
534         ISIG(NCHN,1)=I  
535         ISIG(NCHN,2)=-I 
536         ISIG(NCHN,3)=1  
537         SIGH(NCHN)=FACGG*EI**4  
538   310   CONTINUE    
539     
540       ELSEIF(ISUB.EQ.19) THEN   
541 C...f + fb -> gamma + Z0.   
542         FACGZ=COMFAC*FACA*AEM**2/(XW*(1.-XW))*1./24.*   
543      &  (TH2+UH2+2.*SQM4*SH)/(TH*UH)    
544         FACGZ=FACGZ*WIDS(23,2)  
545         DO 320 I=MINA,MAXA  
546         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 320    
547         EI=KCHG(IABS(I),1)/3.   
548         AI=SIGN(1.,EI)  
549         VI=AI-4.*EI*XW  
550         NCHN=NCHN+1 
551         ISIG(NCHN,1)=I  
552         ISIG(NCHN,2)=-I 
553         ISIG(NCHN,3)=1  
554         SIGH(NCHN)=FACGZ*EI**2*(VI**2+AI**2)    
555   320   CONTINUE    
556     
557       ELSEIF(ISUB.EQ.20) THEN   
558 C...f + fb' -> gamma + W+/-.    
559         FACGW=COMFAC*FACA*AEM**2/XW*1./6.*  
560      &  ((2.*UH-TH)/(3.*(SH-SQM4)))**2*(TH2+UH2+2.*SQM4*SH)/(TH*UH) 
561         DO 340 I=MIN1,MAX1  
562         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 340   
563         IA=IABS(I)  
564         DO 330 J=MIN2,MAX2  
565         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 330   
566         JA=IABS(J)  
567         IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 330  
568         KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3    
569         FCKM=1. 
570         IF(MINT(43).EQ.4) FCKM=VCKM((IA+1)/2,(JA+1)/2)  
571         NCHN=NCHN+1 
572         ISIG(NCHN,1)=I  
573         ISIG(NCHN,2)=J  
574         ISIG(NCHN,3)=1  
575         SIGH(NCHN)=FACGW*FCKM*WIDS(24,(5-KCHW)/2)   
576   330   CONTINUE    
577   340   CONTINUE    
578       ENDIF 
579     
580       ELSEIF(ISUB.LE.30) THEN   
581       IF(ISUB.EQ.21) THEN   
582 C...f + fb -> gamma + H0.   
583     
584       ELSEIF(ISUB.EQ.22) THEN   
585 C...f + fb -> Z0 + Z0.  
586         FACZZ=COMFAC*FACA*(AEM/(XW*(1.-XW)))**2*1./768.*    
587      &  (UH/TH+TH/UH+2.*(SQM3+SQM4)*SH/(TH*UH)- 
588      &  SQM3*SQM4*(1./TH2+1./UH2))  
589         FACZZ=FACZZ*WIDS(23,1)  
590         DO 350 I=MINA,MAXA  
591         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 350    
592         EI=KCHG(IABS(I),1)/3.   
593         AI=SIGN(1.,EI)  
594         VI=AI-4.*EI*XW  
595         NCHN=NCHN+1 
596         ISIG(NCHN,1)=I  
597         ISIG(NCHN,2)=-I 
598         ISIG(NCHN,3)=1  
599         SIGH(NCHN)=FACZZ*(VI**4+6.*VI**2*AI**2+AI**4)   
600   350   CONTINUE    
601     
602       ELSEIF(ISUB.EQ.23) THEN   
603 C...f + fb' -> Z0 + W+/-.   
604         FACZW=COMFAC*FACA*(AEM/XW)**2*1./6. 
605         FACZW=FACZW*WIDS(23,2)  
606         THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2) 
607         DO 370 I=MIN1,MAX1  
608         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 370   
609         IA=IABS(I)  
610         DO 360 J=MIN2,MAX2  
611         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 360   
612         JA=IABS(J)  
613         IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 360  
614         KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3    
615         EI=KCHG(IA,1)/3.    
616         AI=SIGN(1.,EI)  
617         VI=AI-4.*EI*XW  
618         EJ=KCHG(JA,1)/3.    
619         AJ=SIGN(1.,EJ)  
620         VJ=AJ-4.*EJ*XW  
621         IF(VI+AI.GT.0) THEN 
622           VISAV=VI  
623           AISAV=AI  
624           VI=VJ 
625           AI=AJ 
626           VJ=VISAV  
627           AJ=AISAV  
628         ENDIF   
629         FCKM=1. 
630         IF(MINT(43).EQ.4) FCKM=VCKM((IA+1)/2,(JA+1)/2)  
631         NCHN=NCHN+1 
632         ISIG(NCHN,1)=I  
633         ISIG(NCHN,2)=J  
634         ISIG(NCHN,3)=1  
635         SIGH(NCHN)=FACZW*FCKM*(1./(SH-SQMW)**2* 
636      &  ((9.-8.*XW)/4.*THUH+(8.*XW-6.)/4.*SH*(SQM3+SQM4))+  
637      &  (THUH-SH*(SQM3+SQM4))/(2.*(SH-SQMW))*((VJ+AJ)/TH-(VI+AI)/UH)+   
638      &  THUH/(16.*(1.-XW))*((VJ+AJ)**2/TH2+(VI+AI)**2/UH2)+ 
639      &  SH*(SQM3+SQM4)/(8.*(1.-XW))*(VI+AI)*(VJ+AJ)/(TH*UH))*   
640      &  WIDS(24,(5-KCHW)/2) 
641   360   CONTINUE    
642   370   CONTINUE    
643     
644       ELSEIF(ISUB.EQ.24) THEN   
645 C...f + fb -> Z0 + H0.  
646         THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2) 
647         FACHZ=COMFAC*FACA*(AEM/(XW*(1.-XW)))**2*1./96.* 
648      &  (THUH+2.*SH*SQMZ)/(SH-SQMZ)**2  
649         FACHZ=FACHZ*WIDS(23,2)*WIDS(25,2)   
650         DO 380 I=MINA,MAXA  
651         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 380    
652         EI=KCHG(IABS(I),1)/3.   
653         AI=SIGN(1.,EI)  
654         VI=AI-4.*EI*XW  
655         NCHN=NCHN+1 
656         ISIG(NCHN,1)=I  
657         ISIG(NCHN,2)=-I 
658         ISIG(NCHN,3)=1  
659         SIGH(NCHN)=FACHZ*(VI**2+AI**2)  
660   380   CONTINUE    
661     
662       ELSEIF(ISUB.EQ.25) THEN   
663 C...f + fb -> W+ + W-.  
664         FACWW=COMFAC*FACA*(AEM/XW)**2*1./12.    
665         FACWW=FACWW*WIDS(24,1)  
666         THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2) 
667         DO 390 I=MINA,MAXA  
668         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 390    
669         EI=KCHG(IABS(I),1)/3.   
670         AI=SIGN(1.,EI)  
671         VI=AI-4.*EI*XW  
672         DSIGWW=THUH/SH2*(3.-(SH-3.*(SQM3+SQM4))/(SH-SQMZ)*  
673      &  (VI+AI)/(2.*AI*(1.-XW))+(SH/(SH-SQMZ))**2*  
674      &  (1.-2.*(SQM3+SQM4)/SH+12.*SQM3*SQM4/SH2)*(VI**2+AI**2)/ 
675      &  (8.*(1.-XW)**2))-2.*SQMZ/(SH-SQMZ)*(VI+AI)/AI+  
676      &  SQMZ*SH/(SH-SQMZ)**2*(1.-2.*(SQM3+SQM4)/SH)*(VI**2+AI**2)/  
677      &  (2.*(1.-XW))    
678         IF(KCHG(IABS(I),1).LT.0) THEN   
679           DSIGWW=DSIGWW+2.*(1.+SQMZ/(SH-SQMZ)*(VI+AI)/(2.*AI))* 
680      &    (THUH/(SH*TH)-(SQM3+SQM4)/TH)+THUH/TH2    
681         ELSE    
682           DSIGWW=DSIGWW+2.*(1.+SQMZ/(SH-SQMZ)*(VI+AI)/(2.*AI))* 
683      &    (THUH/(SH*UH)-(SQM3+SQM4)/UH)+THUH/UH2    
684         ENDIF   
685         NCHN=NCHN+1 
686         ISIG(NCHN,1)=I  
687         ISIG(NCHN,2)=-I 
688         ISIG(NCHN,3)=1  
689         SIGH(NCHN)=FACWW*DSIGWW 
690   390   CONTINUE    
691     
692       ELSEIF(ISUB.EQ.26) THEN   
693 C...f + fb' -> W+/- + H0.   
694         THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2) 
695         FACHW=COMFAC*FACA*(AEM/XW)**2*1./24.*(THUH+2.*SH*SQMW)/ 
696      &  (SH-SQMW)**2    
697         FACHW=FACHW*WIDS(25,2)  
698         DO 410 I=MIN1,MAX1  
699         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 410   
700         IA=IABS(I)  
701         DO 400 J=MIN2,MAX2  
702         IF(J.EQ.0.OR.KFAC(1,J).EQ.0) GOTO 400   
703         JA=IABS(J)  
704         IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 400  
705         KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3    
706         FCKM=1. 
707         IF(MINT(43).EQ.4) FCKM=VCKM((IA+1)/2,(JA+1)/2)  
708         NCHN=NCHN+1 
709         ISIG(NCHN,1)=I  
710         ISIG(NCHN,2)=J  
711         ISIG(NCHN,3)=1  
712         SIGH(NCHN)=FACHW*FCKM*WIDS(24,(5-KCHW)/2)   
713   400   CONTINUE    
714   410   CONTINUE    
715     
716       ELSEIF(ISUB.EQ.27) THEN   
717 C...f + fb -> H0 + H0.  
718     
719       ELSEIF(ISUB.EQ.28) THEN   
720 C...f + g -> f + g (q + g -> q + g only).   
721         FACQG1=COMFAC*AS**2*4./9.*((2.+MSTP(34)*1./4.)*UH2/TH2-UH/SH)*  
722      &  FACA    
723         FACQG2=COMFAC*AS**2*4./9.*((2.+MSTP(34)*1./4.)*SH2/TH2-SH/UH)   
724         DO 430 I=MINA,MAXA  
725         IF(I.EQ.0) GOTO 430 
726         DO 420 ISDE=1,2 
727         IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 420    
728         IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 420    
729         NCHN=NCHN+1 
730         ISIG(NCHN,ISDE)=I   
731         ISIG(NCHN,3-ISDE)=21    
732         ISIG(NCHN,3)=1  
733         SIGH(NCHN)=FACQG1   
734         NCHN=NCHN+1 
735         ISIG(NCHN,ISDE)=I   
736         ISIG(NCHN,3-ISDE)=21    
737         ISIG(NCHN,3)=2  
738         SIGH(NCHN)=FACQG2   
739   420   CONTINUE    
740   430   CONTINUE    
741     
742       ELSEIF(ISUB.EQ.29) THEN   
743 C...f + g -> f + gamma (q + g -> q + gamma only).   
744         FGQ=COMFAC*FACA*AS*AEM*1./3.*(SH2+UH2)/(-SH*UH) 
745         DO 450 I=MINA,MAXA  
746         IF(I.EQ.0) GOTO 450 
747         EI=KCHG(IABS(I),1)/3.   
748         FACGQ=FGQ*EI**2 
749         DO 440 ISDE=1,2 
750         IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 440    
751         IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 440    
752         NCHN=NCHN+1 
753         ISIG(NCHN,ISDE)=I   
754         ISIG(NCHN,3-ISDE)=21    
755         ISIG(NCHN,3)=1  
756         SIGH(NCHN)=FACGQ    
757   440   CONTINUE    
758   450   CONTINUE    
759     
760       ELSEIF(ISUB.EQ.30) THEN   
761 C...f + g -> f + Z0 (q + g -> q + Z0 only). 
762         FZQ=COMFAC*FACA*AS*AEM/(XW*(1.-XW))*1./48.* 
763      &  (SH2+UH2+2.*SQM4*TH)/(-SH*UH)   
764         FZQ=FZQ*WIDS(23,2)  
765         DO 470 I=MINA,MAXA  
766         IF(I.EQ.0) GOTO 470 
767         EI=KCHG(IABS(I),1)/3.   
768         AI=SIGN(1.,EI)  
769         VI=AI-4.*EI*XW  
770         FACZQ=FZQ*(VI**2+AI**2) 
771         DO 460 ISDE=1,2 
772         IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 460    
773         IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 460    
774         NCHN=NCHN+1 
775         ISIG(NCHN,ISDE)=I   
776         ISIG(NCHN,3-ISDE)=21    
777         ISIG(NCHN,3)=1  
778         SIGH(NCHN)=FACZQ    
779   460   CONTINUE    
780   470   CONTINUE    
781       ENDIF 
782     
783       ELSEIF(ISUB.LE.40) THEN   
784       IF(ISUB.EQ.31) THEN   
785 C...f + g -> f' + W+/- (q + g -> q' + W+/- only).   
786         FACWQ=COMFAC*FACA*AS*AEM/XW*1./12.* 
787      &  (SH2+UH2+2.*SQM4*TH)/(-SH*UH)   
788         DO 490 I=MINA,MAXA  
789         IF(I.EQ.0) GOTO 490 
790         IA=IABS(I)  
791         KCHW=ISIGN(1,KCHG(IA,1)*ISIGN(1,I)) 
792         DO 480 ISDE=1,2 
793         IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 480    
794         IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 480    
795         NCHN=NCHN+1 
796         ISIG(NCHN,ISDE)=I   
797         ISIG(NCHN,3-ISDE)=21    
798         ISIG(NCHN,3)=1  
799         SIGH(NCHN)=FACWQ*VINT(180+I)*WIDS(24,(5-KCHW)/2)    
800   480   CONTINUE    
801   490   CONTINUE    
802     
803       ELSEIF(ISUB.EQ.32) THEN   
804 C...f + g -> f + H0 (q + g -> q + H0 only). 
805     
806       ELSEIF(ISUB.EQ.33) THEN   
807 C...f + gamma -> f + g (q + gamma -> q + g only).   
808     
809       ELSEIF(ISUB.EQ.34) THEN   
810 C...f + gamma -> f + gamma. 
811     
812       ELSEIF(ISUB.EQ.35) THEN   
813 C...f + gamma -> f + Z0.    
814     
815       ELSEIF(ISUB.EQ.36) THEN   
816 C...f + gamma -> f' + W+/-. 
817     
818       ELSEIF(ISUB.EQ.37) THEN   
819 C...f + gamma -> f + H0.    
820     
821       ELSEIF(ISUB.EQ.38) THEN   
822 C...f + Z0 -> f + g (q + Z0 -> q + g only). 
823     
824       ELSEIF(ISUB.EQ.39) THEN   
825 C...f + Z0 -> f + gamma.    
826     
827       ELSEIF(ISUB.EQ.40) THEN   
828 C...f + Z0 -> f + Z0.   
829       ENDIF 
830     
831       ELSEIF(ISUB.LE.50) THEN   
832       IF(ISUB.EQ.41) THEN   
833 C...f + Z0 -> f' + W+/-.    
834     
835       ELSEIF(ISUB.EQ.42) THEN   
836 C...f + Z0 -> f + H0.   
837     
838       ELSEIF(ISUB.EQ.43) THEN   
839 C...f + W+/- -> f' + g (q + W+/- -> q' + g only).   
840     
841       ELSEIF(ISUB.EQ.44) THEN   
842 C...f + W+/- -> f' + gamma. 
843     
844       ELSEIF(ISUB.EQ.45) THEN   
845 C...f + W+/- -> f' + Z0.    
846     
847       ELSEIF(ISUB.EQ.46) THEN   
848 C...f + W+/- -> f' + W+/-.  
849     
850       ELSEIF(ISUB.EQ.47) THEN   
851 C...f + W+/- -> f' + H0.    
852     
853       ELSEIF(ISUB.EQ.48) THEN   
854 C...f + H0 -> f + g (q + H0 -> q + g only). 
855     
856       ELSEIF(ISUB.EQ.49) THEN   
857 C...f + H0 -> f + gamma.    
858     
859       ELSEIF(ISUB.EQ.50) THEN   
860 C...f + H0 -> f + Z0.   
861       ENDIF 
862     
863       ELSEIF(ISUB.LE.60) THEN   
864       IF(ISUB.EQ.51) THEN   
865 C...f + H0 -> f' + W+/-.    
866     
867       ELSEIF(ISUB.EQ.52) THEN   
868 C...f + H0 -> f + H0.   
869     
870       ELSEIF(ISUB.EQ.53) THEN   
871 C...g + g -> f + fb (g + g -> q + qb only). 
872         CALL PYWIDT_HIJING(21,SQRT(SH),WDTP,WDTE)  
873         FACQQ1=COMFAC*AS**2*1./6.*(UH/TH-(2.+MSTP(34)*1./4.)*UH2/SH2)*  
874      &  (WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))*FACA  
875         FACQQ2=COMFAC*AS**2*1./6.*(TH/UH-(2.+MSTP(34)*1./4.)*TH2/SH2)*  
876      &  (WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))*FACA  
877         IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 500 
878         NCHN=NCHN+1 
879         ISIG(NCHN,1)=21 
880         ISIG(NCHN,2)=21 
881         ISIG(NCHN,3)=1  
882         SIGH(NCHN)=FACQQ1   
883         NCHN=NCHN+1 
884         ISIG(NCHN,1)=21 
885         ISIG(NCHN,2)=21 
886         ISIG(NCHN,3)=2  
887         SIGH(NCHN)=FACQQ2   
888   500   CONTINUE    
889     
890       ELSEIF(ISUB.EQ.54) THEN   
891 C...g + gamma -> f + fb (g + gamma -> q + qb only). 
892     
893       ELSEIF(ISUB.EQ.55) THEN   
894 C...g + gamma -> f + fb (g + gamma -> q + qb only). 
895     
896       ELSEIF(ISUB.EQ.56) THEN   
897 C...g + gamma -> f + fb (g + gamma -> q + qb only). 
898     
899       ELSEIF(ISUB.EQ.57) THEN   
900 C...g + gamma -> f + fb (g + gamma -> q + qb only). 
901     
902       ELSEIF(ISUB.EQ.58) THEN   
903 C...gamma + gamma -> f + fb.    
904     
905       ELSEIF(ISUB.EQ.59) THEN   
906 C...gamma + Z0 -> f + fb.   
907     
908       ELSEIF(ISUB.EQ.60) THEN   
909 C...gamma + W+/- -> f + fb'.    
910       ENDIF 
911     
912       ELSEIF(ISUB.LE.70) THEN   
913       IF(ISUB.EQ.61) THEN   
914 C...gamma + H0 -> f + fb.   
915     
916       ELSEIF(ISUB.EQ.62) THEN   
917 C...Z0 + Z0 -> f + fb.  
918     
919       ELSEIF(ISUB.EQ.63) THEN   
920 C...Z0 + W+/- -> f + fb'.   
921     
922       ELSEIF(ISUB.EQ.64) THEN   
923 C...Z0 + H0 -> f + fb.  
924     
925       ELSEIF(ISUB.EQ.65) THEN   
926 C...W+ + W- -> f + fb.  
927     
928       ELSEIF(ISUB.EQ.66) THEN   
929 C...W+/- + H0 -> f + fb'.   
930     
931       ELSEIF(ISUB.EQ.67) THEN   
932 C...H0 + H0 -> f + fb.  
933     
934       ELSEIF(ISUB.EQ.68) THEN   
935 C...g + g -> g + g. 
936         FACGG1=COMFAC*AS**2*9./4.*(SH2/TH2+2.*SH/TH+3.+2.*TH/SH+    
937      &  TH2/SH2)*FACA   
938         FACGG2=COMFAC*AS**2*9./4.*(UH2/SH2+2.*UH/SH+3.+2.*SH/UH+    
939      &  SH2/UH2)*FACA   
940         FACGG3=COMFAC*AS**2*9./4.*(TH2/UH2+2.*TH/UH+3+2.*UH/TH+UH2/TH2) 
941         IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 510 
942         NCHN=NCHN+1 
943         ISIG(NCHN,1)=21 
944         ISIG(NCHN,2)=21 
945         ISIG(NCHN,3)=1  
946         SIGH(NCHN)=0.5*FACGG1   
947         NCHN=NCHN+1 
948         ISIG(NCHN,1)=21 
949         ISIG(NCHN,2)=21 
950         ISIG(NCHN,3)=2  
951         SIGH(NCHN)=0.5*FACGG2   
952         NCHN=NCHN+1 
953         ISIG(NCHN,1)=21 
954         ISIG(NCHN,2)=21 
955         ISIG(NCHN,3)=3  
956         SIGH(NCHN)=0.5*FACGG3   
957   510   CONTINUE    
958     
959       ELSEIF(ISUB.EQ.69) THEN   
960 C...gamma + gamma -> W+ + W-.   
961     
962       ELSEIF(ISUB.EQ.70) THEN   
963 C...gamma + W+/- -> gamma + W+/-.   
964       ENDIF 
965     
966       ELSEIF(ISUB.LE.80) THEN   
967       IF(ISUB.EQ.71) THEN   
968 C...Z0 + Z0 -> Z0 + Z0. 
969         BE2=1.-4.*SQMZ/SH   
970         TH=-0.5*SH*BE2*(1.-CTH) 
971         UH=-0.5*SH*BE2*(1.+CTH) 
972         SHANG=1./(1.-XW)*SQMW/SQMZ*(1.+BE2)**2  
973         ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG    
974         ASHIM=-GMMH/((SH-SQMH)**2+GMMH**2)*SHANG    
975         THANG=1./(1.-XW)*SQMW/SQMZ*(BE2-CTH)**2 
976         ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG    
977         ATHIM=-GMMH/((TH-SQMH)**2+GMMH**2)*THANG    
978         UHANG=1./(1.-XW)*SQMW/SQMZ*(BE2+CTH)**2 
979         AUHRE=(UH-SQMH)/((UH-SQMH)**2+GMMH**2)*UHANG    
980         AUHIM=-GMMH/((UH-SQMH)**2+GMMH**2)*UHANG    
981         FACH=0.5*COMFAC*1./(4096.*PARU(1)**2*16.*(1.-XW)**2)*   
982      &  (AEM/XW)**4*(SH/SQMW)**2*((ASHRE+ATHRE+AUHRE)**2+   
983      &  (ASHIM+ATHIM+AUHIM)**2)*SQMZ/SQMW   
984         DO 530 I=MIN1,MAX1  
985         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 530   
986         EI=KCHG(IABS(I),1)/3.   
987         AI=SIGN(1.,EI)  
988         VI=AI-4.*EI*XW  
989         AVI=AI**2+VI**2 
990         DO 520 J=MIN2,MAX2  
991         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 520   
992         EJ=KCHG(IABS(J),1)/3.   
993         AJ=SIGN(1.,EJ)  
994         VJ=AJ-4.*EJ*XW  
995         AVJ=AJ**2+VJ**2 
996         NCHN=NCHN+1 
997         ISIG(NCHN,1)=I  
998         ISIG(NCHN,2)=J  
999         ISIG(NCHN,3)=1  
1000         SIGH(NCHN)=FACH*AVI*AVJ 
1001   520   CONTINUE    
1002   530   CONTINUE    
1003     
1004       ELSEIF(ISUB.EQ.72) THEN   
1005 C...Z0 + Z0 -> W+ + W-. 
1006         BE2=SQRT((1.-4.*SQMW/SH)*(1.-4.*SQMZ/SH))   
1007         CTH2=CTH**2 
1008         TH=-0.5*SH*(1.-2.*(SQMW+SQMZ)/SH-BE2*CTH)   
1009         UH=-0.5*SH*(1.-2.*(SQMW+SQMZ)/SH+BE2*CTH)   
1010         SHANG=4.*SQRT(SQMW/(SQMZ*(1.-XW)))*(1.-2.*SQMW/SH)* 
1011      &  (1.-2.*SQMZ/SH) 
1012         ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG    
1013         ASHIM=-GMMH/((SH-SQMH)**2+GMMH**2)*SHANG    
1014         ATWRE=(1.-XW)/SQMZ*SH/(TH-SQMW)*((CTH-BE2)**2*(3./2.+BE2/2.*CTH-    
1015      &  (SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4.*((SQMW+SQMZ)/SH*    
1016      &  (1.-3.*CTH2)+8.*SQMW*SQMZ/SH2*(2.*CTH2-1.)+ 
1017      &  4.*(SQMW**2+SQMZ**2)/SH2*CTH2+2.*(SQMW+SQMZ)/SH*BE2*CTH))   
1018         ATWIM=0.    
1019         AUWRE=(1.-XW)/SQMZ*SH/(UH-SQMW)*((CTH+BE2)**2*(3./2.-BE2/2.*CTH-    
1020      &  (SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4.*((SQMW+SQMZ)/SH*    
1021      &  (1.-3.*CTH2)+8.*SQMW*SQMZ/SH2*(2.*CTH2-1.)+ 
1022      &  4.*(SQMW**2+SQMZ**2)/SH2*CTH2-2.*(SQMW+SQMZ)/SH*BE2*CTH))   
1023         AUWIM=0.    
1024         A4RE=2.*(1.-XW)/SQMZ*(3.-CTH2-4.*(SQMW+SQMZ)/SH)    
1025         A4IM=0. 
1026         FACH=COMFAC*1./(4096.*PARU(1)**2*16.*(1.-XW)**2)*(AEM/XW)**4*   
1027      &  (SH/SQMW)**2*((ASHRE+ATWRE+AUWRE+A4RE)**2+  
1028      &  (ASHIM+ATWIM+AUWIM+A4IM)**2)*SQMZ/SQMW  
1029         DO 550 I=MIN1,MAX1  
1030         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 550   
1031         EI=KCHG(IABS(I),1)/3.   
1032         AI=SIGN(1.,EI)  
1033         VI=AI-4.*EI*XW  
1034         AVI=AI**2+VI**2 
1035         DO 540 J=MIN2,MAX2  
1036         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 540   
1037         EJ=KCHG(IABS(J),1)/3.   
1038         AJ=SIGN(1.,EJ)  
1039         VJ=AJ-4.*EJ*XW  
1040         AVJ=AJ**2+VJ**2 
1041         NCHN=NCHN+1 
1042         ISIG(NCHN,1)=I  
1043         ISIG(NCHN,2)=J  
1044         ISIG(NCHN,3)=1  
1045         SIGH(NCHN)=FACH*AVI*AVJ 
1046   540   CONTINUE    
1047   550   CONTINUE    
1048     
1049       ELSEIF(ISUB.EQ.73) THEN   
1050 C...Z0 + W+/- -> Z0 + W+/-. 
1051         BE2=1.-2.*(SQMZ+SQMW)/SH+((SQMZ-SQMW)/SH)**2    
1052         EP1=1.+(SQMZ-SQMW)/SH   
1053         EP2=1.-(SQMZ-SQMW)/SH   
1054         TH=-0.5*SH*BE2*(1.-CTH) 
1055         UH=(SQMZ-SQMW)**2/SH-0.5*SH*BE2*(1.+CTH)    
1056         THANG=SQRT(SQMW/(SQMZ*(1.-XW)))*(BE2-EP1*CTH)*(BE2-EP2*CTH) 
1057         ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG    
1058         ATHIM=-GMMH/((TH-SQMH)**2+GMMH**2)*THANG    
1059         ASWRE=(1.-XW)/SQMZ*SH/(SH-SQMW)*(-BE2*(EP1+EP2)**4*CTH+ 
1060      &  1./4.*(BE2+EP1*EP2)**2*((EP1-EP2)**2-4.*BE2*CTH)+   
1061      &  2.*BE2*(BE2+EP1*EP2)*(EP1+EP2)**2*CTH-  
1062      &  1./16.*SH/SQMW*(EP1**2-EP2**2)**2*(BE2+EP1*EP2)**2) 
1063         ASWIM=0.    
1064         AUWRE=(1.-XW)/SQMZ*SH/(UH-SQMW)*(-BE2*(EP2+EP1*CTH)*    
1065      &  (EP1+EP2*CTH)*(BE2+EP1*EP2)+BE2*(EP2+EP1*CTH)*  
1066      &  (BE2+EP1*EP2*CTH)*(2.*EP2-EP2*CTH+EP1)-BE2*(EP2+EP1*CTH)**2*    
1067      &  (BE2-EP2**2*CTH)-1./8.*(BE2+EP1*EP2*CTH)**2*((EP1+EP2)**2+  
1068      &  2.*BE2*(1.-CTH))+1./32.*SH/SQMW*(BE2+EP1*EP2*CTH)**2*   
1069      &  (EP1**2-EP2**2)**2-BE2*(EP1+EP2*CTH)*(EP2+EP1*CTH)* 
1070      &  (BE2+EP1*EP2)+BE2*(EP1+EP2*CTH)*(BE2+EP1*EP2*CTH)*  
1071      &  (2.*EP1-EP1*CTH+EP2)-BE2*(EP1+EP2*CTH)**2*(BE2-EP1**2*CTH)- 
1072      &  1./8.*(BE2+EP1*EP2*CTH)**2*((EP1+EP2)**2+2.*BE2*(1.-CTH))+  
1073      &  1./32.*SH/SQMW*(BE2+EP1*EP2*CTH)**2*(EP1**2-EP2**2)**2) 
1074         AUWIM=0.    
1075         A4RE=(1.-XW)/SQMZ*(EP1**2*EP2**2*(CTH**2-1.)-   
1076      &  2.*BE2*(EP1**2+EP2**2+EP1*EP2)*CTH-2.*BE2*EP1*EP2)  
1077         A4IM=0. 
1078         FACH=COMFAC*1./(4096.*PARU(1)**2*4.*(1.-XW))*(AEM/XW)**4*   
1079      &  (SH/SQMW)**2*((ATHRE+ASWRE+AUWRE+A4RE)**2+  
1080      &  (ATHIM+ASWIM+AUWIM+A4IM)**2)*SQRT(SQMZ/SQMW)    
1081         DO 570 I=MIN1,MAX1  
1082         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 570   
1083         EI=KCHG(IABS(I),1)/3.   
1084         AI=SIGN(1.,EI)  
1085         VI=AI-4.*EI*XW  
1086         AVI=AI**2+VI**2 
1087         DO 560 J=MIN2,MAX2  
1088         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 560   
1089         EJ=KCHG(IABS(J),1)/3.   
1090         AJ=SIGN(1.,EJ)  
1091         VJ=AI-4.*EJ*XW  
1092         AVJ=AJ**2+VJ**2 
1093         NCHN=NCHN+1 
1094         ISIG(NCHN,1)=I  
1095         ISIG(NCHN,2)=J  
1096         ISIG(NCHN,3)=1  
1097         SIGH(NCHN)=FACH*(AVI*VINT(180+J)+VINT(180+I)*AVJ)   
1098   560   CONTINUE    
1099   570   CONTINUE    
1100     
1101       ELSEIF(ISUB.EQ.75) THEN   
1102 C...W+ + W- -> gamma + gamma.   
1103     
1104       ELSEIF(ISUB.EQ.76) THEN   
1105 C...W+ + W- -> Z0 + Z0. 
1106         BE2=SQRT((1.-4.*SQMW/SH)*(1.-4.*SQMZ/SH))   
1107         CTH2=CTH**2 
1108         TH=-0.5*SH*(1.-2.*(SQMW+SQMZ)/SH-BE2*CTH)   
1109         UH=-0.5*SH*(1.-2.*(SQMW+SQMZ)/SH+BE2*CTH)   
1110         SHANG=4.*SQRT(SQMW/(SQMZ*(1.-XW)))*(1.-2.*SQMW/SH)* 
1111      &  (1.-2.*SQMZ/SH) 
1112         ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG    
1113         ASHIM=-GMMH/((SH-SQMH)**2+GMMH**2)*SHANG    
1114         ATWRE=(1.-XW)/SQMZ*SH/(TH-SQMW)*((CTH-BE2)**2*(3./2.+BE2/2.*CTH-    
1115      &  (SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4.*((SQMW+SQMZ)/SH*    
1116      &  (1.-3.*CTH2)+8.*SQMW*SQMZ/SH2*(2.*CTH2-1.)+ 
1117      &  4.*(SQMW**2+SQMZ**2)/SH2*CTH2+2.*(SQMW+SQMZ)/SH*BE2*CTH))   
1118         ATWIM=0.    
1119         AUWRE=(1.-XW)/SQMZ*SH/(UH-SQMW)*((CTH+BE2)**2*(3./2.-BE2/2.*CTH-    
1120      &  (SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4.*((SQMW+SQMZ)/SH*    
1121      &  (1.-3.*CTH2)+8.*SQMW*SQMZ/SH2*(2.*CTH2-1.)+ 
1122      &  4.*(SQMW**2+SQMZ**2)/SH2*CTH2-2.*(SQMW+SQMZ)/SH*BE2*CTH))   
1123         AUWIM=0.    
1124         A4RE=2.*(1.-XW)/SQMZ*(3.-CTH2-4.*(SQMW+SQMZ)/SH)    
1125         A4IM=0. 
1126         FACH=0.5*COMFAC*1./(4096.*PARU(1)**2)*(AEM/XW)**4*(SH/SQMW)**2* 
1127      &  ((ASHRE+ATWRE+AUWRE+A4RE)**2+(ASHIM+ATWIM+AUWIM+A4IM)**2)   
1128         DO 590 I=MIN1,MAX1  
1129         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 590   
1130         EI=SIGN(1.,FLOAT(I))*KCHG(IABS(I),1)    
1131         DO 580 J=MIN2,MAX2  
1132         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 580   
1133         EJ=SIGN(1.,FLOAT(J))*KCHG(IABS(J),1)    
1134         IF(EI*EJ.GT.0.) GOTO 580    
1135         NCHN=NCHN+1 
1136         ISIG(NCHN,1)=I  
1137         ISIG(NCHN,2)=J  
1138         ISIG(NCHN,3)=1  
1139         SIGH(NCHN)=FACH*VINT(180+I)*VINT(180+J) 
1140   580   CONTINUE    
1141   590   CONTINUE    
1142     
1143       ELSEIF(ISUB.EQ.77) THEN   
1144 C...W+/- + W+/- -> W+/- + W+/-. 
1145         BE2=1.-4.*SQMW/SH   
1146         BE4=BE2**2  
1147         CTH2=CTH**2 
1148         CTH3=CTH**3 
1149         TH=-0.5*SH*BE2*(1.-CTH) 
1150         UH=-0.5*SH*BE2*(1.+CTH) 
1151         SHANG=(1.+BE2)**2   
1152         ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG    
1153         ASHIM=-GMMH/((SH-SQMH)**2+GMMH**2)*SHANG    
1154         THANG=(BE2-CTH)**2  
1155         ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG    
1156         ATHIM=-GMMH/((TH-SQMH)**2+GMMH**2)*THANG    
1157         SGZANG=1./SQMW*BE2*(3.-BE2)**2*CTH  
1158         ASGRE=XW*SGZANG 
1159         ASGIM=0.    
1160         ASZRE=(1.-XW)*SH/(SH-SQMZ)*SGZANG   
1161         ASZIM=0.    
1162         TGZANG=1./SQMW*(BE2*(4.-2.*BE2+BE4)+BE2*(4.-10.*BE2+BE4)*CTH+   
1163      &  (2.-11.*BE2+10.*BE4)*CTH2+BE2*CTH3) 
1164         ATGRE=0.5*XW*SH/TH*TGZANG   
1165         ATGIM=0.    
1166         ATZRE=0.5*(1.-XW)*SH/(TH-SQMZ)*TGZANG   
1167         ATZIM=0.    
1168         A4RE=1./SQMW*(1.+2.*BE2-6.*BE2*CTH-CTH2)    
1169         A4IM=0. 
1170         FACH=COMFAC*1./(4096.*PARU(1)**2)*(AEM/XW)**4*(SH/SQMW)**2* 
1171      &  ((ASHRE+ATHRE+ASGRE+ASZRE+ATGRE+ATZRE+A4RE)**2+ 
1172      &  (ASHIM+ATHIM+ASGIM+ASZIM+ATGIM+ATZIM+A4IM)**2)  
1173         DO 610 I=MIN1,MAX1  
1174         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 610   
1175         EI=SIGN(1.,FLOAT(I))*KCHG(IABS(I),1)    
1176         DO 600 J=MIN2,MAX2  
1177         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 600   
1178         EJ=SIGN(1.,FLOAT(J))*KCHG(IABS(J),1)    
1179         IF(EI*EJ.GT.0.) GOTO 600    
1180         NCHN=NCHN+1 
1181         ISIG(NCHN,1)=I  
1182         ISIG(NCHN,2)=J  
1183         ISIG(NCHN,3)=1  
1184         SIGH(NCHN)=FACH*VINT(180+I)*VINT(180+J) 
1185   600   CONTINUE    
1186   610   CONTINUE    
1187     
1188       ELSEIF(ISUB.EQ.78) THEN   
1189 C...W+/- + H0 -> W+/- + H0. 
1190     
1191       ELSEIF(ISUB.EQ.79) THEN   
1192 C...H0 + H0 -> H0 + H0. 
1193     
1194       ENDIF 
1195     
1196 C...C: 2 -> 2, tree diagrams with masses.   
1197     
1198       ELSEIF(ISUB.LE.90) THEN   
1199       IF(ISUB.EQ.81) THEN   
1200 C...q + qb -> Q + QB.   
1201         FACQQB=COMFAC*AS**2*4./9.*(((TH-SQM3)**2+   
1202      &  (UH-SQM3)**2)/SH2+2.*SQM3/SH)   
1203         IF(MSTP(35).GE.1) THEN  
1204           IF(MSTP(35).EQ.1) THEN    
1205             ALSSG=PARP(35)  
1206           ELSE  
1207             MST115=MSTU(115)    
1208             MSTU(115)=MSTP(36)  
1209             Q2BN=SQRT(SQM3*((SQRT(SH)-2.*SQRT(SQM3))**2+PARP(36)**2))   
1210             ALSSG=ULALPS_HIJING(Q2BN)  
1211             MSTU(115)=MST115    
1212           ENDIF 
1213           XREPU=PARU(1)*ALSSG/(6.*SQRT(MAX(1E-20,1.-4.*SQM3/SH)))   
1214           FREPU=XREPU/(EXP(MIN(100.,XREPU))-1.) 
1215           PARI(81)=FREPU    
1216           FACQQB=FACQQB*FREPU   
1217         ENDIF   
1218         DO 620 I=MINA,MAXA  
1219         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 620    
1220         NCHN=NCHN+1 
1221         ISIG(NCHN,1)=I  
1222         ISIG(NCHN,2)=-I 
1223         ISIG(NCHN,3)=1  
1224         SIGH(NCHN)=FACQQB   
1225   620   CONTINUE    
1226     
1227       ELSEIF(ISUB.EQ.82) THEN   
1228 C...g + g -> Q + QB.    
1229         FACQQ1=COMFAC*FACA*AS**2*1./6.*((UH-SQM3)/(TH-SQM3)-    
1230      &  2.*(UH-SQM3)**2/SH2+4.*SQM3/SH*(TH*UH-SQM3**2)/(TH-SQM3)**2)    
1231         FACQQ2=COMFAC*FACA*AS**2*1./6.*((TH-SQM3)/(UH-SQM3)-    
1232      &  2.*(TH-SQM3)**2/SH2+4.*SQM3/SH*(TH*UH-SQM3**2)/(UH-SQM3)**2)    
1233         IF(MSTP(35).GE.1) THEN  
1234           IF(MSTP(35).EQ.1) THEN    
1235             ALSSG=PARP(35)  
1236           ELSE  
1237             MST115=MSTU(115)    
1238             MSTU(115)=MSTP(36)  
1239             Q2BN=SQRT(SQM3*((SQRT(SH)-2.*SQRT(SQM3))**2+PARP(36)**2))   
1240             ALSSG=ULALPS_HIJING(Q2BN)  
1241             MSTU(115)=MST115    
1242           ENDIF 
1243           XATTR=4.*PARU(1)*ALSSG/(3.*SQRT(MAX(1E-20,1.-4.*SQM3/SH)))    
1244           FATTR=XATTR/(1.-EXP(-MIN(100.,XATTR)))    
1245           XREPU=PARU(1)*ALSSG/(6.*SQRT(MAX(1E-20,1.-4.*SQM3/SH)))   
1246           FREPU=XREPU/(EXP(MIN(100.,XREPU))-1.) 
1247           FATRE=(2.*FATTR+5.*FREPU)/7.  
1248           PARI(81)=FATRE    
1249           FACQQ1=FACQQ1*FATRE   
1250           FACQQ2=FACQQ2*FATRE   
1251         ENDIF   
1252         IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 630 
1253         NCHN=NCHN+1 
1254         ISIG(NCHN,1)=21 
1255         ISIG(NCHN,2)=21 
1256         ISIG(NCHN,3)=1  
1257         SIGH(NCHN)=FACQQ1   
1258         NCHN=NCHN+1 
1259         ISIG(NCHN,1)=21 
1260         ISIG(NCHN,2)=21 
1261         ISIG(NCHN,3)=2  
1262         SIGH(NCHN)=FACQQ2   
1263   630   CONTINUE    
1264     
1265       ENDIF 
1266     
1267 C...D: Mimimum bias processes.  
1268     
1269       ELSEIF(ISUB.LE.100) THEN  
1270       IF(ISUB.EQ.91) THEN   
1271 C...Elastic scattering. 
1272         SIGS=XSEC(ISUB,1)   
1273     
1274       ELSEIF(ISUB.EQ.92) THEN   
1275 C...Single diffractive scattering.  
1276         SIGS=XSEC(ISUB,1)   
1277     
1278       ELSEIF(ISUB.EQ.93) THEN   
1279 C...Double diffractive scattering.  
1280         SIGS=XSEC(ISUB,1)   
1281     
1282       ELSEIF(ISUB.EQ.94) THEN   
1283 C...Central diffractive scattering. 
1284         SIGS=XSEC(ISUB,1)   
1285     
1286       ELSEIF(ISUB.EQ.95) THEN   
1287 C...Low-pT scattering.  
1288         SIGS=XSEC(ISUB,1)   
1289     
1290       ELSEIF(ISUB.EQ.96) THEN   
1291 C...Multiple interactions: sum of QCD processes.    
1292         CALL PYWIDT_HIJING(21,SQRT(SH),WDTP,WDTE)  
1293     
1294 C...q + q' -> q + q'.   
1295         FACQQ1=COMFAC*AS**2*4./9.*(SH2+UH2)/TH2 
1296         FACQQB=COMFAC*AS**2*4./9.*((SH2+UH2)/TH2*FACA-  
1297      &  MSTP(34)*2./3.*UH2/(SH*TH)) 
1298         FACQQ2=COMFAC*AS**2*4./9.*((SH2+TH2)/UH2-   
1299      &  MSTP(34)*2./3.*SH2/(TH*UH)) 
1300         DO 650 I=-3,3   
1301         IF(I.EQ.0) GOTO 650 
1302         DO 640 J=-3,3   
1303         IF(J.EQ.0) GOTO 640 
1304         NCHN=NCHN+1 
1305         ISIG(NCHN,1)=I  
1306         ISIG(NCHN,2)=J  
1307         ISIG(NCHN,3)=111    
1308         SIGH(NCHN)=FACQQ1   
1309         IF(I.EQ.-J) SIGH(NCHN)=FACQQB   
1310         IF(I.EQ.J) THEN 
1311           SIGH(NCHN)=0.5*SIGH(NCHN) 
1312           NCHN=NCHN+1   
1313           ISIG(NCHN,1)=I    
1314           ISIG(NCHN,2)=J    
1315           ISIG(NCHN,3)=112  
1316           SIGH(NCHN)=0.5*FACQQ2 
1317         ENDIF   
1318   640   CONTINUE    
1319   650   CONTINUE    
1320     
1321 C...q + qb -> q' + qb' or g + g.    
1322         FACQQB=COMFAC*AS**2*4./9.*(TH2+UH2)/SH2*(WDTE(0,1)+WDTE(0,2)+   
1323      &  WDTE(0,3)+WDTE(0,4))    
1324         FACGG1=COMFAC*AS**2*32./27.*(UH/TH-(2.+MSTP(34)*1./4.)*UH2/SH2) 
1325         FACGG2=COMFAC*AS**2*32./27.*(TH/UH-(2.+MSTP(34)*1./4.)*TH2/SH2) 
1326         DO 660 I=-3,3   
1327         IF(I.EQ.0) GOTO 660 
1328         NCHN=NCHN+1 
1329         ISIG(NCHN,1)=I  
1330         ISIG(NCHN,2)=-I 
1331         ISIG(NCHN,3)=121    
1332         SIGH(NCHN)=FACQQB   
1333         NCHN=NCHN+1 
1334         ISIG(NCHN,1)=I  
1335         ISIG(NCHN,2)=-I 
1336         ISIG(NCHN,3)=131    
1337         SIGH(NCHN)=0.5*FACGG1   
1338         NCHN=NCHN+1 
1339         ISIG(NCHN,1)=I  
1340         ISIG(NCHN,2)=-I 
1341         ISIG(NCHN,3)=132    
1342         SIGH(NCHN)=0.5*FACGG2   
1343   660   CONTINUE    
1344     
1345 C...q + g -> q + g. 
1346         FACQG1=COMFAC*AS**2*4./9.*((2.+MSTP(34)*1./4.)*UH2/TH2-UH/SH)*  
1347      &  FACA    
1348         FACQG2=COMFAC*AS**2*4./9.*((2.+MSTP(34)*1./4.)*SH2/TH2-SH/UH)   
1349         DO 680 I=-3,3   
1350         IF(I.EQ.0) GOTO 680 
1351         DO 670 ISDE=1,2 
1352         NCHN=NCHN+1 
1353         ISIG(NCHN,ISDE)=I   
1354         ISIG(NCHN,3-ISDE)=21    
1355         ISIG(NCHN,3)=281    
1356         SIGH(NCHN)=FACQG1   
1357         NCHN=NCHN+1 
1358         ISIG(NCHN,ISDE)=I   
1359         ISIG(NCHN,3-ISDE)=21    
1360         ISIG(NCHN,3)=282    
1361         SIGH(NCHN)=FACQG2   
1362   670   CONTINUE    
1363   680   CONTINUE    
1364     
1365 C...g + g -> q + qb or g + g.   
1366         FACQQ1=COMFAC*AS**2*1./6.*(UH/TH-(2.+MSTP(34)*1./4.)*UH2/SH2)*  
1367      &  (WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))*FACA  
1368         FACQQ2=COMFAC*AS**2*1./6.*(TH/UH-(2.+MSTP(34)*1./4.)*TH2/SH2)*  
1369      &  (WDTE(0,1)+WDTE(0,2)+WDTE(0,3)+WDTE(0,4))*FACA  
1370         FACGG1=COMFAC*AS**2*9./4.*(SH2/TH2+2.*SH/TH+3.+2.*TH/SH+    
1371      &  TH2/SH2)*FACA   
1372         FACGG2=COMFAC*AS**2*9./4.*(UH2/SH2+2.*UH/SH+3.+2.*SH/UH+    
1373      &  SH2/UH2)*FACA   
1374         FACGG3=COMFAC*AS**2*9./4.*(TH2/UH2+2.*TH/UH+3+2.*UH/TH+UH2/TH2) 
1375         NCHN=NCHN+1 
1376         ISIG(NCHN,1)=21 
1377         ISIG(NCHN,2)=21 
1378         ISIG(NCHN,3)=531    
1379         SIGH(NCHN)=FACQQ1   
1380         NCHN=NCHN+1 
1381         ISIG(NCHN,1)=21 
1382         ISIG(NCHN,2)=21 
1383         ISIG(NCHN,3)=532    
1384         SIGH(NCHN)=FACQQ2   
1385         NCHN=NCHN+1 
1386         ISIG(NCHN,1)=21 
1387         ISIG(NCHN,2)=21 
1388         ISIG(NCHN,3)=681    
1389         SIGH(NCHN)=0.5*FACGG1   
1390         NCHN=NCHN+1 
1391         ISIG(NCHN,1)=21 
1392         ISIG(NCHN,2)=21 
1393         ISIG(NCHN,3)=682    
1394         SIGH(NCHN)=0.5*FACGG2   
1395         NCHN=NCHN+1 
1396         ISIG(NCHN,1)=21 
1397         ISIG(NCHN,2)=21 
1398         ISIG(NCHN,3)=683    
1399         SIGH(NCHN)=0.5*FACGG3   
1400       ENDIF 
1401     
1402 C...E: 2 -> 1, loop diagrams.   
1403     
1404       ELSEIF(ISUB.LE.110) THEN  
1405       IF(ISUB.EQ.101) THEN  
1406 C...g + g -> gamma*/Z0. 
1407     
1408       ELSEIF(ISUB.EQ.102) THEN  
1409 C...g + g -> H0.    
1410         CALL PYWIDT_HIJING(25,SQRT(SH),WDTP,WDTE)  
1411         ETARE=0.    
1412         ETAIM=0.    
1413         DO 690 I=1,2*MSTP(1)    
1414         EPS=4.*PMAS(I,1)**2/SH  
1415         IF(EPS.LE.1.) THEN  
1416           IF(EPS.GT.1.E-4) THEN 
1417             ROOT=SQRT(1.-EPS)   
1418             RLN=LOG((1.+ROOT)/(1.-ROOT))    
1419           ELSE  
1420             RLN=LOG(4./EPS-2.)  
1421           ENDIF 
1422           PHIRE=0.25*(RLN**2-PARU(1)**2)    
1423           PHIIM=0.5*PARU(1)*RLN 
1424         ELSE    
1425           PHIRE=-(ASIN(1./SQRT(EPS)))**2    
1426           PHIIM=0.  
1427         ENDIF   
1428         ETARE=ETARE+0.5*EPS*(1.+(EPS-1.)*PHIRE) 
1429         ETAIM=ETAIM+0.5*EPS*(EPS-1.)*PHIIM  
1430   690   CONTINUE    
1431         ETA2=ETARE**2+ETAIM**2  
1432         FACH=COMFAC*FACA*(AS/PARU(1)*AEM/XW)**2*1./512.*    
1433      &  (SH/SQMW)**2*ETA2*SH2/((SH-SQMH)**2+GMMH**2)*   
1434      &  (WDTE(0,1)+WDTE(0,2)+WDTE(0,4)) 
1435         IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 700 
1436         NCHN=NCHN+1 
1437         ISIG(NCHN,1)=21 
1438         ISIG(NCHN,2)=21 
1439         ISIG(NCHN,3)=1  
1440         SIGH(NCHN)=FACH 
1441   700   CONTINUE    
1442     
1443       ENDIF 
1444     
1445 C...F: 2 -> 2, box diagrams.    
1446     
1447       ELSEIF(ISUB.LE.120) THEN  
1448       IF(ISUB.EQ.111) THEN  
1449 C...f + fb -> g + H0 (q + qb -> g + H0 only).   
1450         A5STUR=0.   
1451         A5STUI=0.   
1452         DO 710 I=1,2*MSTP(1)    
1453         SQMQ=PMAS(I,1)**2   
1454         EPSS=4.*SQMQ/SH 
1455         EPSH=4.*SQMQ/SQMH   
1456         A5STUR=A5STUR+SQMQ/SQMH*(4.+4.*SH/(TH+UH)*(PYW1AU_HIJING(EPSS,1)
1457      $       -PYW1AU_HIJING(EPSH,1))+(1.-4.*SQMQ/(TH+UH))
1458      $       *(PYW2AU_HIJING(EPSS,1)-PYW2AU_HIJING(EPSH,1)))    
1459         A5STUI=A5STUI+SQMQ/SQMH*(4.*SH/(TH+UH)*(PYW1AU_HIJING(EPSS,2)- 
1460      &       PYW1AU_HIJING(EPSH,2))+(1.-4.*SQMQ/(TH+UH))
1461      $       *(PYW2AU_HIJING(EPSS,2)-PYW2AU_HIJING(EPSH,2)))    
1462   710   CONTINUE    
1463         FACGH=COMFAC*FACA/(144.*PARU(1)**2)*AEM/XW*AS**3*SQMH/SQMW* 
1464      &  SQMH/SH*(UH**2+TH**2)/(UH+TH)**2*(A5STUR**2+A5STUI**2)  
1465         FACGH=FACGH*WIDS(25,2)  
1466         DO 720 I=MINA,MAXA  
1467         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 720    
1468         NCHN=NCHN+1 
1469         ISIG(NCHN,1)=I  
1470         ISIG(NCHN,2)=-I 
1471         ISIG(NCHN,3)=1  
1472         SIGH(NCHN)=FACGH    
1473   720   CONTINUE    
1474     
1475       ELSEIF(ISUB.EQ.112) THEN  
1476 C...f + g -> f + H0 (q + g -> q + H0 only). 
1477         A5TSUR=0.   
1478         A5TSUI=0.   
1479         DO 730 I=1,2*MSTP(1)    
1480         SQMQ=PMAS(I,1)**2   
1481         EPST=4.*SQMQ/TH 
1482         EPSH=4.*SQMQ/SQMH   
1483         A5TSUR=A5TSUR+SQMQ/SQMH*(4.+4.*TH/(SH+UH)*(PYW1AU_HIJING(EPST,1)
1484      $       -PYW1AU_HIJING(EPSH,1))+(1.-4.*SQMQ/(SH+UH))
1485      $       *(PYW2AU_HIJING(EPST,1)-PYW2AU_HIJING(EPSH,1)))    
1486         A5TSUI=A5TSUI+SQMQ/SQMH*(4.*TH/(SH+UH)*(PYW1AU_HIJING(EPST,2)- 
1487      &       PYW1AU_HIJING(EPSH,2))+(1.-4.*SQMQ/(SH+UH))
1488      $       *(PYW2AU_HIJING(EPST,2)-PYW2AU_HIJING(EPSH,2)))    
1489   730   CONTINUE    
1490         FACQH=COMFAC*FACA/(384.*PARU(1)**2)*AEM/XW*AS**3*SQMH/SQMW* 
1491      &  SQMH/(-TH)*(UH**2+SH**2)/(UH+SH)**2*(A5TSUR**2+A5TSUI**2)   
1492         FACQH=FACQH*WIDS(25,2)  
1493         DO 750 I=MINA,MAXA  
1494         IF(I.EQ.0) GOTO 750 
1495         DO 740 ISDE=1,2 
1496         IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 740    
1497         IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 740    
1498         NCHN=NCHN+1 
1499         ISIG(NCHN,ISDE)=I   
1500         ISIG(NCHN,3-ISDE)=21    
1501         ISIG(NCHN,3)=1  
1502         SIGH(NCHN)=FACQH    
1503   740   CONTINUE    
1504   750   CONTINUE    
1505     
1506       ELSEIF(ISUB.EQ.113) THEN  
1507 C...g + g -> g + H0.    
1508         A2STUR=0.   
1509         A2STUI=0.   
1510         A2USTR=0.   
1511         A2USTI=0.   
1512         A2TUSR=0.   
1513         A2TUSI=0.   
1514         A4STUR=0.   
1515         A4STUI=0.   
1516         DO 760 I=6,2*MSTP(1)    
1517 C'''Only t-quarks yet included  
1518         SQMQ=PMAS(I,1)**2   
1519         EPSS=4.*SQMQ/SH 
1520         EPST=4.*SQMQ/TH 
1521         EPSU=4.*SQMQ/UH 
1522         EPSH=4.*SQMQ/SQMH   
1523         IF(EPSH.LT.1.E-6) GOTO 760  
1524         BESTU=0.5*(1.+SQRT(1.+EPSS*TH/UH))  
1525         BEUST=0.5*(1.+SQRT(1.+EPSU*SH/TH))  
1526         BETUS=0.5*(1.+SQRT(1.+EPST*UH/SH))  
1527         BEUTS=BESTU 
1528         BETSU=BEUST 
1529         BESUT=BETUS 
1530         W3STUR=PYI3AU_HIJING(BESTU,EPSH,1)-PYI3AU_HIJING(BESTU,EPSS,1)-   
1531      &  PYI3AU_HIJING(BESTU,EPSU,1)    
1532         W3STUI=PYI3AU_HIJING(BESTU,EPSH,2)-PYI3AU_HIJING(BESTU,EPSS,2)-   
1533      &  PYI3AU_HIJING(BESTU,EPSU,2)    
1534         W3SUTR=PYI3AU_HIJING(BESUT,EPSH,1)-PYI3AU_HIJING(BESUT,EPSS,1)-   
1535      &  PYI3AU_HIJING(BESUT,EPST,1)    
1536         W3SUTI=PYI3AU_HIJING(BESUT,EPSH,2)-PYI3AU_HIJING(BESUT,EPSS,2)-   
1537      &  PYI3AU_HIJING(BESUT,EPST,2)    
1538         W3TSUR=PYI3AU_HIJING(BETSU,EPSH,1)-PYI3AU_HIJING(BETSU,EPST,1)-   
1539      &  PYI3AU_HIJING(BETSU,EPSU,1)    
1540         W3TSUI=PYI3AU_HIJING(BETSU,EPSH,2)-PYI3AU_HIJING(BETSU,EPST,2)-   
1541      &  PYI3AU_HIJING(BETSU,EPSU,2)    
1542         W3TUSR=PYI3AU_HIJING(BETUS,EPSH,1)-PYI3AU_HIJING(BETUS,EPST,1)-   
1543      &  PYI3AU_HIJING(BETUS,EPSS,1)    
1544         W3TUSI=PYI3AU_HIJING(BETUS,EPSH,2)-PYI3AU_HIJING(BETUS,EPST,2)-   
1545      &  PYI3AU_HIJING(BETUS,EPSS,2)    
1546         W3USTR=PYI3AU_HIJING(BEUST,EPSH,1)-PYI3AU_HIJING(BEUST,EPSU,1)-   
1547      &  PYI3AU_HIJING(BEUST,EPST,1)    
1548         W3USTI=PYI3AU_HIJING(BEUST,EPSH,2)-PYI3AU_HIJING(BEUST,EPSU,2)-   
1549      &  PYI3AU_HIJING(BEUST,EPST,2)    
1550         W3UTSR=PYI3AU_HIJING(BEUTS,EPSH,1)-PYI3AU_HIJING(BEUTS,EPSU,1)-   
1551      &  PYI3AU_HIJING(BEUTS,EPSS,1)    
1552         W3UTSI=PYI3AU_HIJING(BEUTS,EPSH,2)-PYI3AU_HIJING(BEUTS,EPSU,2)-   
1553      &  PYI3AU_HIJING(BEUTS,EPSS,2)    
1554         B2STUR=SQMQ/SQMH**2*(SH*(UH-SH)/(SH+UH)+2.*TH*UH*(UH+2.*SH)/    
1555      &       (SH+UH)**2*(PYW1AU_HIJING(EPST,1)-PYW1AU_HIJING(EPSH,1))
1556      $       +(SQMQ-SH/4.)*(0.5*PYW2AU_HIJING(EPSS,1)+0.5
1557      $       *PYW2AU_HIJING(EPSH,1)-PYW2AU_HIJING(EPST,1)+W3STUR)+SH**2
1558      $       *(2.*SQMQ/(SH+UH)**2-0.5/(SH+UH))*(PYW2AU_HIJING(EPST,1)
1559      $       -PYW2AU_HIJING(EPSH,1))+0.5*TH*UH/SH*(PYW2AU_HIJING(EPSH,1)
1560      $       -2.*PYW2AU_HIJING(EPST,1))+0.125*(SH-12.*SQMQ-4.*TH*UH/SH)
1561      $       *W3TSUR) 
1562         B2STUI=SQMQ/SQMH**2*(2.*TH*UH*(UH+2.*SH)/(SH+UH)**2*    
1563      &  (PYW1AU_HIJING(EPST,2)-PYW1AU_HIJING(EPSH,2))+(SQMQ-SH/4.)*   
1564      &       (0.5*PYW2AU_HIJING(EPSS,2)+0.5*PYW2AU_HIJING(EPSH,2)
1565      $       -PYW2AU_HIJING(EPST,2)+W3STUI)+SH**2*(2.*SQMQ/(SH+UH)**2-0
1566      $       .5/(SH+UH))*(PYW2AU_HIJING(EPST,2)-PYW2AU_HIJING(EPSH,2))+0
1567      $       .5*TH*UH/SH*(PYW2AU_HIJING(EPSH,2)-2.*PYW2AU_HIJING(EPST,2)
1568      $       )+0.125*(SH-12.*SQMQ-4.*TH*UH/SH)*W3TSUI) 
1569         B2SUTR=SQMQ/SQMH**2*(SH*(TH-SH)/(SH+TH)+2.*UH*TH*(TH+2.*SH)/    
1570      &       (SH+TH)**2*(PYW1AU_HIJING(EPSU,1)-PYW1AU_HIJING(EPSH,1))
1571      $       +(SQMQ-SH/4.)*(0.5*PYW2AU_HIJING(EPSS,1)+0.5
1572      $       *PYW2AU_HIJING(EPSH,1)-PYW2AU_HIJING(EPSU,1)+W3SUTR)+SH**2
1573      $       *(2.*SQMQ/(SH+TH)**2-0.5/(SH+TH))*(PYW2AU_HIJING(EPSU,1)
1574      $       -PYW2AU_HIJING(EPSH,1))+0.5*UH*TH/SH*(PYW2AU_HIJING(EPSH,1)
1575      $       -2.*PYW2AU_HIJING(EPSU,1))+0.125*(SH-12.*SQMQ-4.*UH*TH/SH)
1576      $       *W3USTR) 
1577         B2SUTI=SQMQ/SQMH**2*(2.*UH*TH*(TH+2.*SH)/(SH+TH)**2*    
1578      &  (PYW1AU_HIJING(EPSU,2)-PYW1AU_HIJING(EPSH,2))+(SQMQ-SH/4.)*   
1579      &       (0.5*PYW2AU_HIJING(EPSS,2)+0.5*PYW2AU_HIJING(EPSH,2)
1580      $       -PYW2AU_HIJING(EPSU,2)+W3SUTI)+SH**2*(2.*SQMQ/(SH+TH)**2-0
1581      $       .5/(SH+TH))*(PYW2AU_HIJING(EPSU,2)-PYW2AU_HIJING(EPSH,2))+0
1582      $       .5*UH*TH/SH*(PYW2AU_HIJING(EPSH,2)-2.*PYW2AU_HIJING(EPSU,2)
1583      $       )+0.125*(SH-12.*SQMQ-4.*UH*TH/SH)*W3USTI) 
1584         B2TSUR=SQMQ/SQMH**2*(TH*(UH-TH)/(TH+UH)+2.*SH*UH*(UH+2.*TH)/    
1585      &       (TH+UH)**2*(PYW1AU_HIJING(EPSS,1)-PYW1AU_HIJING(EPSH,1))
1586      $       +(SQMQ-TH/4.)*(0.5*PYW2AU_HIJING(EPST,1)+0.5
1587      $       *PYW2AU_HIJING(EPSH,1)-PYW2AU_HIJING(EPSS,1)+W3TSUR)+TH**2
1588      $       *(2.*SQMQ/(TH+UH)**2-0.5/(TH+UH))*(PYW2AU_HIJING(EPSS,1)
1589      $       -PYW2AU_HIJING(EPSH,1))+0.5*SH*UH/TH*(PYW2AU_HIJING(EPSH,1)
1590      $       -2.*PYW2AU_HIJING(EPSS,1))+0.125*(TH-12.*SQMQ-4.*SH*UH/TH)
1591      $       *W3STUR) 
1592         B2TSUI=SQMQ/SQMH**2*(2.*SH*UH*(UH+2.*TH)/(TH+UH)**2*    
1593      &  (PYW1AU_HIJING(EPSS,2)-PYW1AU_HIJING(EPSH,2))+(SQMQ-TH/4.)*   
1594      &       (0.5*PYW2AU_HIJING(EPST,2)+0.5*PYW2AU_HIJING(EPSH,2)
1595      $       -PYW2AU_HIJING(EPSS,2)+W3TSUI)+TH**2*(2.*SQMQ/(TH+UH)**2-0
1596      $       .5/(TH+UH))*(PYW2AU_HIJING(EPSS,2)-PYW2AU_HIJING(EPSH,2))+0
1597      $       .5*SH*UH/TH*(PYW2AU_HIJING(EPSH,2)-2.*PYW2AU_HIJING(EPSS,2)
1598      $       )+0.125*(TH-12.*SQMQ-4.*SH*UH/TH)*W3STUI) 
1599         B2TUSR=SQMQ/SQMH**2*(TH*(SH-TH)/(TH+SH)+2.*UH*SH*(SH+2.*TH)/    
1600      &       (TH+SH)**2*(PYW1AU_HIJING(EPSU,1)-PYW1AU_HIJING(EPSH,1))
1601      $       +(SQMQ-TH/4.)*(0.5*PYW2AU_HIJING(EPST,1)+0.5
1602      $       *PYW2AU_HIJING(EPSH,1)-PYW2AU_HIJING(EPSU,1)+W3TUSR)+TH**2
1603      $       *(2.*SQMQ/(TH+SH)**2-0.5/(TH+SH))*(PYW2AU_HIJING(EPSU,1)
1604      $       -PYW2AU_HIJING(EPSH,1))+0.5*UH*SH/TH*(PYW2AU_HIJING(EPSH,1)
1605      $       -2.*PYW2AU_HIJING(EPSU,1))+0.125*(TH-12.*SQMQ-4.*UH*SH/TH)
1606      $       *W3UTSR) 
1607         B2TUSI=SQMQ/SQMH**2*(2.*UH*SH*(SH+2.*TH)/(TH+SH)**2*    
1608      &  (PYW1AU_HIJING(EPSU,2)-PYW1AU_HIJING(EPSH,2))+(SQMQ-TH/4.)*   
1609      &       (0.5*PYW2AU_HIJING(EPST,2)+0.5*PYW2AU_HIJING(EPSH,2)
1610      $       -PYW2AU_HIJING(EPSU,2)+W3TUSI)+TH**2*(2.*SQMQ/(TH+SH)**2-0
1611      $       .5/(TH+SH))*(PYW2AU_HIJING(EPSU,2)-PYW2AU_HIJING(EPSH,2))+0
1612      $       .5*UH*SH/TH*(PYW2AU_HIJING(EPSH,2)-2.*PYW2AU_HIJING(EPSU,2)
1613      $       )+0.125*(TH-12.*SQMQ-4.*UH*SH/TH)*W3UTSI) 
1614         B2USTR=SQMQ/SQMH**2*(UH*(TH-UH)/(UH+TH)+2.*SH*TH*(TH+2.*UH)/    
1615      &       (UH+TH)**2*(PYW1AU_HIJING(EPSS,1)-PYW1AU_HIJING(EPSH,1))
1616      $       +(SQMQ-UH/4.)*(0.5*PYW2AU_HIJING(EPSU,1)+0.5
1617      $       *PYW2AU_HIJING(EPSH,1)-PYW2AU_HIJING(EPSS,1)+W3USTR)+UH**2
1618      $       *(2.*SQMQ/(UH+TH)**2-0.5/(UH+TH))*(PYW2AU_HIJING(EPSS,1)
1619      $       -PYW2AU_HIJING(EPSH,1))+0.5*SH*TH/UH*(PYW2AU_HIJING(EPSH,1)
1620      $       -2.*PYW2AU_HIJING(EPSS,1))+0.125*(UH-12.*SQMQ-4.*SH*TH/UH)
1621      $       *W3SUTR) 
1622         B2USTI=SQMQ/SQMH**2*(2.*SH*TH*(TH+2.*UH)/(UH+TH)**2*    
1623      &  (PYW1AU_HIJING(EPSS,2)-PYW1AU_HIJING(EPSH,2))+(SQMQ-UH/4.)*   
1624      &       (0.5*PYW2AU_HIJING(EPSU,2)+0.5*PYW2AU_HIJING(EPSH,2)
1625      $       -PYW2AU_HIJING(EPSS,2)+W3USTI)+UH**2*(2.*SQMQ/(UH+TH)**2-0
1626      $       .5/(UH+TH))*(PYW2AU_HIJING(EPSS,2)-PYW2AU_HIJING(EPSH,2))+0
1627      $       .5*SH*TH/UH*(PYW2AU_HIJING(EPSH,2)-2.*PYW2AU_HIJING(EPSS,2)
1628      $       )+0.125*(UH-12.*SQMQ-4.*SH*TH/UH)*W3SUTI) 
1629         B2UTSR=SQMQ/SQMH**2*(UH*(SH-UH)/(UH+SH)+2.*TH*SH*(SH+2.*UH)/    
1630      &       (UH+SH)**2*(PYW1AU_HIJING(EPST,1)-PYW1AU_HIJING(EPSH,1))
1631      $       +(SQMQ-UH/4.)*(0.5*PYW2AU_HIJING(EPSU,1)+0.5
1632      $       *PYW2AU_HIJING(EPSH,1)-PYW2AU_HIJING(EPST,1)+W3UTSR)+UH**2
1633      $       *(2.*SQMQ/(UH+SH)**2-0.5/(UH+SH))*(PYW2AU_HIJING(EPST,1)
1634      $       -PYW2AU_HIJING(EPSH,1))+0.5*TH*SH/UH*(PYW2AU_HIJING(EPSH,1)
1635      $       -2.*PYW2AU_HIJING(EPST,1))+0.125*(UH-12.*SQMQ-4.*TH*SH/UH)
1636      $       *W3TUSR) 
1637         B2UTSI=SQMQ/SQMH**2*(2.*TH*SH*(SH+2.*UH)/(UH+SH)**2*    
1638      &  (PYW1AU_HIJING(EPST,2)-PYW1AU_HIJING(EPSH,2))+(SQMQ-UH/4.)*   
1639      &       (0.5*PYW2AU_HIJING(EPSU,2)+0.5*PYW2AU_HIJING(EPSH,2)
1640      $       -PYW2AU_HIJING(EPST,2)+W3UTSI)+UH**2*(2.*SQMQ/(UH+SH)**2-0
1641      $       .5/(UH+SH))*(PYW2AU_HIJING(EPST,2)-PYW2AU_HIJING(EPSH,2))+0
1642      $       .5*TH*SH/UH*(PYW2AU_HIJING(EPSH,2)-2.*PYW2AU_HIJING(EPST,2)
1643      $       )+0.125*(UH-12.*SQMQ-4.*TH*SH/UH)*W3TUSI) 
1644         B4STUR=SQMQ/SQMH*(-2./3.+(SQMQ/SQMH-1./4.)*(PYW2AU_HIJING(EPSS,1
1645      $       )-PYW2AU_HIJING(EPSH,1)+W3STUR)) 
1646         B4STUI=SQMQ/SQMH*(SQMQ/SQMH-1./4.)*(PYW2AU_HIJING(EPSS,2)- 
1647      &  PYW2AU_HIJING(EPSH,2)+W3STUI)  
1648         B4TUSR=SQMQ/SQMH*(-2./3.+(SQMQ/SQMH-1./4.)*(PYW2AU_HIJING(EPST,1
1649      $       )-PYW2AU_HIJING(EPSH,1)+W3TUSR)) 
1650         B4TUSI=SQMQ/SQMH*(SQMQ/SQMH-1./4.)*(PYW2AU_HIJING(EPST,2)- 
1651      &  PYW2AU_HIJING(EPSH,2)+W3TUSI)  
1652         B4USTR=SQMQ/SQMH*(-2./3.+(SQMQ/SQMH-1./4.)*(PYW2AU_HIJING(EPSU,1
1653      $       )-PYW2AU_HIJING(EPSH,1)+W3USTR)) 
1654         B4USTI=SQMQ/SQMH*(SQMQ/SQMH-1./4.)*(PYW2AU_HIJING(EPSU,2)- 
1655      &  PYW2AU_HIJING(EPSH,2)+W3USTI)  
1656         A2STUR=A2STUR+B2STUR+B2SUTR 
1657         A2STUI=A2STUI+B2STUI+B2SUTI 
1658         A2USTR=A2USTR+B2USTR+B2UTSR 
1659         A2USTI=A2USTI+B2USTI+B2UTSI 
1660         A2TUSR=A2TUSR+B2TUSR+B2TSUR 
1661         A2TUSI=A2TUSI+B2TUSI+B2TSUI 
1662         A4STUR=A4STUR+B4STUR+B4USTR+B4TUSR  
1663         A4STUI=A4STUI+B4STUI+B4USTI+B4TUSI  
1664   760   CONTINUE    
1665         FACGH=COMFAC*FACA*3./(128.*PARU(1)**2)*AEM/XW*AS**3*    
1666      &  SQMH/SQMW*SQMH**3/(SH*TH*UH)*(A2STUR**2+A2STUI**2+A2USTR**2+    
1667      &  A2USTI**2+A2TUSR**2+A2TUSI**2+A4STUR**2+A4STUI**2)  
1668         FACGH=FACGH*WIDS(25,2)  
1669         IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 770 
1670         NCHN=NCHN+1 
1671         ISIG(NCHN,1)=21 
1672         ISIG(NCHN,2)=21 
1673         ISIG(NCHN,3)=1  
1674         SIGH(NCHN)=FACGH    
1675   770   CONTINUE    
1676     
1677       ELSEIF(ISUB.EQ.114) THEN  
1678 C...g + g -> gamma + gamma. 
1679         ASRE=0. 
1680         ASIM=0. 
1681         DO 780 I=1,2*MSTP(1)    
1682         EI=KCHG(IABS(I),1)/3.   
1683         SQMQ=PMAS(I,1)**2   
1684         EPSS=4.*SQMQ/SH 
1685         EPST=4.*SQMQ/TH 
1686         EPSU=4.*SQMQ/UH 
1687         IF(EPSS+ABS(EPST)+ABS(EPSU).LT.3.E-6) THEN  
1688           A0STUR=1.+(TH-UH)/SH*LOG(TH/UH)+0.5*(TH2+UH2)/SH2*    
1689      &    (LOG(TH/UH)**2+PARU(1)**2)    
1690           A0STUI=0. 
1691           A0TSUR=1.+(SH-UH)/TH*LOG(-SH/UH)+0.5*(SH2+UH2)/TH2*   
1692      &    LOG(-SH/UH)**2    
1693           A0TSUI=-PARU(1)*((SH-UH)/TH+(SH2+UH2)/TH2*LOG(-SH/UH))    
1694           A0UTSR=1.+(TH-SH)/UH*LOG(-TH/SH)+0.5*(TH2+SH2)/UH2*   
1695      &    LOG(-TH/SH)**2    
1696           A0UTSI=PARU(1)*((TH-SH)/UH+(TH2+SH2)/UH2*LOG(-TH/SH)) 
1697           A1STUR=-1.    
1698           A1STUI=0. 
1699           A2STUR=-1.    
1700           A2STUI=0. 
1701         ELSE    
1702           BESTU=0.5*(1.+SQRT(1.+EPSS*TH/UH))    
1703           BEUST=0.5*(1.+SQRT(1.+EPSU*SH/TH))    
1704           BETUS=0.5*(1.+SQRT(1.+EPST*UH/SH))    
1705           BEUTS=BESTU   
1706           BETSU=BEUST   
1707           BESUT=BETUS   
1708           A0STUR=1.+(1.+2.*TH/SH)*PYW1AU_HIJING(EPST,1)+(1.+2.*UH/SH)* 
1709      &         PYW1AU_HIJING(EPSU,1)+0.5*((TH2+UH2)/SH2-EPSS)
1710      $         *(PYW2AU_HIJING(EPST,1)+PYW2AU_HIJING(EPSU,1))-0.25*EPST
1711      $         *(1.-0.5*EPSS)*(PYI3AU_HIJING(BESUT,EPSS,1)
1712      $         +PYI3AU_HIJING(BESUT,EPST,1))-0.25*EPSU*(1.-0.5*EPSS)
1713      $         *(PYI3AU_HIJING(BESTU,EPSS,1)+PYI3AU_HIJING(BESTU,EPSU,1)
1714      $         )+0.25*(-2.*(TH2+UH2)/SH2+4.*EPSS+EPST+EPSU+0.5*EPST*EPSU
1715      $         )*(PYI3AU_HIJING(BETSU,EPST,1)+PYI3AU_HIJING(BETSU,EPSU,1
1716      $         ))   
1717           A0STUI=(1.+2.*TH/SH)*PYW1AU_HIJING(EPST,2)+(1.+2.*UH/SH)*    
1718      &         PYW1AU_HIJING(EPSU,2)+0.5*((TH2+UH2)/SH2-EPSS)
1719      $         *(PYW2AU_HIJING(EPST,2)+PYW2AU_HIJING(EPSU,2))-0.25*EPST
1720      $         *(1.-0.5*EPSS)*(PYI3AU_HIJING(BESUT,EPSS,2)
1721      $         +PYI3AU_HIJING(BESUT,EPST,2))-0.25*EPSU*(1.-0.5*EPSS)
1722      $         *(PYI3AU_HIJING(BESTU,EPSS,2)+PYI3AU_HIJING(BESTU,EPSU,2)
1723      $         )+0.25*(-2.*(TH2+UH2)/SH2+4.*EPSS+EPST+EPSU+0.5*EPST*EPSU
1724      $         )*(PYI3AU_HIJING(BETSU,EPST,2)+PYI3AU_HIJING(BETSU,EPSU,2
1725      $         ))   
1726           A0TSUR=1.+(1.+2.*SH/TH)*PYW1AU_HIJING(EPSS,1)+(1.+2.*UH/TH)* 
1727      &         PYW1AU_HIJING(EPSU,1)+0.5*((SH2+UH2)/TH2-EPST)
1728      $         *(PYW2AU_HIJING(EPSS,1)+PYW2AU_HIJING(EPSU,1))-0.25*EPSS
1729      $         *(1.-0.5*EPST)*(PYI3AU_HIJING(BETUS,EPST,1)
1730      $         +PYI3AU_HIJING(BETUS,EPSS,1))-0.25*EPSU*(1.-0.5*EPST)
1731      $         *(PYI3AU_HIJING(BETSU,EPST,1)+PYI3AU_HIJING(BETSU,EPSU,1)
1732      $         )+0.25*(-2.*(SH2+UH2)/TH2+4.*EPST+EPSS+EPSU+0.5*EPSS*EPSU
1733      $         )*(PYI3AU_HIJING(BESTU,EPSS,1)+PYI3AU_HIJING(BESTU,EPSU,1
1734      $         ))   
1735           A0TSUI=(1.+2.*SH/TH)*PYW1AU_HIJING(EPSS,2)+(1.+2.*UH/TH)*    
1736      &         PYW1AU_HIJING(EPSU,2)+0.5*((SH2+UH2)/TH2-EPST)
1737      $         *(PYW2AU_HIJING(EPSS,2)+PYW2AU_HIJING(EPSU,2))-0.25*EPSS
1738      $         *(1.-0.5*EPST)*(PYI3AU_HIJING(BETUS,EPST,2)
1739      $         +PYI3AU_HIJING(BETUS,EPSS,2))-0.25*EPSU*(1.-0.5*EPST)
1740      $         *(PYI3AU_HIJING(BETSU,EPST,2)+PYI3AU_HIJING(BETSU,EPSU,2)
1741      $         )+0.25*(-2.*(SH2+UH2)/TH2+4.*EPST+EPSS+EPSU+0.5*EPSS*EPSU
1742      $         )*(PYI3AU_HIJING(BESTU,EPSS,2)+PYI3AU_HIJING(BESTU,EPSU,2
1743      $         ))   
1744           A0UTSR=1.+(1.+2.*TH/UH)*PYW1AU_HIJING(EPST,1)+(1.+2.*SH/UH)* 
1745      &         PYW1AU_HIJING(EPSS,1)+0.5*((TH2+SH2)/UH2-EPSU)
1746      $         *(PYW2AU_HIJING(EPST,1)+PYW2AU_HIJING(EPSS,1))-0.25*EPST
1747      $         *(1.-0.5*EPSU)*(PYI3AU_HIJING(BEUST,EPSU,1)
1748      $         +PYI3AU_HIJING(BEUST,EPST,1))-0.25*EPSS*(1.-0.5*EPSU)
1749      $         *(PYI3AU_HIJING(BEUTS,EPSU,1)+PYI3AU_HIJING(BEUTS,EPSS,1)
1750      $         )+0.25*(-2.*(TH2+SH2)/UH2+4.*EPSU+EPST+EPSS+0.5*EPST*EPSS
1751      $         )*(PYI3AU_HIJING(BETUS,EPST,1)+PYI3AU_HIJING(BETUS,EPSS,1
1752      $         ))   
1753           A0UTSI=(1.+2.*TH/UH)*PYW1AU_HIJING(EPST,2)+(1.+2.*SH/UH)*    
1754      &         PYW1AU_HIJING(EPSS,2)+0.5*((TH2+SH2)/UH2-EPSU)
1755      $         *(PYW2AU_HIJING(EPST,2)+PYW2AU_HIJING(EPSS,2))-0.25*EPST
1756      $         *(1.-0.5*EPSU)*(PYI3AU_HIJING(BEUST,EPSU,2)
1757      $         +PYI3AU_HIJING(BEUST,EPST,2))-0.25*EPSS*(1.-0.5*EPSU)
1758      $         *(PYI3AU_HIJING(BEUTS,EPSU,2)+PYI3AU_HIJING(BEUTS,EPSS,2)
1759      $         )+0.25*(-2.*(TH2+SH2)/UH2+4.*EPSU+EPST+EPSS+0.5*EPST*EPSS
1760      $         )*(PYI3AU_HIJING(BETUS,EPST,2)+PYI3AU_HIJING(BETUS,EPSS,2
1761      $         ))   
1762           A1STUR=-1.-0.25*(EPSS+EPST+EPSU)*(PYW2AU_HIJING(EPSS,1)+ 
1763      &         PYW2AU_HIJING(EPST,1)+PYW2AU_HIJING(EPSU,1))+0.25*(EPSU+0
1764      $         .5*EPSS*EPST)*(PYI3AU_HIJING(BESUT,EPSS,1)
1765      $         +PYI3AU_HIJING(BESUT,EPST,1))+0.25*(EPST+0.5*EPSS*EPSU)
1766      $         *(PYI3AU_HIJING(BESTU,EPSS,1)+PYI3AU_HIJING(BESTU,EPSU,1)
1767      $         )+0.25*(EPSS+0.5*EPST*EPSU)*(PYI3AU_HIJING(BETSU,EPST,1)
1768      $         +PYI3AU_HIJING(BETSU,EPSU,1))   
1769           A1STUI=-0.25*(EPSS+EPST+EPSU)*(PYW2AU_HIJING(EPSS,2)
1770      $         +PYW2AU_HIJING(EPST,2)+PYW2AU_HIJING(EPSU,2))+0.25*(EPSU
1771      $         +0.5*EPSS*EPST)*(PYI3AU_HIJING(BESUT,EPSS,2)
1772      $         +PYI3AU_HIJING(BESUT,EPST,2))+0.25*(EPST+0.5*EPSS*EPSU)
1773      $         *(PYI3AU_HIJING(BESTU,EPSS,2)+PYI3AU_HIJING(BESTU,EPSU,2)
1774      $         )+0.25*(EPSS+0.5*EPST*EPSU)*(PYI3AU_HIJING(BETSU,EPST,2)
1775      $         +PYI3AU_HIJING(BETSU,EPSU,2))   
1776           A2STUR=-1.+0.125*EPSS*EPST*(PYI3AU_HIJING(BESUT,EPSS,1)+ 
1777      &         PYI3AU_HIJING(BESUT,EPST,1))+0.125*EPSS*EPSU
1778      $         *(PYI3AU_HIJING(BESTU,EPSS,1)+PYI3AU_HIJING(BESTU,EPSU,1)
1779      $         )+0.125*EPST*EPSU*(PYI3AU_HIJING(BETSU,EPST,1)
1780      $         +PYI3AU_HIJING(BETSU,EPSU,1)) 
1781           A2STUI=0.125*EPSS*EPST*(PYI3AU_HIJING(BESUT,EPSS,2)+ 
1782      &         PYI3AU_HIJING(BESUT,EPST,2))+0.125*EPSS*EPSU
1783      $         *(PYI3AU_HIJING(BESTU,EPSS,2)+PYI3AU_HIJING(BESTU,EPSU,2)
1784      $         )+0.125*EPST*EPSU*(PYI3AU_HIJING(BETSU,EPST,2)
1785      $         +PYI3AU_HIJING(BETSU,EPSU,2)) 
1786         ENDIF   
1787         ASRE=ASRE+EI**2*(A0STUR+A0TSUR+A0UTSR+4.*A1STUR+A2STUR) 
1788         ASIM=ASIM+EI**2*(A0STUI+A0TSUI+A0UTSI+4.*A1STUI+A2STUI) 
1789   780   CONTINUE    
1790         FACGG=COMFAC*FACA/(8.*PARU(1)**2)*AS**2*AEM**2*(ASRE**2+ASIM**2)    
1791         IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 790 
1792         NCHN=NCHN+1 
1793         ISIG(NCHN,1)=21 
1794         ISIG(NCHN,2)=21 
1795         ISIG(NCHN,3)=1  
1796         SIGH(NCHN)=FACGG    
1797   790   CONTINUE    
1798     
1799       ELSEIF(ISUB.EQ.115) THEN  
1800 C...g + g -> gamma + Z0.    
1801     
1802       ELSEIF(ISUB.EQ.116) THEN  
1803 C...g + g -> Z0 + Z0.   
1804     
1805       ELSEIF(ISUB.EQ.117) THEN  
1806 C...g + g -> W+ + W-.   
1807     
1808       ENDIF 
1809     
1810 C...G: 2 -> 3, tree diagrams.   
1811     
1812       ELSEIF(ISUB.LE.140) THEN  
1813       IF(ISUB.EQ.121) THEN  
1814 C...g + g -> f + fb + H0.   
1815     
1816       ENDIF 
1817     
1818 C...H: 2 -> 1, tree diagrams, non-standard model processes. 
1819     
1820       ELSEIF(ISUB.LE.160) THEN  
1821       IF(ISUB.EQ.141) THEN  
1822 C...f + fb -> gamma*/Z0/Z'0.    
1823         MINT(61)=2  
1824         CALL PYWIDT_HIJING(32,SQRT(SH),WDTP,WDTE)  
1825         FACZP=COMFAC*AEM**2*4./9.   
1826         DO 800 I=MINA,MAXA  
1827         IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 800    
1828         EI=KCHG(IABS(I),1)/3.   
1829         AI=SIGN(1.,EI)  
1830         VI=AI-4.*EI*XW  
1831         API=SIGN(1.,EI) 
1832         VPI=API-4.*EI*XW    
1833         NCHN=NCHN+1 
1834         ISIG(NCHN,1)=I  
1835         ISIG(NCHN,2)=-I 
1836         ISIG(NCHN,3)=1  
1837         SIGH(NCHN)=FACZP*(EI**2*VINT(111)+EI*VI/(8.*XW*(1.-XW))*    
1838      &  SH*(SH-SQMZ)/((SH-SQMZ)**2+GMMZ**2)*VINT(112)+EI*VPI/(8.*XW*    
1839      &  (1.-XW))*SH*(SH-SQMZP)/((SH-SQMZP)**2+GMMZP**2)*VINT(113)+  
1840      &  (VI**2+AI**2)/(16.*XW*(1.-XW))**2*SH2/((SH-SQMZ)**2+GMMZ**2)*   
1841      &  VINT(114)+2.*(VI*VPI+AI*API)/(16.*XW*(1.-XW))**2*SH2*   
1842      &  ((SH-SQMZ)*(SH-SQMZP)+GMMZ*GMMZP)/(((SH-SQMZ)**2+GMMZ**2)*  
1843      &  ((SH-SQMZP)**2+GMMZP**2))*VINT(115)+(VPI**2+API**2)/    
1844      &  (16.*XW*(1.-XW))**2*SH2/((SH-SQMZP)**2+GMMZP**2)*VINT(116)) 
1845   800   CONTINUE    
1846     
1847       ELSEIF(ISUB.EQ.142) THEN  
1848 C...f + fb' -> H+/-.    
1849         CALL PYWIDT_HIJING(37,SQRT(SH),WDTP,WDTE)  
1850         FHC=COMFAC*(AEM/XW)**2*1./48.*(SH/SQMW)**2*SH2/ 
1851      &  ((SH-SQMHC)**2+GMMHC**2)    
1852 C'''No construction yet for leptons 
1853         DO 840 I=1,MSTP(54)/2   
1854         IL=2*I-1    
1855         IU=2*I  
1856         RMQL=PMAS(IL,1)**2/SH   
1857         RMQU=PMAS(IU,1)**2/SH   
1858         FACHC=FHC*((RMQL*PARU(121)+RMQU/PARU(121))*(1.-RMQL-RMQU)-  
1859      &  4.*RMQL*RMQU)/SQRT(MAX(0.,(1.-RMQL-RMQU)**2-4.*RMQL*RMQU))  
1860         IF(KFAC(1,IL)*KFAC(2,-IU).EQ.0) GOTO 810    
1861         KCHHC=(KCHG(IL,1)-KCHG(IU,1))/3 
1862         NCHN=NCHN+1 
1863         ISIG(NCHN,1)=IL 
1864         ISIG(NCHN,2)=-IU    
1865         ISIG(NCHN,3)=1  
1866         SIGH(NCHN)=FACHC*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4))  
1867   810   IF(KFAC(1,-IL)*KFAC(2,IU).EQ.0) GOTO 820    
1868         KCHHC=(-KCHG(IL,1)+KCHG(IU,1))/3    
1869         NCHN=NCHN+1 
1870         ISIG(NCHN,1)=-IL    
1871         ISIG(NCHN,2)=IU 
1872         ISIG(NCHN,3)=1  
1873         SIGH(NCHN)=FACHC*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4))  
1874   820   IF(KFAC(1,IU)*KFAC(2,-IL).EQ.0) GOTO 830    
1875         KCHHC=(KCHG(IU,1)-KCHG(IL,1))/3 
1876         NCHN=NCHN+1 
1877         ISIG(NCHN,1)=IU 
1878         ISIG(NCHN,2)=-IL    
1879         ISIG(NCHN,3)=1  
1880         SIGH(NCHN)=FACHC*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4))  
1881   830   IF(KFAC(1,-IU)*KFAC(2,IL).EQ.0) GOTO 840    
1882         KCHHC=(-KCHG(IU,1)+KCHG(IL,1))/3    
1883         NCHN=NCHN+1 
1884         ISIG(NCHN,1)=-IU    
1885         ISIG(NCHN,2)=IL 
1886         ISIG(NCHN,3)=1  
1887         SIGH(NCHN)=FACHC*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4))  
1888   840   CONTINUE    
1889     
1890       ELSEIF(ISUB.EQ.143) THEN  
1891 C...f + fb -> R.    
1892         CALL PYWIDT_HIJING(40,SQRT(SH),WDTP,WDTE)  
1893         FACR=COMFAC*(AEM/XW)**2*1./9.*SH2/((SH-SQMR)**2+GMMR**2)    
1894         DO 860 I=MIN1,MAX1  
1895         IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 860   
1896         IA=IABS(I)  
1897         DO 850 J=MIN2,MAX2  
1898         IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 850   
1899         JA=IABS(J)  
1900         IF(I*J.GT.0.OR.IABS(IA-JA).NE.2) GOTO 850   
1901         NCHN=NCHN+1 
1902         ISIG(NCHN,1)=I  
1903         ISIG(NCHN,2)=J  
1904         ISIG(NCHN,3)=1  
1905         SIGH(NCHN)=FACR*(WDTE(0,1)+WDTE(0,(10-(I+J))/4)+WDTE(0,4))  
1906   850   CONTINUE    
1907   860   CONTINUE    
1908     
1909       ENDIF 
1910     
1911 C...I: 2 -> 2, tree diagrams, non-standard model processes. 
1912     
1913       ELSE  
1914       IF(ISUB.EQ.161) THEN  
1915 C...f + g -> f' + H+/- (q + g -> q' + H+/- only).   
1916         FHCQ=COMFAC*FACA*AS*AEM/XW*1./24    
1917         DO 900 I=1,MSTP(54) 
1918         IU=I+MOD(I,2)   
1919         SQMQ=PMAS(IU,1)**2  
1920         FACHCQ=FHCQ/PARU(121)*SQMQ/SQMW*(SH/(SQMQ-UH)+  
1921      &  2.*SQMQ*(SQMHC-UH)/(SQMQ-UH)**2+(SQMQ-UH)/SH+   
1922      &  2.*SQMQ/(SQMQ-UH)+2.*(SQMHC-UH)/(SQMQ-UH)*(SQMHC-SQMQ-SH)/SH)   
1923         IF(KFAC(1,-I)*KFAC(2,21).EQ.0) GOTO 870 
1924         KCHHC=ISIGN(1,-KCHG(I,1))   
1925         NCHN=NCHN+1 
1926         ISIG(NCHN,1)=-I 
1927         ISIG(NCHN,2)=21 
1928         ISIG(NCHN,3)=1  
1929         SIGH(NCHN)=FACHCQ*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4)) 
1930   870   IF(KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 880  
1931         KCHHC=ISIGN(1,KCHG(I,1))    
1932         NCHN=NCHN+1 
1933         ISIG(NCHN,1)=I  
1934         ISIG(NCHN,2)=21 
1935         ISIG(NCHN,3)=1  
1936         SIGH(NCHN)=FACHCQ*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4)) 
1937   880   IF(KFAC(1,21)*KFAC(2,-I).EQ.0) GOTO 890 
1938         KCHHC=ISIGN(1,-KCHG(I,1))   
1939         NCHN=NCHN+1 
1940         ISIG(NCHN,1)=21 
1941         ISIG(NCHN,2)=-I 
1942         ISIG(NCHN,3)=1  
1943         SIGH(NCHN)=FACHCQ*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4)) 
1944   890   IF(KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 900  
1945         KCHHC=ISIGN(1,KCHG(I,1))    
1946         NCHN=NCHN+1 
1947         ISIG(NCHN,1)=21 
1948         ISIG(NCHN,2)=I  
1949         ISIG(NCHN,3)=1  
1950         SIGH(NCHN)=FACHCQ*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4)) 
1951   900   CONTINUE    
1952     
1953       ENDIF 
1954       ENDIF 
1955     
1956 C...Multiply with structure functions.  
1957       IF(ISUB.LE.90.OR.ISUB.GE.96) THEN 
1958         DO 910 ICHN=1,NCHN  
1959         IF(MINT(41).EQ.2) THEN  
1960           KFL1=ISIG(ICHN,1) 
1961           IF(KFL1.EQ.21) KFL1=0 
1962           SIGH(ICHN)=SIGH(ICHN)*XSFX(1,KFL1)    
1963         ENDIF   
1964         IF(MINT(42).EQ.2) THEN  
1965           KFL2=ISIG(ICHN,2) 
1966           IF(KFL2.EQ.21) KFL2=0 
1967           SIGH(ICHN)=SIGH(ICHN)*XSFX(2,KFL2)    
1968         ENDIF   
1969   910   SIGS=SIGS+SIGH(ICHN)    
1970       ENDIF 
1971     
1972       RETURN    
1973       END