]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/ludecy_hijing.F
-> Changes to triggering scheme for p-Pb
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / ludecy_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4
5       FUNCTION PAWT(A,B,C)
6       IF(((A**2-(B+C)**2)*(A**2-(B-C)**2)).GT.0) THEN
7          PAWT = SQRT((A**2-(B+C)**2)*(A**2-(B-C)**2))/(2.*A)
8       ELSE
9          PAWT = 0
10       ENDIF
11       RETURN
12       END
13
14       SUBROUTINE LUDECY_HIJING(IP) 
15     
16 C...Purpose: to handle the decay of unstable particles. 
17 #include "lujets_hijing.inc"
18 #include "ludat1_hijing.inc"
19 #include "ludat2_hijing.inc"
20 #include "ludat3_hijing.inc"
21       DIMENSION VDCY(4),KFLO(4),KFL1(4),PV(10,5),RORD(10),UE(3),BE(3),  
22      &WTCOR(10) 
23       DATA WTCOR/2.,5.,15.,60.,250.,1500.,1.2E4,1.2E5,150.,16./ 
24     
25 C...Functions: momentum in two-particle decays, four-product and    
26 C...matrix element times phase space in weak decays.    
27
28       FOUR(I,J)=P(I,4)*P(J,4)-P(I,1)*P(J,1)-P(I,2)*P(J,2)-P(I,3)*P(J,3) 
29       HMEPS(HA)=((1.-HRQ-HA)**2+3.*HA*(1.+HRQ-HA))* 
30      &SQRT((1.-HRQ-HA)**2-4.*HRQ*HA)    
31     
32 C...Initial values. 
33       NTRY=0    
34       NSAV=N    
35       KFA=IABS(K(IP,2)) 
36       KFS=ISIGN(1,K(IP,2))  
37       KC=LUCOMP_HIJING(KFA)    
38       MSTJ(92)=0    
39     
40 C...Choose lifetime and determine decay vertex. 
41       IF(K(IP,1).EQ.5) THEN 
42         V(IP,5)=0.  
43       ELSEIF(K(IP,1).NE.4) THEN 
44         V(IP,5)=-PMAS(KC,4)*LOG(RLU_HIJING(0)) 
45       ENDIF 
46       DO 100 J=1,4  
47   100 VDCY(J)=V(IP,J)+V(IP,5)*P(IP,J)/P(IP,5)   
48     
49 C...Determine whether decay allowed or not. 
50       MOUT=0    
51       IF(MSTJ(22).EQ.2) THEN    
52         IF(PMAS(KC,4).GT.PARJ(71)) MOUT=1   
53       ELSEIF(MSTJ(22).EQ.3) THEN    
54         IF(VDCY(1)**2+VDCY(2)**2+VDCY(3)**2.GT.PARJ(72)**2) MOUT=1  
55       ELSEIF(MSTJ(22).EQ.4) THEN    
56         IF(VDCY(1)**2+VDCY(2)**2.GT.PARJ(73)**2) MOUT=1 
57         IF(ABS(VDCY(3)).GT.PARJ(74)) MOUT=1 
58       ENDIF 
59       IF(MOUT.EQ.1.AND.K(IP,1).NE.5) THEN   
60         K(IP,1)=4   
61         RETURN  
62       ENDIF 
63     
64 C...Check existence of decay channels. Particle/antiparticle rules. 
65       KCA=KC    
66       IF(MDCY(KC,2).GT.0) THEN  
67         MDMDCY=MDME(MDCY(KC,2),2)   
68         IF(MDMDCY.GT.80.AND.MDMDCY.LE.90) KCA=MDMDCY    
69       ENDIF 
70       IF(MDCY(KCA,2).LE.0.OR.MDCY(KCA,3).LE.0) THEN 
71          CALL LUERRM_HIJING(9
72      $        ,'(LUDECY_HIJING:) no decay channel defined') 
73         RETURN  
74       ENDIF 
75       IF(MOD(KFA/1000,10).EQ.0.AND.(KCA.EQ.85.OR.KCA.EQ.87)) KFS=-KFS   
76       IF(KCHG(KC,3).EQ.0) THEN  
77         KFSP=1  
78         KFSN=0  
79         IF(RLU_HIJING(0).GT.0.5) KFS=-KFS  
80       ELSEIF(KFS.GT.0) THEN 
81         KFSP=1  
82         KFSN=0  
83       ELSE  
84         KFSP=0  
85         KFSN=1  
86       ENDIF 
87     
88 C...Sum branching ratios of allowed decay channels. 
89   110 NOPE=0    
90       BRSU=0.   
91       DO 120 IDL=MDCY(KCA,2),MDCY(KCA,2)+MDCY(KCA,3)-1  
92       IF(MDME(IDL,1).NE.1.AND.KFSP*MDME(IDL,1).NE.2.AND.    
93      &KFSN*MDME(IDL,1).NE.3) GOTO 120   
94       IF(MDME(IDL,2).GT.100) GOTO 120   
95       NOPE=NOPE+1   
96       BRSU=BRSU+BRAT(IDL)   
97   120 CONTINUE  
98       IF(NOPE.EQ.0) THEN    
99          CALL LUERRM_HIJING(2
100      $        ,'(LUDECY_HIJING:) all decay channels closed by user')    
101         RETURN  
102       ENDIF 
103     
104 C...Select decay channel among allowed ones.    
105   130 RBR=BRSU*RLU_HIJING(0)   
106       IDL=MDCY(KCA,2)-1 
107   140 IDL=IDL+1 
108       IF(MDME(IDL,1).NE.1.AND.KFSP*MDME(IDL,1).NE.2.AND.    
109      &KFSN*MDME(IDL,1).NE.3) THEN   
110         IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1) GOTO 140   
111       ELSEIF(MDME(IDL,2).GT.100) THEN   
112         IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1) GOTO 140   
113       ELSE  
114         IDC=IDL 
115         RBR=RBR-BRAT(IDL)   
116         IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1.AND.RBR.GT.0.) GOTO 140 
117       ENDIF 
118     
119 C...Start readout of decay channel: matrix element, reset counters. 
120       MMAT=MDME(IDC,2)  
121   150 NTRY=NTRY+1   
122       IF(NTRY.GT.1000) THEN 
123          CALL LUERRM_HIJING(14
124      $        ,'(LUDECY_HIJING:) caught in infinite loop') 
125         IF(MSTU(21).GE.1) RETURN    
126       ENDIF 
127       I=N   
128       NP=0  
129       NQ=0  
130       MBST=0    
131       IF(MMAT.GE.11.AND.MMAT.NE.46.AND.P(IP,4).GT.20.*P(IP,5)) MBST=1   
132       DO 160 J=1,4  
133       PV(1,J)=0.    
134   160 IF(MBST.EQ.0) PV(1,J)=P(IP,J) 
135       IF(MBST.EQ.1) PV(1,4)=P(IP,5) 
136       PV(1,5)=P(IP,5)   
137       PS=0. 
138       PSQ=0.    
139       MREM=0    
140     
141 C...Read out decay products. Convert to standard flavour code.  
142       JTMAX=5   
143       IF(MDME(IDC+1,2).EQ.101) JTMAX=10 
144       DO 170 JT=1,JTMAX 
145       IF(JT.LE.5) KP=KFDP(IDC,JT)   
146       IF(JT.GE.6) KP=KFDP(IDC+1,JT-5)   
147       IF(KP.EQ.0) GOTO 170  
148       KPA=IABS(KP)  
149       KCP=LUCOMP_HIJING(KPA)   
150       IF(KCHG(KCP,3).EQ.0.AND.KPA.NE.81.AND.KPA.NE.82) THEN 
151         KFP=KP  
152       ELSEIF(KPA.NE.81.AND.KPA.NE.82) THEN  
153         KFP=KFS*KP  
154       ELSEIF(KPA.EQ.81.AND.MOD(KFA/1000,10).EQ.0) THEN  
155         KFP=-KFS*MOD(KFA/10,10) 
156       ELSEIF(KPA.EQ.81.AND.MOD(KFA/100,10).GE.MOD(KFA/10,10)) THEN  
157         KFP=KFS*(100*MOD(KFA/10,100)+3) 
158       ELSEIF(KPA.EQ.81) THEN    
159         KFP=KFS*(1000*MOD(KFA/10,10)+100*MOD(KFA/100,10)+1) 
160       ELSEIF(KP.EQ.82) THEN 
161          CALL LUKFDI_HIJING(-KFS*INT(1.+(2.+PARJ(2))*RLU_HIJING(0)),0
162      $        ,KFP,KDUMP)   
163         IF(KFP.EQ.0) GOTO 150   
164         MSTJ(93)=1  
165         IF(PV(1,5).LT.PARJ(32)+2.*ULMASS_HIJING(KFP)) GOTO 150 
166       ELSEIF(KP.EQ.-82) THEN    
167         KFP=-KFP    
168         IF(IABS(KFP).GT.10) KFP=KFP+ISIGN(10000,KFP)    
169       ENDIF 
170       IF(KPA.EQ.81.OR.KPA.EQ.82) KCP=LUCOMP_HIJING(KFP)    
171     
172 C...Add decay product to event record or to quark flavour list. 
173       KFPA=IABS(KFP)    
174       KQP=KCHG(KCP,2)   
175       IF(MMAT.GE.11.AND.MMAT.LE.30.AND.KQP.NE.0) THEN   
176         NQ=NQ+1 
177         KFLO(NQ)=KFP    
178         MSTJ(93)=2  
179         PSQ=PSQ+ULMASS_HIJING(KFLO(NQ))    
180       ELSEIF(MMAT.GE.42.AND.MMAT.LE.43.AND.NP.EQ.3.AND.MOD(NQ,2).EQ.1)  
181      &THEN  
182         NQ=NQ-1 
183         PS=PS-P(I,5)    
184         K(I,1)=1    
185         KFI=K(I,2)  
186         CALL LUKFDI_HIJING(KFP,KFI,KFLDMP,K(I,2))  
187         IF(K(I,2).EQ.0) GOTO 150    
188         MSTJ(93)=1  
189         P(I,5)=ULMASS_HIJING(K(I,2))   
190         PS=PS+P(I,5)    
191       ELSE  
192         I=I+1   
193         NP=NP+1 
194         IF(MMAT.NE.33.AND.KQP.NE.0) NQ=NQ+1 
195         IF(MMAT.EQ.33.AND.KQP.NE.0.AND.KQP.NE.2) NQ=NQ+1    
196         K(I,1)=1+MOD(NQ,2)  
197         IF(MMAT.EQ.4.AND.JT.LE.2.AND.KFP.EQ.21) K(I,1)=2    
198         IF(MMAT.EQ.4.AND.JT.EQ.3) K(I,1)=1  
199         K(I,2)=KFP  
200         K(I,3)=IP   
201         K(I,4)=0    
202         K(I,5)=0    
203         P(I,5)=ULMASS_HIJING(KFP)  
204         IF(MMAT.EQ.45.AND.KFPA.EQ.89) P(I,5)=PARJ(32)   
205         PS=PS+P(I,5)    
206       ENDIF 
207   170 CONTINUE  
208     
209 C...Choose decay multiplicity in phase space model. 
210   180 IF(MMAT.GE.11.AND.MMAT.LE.30) THEN    
211         PSP=PS  
212         CNDE=PARJ(61)*LOG(MAX((PV(1,5)-PS-PSQ)/PARJ(62),1.1))   
213         IF(MMAT.EQ.12) CNDE=CNDE+PARJ(63)   
214   190   NTRY=NTRY+1 
215         IF(NTRY.GT.1000) THEN   
216            CALL LUERRM_HIJING(14
217      $          ,'(LUDECY_HIJING:) caught in infinite loop')   
218           IF(MSTU(21).GE.1) RETURN  
219         ENDIF   
220         IF(MMAT.LE.20) THEN 
221           GAUSS=SQRT(-2.*CNDE*LOG(MAX(1E-10,RLU_HIJING(0))))*  
222      &    SIN(PARU(2)*RLU_HIJING(0))   
223           ND=0.5+0.5*NP+0.25*NQ+CNDE+GAUSS  
224           IF(ND.LT.NP+NQ/2.OR.ND.LT.2.OR.ND.GT.10) GOTO 190 
225           IF(MMAT.EQ.13.AND.ND.EQ.2) GOTO 190   
226           IF(MMAT.EQ.14.AND.ND.LE.3) GOTO 190   
227           IF(MMAT.EQ.15.AND.ND.LE.4) GOTO 190   
228         ELSE    
229           ND=MMAT-20    
230         ENDIF   
231     
232 C...Form hadrons from flavour content.  
233         DO 200 JT=1,4   
234   200   KFL1(JT)=KFLO(JT)   
235         IF(ND.EQ.NP+NQ/2) GOTO 220  
236         DO 210 I=N+NP+1,N+ND-NQ/2   
237         JT=1+INT((NQ-1)*RLU_HIJING(0)) 
238         CALL LUKFDI_HIJING(KFL1(JT),0,KFL2,K(I,2)) 
239         IF(K(I,2).EQ.0) GOTO 190    
240   210   KFL1(JT)=-KFL2  
241   220   JT=2    
242         JT2=3   
243         JT3=4   
244         IF(NQ.EQ.4.AND.RLU_HIJING(0).LT.PARJ(66)) JT=4 
245         IF(JT.EQ.4.AND.ISIGN(1,KFL1(1)*(10-IABS(KFL1(1))))* 
246      &  ISIGN(1,KFL1(JT)*(10-IABS(KFL1(JT)))).GT.0) JT=3    
247         IF(JT.EQ.3) JT2=2   
248         IF(JT.EQ.4) JT3=2   
249         CALL LUKFDI_HIJING(KFL1(1),KFL1(JT),KFLDMP,K(N+ND-NQ/2+1,2))   
250         IF(K(N+ND-NQ/2+1,2).EQ.0) GOTO 190  
251         IF(NQ.EQ.4) CALL LUKFDI_HIJING(KFL1(JT2),KFL1(JT3),KFLDMP,K(N+ND
252      $       ,2))   
253         IF(NQ.EQ.4.AND.K(N+ND,2).EQ.0) GOTO 190 
254     
255 C...Check that sum of decay product masses not too large.   
256         PS=PSP  
257         DO 230 I=N+NP+1,N+ND    
258         K(I,1)=1    
259         K(I,3)=IP   
260         K(I,4)=0    
261         K(I,5)=0    
262         P(I,5)=ULMASS_HIJING(K(I,2))   
263   230   PS=PS+P(I,5)    
264         IF(PS+PARJ(64).GT.PV(1,5)) GOTO 190 
265     
266 C...Rescale energy to subtract off spectator quark mass.    
267       ELSEIF((MMAT.EQ.31.OR.MMAT.EQ.33.OR.MMAT.EQ.44.OR.MMAT.EQ.45).    
268      &AND.NP.GE.3) THEN 
269         PS=PS-P(N+NP,5) 
270         PQT=(P(N+NP,5)+PARJ(65))/PV(1,5)    
271         DO 240 J=1,5    
272         P(N+NP,J)=PQT*PV(1,J)   
273   240   PV(1,J)=(1.-PQT)*PV(1,J)    
274         IF(PS+PARJ(64).GT.PV(1,5)) GOTO 150 
275         ND=NP-1 
276         MREM=1  
277     
278 C...Phase space factors imposed in W decay. 
279       ELSEIF(MMAT.EQ.46) THEN   
280         MSTJ(93)=1  
281         PSMC=ULMASS_HIJING(K(N+1,2))   
282         MSTJ(93)=1  
283         PSMC=PSMC+ULMASS_HIJING(K(N+2,2))  
284         IF(MAX(PS,PSMC)+PARJ(32).GT.PV(1,5)) GOTO 130   
285         HR1=(P(N+1,5)/PV(1,5))**2   
286         HR2=(P(N+2,5)/PV(1,5))**2   
287         IF((1.-HR1-HR2)*(2.+HR1+HR2)*SQRT((1.-HR1-HR2)**2-4.*HR1*HR2).  
288      &  LT.2.*RLU_HIJING(0)) GOTO 130  
289         ND=NP   
290     
291 C...Fully specified final state: check mass broadening effects. 
292       ELSE  
293         IF(NP.GE.2.AND.PS+PARJ(64).GT.PV(1,5)) GOTO 150 
294         ND=NP   
295       ENDIF 
296     
297 C...Select W mass in decay Q -> W + q, without W propagator.    
298       IF(MMAT.EQ.45.AND.MSTJ(25).LE.0) THEN 
299         HLQ=(PARJ(32)/PV(1,5))**2   
300         HUQ=(1.-(P(N+2,5)+PARJ(64))/PV(1,5))**2 
301         HRQ=(P(N+2,5)/PV(1,5))**2   
302   250   HW=HLQ+RLU_HIJING(0)*(HUQ-HLQ) 
303         IF(HMEPS(HW).LT.RLU_HIJING(0)) GOTO 250    
304         P(N+1,5)=PV(1,5)*SQRT(HW)   
305     
306 C...Ditto, including W propagator. Divide mass range into three regions.    
307       ELSEIF(MMAT.EQ.45) THEN   
308         HQW=(PV(1,5)/PMAS(24,1))**2 
309         HLW=(PARJ(32)/PMAS(24,1))**2    
310         HUW=((PV(1,5)-P(N+2,5)-PARJ(64))/PMAS(24,1))**2 
311         HRQ=(P(N+2,5)/PV(1,5))**2   
312         HG=PMAS(24,2)/PMAS(24,1)    
313         HATL=ATAN((HLW-1.)/HG)  
314         HM=MIN(1.,HUW-0.001)    
315         HMV1=HMEPS(HM/HQW)/((HM-1.)**2+HG**2)   
316   260   HM=HM-HG    
317         HMV2=HMEPS(HM/HQW)/((HM-1.)**2+HG**2)   
318         HSAV1=HMEPS(HM/HQW) 
319         HSAV2=1./((HM-1.)**2+HG**2) 
320         IF(HMV2.GT.HMV1.AND.HM-HG.GT.HLW) THEN  
321           HMV1=HMV2 
322           GOTO 260  
323         ENDIF   
324         HMV=MIN(2.*HMV1,HMEPS(HM/HQW)/HG**2)    
325         HM1=1.-SQRT(1./HMV-HG**2)   
326         IF(HM1.GT.HLW.AND.HM1.LT.HM) THEN   
327           HM=HM1    
328         ELSEIF(HMV2.LE.HMV1) THEN   
329           HM=MAX(HLW,HM-MIN(0.1,1.-HM)) 
330         ENDIF   
331         HATM=ATAN((HM-1.)/HG)   
332         HWT1=(HATM-HATL)/HG 
333         HWT2=HMV*(MIN(1.,HUW)-HM)   
334         HWT3=0. 
335         IF(HUW.GT.1.) THEN  
336           HATU=ATAN((HUW-1.)/HG)    
337           HMP1=HMEPS(1./HQW)    
338           HWT3=HMP1*HATU/HG 
339         ENDIF   
340     
341 C...Select mass region and W mass there. Accept according to weight.    
342   270   HREG=RLU_HIJING(0)*(HWT1+HWT2+HWT3)    
343         IF(HREG.LE.HWT1) THEN   
344           HW=1.+HG*TAN(HATL+RLU_HIJING(0)*(HATM-HATL)) 
345           HACC=HMEPS(HW/HQW)    
346         ELSEIF(HREG.LE.HWT1+HWT2) THEN  
347           HW=HM+RLU_HIJING(0)*(MIN(1.,HUW)-HM) 
348           HACC=HMEPS(HW/HQW)/((HW-1.)**2+HG**2)/HMV 
349         ELSE    
350           HW=1.+HG*TAN(RLU_HIJING(0)*HATU) 
351           HACC=HMEPS(HW/HQW)/HMP1   
352         ENDIF   
353         IF(HACC.LT.RLU_HIJING(0)) GOTO 270 
354         P(N+1,5)=PMAS(24,1)*SQRT(HW)    
355       ENDIF 
356     
357 C...Determine position of grandmother, number of sisters, Q -> W sign.  
358       NM=0  
359       MSGN=0    
360       IF(MMAT.EQ.3.OR.MMAT.EQ.46) THEN  
361         IM=K(IP,3)  
362         IF(IM.LT.0.OR.IM.GE.IP) IM=0    
363         IF(IM.NE.0) KFAM=IABS(K(IM,2))  
364         IF(IM.NE.0.AND.MMAT.EQ.3) THEN  
365           DO 280 IL=MAX(IP-2,IM+1),MIN(IP+2,N)  
366   280     IF(K(IL,3).EQ.IM) NM=NM+1 
367           IF(NM.NE.2.OR.KFAM.LE.100.OR.MOD(KFAM,10).NE.1.OR.    
368      &    MOD(KFAM/1000,10).NE.0) NM=0  
369         ELSEIF(IM.NE.0.AND.MMAT.EQ.46) THEN 
370           MSGN=ISIGN(1,K(IM,2)*K(IP,2)) 
371           IF(KFAM.GT.100.AND.MOD(KFAM/1000,10).EQ.0) MSGN=  
372      &    MSGN*(-1)**MOD(KFAM/100,10)   
373         ENDIF   
374       ENDIF 
375     
376 C...Kinematics of one-particle decays.  
377       IF(ND.EQ.1) THEN  
378         DO 290 J=1,4    
379   290   P(N+1,J)=P(IP,J)    
380         GOTO 510    
381       ENDIF 
382     
383 C...Calculate maximum weight ND-particle decay. 
384       PV(ND,5)=P(N+ND,5)    
385       IF(ND.GE.3) THEN  
386         WTMAX=1./WTCOR(ND-2)    
387         PMAX=PV(1,5)-PS+P(N+ND,5)   
388         PMIN=0. 
389         DO 300 IL=ND-1,1,-1 
390         PMAX=PMAX+P(N+IL,5) 
391         PMIN=PMIN+P(N+IL+1,5)   
392   300   WTMAX=WTMAX*PAWT(PMAX,PMIN,P(N+IL,5))   
393       ENDIF 
394     
395 C...Find virtual gamma mass in Dalitz decay.    
396   310 IF(ND.EQ.2) THEN  
397       ELSEIF(MMAT.EQ.2) THEN    
398         PMES=4.*PMAS(11,1)**2   
399         PMRHO2=PMAS(131,1)**2   
400         PGRHO2=PMAS(131,2)**2   
401   320   PMST=PMES*(P(IP,5)**2/PMES)**RLU_HIJING(0) 
402         WT=(1+0.5*PMES/PMST)*SQRT(MAX(0.,1.-PMES/PMST))*    
403      &  (1.-PMST/P(IP,5)**2)**3*(1.+PGRHO2/PMRHO2)/ 
404      &  ((1.-PMST/PMRHO2)**2+PGRHO2/PMRHO2) 
405         IF(WT.LT.RLU_HIJING(0)) GOTO 320   
406         PV(2,5)=MAX(2.00001*PMAS(11,1),SQRT(PMST))  
407     
408 C...M-generator gives weight. If rejected, try again.   
409       ELSE  
410   330   RORD(1)=1.  
411         DO 350 IL1=2,ND-1   
412         RSAV=RLU_HIJING(0) 
413         DO 340 IL2=IL1-1,1,-1   
414         IF(RSAV.LE.RORD(IL2)) GOTO 350  
415   340   RORD(IL2+1)=RORD(IL2)   
416   350   RORD(IL2+1)=RSAV    
417         RORD(ND)=0. 
418         WT=1.   
419         DO 360 IL=ND-1,1,-1 
420         PV(IL,5)=PV(IL+1,5)+P(N+IL,5)+(RORD(IL)-RORD(IL+1))*(PV(1,5)-PS)    
421   360   WT=WT*PAWT(PV(IL,5),PV(IL+1,5),P(N+IL,5))   
422         IF(WT.LT.RLU_HIJING(0)*WTMAX) GOTO 330 
423       ENDIF 
424     
425 C...Perform two-particle decays in respective CM frame. 
426   370 DO 390 IL=1,ND-1  
427       PA=PAWT(PV(IL,5),PV(IL+1,5),P(N+IL,5))    
428       UE(3)=2.*RLU_HIJING(0)-1.    
429       PHI=PARU(2)*RLU_HIJING(0)    
430       UE(1)=SQRT(1.-UE(3)**2)*COS(PHI)  
431       UE(2)=SQRT(1.-UE(3)**2)*SIN(PHI)  
432       DO 380 J=1,3  
433       P(N+IL,J)=PA*UE(J)    
434   380 PV(IL+1,J)=-PA*UE(J)  
435       P(N+IL,4)=SQRT(PA**2+P(N+IL,5)**2)    
436   390 PV(IL+1,4)=SQRT(PA**2+PV(IL+1,5)**2)  
437     
438 C...Lorentz transform decay products to lab frame.  
439       DO 400 J=1,4  
440   400 P(N+ND,J)=PV(ND,J)    
441       DO 430 IL=ND-1,1,-1   
442       DO 410 J=1,3  
443   410 BE(J)=PV(IL,J)/PV(IL,4)   
444       GA=PV(IL,4)/PV(IL,5)  
445       DO 430 I=N+IL,N+ND    
446       BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3)    
447       DO 420 J=1,3  
448   420 P(I,J)=P(I,J)+GA*(GA*BEP/(1.+GA)+P(I,4))*BE(J)    
449   430 P(I,4)=GA*(P(I,4)+BEP)    
450     
451 C...Matrix elements for omega and phi decays.   
452       IF(MMAT.EQ.1) THEN    
453         WT=(P(N+1,5)*P(N+2,5)*P(N+3,5))**2-(P(N+1,5)*FOUR(N+2,N+3))**2  
454      &  -(P(N+2,5)*FOUR(N+1,N+3))**2-(P(N+3,5)*FOUR(N+1,N+2))**2    
455      &  +2.*FOUR(N+1,N+2)*FOUR(N+1,N+3)*FOUR(N+2,N+3)   
456         IF(MAX(WT*WTCOR(9)/P(IP,5)**6,0.001).LT.RLU_HIJING(0)) GOTO 310    
457     
458 C...Matrix elements for pi0 or eta Dalitz decay to gamma e+ e-. 
459       ELSEIF(MMAT.EQ.2) THEN    
460         FOUR12=FOUR(N+1,N+2)    
461         FOUR13=FOUR(N+1,N+3)    
462         FOUR23=0.5*PMST-0.25*PMES   
463         WT=(PMST-0.5*PMES)*(FOUR12**2+FOUR13**2)+   
464      &  PMES*(FOUR12*FOUR13+FOUR12**2+FOUR13**2)    
465         IF(WT.LT.RLU_HIJING(0)*0.25*PMST*(P(IP,5)**2-PMST)**2) GOTO 370    
466     
467 C...Matrix element for S0 -> S1 + V1 -> S1 + S2 + S3 (S scalar, 
468 C...V vector), of form cos**2(theta02) in V1 rest frame.    
469       ELSEIF(MMAT.EQ.3.AND.NM.EQ.2) THEN    
470         IF((P(IP,5)**2*FOUR(IM,N+1)-FOUR(IP,IM)*FOUR(IP,N+1))**2.LE.    
471      &        RLU_HIJING(0)*(FOUR(IP,IM)**2-(P(IP,5)*P(IM,5))**2)
472      $        *(FOUR(IP,N+1)**2-(P(IP,5)*P(N+1,5))**2)) GOTO 370    
473     
474 C...Matrix element for "onium" -> g + g + g or gamma + g + g.   
475       ELSEIF(MMAT.EQ.4) THEN    
476         HX1=2.*FOUR(IP,N+1)/P(IP,5)**2  
477         HX2=2.*FOUR(IP,N+2)/P(IP,5)**2  
478         HX3=2.*FOUR(IP,N+3)/P(IP,5)**2  
479         WT=((1.-HX1)/(HX2*HX3))**2+((1.-HX2)/(HX1*HX3))**2+ 
480      &  ((1.-HX3)/(HX1*HX2))**2 
481         IF(WT.LT.2.*RLU_HIJING(0)) GOTO 310    
482         IF(K(IP+1,2).EQ.22.AND.(1.-HX1)*P(IP,5)**2.LT.4.*PARJ(32)**2)   
483      &  GOTO 310    
484     
485 C...Effective matrix element for nu spectrum in tau -> nu + hadrons.    
486       ELSEIF(MMAT.EQ.41) THEN   
487         HX1=2.*FOUR(IP,N+1)/P(IP,5)**2  
488         IF(8.*HX1*(3.-2.*HX1)/9..LT.RLU_HIJING(0)) GOTO 310    
489     
490 C...Matrix elements for weak decays (only semileptonic for c and b) 
491       ELSEIF(MMAT.GE.42.AND.MMAT.LE.44.AND.ND.EQ.3) THEN    
492         IF(MBST.EQ.0) WT=FOUR(IP,N+1)*FOUR(N+2,N+3) 
493         IF(MBST.EQ.1) WT=P(IP,5)*P(N+1,4)*FOUR(N+2,N+3) 
494         IF(WT.LT.RLU_HIJING(0)*P(IP,5)*PV(1,5)**3/WTCOR(10)) GOTO 310  
495       ELSEIF(MMAT.GE.42.AND.MMAT.LE.44) THEN    
496         DO 440 J=1,4    
497         P(N+NP+1,J)=0.  
498         DO 440 IS=N+3,N+NP  
499   440   P(N+NP+1,J)=P(N+NP+1,J)+P(IS,J) 
500         IF(MBST.EQ.0) WT=FOUR(IP,N+1)*FOUR(N+2,N+NP+1)  
501         IF(MBST.EQ.1) WT=P(IP,5)*P(N+1,4)*FOUR(N+2,N+NP+1)  
502         IF(WT.LT.RLU_HIJING(0)*P(IP,5)*PV(1,5)**3/WTCOR(10)) GOTO 310  
503     
504 C...Angular distribution in W decay.    
505       ELSEIF(MMAT.EQ.46.AND.MSGN.NE.0) THEN 
506         IF(MSGN.GT.0) WT=FOUR(IM,N+1)*FOUR(N+2,IP+1)    
507         IF(MSGN.LT.0) WT=FOUR(IM,N+2)*FOUR(N+1,IP+1)    
508         IF(WT.LT.RLU_HIJING(0)*P(IM,5)**4/WTCOR(10)) GOTO 370  
509       ENDIF 
510     
511 C...Scale back energy and reattach spectator.   
512       IF(MREM.EQ.1) THEN    
513         DO 450 J=1,5    
514   450   PV(1,J)=PV(1,J)/(1.-PQT)    
515         ND=ND+1 
516         MREM=0  
517       ENDIF 
518     
519 C...Low invariant mass for system with spectator quark gives particle,  
520 C...not two jets. Readjust momenta accordingly. 
521       IF((MMAT.EQ.31.OR.MMAT.EQ.45).AND.ND.EQ.3) THEN   
522         MSTJ(93)=1  
523         PM2=ULMASS_HIJING(K(N+2,2))    
524         MSTJ(93)=1  
525         PM3=ULMASS_HIJING(K(N+3,2))    
526         IF(P(N+2,5)**2+P(N+3,5)**2+2.*FOUR(N+2,N+3).GE. 
527      &  (PARJ(32)+PM2+PM3)**2) GOTO 510 
528         K(N+2,1)=1  
529         KFTEMP=K(N+2,2) 
530         CALL LUKFDI_HIJING(KFTEMP,K(N+3,2),KFLDMP,K(N+2,2))    
531         IF(K(N+2,2).EQ.0) GOTO 150  
532         P(N+2,5)=ULMASS_HIJING(K(N+2,2))   
533         PS=P(N+1,5)+P(N+2,5)    
534         PV(2,5)=P(N+2,5)    
535         MMAT=0  
536         ND=2    
537         GOTO 370    
538       ELSEIF(MMAT.EQ.44) THEN   
539         MSTJ(93)=1  
540         PM3=ULMASS_HIJING(K(N+3,2))    
541         MSTJ(93)=1  
542         PM4=ULMASS_HIJING(K(N+4,2))    
543         IF(P(N+3,5)**2+P(N+4,5)**2+2.*FOUR(N+3,N+4).GE. 
544      &  (PARJ(32)+PM3+PM4)**2) GOTO 480 
545         K(N+3,1)=1  
546         KFTEMP=K(N+3,2) 
547         CALL LUKFDI_HIJING(KFTEMP,K(N+4,2),KFLDMP,K(N+3,2))    
548         IF(K(N+3,2).EQ.0) GOTO 150  
549         P(N+3,5)=ULMASS_HIJING(K(N+3,2))   
550         DO 460 J=1,3    
551   460   P(N+3,J)=P(N+3,J)+P(N+4,J)  
552         P(N+3,4)=SQRT(P(N+3,1)**2+P(N+3,2)**2+P(N+3,3)**2+P(N+3,5)**2)  
553         HA=P(N+1,4)**2-P(N+2,4)**2  
554         HB=HA-(P(N+1,5)**2-P(N+2,5)**2) 
555         HC=(P(N+1,1)-P(N+2,1))**2+(P(N+1,2)-P(N+2,2))**2+   
556      &  (P(N+1,3)-P(N+2,3))**2  
557         HD=(PV(1,4)-P(N+3,4))**2    
558         HE=HA**2-2.*HD*(P(N+1,4)**2+P(N+2,4)**2)+HD**2  
559         HF=HD*HC-HB**2  
560         HG=HD*HC-HA*HB  
561         HH=(SQRT(HG**2+HE*HF)-HG)/(2.*HF)   
562         DO 470 J=1,3    
563         PCOR=HH*(P(N+1,J)-P(N+2,J)) 
564         P(N+1,J)=P(N+1,J)+PCOR  
565   470   P(N+2,J)=P(N+2,J)-PCOR  
566         P(N+1,4)=SQRT(P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2+P(N+1,5)**2)  
567         P(N+2,4)=SQRT(P(N+2,1)**2+P(N+2,2)**2+P(N+2,3)**2+P(N+2,5)**2)  
568         ND=ND-1 
569       ENDIF 
570     
571 C...Check invariant mass of W jets. May give one particle or start over.    
572   480 IF(MMAT.GE.42.AND.MMAT.LE.44.AND.IABS(K(N+1,2)).LT.10) THEN   
573         PMR=SQRT(MAX(0.,P(N+1,5)**2+P(N+2,5)**2+2.*FOUR(N+1,N+2)))  
574         MSTJ(93)=1  
575         PM1=ULMASS_HIJING(K(N+1,2))    
576         MSTJ(93)=1  
577         PM2=ULMASS_HIJING(K(N+2,2))    
578         IF(PMR.GT.PARJ(32)+PM1+PM2) GOTO 490    
579         KFLDUM=INT(1.5+RLU_HIJING(0))  
580         CALL LUKFDI_HIJING(K(N+1,2),-ISIGN(KFLDUM,K(N+1,2)),KFLDMP,KF1)    
581         CALL LUKFDI_HIJING(K(N+2,2),-ISIGN(KFLDUM,K(N+2,2)),KFLDMP,KF2)    
582         IF(KF1.EQ.0.OR.KF2.EQ.0) GOTO 150   
583         PSM=ULMASS_HIJING(KF1)+ULMASS_HIJING(KF2) 
584         IF(MMAT.EQ.42.AND.PMR.GT.PARJ(64)+PSM) GOTO 490 
585         IF(MMAT.GE.43.AND.PMR.GT.0.2*PARJ(32)+PSM) GOTO 490 
586         IF(ND.EQ.4.OR.KFA.EQ.15) GOTO 150   
587         K(N+1,1)=1  
588         KFTEMP=K(N+1,2) 
589         CALL LUKFDI_HIJING(KFTEMP,K(N+2,2),KFLDMP,K(N+1,2))    
590         IF(K(N+1,2).EQ.0) GOTO 150  
591         P(N+1,5)=ULMASS_HIJING(K(N+1,2))   
592         K(N+2,2)=K(N+3,2)   
593         P(N+2,5)=P(N+3,5)   
594         PS=P(N+1,5)+P(N+2,5)    
595         PV(2,5)=P(N+3,5)    
596         MMAT=0  
597         ND=2    
598         GOTO 370    
599       ENDIF 
600     
601 C...Phase space decay of partons from W decay.  
602   490 IF(MMAT.EQ.42.AND.IABS(K(N+1,2)).LT.10) THEN  
603         KFLO(1)=K(N+1,2)    
604         KFLO(2)=K(N+2,2)    
605         K(N+1,1)=K(N+3,1)   
606         K(N+1,2)=K(N+3,2)   
607         DO 500 J=1,5    
608         PV(1,J)=P(N+1,J)+P(N+2,J)   
609   500   P(N+1,J)=P(N+3,J)   
610         PV(1,5)=PMR 
611         N=N+1   
612         NP=0    
613         NQ=2    
614         PS=0.   
615         MSTJ(93)=2  
616         PSQ=ULMASS_HIJING(KFLO(1)) 
617         MSTJ(93)=2  
618         PSQ=PSQ+ULMASS_HIJING(KFLO(2)) 
619         MMAT=11 
620         GOTO 180    
621       ENDIF 
622     
623 C...Boost back for rapidly moving particle. 
624   510 N=N+ND    
625       IF(MBST.EQ.1) THEN    
626         DO 520 J=1,3    
627   520   BE(J)=P(IP,J)/P(IP,4)   
628         GA=P(IP,4)/P(IP,5)  
629         DO 540 I=NSAV+1,N   
630         BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3)  
631         DO 530 J=1,3    
632   530   P(I,J)=P(I,J)+GA*(GA*BEP/(1.+GA)+P(I,4))*BE(J)  
633   540   P(I,4)=GA*(P(I,4)+BEP)  
634       ENDIF 
635     
636 C...Fill in position of decay vertex.   
637       DO 560 I=NSAV+1,N 
638       DO 550 J=1,4  
639   550 V(I,J)=VDCY(J)    
640   560 V(I,5)=0. 
641     
642 C...Set up for parton shower evolution from jets.   
643       IF(MSTJ(23).GE.1.AND.MMAT.EQ.4.AND.K(NSAV+1,2).EQ.21) THEN    
644         K(NSAV+1,1)=3   
645         K(NSAV+2,1)=3   
646         K(NSAV+3,1)=3   
647         K(NSAV+1,4)=MSTU(5)*(NSAV+2)    
648         K(NSAV+1,5)=MSTU(5)*(NSAV+3)    
649         K(NSAV+2,4)=MSTU(5)*(NSAV+3)    
650         K(NSAV+2,5)=MSTU(5)*(NSAV+1)    
651         K(NSAV+3,4)=MSTU(5)*(NSAV+1)    
652         K(NSAV+3,5)=MSTU(5)*(NSAV+2)    
653         MSTJ(92)=-(NSAV+1)  
654       ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.4) THEN  
655         K(NSAV+2,1)=3   
656         K(NSAV+3,1)=3   
657         K(NSAV+2,4)=MSTU(5)*(NSAV+3)    
658         K(NSAV+2,5)=MSTU(5)*(NSAV+3)    
659         K(NSAV+3,4)=MSTU(5)*(NSAV+2)    
660         K(NSAV+3,5)=MSTU(5)*(NSAV+2)    
661         MSTJ(92)=NSAV+2 
662       ELSEIF(MSTJ(23).GE.1.AND.(MMAT.EQ.32.OR.MMAT.EQ.44.OR.MMAT.EQ.46).    
663      &AND.IABS(K(NSAV+1,2)).LE.10.AND.IABS(K(NSAV+2,2)).LE.10) THEN 
664         K(NSAV+1,1)=3   
665         K(NSAV+2,1)=3   
666         K(NSAV+1,4)=MSTU(5)*(NSAV+2)    
667         K(NSAV+1,5)=MSTU(5)*(NSAV+2)    
668         K(NSAV+2,4)=MSTU(5)*(NSAV+1)    
669         K(NSAV+2,5)=MSTU(5)*(NSAV+1)    
670         MSTJ(92)=NSAV+1 
671       ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.33.AND.IABS(K(NSAV+2,2)).EQ.21)  
672      &THEN  
673         K(NSAV+1,1)=3   
674         K(NSAV+2,1)=3   
675         K(NSAV+3,1)=3   
676         KCP=LUCOMP_HIJING(K(NSAV+1,2)) 
677         KQP=KCHG(KCP,2)*ISIGN(1,K(NSAV+1,2))    
678         JCON=4  
679         IF(KQP.LT.0) JCON=5 
680         K(NSAV+1,JCON)=MSTU(5)*(NSAV+2) 
681         K(NSAV+2,9-JCON)=MSTU(5)*(NSAV+1)   
682         K(NSAV+2,JCON)=MSTU(5)*(NSAV+3) 
683         K(NSAV+3,9-JCON)=MSTU(5)*(NSAV+2)   
684         MSTJ(92)=NSAV+1 
685       ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.33) THEN 
686         K(NSAV+1,1)=3   
687         K(NSAV+3,1)=3   
688         K(NSAV+1,4)=MSTU(5)*(NSAV+3)    
689         K(NSAV+1,5)=MSTU(5)*(NSAV+3)    
690         K(NSAV+3,4)=MSTU(5)*(NSAV+1)    
691         K(NSAV+3,5)=MSTU(5)*(NSAV+1)    
692         MSTJ(92)=NSAV+1 
693       ENDIF 
694     
695 C...Mark decayed particle.  
696       IF(K(IP,1).EQ.5) K(IP,1)=15   
697       IF(K(IP,1).LE.10) K(IP,1)=11  
698       K(IP,4)=NSAV+1    
699       K(IP,5)=N 
700     
701       RETURN    
702       END