]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/klu_hijing.F
Fix Coverity defects
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / klu_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4     
5       FUNCTION KLU_HIJING(I,J) 
6     
7 C...Purpose: to provide various integer-valued event related data.  
8 #include "lujets_hijing.inc"
9 #include "ludat1_hijing.inc"
10 #include "ludat2_hijing.inc"
11     
12 C...Default value. For I=0 number of entries, number of stable entries  
13 C...or 3 times total charge.    
14       KLU_HIJING=0 
15       IF(I.LT.0.OR.I.GT.MSTU(4).OR.J.LE.0) THEN 
16       ELSEIF(I.EQ.0.AND.J.EQ.1) THEN    
17         KLU_HIJING=N   
18       ELSEIF(I.EQ.0.AND.(J.EQ.2.OR.J.EQ.6)) THEN    
19         DO 100 I1=1,N   
20            IF(J.EQ.2.AND.K(I1,1).GE.1.AND.K(I1,1).LE.10) KLU_HIJING
21      $          =KLU_HIJING+1 
22            IF(J.EQ.6.AND.K(I1,1).GE.1.AND.K(I1,1).LE.10) KLU_HIJING
23      $          =KLU_HIJING+LUCHGE_HIJING(K(I1,2)) 
24   100   CONTINUE    
25       ELSEIF(I.EQ.0) THEN   
26     
27 C...For I > 0 direct readout of K matrix or charge. 
28       ELSEIF(J.LE.5) THEN   
29         KLU_HIJING=K(I,J)  
30       ELSEIF(J.EQ.6) THEN   
31         KLU_HIJING=LUCHGE_HIJING(K(I,2))  
32     
33 C...Status (existing/fragmented/decayed), parton/hadron separation. 
34       ELSEIF(J.LE.8) THEN   
35         IF(K(I,1).GE.1.AND.K(I,1).LE.10) KLU_HIJING=1  
36         IF(J.EQ.8) KLU_HIJING=KLU_HIJING*K(I,2)   
37       ELSEIF(J.LE.12) THEN  
38         KFA=IABS(K(I,2))    
39         KC=LUCOMP_HIJING(KFA)  
40         KQ=0    
41         IF(KC.NE.0) KQ=KCHG(KC,2)   
42         IF(J.EQ.9.AND.KC.NE.0.AND.KQ.NE.0) KLU_HIJING=K(I,2)   
43         IF(J.EQ.10.AND.KC.NE.0.AND.KQ.EQ.0) KLU_HIJING=K(I,2)  
44         IF(J.EQ.11) KLU_HIJING=KC  
45         IF(J.EQ.12) KLU_HIJING=KQ*ISIGN(1,K(I,2))  
46     
47 C...Heaviest flavour in hadron/diquark. 
48       ELSEIF(J.EQ.13) THEN  
49         KFA=IABS(K(I,2))    
50         KLU_HIJING=MOD(KFA/100,10)*(-1)**MOD(KFA/100,10)   
51         IF(KFA.LT.10) KLU_HIJING=KFA   
52         IF(MOD(KFA/1000,10).NE.0) KLU_HIJING=MOD(KFA/1000,10)  
53         KLU_HIJING=KLU_HIJING*ISIGN(1,K(I,2)) 
54     
55 C...Particle history: generation, ancestor, rank.   
56       ELSEIF(J.LE.16) THEN  
57         I2=I    
58         I1=I    
59   110   KLU_HIJING=KLU_HIJING+1   
60         I3=I2   
61         I2=I1   
62         I1=K(I1,3)  
63         IF(I1.GT.0.AND.K(I1,1).GT.0.AND.K(I1,1).LE.20) GOTO 110 
64         IF(J.EQ.15) KLU_HIJING=I2  
65         IF(J.EQ.16) THEN    
66           KLU_HIJING=0 
67           DO 120 I1=I2+1,I3 
68  120         IF(K(I1,3).EQ.I2.AND.K(I1,1).GT.0.AND.K(I1,1).LE.20)
69      $            KLU_HIJING=KLU_HIJING+1    
70         ENDIF   
71     
72 C...Particle coming from collapsing jet system or not.  
73       ELSEIF(J.EQ.17) THEN  
74         I1=I    
75   130   KLU_HIJING=KLU_HIJING+1   
76         I3=I1   
77         I1=K(I1,3)  
78         I0=MAX(1,I1)    
79         KC=LUCOMP_HIJING(K(I0,2))  
80         IF(I1.EQ.0.OR.K(I0,1).LE.0.OR.K(I0,1).GT.20.OR.KC.EQ.0) THEN    
81           IF(KLU_HIJING.EQ.1) KLU_HIJING=-1   
82           IF(KLU_HIJING.GT.1) KLU_HIJING=0    
83           RETURN    
84         ENDIF   
85         IF(KCHG(KC,2).EQ.0) GOTO 130    
86         IF(K(I1,1).NE.12) KLU_HIJING=0 
87         IF(K(I1,1).NE.12) RETURN    
88         I2=I1   
89   140   I2=I2+1 
90         IF(I2.LT.N.AND.K(I2,1).NE.11) GOTO 140  
91         K3M=K(I3-1,3)   
92         IF(K3M.GE.I1.AND.K3M.LE.I2) KLU_HIJING=0   
93         K3P=K(I3+1,3)   
94         IF(I3.LT.N.AND.K3P.GE.I1.AND.K3P.LE.I2) KLU_HIJING=0   
95     
96 C...Number of decay products. Colour flow.  
97       ELSEIF(J.EQ.18) THEN  
98          IF(K(I,1).EQ.11.OR.K(I,1).EQ.12) KLU_HIJING=MAX(0,K(I,5)-K(I,4)
99      $        +1) 
100         IF(K(I,4).EQ.0.OR.K(I,5).EQ.0) KLU_HIJING=0    
101       ELSEIF(J.LE.22) THEN  
102         IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) RETURN    
103         IF(J.EQ.19) KLU_HIJING=MOD(K(I,4)/MSTU(5),MSTU(5)) 
104         IF(J.EQ.20) KLU_HIJING=MOD(K(I,5)/MSTU(5),MSTU(5)) 
105         IF(J.EQ.21) KLU_HIJING=MOD(K(I,4),MSTU(5)) 
106         IF(J.EQ.22) KLU_HIJING=MOD(K(I,5),MSTU(5)) 
107       ELSE  
108       ENDIF 
109     
110       RETURN    
111       END