]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/pywidt_hijing.F
Separated TOF libraries (base,rec,sim)
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / pywidt_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4     
5       SUBROUTINE PYWIDT_HIJING(KFLR,RMAS,WDTP,WDTE)    
6     
7 C...Calculates full and partial widths of resonances.   
8 #include "ludat1_hijing.inc"
9 #include "ludat2_hijing.inc"
10 #include "ludat3_hijing.inc"
11 #include "pypars_hijing.inc"
12 #include "pyint1_hijing.inc"
13 #include "pyint4_hijing.inc"
14       DIMENSION WDTP(0:40),WDTE(0:40,0:5)   
15     
16 C...Some common constants.  
17       KFLA=IABS(KFLR)   
18       SQM=RMAS**2   
19       AS=ULALPS_HIJING(SQM)    
20       AEM=PARU(101) 
21       XW=PARU(102)  
22       RADC=1.+AS/PARU(1)    
23     
24 C...Reset width information.    
25       DO 100 I=0,40 
26       WDTP(I)=0.    
27       DO 100 J=0,5  
28   100 WDTE(I,J)=0.  
29     
30       IF(KFLA.EQ.21) THEN   
31 C...QCD:    
32         DO 110 I=1,MDCY(21,3)   
33         IDC=I+MDCY(21,2)-1  
34         RM1=(PMAS(IABS(KFDP(IDC,1)),1)/RMAS)**2 
35         RM2=(PMAS(IABS(KFDP(IDC,2)),1)/RMAS)**2 
36         IF(SQRT(RM1)+SQRT(RM2).GT.1..OR.MDME(IDC,1).LT.0) GOTO 110  
37         IF(I.LE.8) THEN 
38 C...QCD -> q + qb   
39           WDTP(I)=(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))   
40           WID2=1.   
41         ENDIF   
42         WDTP(0)=WDTP(0)+WDTP(I) 
43         IF(MDME(IDC,1).GT.0) THEN   
44           WDTE(I,MDME(IDC,1))=WDTP(I)*WID2  
45           WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))   
46           WDTE(I,0)=WDTE(I,MDME(IDC,1)) 
47           WDTE(0,0)=WDTE(0,0)+WDTE(I,0) 
48         ENDIF   
49   110   CONTINUE    
50     
51       ELSEIF(KFLA.EQ.23) THEN   
52 C...Z0: 
53         IF(MINT(61).EQ.1) THEN  
54           EI=KCHG(IABS(MINT(15)),1)/3.  
55           AI=SIGN(1.,EI)    
56           VI=AI-4.*EI*XW    
57           SQMZ=PMAS(23,1)**2    
58           GZMZ=PMAS(23,2)*PMAS(23,1)    
59           GGI=EI**2 
60           GZI=EI*VI/(8.*XW*(1.-XW))*SQM*(SQM-SQMZ)/ 
61      &    ((SQM-SQMZ)**2+GZMZ**2)   
62           ZZI=(VI**2+AI**2)/(16.*XW*(1.-XW))**2*SQM**2/ 
63      &    ((SQM-SQMZ)**2+GZMZ**2)   
64           IF(MSTP(43).EQ.1) THEN    
65 C...Only gamma* production included 
66             GZI=0.  
67             ZZI=0.  
68           ELSEIF(MSTP(43).EQ.2) THEN    
69 C...Only Z0 production included 
70             GGI=0.  
71             GZI=0.  
72           ENDIF 
73         ELSEIF(MINT(61).EQ.2) THEN  
74           VINT(111)=0.  
75           VINT(112)=0.  
76           VINT(114)=0.  
77         ENDIF   
78         DO 120 I=1,MDCY(23,3)   
79         IDC=I+MDCY(23,2)-1  
80         RM1=(PMAS(IABS(KFDP(IDC,1)),1)/RMAS)**2 
81         RM2=(PMAS(IABS(KFDP(IDC,2)),1)/RMAS)**2 
82         IF(SQRT(RM1)+SQRT(RM2).GT.1..OR.MDME(IDC,1).LT.0) GOTO 120  
83         IF(I.LE.8) THEN 
84 C...Z0 -> q + qb    
85           EF=KCHG(I,1)/3.   
86           AF=SIGN(1.,EF+0.1)    
87           VF=AF-4.*EF*XW    
88           IF(MINT(61).EQ.0) THEN    
89             WDTP(I)=3.*(VF**2*(1.+2.*RM1)+AF**2*(1.-4.*RM1))*   
90      &      SQRT(MAX(0.,1.-4.*RM1))*RADC    
91           ELSEIF(MINT(61).EQ.1) THEN    
92             WDTP(I)=3.*((GGI*EF**2+GZI*EF*VF+ZZI*VF**2)*    
93      &      (1.+2.*RM1)+ZZI*AF**2*(1.-4.*RM1))* 
94      &      SQRT(MAX(0.,1.-4.*RM1))*RADC    
95           ELSEIF(MINT(61).EQ.2) THEN    
96             GGF=3.*EF**2*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))*RADC   
97             GZF=3.*EF*VF*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))*RADC   
98             ZZF=3.*(VF**2*(1.+2.*RM1)+AF**2*(1.-4.*RM1))*   
99      &      SQRT(MAX(0.,1.-4.*RM1))*RADC    
100           ENDIF 
101           WID2=1.   
102         ELSEIF(I.LE.16) THEN    
103 C...Z0 -> l+ + l-, nu + nub 
104           EF=KCHG(I+2,1)/3. 
105           AF=SIGN(1.,EF+0.1)    
106           VF=AF-4.*EF*XW    
107           WDTP(I)=(VF**2*(1.+2.*RM1)+AF**2*(1.-4.*RM1))*    
108      &    SQRT(MAX(0.,1.-4.*RM1))   
109           IF(MINT(61).EQ.0) THEN    
110             WDTP(I)=(VF**2*(1.+2.*RM1)+AF**2*(1.-4.*RM1))*  
111      &      SQRT(MAX(0.,1.-4.*RM1)) 
112           ELSEIF(MINT(61).EQ.1) THEN    
113             WDTP(I)=((GGI*EF**2+GZI*EF*VF+ZZI*VF**2)*   
114      &      (1.+2.*RM1)+ZZI*AF**2*(1.-4.*RM1))* 
115      &      SQRT(MAX(0.,1.-4.*RM1)) 
116           ELSEIF(MINT(61).EQ.2) THEN    
117             GGF=EF**2*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))   
118             GZF=EF*VF*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))   
119             ZZF=(VF**2*(1.+2.*RM1)+AF**2*(1.-4.*RM1))*  
120      &      SQRT(MAX(0.,1.-4.*RM1)) 
121           ENDIF 
122           WID2=1.   
123         ELSE    
124 C...Z0 -> H+ + H-   
125           CF=2.*(1.-2.*XW)  
126           IF(MINT(61).EQ.0) THEN    
127             WDTP(I)=0.25*CF**2*(1.-4.*RM1)*SQRT(MAX(0.,1.-4.*RM1))  
128           ELSEIF(MINT(61).EQ.1) THEN    
129             WDTP(I)=0.25*(GGI+GZI*CF+ZZI*CF**2)*(1.-4.*RM1)*    
130      &      SQRT(MAX(0.,1.-4.*RM1)) 
131           ELSEIF(MINT(61).EQ.2) THEN    
132             GGF=0.25*(1.-4.*RM1)*SQRT(MAX(0.,1.-4.*RM1))    
133             GZF=0.25*CF*(1.-4.*RM1)*SQRT(MAX(0.,1.-4.*RM1)) 
134             ZZF=0.25*CF**2*(1.-4.*RM1)*SQRT(MAX(0.,1.-4.*RM1))  
135           ENDIF 
136           WID2=WIDS(37,1)   
137         ENDIF   
138         WDTP(0)=WDTP(0)+WDTP(I) 
139         IF(MDME(IDC,1).GT.0) THEN   
140           WDTE(I,MDME(IDC,1))=WDTP(I)*WID2  
141           WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))   
142           WDTE(I,0)=WDTE(I,MDME(IDC,1)) 
143           WDTE(0,0)=WDTE(0,0)+WDTE(I,0) 
144           VINT(111)=VINT(111)+GGF*WID2  
145           VINT(112)=VINT(112)+GZF*WID2  
146           VINT(114)=VINT(114)+ZZF*WID2  
147         ENDIF   
148   120   CONTINUE    
149         IF(MSTP(43).EQ.1) THEN  
150 C...Only gamma* production included 
151           VINT(112)=0.  
152           VINT(114)=0.  
153         ELSEIF(MSTP(43).EQ.2) THEN  
154 C...Only Z0 production included 
155           VINT(111)=0.  
156           VINT(112)=0.  
157         ENDIF   
158     
159       ELSEIF(KFLA.EQ.24) THEN   
160 C...W+/-:   
161         DO 130 I=1,MDCY(24,3)   
162         IDC=I+MDCY(24,2)-1  
163         RM1=(PMAS(IABS(KFDP(IDC,1)),1)/RMAS)**2 
164         RM2=(PMAS(IABS(KFDP(IDC,2)),1)/RMAS)**2 
165         IF(SQRT(RM1)+SQRT(RM2).GT.1..OR.MDME(IDC,1).LT.0) GOTO 130  
166         IF(I.LE.16) THEN    
167 C...W+/- -> q + qb' 
168           WDTP(I)=3.*(2.-RM1-RM2-(RM1-RM2)**2)* 
169      &    SQRT(MAX(0.,(1.-RM1-RM2)**2-4.*RM1*RM2))* 
170      &    VCKM((I-1)/4+1,MOD(I-1,4)+1)*RADC 
171           WID2=1.   
172         ELSE    
173 C...W+/- -> l+/- + nu   
174           WDTP(I)=(2.-RM1-RM2-(RM1-RM2)**2)*    
175      &    SQRT(MAX(0.,(1.-RM1-RM2)**2-4.*RM1*RM2))  
176           WID2=1.   
177         ENDIF   
178         WDTP(0)=WDTP(0)+WDTP(I) 
179         IF(MDME(IDC,1).GT.0) THEN   
180           WDTE(I,MDME(IDC,1))=WDTP(I)*WID2  
181           WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))   
182           WDTE(I,0)=WDTE(I,MDME(IDC,1)) 
183           WDTE(0,0)=WDTE(0,0)+WDTE(I,0) 
184         ENDIF   
185   130   CONTINUE    
186     
187       ELSEIF(KFLA.EQ.25) THEN   
188 C...H0: 
189         DO 170 I=1,MDCY(25,3)   
190         IDC=I+MDCY(25,2)-1  
191         RM1=(PMAS(IABS(KFDP(IDC,1)),1)/RMAS)**2 
192         RM2=(PMAS(IABS(KFDP(IDC,2)),1)/RMAS)**2 
193         IF(SQRT(RM1)+SQRT(RM2).GT.1..OR.MDME(IDC,1).LT.0) GOTO 170  
194         IF(I.LE.8) THEN 
195 C...H0 -> q + qb    
196           WDTP(I)=3.*RM1*(1.-4.*RM1)*SQRT(MAX(0.,1.-4.*RM1))*RADC   
197           WID2=1.   
198         ELSEIF(I.LE.12) THEN    
199 C...H0 -> l+ + l-   
200           WDTP(I)=RM1*(1.-4.*RM1)*SQRT(MAX(0.,1.-4.*RM1))   
201           WID2=1.   
202         ELSEIF(I.EQ.13) THEN    
203 C...H0 -> g + g; quark loop contribution only   
204           ETARE=0.  
205           ETAIM=0.  
206           DO 140 J=1,2*MSTP(1)  
207           EPS=(2.*PMAS(J,1)/RMAS)**2    
208           IF(EPS.LE.1.) THEN    
209             IF(EPS.GT.1.E-4) THEN   
210               ROOT=SQRT(1.-EPS) 
211               RLN=LOG((1.+ROOT)/(1.-ROOT))  
212             ELSE    
213               RLN=LOG(4./EPS-2.)    
214             ENDIF   
215             PHIRE=0.25*(RLN**2-PARU(1)**2)  
216             PHIIM=0.5*PARU(1)*RLN   
217           ELSE  
218             PHIRE=-(ASIN(1./SQRT(EPS)))**2  
219             PHIIM=0.    
220           ENDIF 
221           ETARE=ETARE+0.5*EPS*(1.+(EPS-1.)*PHIRE)   
222           ETAIM=ETAIM+0.5*EPS*(EPS-1.)*PHIIM    
223   140     CONTINUE  
224           ETA2=ETARE**2+ETAIM**2    
225           WDTP(I)=(AS/PARU(1))**2*ETA2  
226           WID2=1.   
227         ELSEIF(I.EQ.14) THEN    
228 C...H0 -> gamma + gamma; quark, charged lepton and W loop contributions 
229           ETARE=0.  
230           ETAIM=0.  
231           DO 150 J=1,3*MSTP(1)+1    
232           IF(J.LE.2*MSTP(1)) THEN   
233             EJ=KCHG(J,1)/3. 
234             EPS=(2.*PMAS(J,1)/RMAS)**2  
235           ELSEIF(J.LE.3*MSTP(1)) THEN   
236             JL=2*(J-2*MSTP(1))-1    
237             EJ=KCHG(10+JL,1)/3. 
238             EPS=(2.*PMAS(10+JL,1)/RMAS)**2  
239           ELSE  
240             EPS=(2.*PMAS(24,1)/RMAS)**2 
241           ENDIF 
242           IF(EPS.LE.1.) THEN    
243             IF(EPS.GT.1.E-4) THEN   
244               ROOT=SQRT(1.-EPS) 
245               RLN=LOG((1.+ROOT)/(1.-ROOT))  
246             ELSE    
247               RLN=LOG(4./EPS-2.)    
248             ENDIF   
249             PHIRE=0.25*(RLN**2-PARU(1)**2)  
250             PHIIM=0.5*PARU(1)*RLN   
251           ELSE  
252             PHIRE=-(ASIN(1./SQRT(EPS)))**2  
253             PHIIM=0.    
254           ENDIF 
255           IF(J.LE.2*MSTP(1)) THEN   
256             ETARE=ETARE+0.5*3.*EJ**2*EPS*(1.+(EPS-1.)*PHIRE)    
257             ETAIM=ETAIM+0.5*3.*EJ**2*EPS*(EPS-1.)*PHIIM 
258           ELSEIF(J.LE.3*MSTP(1)) THEN   
259             ETARE=ETARE+0.5*EJ**2*EPS*(1.+(EPS-1.)*PHIRE)   
260             ETAIM=ETAIM+0.5*EJ**2*EPS*(EPS-1.)*PHIIM    
261           ELSE  
262             ETARE=ETARE-0.5-0.75*EPS*(1.+(EPS-2.)*PHIRE)    
263             ETAIM=ETAIM+0.75*EPS*(EPS-2.)*PHIIM 
264           ENDIF 
265   150     CONTINUE  
266           ETA2=ETARE**2+ETAIM**2    
267           WDTP(I)=(AEM/PARU(1))**2*0.5*ETA2 
268           WID2=1.   
269         ELSEIF(I.EQ.15) THEN    
270 C...H0 -> gamma + Z0; quark, charged lepton and W loop contributions    
271           ETARE=0.  
272           ETAIM=0.  
273           DO 160 J=1,3*MSTP(1)+1    
274           IF(J.LE.2*MSTP(1)) THEN   
275             EJ=KCHG(J,1)/3. 
276             AJ=SIGN(1.,EJ+0.1)  
277             VJ=AJ-4.*EJ*XW  
278             EPS=(2.*PMAS(J,1)/RMAS)**2  
279             EPSP=(2.*PMAS(J,1)/PMAS(23,1))**2   
280           ELSEIF(J.LE.3*MSTP(1)) THEN   
281             JL=2*(J-2*MSTP(1))-1    
282             EJ=KCHG(10+JL,1)/3. 
283             AJ=SIGN(1.,EJ+0.1)  
284             VJ=AI-4.*EJ*XW  
285             EPS=(2.*PMAS(10+JL,1)/RMAS)**2  
286             EPSP=(2.*PMAS(10+JL,1)/PMAS(23,1))**2   
287           ELSE  
288             EPS=(2.*PMAS(24,1)/RMAS)**2 
289             EPSP=(2.*PMAS(24,1)/PMAS(23,1))**2  
290           ENDIF 
291           IF(EPS.LE.1.) THEN    
292             ROOT=SQRT(1.-EPS)   
293             IF(EPS.GT.1.E-4) THEN   
294               RLN=LOG((1.+ROOT)/(1.-ROOT))  
295             ELSE    
296               RLN=LOG(4./EPS-2.)    
297             ENDIF   
298             PHIRE=0.25*(RLN**2-PARU(1)**2)  
299             PHIIM=0.5*PARU(1)*RLN   
300             PSIRE=-(1.+0.5*ROOT*RLN)    
301             PSIIM=0.5*PARU(1)*ROOT  
302           ELSE  
303             PHIRE=-(ASIN(1./SQRT(EPS)))**2  
304             PHIIM=0.    
305             PSIRE=-(1.+SQRT(EPS-1.)*ASIN(1./SQRT(EPS))) 
306             PSIIM=0.    
307           ENDIF 
308           IF(EPSP.LE.1.) THEN   
309             ROOT=SQRT(1.-EPSP)  
310             IF(EPSP.GT.1.E-4) THEN  
311               RLN=LOG((1.+ROOT)/(1.-ROOT))  
312             ELSE    
313               RLN=LOG(4./EPSP-2.)   
314             ENDIF   
315             PHIREP=0.25*(RLN**2-PARU(1)**2) 
316             PHIIMP=0.5*PARU(1)*RLN  
317             PSIREP=-(1.+0.5*ROOT*RLN)   
318             PSIIMP=0.5*PARU(1)*ROOT 
319           ELSE  
320             PHIREP=-(ASIN(1./SQRT(EPSP)))**2    
321             PHIIMP=0.   
322             PSIREP=-(1.+SQRT(EPSP-1.)*ASIN(1./SQRT(EPSP)))  
323             PSIIMP=0.   
324           ENDIF 
325           FXYRE=EPS*EPSP/(8.*(EPS-EPSP))*(1.-EPS*EPSP/(EPS-EPSP)*(PHIRE-    
326      &    PHIREP)+2.*EPS/(EPS-EPSP)*(PSIRE-PSIREP)) 
327           FXYIM=EPS*EPSP/(8.*(EPS-EPSP))*(-EPS*EPSP/(EPS-EPSP)*(PHIIM-  
328      &    PHIIMP)+2.*EPS/(EPS-EPSP)*(PSIIM-PSIIMP)) 
329           F1RE=EPS*EPSP/(2.*(EPS-EPSP))*(PHIRE-PHIREP)  
330           F1IM=EPS*EPSP/(2.*(EPS-EPSP))*(PHIIM-PHIIMP)  
331           IF(J.LE.2*MSTP(1)) THEN   
332             ETARE=ETARE-3.*EJ*VJ*(FXYRE-0.25*F1RE)  
333             ETAIM=ETAIM-3.*EJ*VJ*(FXYIM-0.25*F1IM)  
334           ELSEIF(J.LE.3*MSTP(1)) THEN   
335             ETARE=ETARE-EJ*VJ*(FXYRE-0.25*F1RE) 
336             ETAIM=ETAIM-EJ*VJ*(FXYIM-0.25*F1IM) 
337           ELSE  
338             ETARE=ETARE-SQRT(1.-XW)*(((1.+2./EPS)*XW/SQRT(1.-XW)-   
339      &      (5.+2./EPS))*FXYRE+(3.-XW/SQRT(1.-XW))*F1RE)    
340             ETAIM=ETAIM-SQRT(1.-XW)*(((1.+2./EPS)*XW/SQRT(1.-XW)-   
341      &      (5.+2./EPS))*FXYIM+(3.-XW/SQRT(1.-XW))*F1IM)    
342           ENDIF 
343   160     CONTINUE  
344           ETA2=ETARE**2+ETAIM**2    
345           WDTP(I)=(AEM/PARU(1))**2*(1.-(PMAS(23,1)/RMAS)**2)**3/XW*ETA2 
346           WID2=WIDS(23,2)   
347         ELSE    
348 C...H0 -> Z0 + Z0, W+ + W-  
349           WDTP(I)=(1.-4.*RM1+12.*RM1**2)*SQRT(MAX(0.,1.-4.*RM1))/   
350      &    (2.*(18-I))   
351           WID2=WIDS(7+I,1)  
352         ENDIF   
353         WDTP(0)=WDTP(0)+WDTP(I) 
354         IF(MDME(IDC,1).GT.0) THEN   
355           WDTE(I,MDME(IDC,1))=WDTP(I)*WID2  
356           WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))   
357           WDTE(I,0)=WDTE(I,MDME(IDC,1)) 
358           WDTE(0,0)=WDTE(0,0)+WDTE(I,0) 
359         ENDIF   
360   170   CONTINUE    
361     
362       ELSEIF(KFLA.EQ.32) THEN   
363 C...Z'0:    
364 C....  this line added by A.M.
365          API = 0.
366 C....         
367         IF(MINT(61).EQ.1) THEN  
368           EI=KCHG(IABS(MINT(15)),1)/3.  
369           AI=SIGN(1.,EI)    
370           VI=AI-4.*EI*XW    
371           SQMZ=PMAS(23,1)**2    
372           GZMZ=PMAS(23,2)*PMAS(23,1)    
373           API=SIGN(1.,EI)   
374           VPI=API-4.*EI*XW  
375           SQMZP=PMAS(32,1)**2   
376           GZPMZP=PMAS(32,2)*PMAS(32,1)  
377           GGI=EI**2 
378           GZI=EI*VI/(8.*XW*(1.-XW))*SQM*(SQM-SQMZ)/ 
379      &    ((SQM-SQMZ)**2+GZMZ**2)   
380           GZPI=EI*VPI/(8.*XW*(1.-XW))*SQM*(SQM-SQMZP)/  
381      &    ((SQM-SQMZP)**2+GZPMZP**2)    
382           ZZI=(VI**2+AI**2)/(16.*XW*(1.-XW))**2*SQM**2/ 
383      &    ((SQM-SQMZ)**2+GZMZ**2)   
384           ZZPI=2.*(VI*VPI+AI*API)/(16.*XW*(1.-XW))**2*  
385      &    SQM**2*((SQM-SQMZ)*(SQM-SQMZP)+GZMZ*GZPMZP)/  
386      &    (((SQM-SQMZ)**2+GZMZ**2)*((SQM-SQMZP)**2+GZPMZP**2))  
387           ZPZPI=(VPI**2+API**2)/(16.*XW*(1.-XW))**2*SQM**2/ 
388      &    ((SQM-SQMZP)**2+GZPMZP**2)    
389           IF(MSTP(44).EQ.1) THEN    
390 C...Only gamma* production included 
391             GZI=0.  
392             GZPI=0. 
393             ZZI=0.  
394             ZZPI=0. 
395             ZPZPI=0.    
396           ELSEIF(MSTP(44).EQ.2) THEN    
397 C...Only Z0 production included 
398             GGI=0.  
399             GZI=0.  
400             GZPI=0. 
401             ZZPI=0. 
402             ZPZPI=0.    
403           ELSEIF(MSTP(44).EQ.3) THEN    
404 C...Only Z'0 production included    
405             GGI=0.  
406             GZI=0.  
407             GZPI=0. 
408             ZZI=0.  
409             ZZPI=0. 
410           ELSEIF(MSTP(44).EQ.4) THEN    
411 C...Only gamma*/Z0 production included  
412             GZPI=0. 
413             ZZPI=0. 
414             ZPZPI=0.    
415           ELSEIF(MSTP(44).EQ.5) THEN    
416 C...Only gamma*/Z'0 production included 
417             GZI=0.  
418             ZZI=0.  
419             ZZPI=0. 
420           ELSEIF(MSTP(44).EQ.6) THEN    
421 C...Only Z0/Z'0 production included 
422             GGI=0.  
423             GZI=0.  
424             GZPI=0. 
425           ENDIF 
426         ELSEIF(MINT(61).EQ.2) THEN  
427           VINT(111)=0.  
428           VINT(112)=0.  
429           VINT(113)=0.  
430           VINT(114)=0.  
431           VINT(115)=0.  
432           VINT(116)=0.  
433         ENDIF   
434         DO 180 I=1,MDCY(32,3)   
435         IDC=I+MDCY(32,2)-1  
436         RM1=(PMAS(IABS(KFDP(IDC,1)),1)/RMAS)**2 
437         RM2=(PMAS(IABS(KFDP(IDC,2)),1)/RMAS)**2 
438         IF(SQRT(RM1)+SQRT(RM2).GT.1..OR.MDME(IDC,1).LT.0) GOTO 180  
439         IF(I.LE.8) THEN 
440 C...Z'0 -> q + qb   
441           EF=KCHG(I,1)/3.   
442           AF=SIGN(1.,EF+0.1)    
443           VF=AF-4.*EF*XW    
444           APF=SIGN(1.,EF+0.1)   
445           VPF=APF-4.*EF*XW  
446           IF(MINT(61).EQ.0) THEN    
447             WDTP(I)=3.*(VPF**2*(1.+2.*RM1)+APF**2*(1.-4.*RM1))* 
448      &      SQRT(MAX(0.,1.-4.*RM1))*RADC    
449           ELSEIF(MINT(61).EQ.1) THEN    
450             WDTP(I)=3.*((GGI*EF**2+GZI*EF*VF+GZPI*EF*VPF+ZZI*VF**2+ 
451      &      ZZPI*VF*VPF+ZPZPI*VPF**2)*(1.+2.*RM1)+(ZZI*AF**2+   
452      &      ZZPI*AF*APF+ZPZPI*APF**2)*(1.-4.*RM1))* 
453      &      SQRT(MAX(0.,1.-4.*RM1))*RADC    
454           ELSEIF(MINT(61).EQ.2) THEN    
455             GGF=3.*EF**2*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))*RADC   
456             GZF=3.*EF*VF*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))*RADC   
457             GZPF=3.*EF*VPF*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))*RADC 
458             ZZF=3.*(VF**2*(1.+2.*RM1)+AF**2*(1.-4.*RM1))*   
459      &      SQRT(MAX(0.,1.-4.*RM1))*RADC    
460             ZZPF=3.*(VF*VPF*(1.+2.*RM1)+AF*APF*(1.-4.*RM1))*    
461      &      SQRT(MAX(0.,1.-4.*RM1))*RADC    
462             ZPZPF=3.*(VPF**2*(1.+2.*RM1)+APF**2*(1.-4.*RM1))*   
463      &      SQRT(MAX(0.,1.-4.*RM1))*RADC    
464           ENDIF 
465           WID2=1.   
466         ELSE    
467 C...Z'0 -> l+ + l-, nu + nub    
468           EF=KCHG(I+2,1)/3. 
469           AF=SIGN(1.,EF+0.1)    
470           VF=AF-4.*EF*XW    
471           APF=SIGN(1.,EF+0.1)   
472           VPF=API-4.*EF*XW  
473           IF(MINT(61).EQ.0) THEN    
474             WDTP(I)=(VPF**2*(1.+2.*RM1)+APF**2*(1.-4.*RM1))*    
475      &      SQRT(MAX(0.,1.-4.*RM1)) 
476           ELSEIF(MINT(61).EQ.1) THEN    
477             WDTP(I)=((GGI*EF**2+GZI*EF*VF+GZPI*EF*VPF+ZZI*VF**2+    
478      &      ZZPI*VF*VPF+ZPZPI*VPF**2)*(1.+2.*RM1)+(ZZI*AF**2+   
479      &      ZZPI*AF*APF+ZPZPI*APF**2)*(1.-4.*RM1))* 
480      &      SQRT(MAX(0.,1.-4.*RM1)) 
481           ELSEIF(MINT(61).EQ.2) THEN    
482             GGF=EF**2*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))   
483             GZF=EF*VF*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1))   
484             GZPF=EF*VPF*(1.+2.*RM1)*SQRT(MAX(0.,1.-4.*RM1)) 
485             ZZF=(VF**2*(1.+2.*RM1)+AF**2*(1.-4.*RM1))*  
486      &      SQRT(MAX(0.,1.-4.*RM1)) 
487             ZZPF=(VF*VPF*(1.+2.*RM1)+AF*APF*(1.-4.*RM1))*   
488      &      SQRT(MAX(0.,1.-4.*RM1)) 
489             ZPZPF=(VPF**2*(1.+2.*RM1)+APF**2*(1.-4.*RM1))*  
490      &      SQRT(MAX(0.,1.-4.*RM1)) 
491           ENDIF 
492           WID2=1.   
493         ENDIF   
494         WDTP(0)=WDTP(0)+WDTP(I) 
495         IF(MDME(IDC,1).GT.0) THEN   
496           WDTE(I,MDME(IDC,1))=WDTP(I)*WID2  
497           WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))   
498           WDTE(I,0)=WDTE(I,MDME(IDC,1)) 
499           WDTE(0,0)=WDTE(0,0)+WDTE(I,0) 
500           VINT(111)=VINT(111)+GGF   
501           VINT(112)=VINT(112)+GZF   
502           VINT(113)=VINT(113)+GZPF  
503           VINT(114)=VINT(114)+ZZF   
504           VINT(115)=VINT(115)+ZZPF  
505           VINT(116)=VINT(116)+ZPZPF 
506         ENDIF   
507   180   CONTINUE    
508         IF(MSTP(44).EQ.1) THEN  
509 C...Only gamma* production included 
510           VINT(112)=0.  
511           VINT(113)=0.  
512           VINT(114)=0.  
513           VINT(115)=0.  
514           VINT(116)=0.  
515         ELSEIF(MSTP(44).EQ.2) THEN  
516 C...Only Z0 production included 
517           VINT(111)=0.  
518           VINT(112)=0.  
519           VINT(113)=0.  
520           VINT(115)=0.  
521           VINT(116)=0.  
522         ELSEIF(MSTP(44).EQ.3) THEN  
523 C...Only Z'0 production included    
524           VINT(111)=0.  
525           VINT(112)=0.  
526           VINT(113)=0.  
527           VINT(114)=0.  
528           VINT(115)=0.  
529         ELSEIF(MSTP(44).EQ.4) THEN  
530 C...Only gamma*/Z0 production included  
531           VINT(113)=0.  
532           VINT(115)=0.  
533           VINT(116)=0.  
534         ELSEIF(MSTP(44).EQ.5) THEN  
535 C...Only gamma*/Z'0 production included 
536           VINT(112)=0.  
537           VINT(114)=0.  
538           VINT(115)=0.  
539         ELSEIF(MSTP(44).EQ.6) THEN  
540 C...Only Z0/Z'0 production included 
541           VINT(111)=0.  
542           VINT(112)=0.  
543           VINT(113)=0.  
544         ENDIF   
545     
546       ELSEIF(KFLA.EQ.37) THEN   
547 C...H+/-:   
548         DO 190 I=1,MDCY(37,3)   
549         IDC=I+MDCY(37,2)-1  
550         RM1=(PMAS(IABS(KFDP(IDC,1)),1)/RMAS)**2 
551         RM2=(PMAS(IABS(KFDP(IDC,2)),1)/RMAS)**2 
552         IF(SQRT(RM1)+SQRT(RM2).GT.1..OR.MDME(IDC,1).LT.0) GOTO 190  
553         IF(I.LE.4) THEN 
554 C...H+/- -> q + qb' 
555           WDTP(I)=3.*((RM1*PARU(121)+RM2/PARU(121))*    
556      &    (1.-RM1-RM2)-4.*RM1*RM2)* 
557      &    SQRT(MAX(0.,(1.-RM1-RM2)**2-4.*RM1*RM2))*RADC 
558           WID2=1.   
559         ELSE    
560 C...H+/- -> l+/- + nu   
561           WDTP(I)=((RM1*PARU(121)+RM2/PARU(121))*   
562      &    (1.-RM1-RM2)-4.*RM1*RM2)* 
563      &    SQRT(MAX(0.,(1.-RM1-RM2)**2-4.*RM1*RM2))  
564           WID2=1.   
565         ENDIF   
566         WDTP(0)=WDTP(0)+WDTP(I) 
567         IF(MDME(IDC,1).GT.0) THEN   
568           WDTE(I,MDME(IDC,1))=WDTP(I)*WID2  
569           WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))   
570           WDTE(I,0)=WDTE(I,MDME(IDC,1)) 
571           WDTE(0,0)=WDTE(0,0)+WDTE(I,0) 
572         ENDIF   
573   190   CONTINUE    
574     
575       ELSEIF(KFLA.EQ.40) THEN   
576 C...R:  
577         DO 200 I=1,MDCY(40,3)   
578         IDC=I+MDCY(40,2)-1  
579         RM1=(PMAS(IABS(KFDP(IDC,1)),1)/RMAS)**2 
580         RM2=(PMAS(IABS(KFDP(IDC,2)),1)/RMAS)**2 
581         IF(SQRT(RM1)+SQRT(RM2).GT.1..OR.MDME(IDC,1).LT.0) GOTO 200  
582         IF(I.LE.4) THEN 
583 C...R -> q + qb'    
584           WDTP(I)=3.*RADC   
585           WID2=1.   
586         ELSE    
587 C...R -> l+ + l'-   
588           WDTP(I)=1.    
589           WID2=1.   
590         ENDIF   
591         WDTP(0)=WDTP(0)+WDTP(I) 
592         IF(MDME(IDC,1).GT.0) THEN   
593           WDTE(I,MDME(IDC,1))=WDTP(I)*WID2  
594           WDTE(0,MDME(IDC,1))=WDTE(0,MDME(IDC,1))+WDTE(I,MDME(IDC,1))   
595           WDTE(I,0)=WDTE(I,MDME(IDC,1)) 
596           WDTE(0,0)=WDTE(0,0)+WDTE(I,0) 
597         ENDIF   
598   200   CONTINUE    
599     
600       ENDIF 
601       MINT(61)=0    
602     
603       RETURN    
604       END