]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/pyspli_hijing.F
Protection against division by 0 added.
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / pyspli_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4     
5       SUBROUTINE PYSPLI_HIJING(KF,KFLIN,KFLCH,KFLSP)   
6     
7 C...In case of a hadron remnant which is more complicated than just a   
8 C...quark or a diquark, split it into two (partons or hadron + parton). 
9       DIMENSION KFL(3)  
10     
11 C...Preliminaries. Parton composition.  
12       KFA=IABS(KF)  
13       KFS=ISIGN(1,KF)   
14       KFL(1)=MOD(KFA/1000,10)   
15       KFL(2)=MOD(KFA/100,10)    
16       KFL(3)=MOD(KFA/10,10) 
17       KFLR=KFLIN*KFS    
18       KFLCH=0   
19     
20 C...Subdivide meson.    
21       IF(KFL(1).EQ.0) THEN  
22         KFL(2)=KFL(2)*(-1)**KFL(2)  
23         KFL(3)=-KFL(3)*(-1)**IABS(KFL(2))   
24         IF(KFLR.EQ.KFL(2)) THEN 
25           KFLSP=KFL(3)  
26         ELSEIF(KFLR.EQ.KFL(3)) THEN 
27           KFLSP=KFL(2)  
28         ELSEIF(IABS(KFLR).EQ.21.AND.RLU_HIJING(0).GT.0.5) THEN 
29           KFLSP=KFL(2)  
30           KFLCH=KFL(3)  
31         ELSEIF(IABS(KFLR).EQ.21) THEN   
32           KFLSP=KFL(3)  
33           KFLCH=KFL(2)  
34         ELSEIF(KFLR*KFL(2).GT.0) THEN   
35           CALL LUKFDI_HIJING(-KFLR,KFL(2),KFDUMP,KFLCH)    
36           KFLSP=KFL(3)  
37         ELSE    
38           CALL LUKFDI_HIJING(-KFLR,KFL(3),KFDUMP,KFLCH)    
39           KFLSP=KFL(2)  
40         ENDIF   
41     
42 C...Subdivide baryon.   
43       ELSE  
44         NAGR=0  
45         DO 100 J=1,3    
46   100   IF(KFLR.EQ.KFL(J)) NAGR=NAGR+1  
47         IF(NAGR.GE.1) THEN  
48           RAGR=0.00001+(NAGR-0.00002)*RLU_HIJING(0)    
49           IAGR=0    
50           DO 110 J=1,3  
51           IF(KFLR.EQ.KFL(J)) RAGR=RAGR-1.   
52   110     IF(IAGR.EQ.0.AND.RAGR.LE.0.) IAGR=J   
53         ELSE    
54           IAGR=1.00001+2.99998*RLU_HIJING(0)   
55         ENDIF   
56         ID1=1   
57         IF(IAGR.EQ.1) ID1=2 
58         IF(IAGR.EQ.1.AND.KFL(3).GT.KFL(2)) ID1=3    
59         ID2=6-IAGR-ID1  
60         KSP=3   
61         IF(MOD(KFA,10).EQ.2.AND.KFL(1).EQ.KFL(2)) THEN  
62           IF(IAGR.NE.3.AND.RLU_HIJING(0).GT.0.25) KSP=1    
63         ELSEIF(MOD(KFA,10).EQ.2.AND.KFL(2).GE.KFL(3)) THEN  
64           IF(IAGR.NE.1.AND.RLU_HIJING(0).GT.0.25) KSP=1    
65         ELSEIF(MOD(KFA,10).EQ.2) THEN   
66           IF(IAGR.EQ.1) KSP=1   
67           IF(IAGR.NE.1.AND.RLU_HIJING(0).GT.0.75) KSP=1    
68         ENDIF   
69         KFLSP=1000*KFL(ID1)+100*KFL(ID2)+KSP    
70         IF(KFLIN.EQ.21) THEN    
71           KFLCH=KFL(IAGR)   
72         ELSEIF(NAGR.EQ.0.AND.KFLR.GT.0) THEN    
73           CALL LUKFDI_HIJING(-KFLR,KFL(IAGR),KFDUMP,KFLCH) 
74         ELSEIF(NAGR.EQ.0) THEN  
75           CALL LUKFDI_HIJING(10000+KFLSP,-KFLR,KFDUMP,KFLCH)   
76           KFLSP=KFL(IAGR)   
77         ENDIF   
78       ENDIF 
79     
80 C...Add on correct sign for result. 
81       KFLCH=KFLCH*KFS   
82       KFLSP=KFLSP*KFS   
83     
84       RETURN    
85       END