]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/lucomp_hijing.F
Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / lucomp_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4     
5       FUNCTION LUCOMP_HIJING(KF)   
6     
7 C...Purpose: to compress the standard KF codes for use in mass and decay    
8 C...arrays; also to check whether a given code actually is defined. 
9 #include "ludat2_hijing.inc"
10     
11 C...Subdivide KF code into constituent pieces.  
12       LUCOMP_HIJING=0  
13       KFA=IABS(KF)  
14       KFLA=MOD(KFA/1000,10) 
15       KFLB=MOD(KFA/100,10)  
16       KFLC=MOD(KFA/10,10)   
17       KFLS=MOD(KFA,10)  
18       KFLR=MOD(KFA/10000,10)    
19     
20 C...Simple cases: direct translation or special codes.  
21       IF(KFA.EQ.0.OR.KFA.GE.100000) THEN    
22       ELSEIF(KFA.LE.100) THEN   
23         LUCOMP_HIJING=KFA  
24         IF(KF.LT.0.AND.KCHG(KFA,3).EQ.0) LUCOMP_HIJING=0   
25       ELSEIF(KFLS.EQ.0) THEN    
26         IF(KF.EQ.130) LUCOMP_HIJING=221    
27         IF(KF.EQ.310) LUCOMP_HIJING=222    
28         IF(KFA.EQ.210) LUCOMP_HIJING=281   
29         IF(KFA.EQ.2110) LUCOMP_HIJING=282  
30         IF(KFA.EQ.2210) LUCOMP_HIJING=283  
31     
32 C...Mesons. 
33       ELSEIF(KFA-10000*KFLR.LT.1000) THEN   
34         IF(KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.0.OR.KFLC.EQ.9) THEN   
35         ELSEIF(KFLB.LT.KFLC) THEN   
36         ELSEIF(KF.LT.0.AND.KFLB.EQ.KFLC) THEN   
37         ELSEIF(KFLB.EQ.KFLC) THEN   
38           IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN  
39             LUCOMP_HIJING=110+KFLB 
40           ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN  
41             LUCOMP_HIJING=130+KFLB 
42           ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN  
43             LUCOMP_HIJING=150+KFLB 
44           ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN  
45             LUCOMP_HIJING=170+KFLB 
46           ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN  
47             LUCOMP_HIJING=190+KFLB 
48           ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN  
49             LUCOMP_HIJING=210+KFLB 
50           ENDIF 
51         ELSEIF(KFLB.LE.5.AND.KFLC.LE.3) THEN    
52           IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN  
53             LUCOMP_HIJING=100+((KFLB-1)*(KFLB-2))/2+KFLC   
54           ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN  
55             LUCOMP_HIJING=120+((KFLB-1)*(KFLB-2))/2+KFLC   
56           ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN  
57             LUCOMP_HIJING=140+((KFLB-1)*(KFLB-2))/2+KFLC   
58           ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN  
59             LUCOMP_HIJING=160+((KFLB-1)*(KFLB-2))/2+KFLC   
60           ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN  
61             LUCOMP_HIJING=180+((KFLB-1)*(KFLB-2))/2+KFLC   
62           ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN  
63             LUCOMP_HIJING=200+((KFLB-1)*(KFLB-2))/2+KFLC   
64           ENDIF 
65         ELSEIF((KFLS.EQ.1.AND.KFLR.LE.1).OR.(KFLS.EQ.3.AND.KFLR.LE.2).  
66      &  OR.(KFLS.EQ.5.AND.KFLR.EQ.0)) THEN  
67           LUCOMP_HIJING=80+KFLB    
68         ENDIF   
69     
70 C...Diquarks.   
71       ELSEIF((KFLR.EQ.0.OR.KFLR.EQ.1).AND.KFLC.EQ.0) THEN   
72         IF(KFLS.NE.1.AND.KFLS.NE.3) THEN    
73         ELSEIF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9) THEN    
74         ELSEIF(KFLA.LT.KFLB) THEN   
75         ELSEIF(KFLS.EQ.1.AND.KFLA.EQ.KFLB) THEN 
76         ELSE    
77           LUCOMP_HIJING=90 
78         ENDIF   
79     
80 C...Spin 1/2 baryons.   
81       ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.2) THEN  
82         IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN   
83         ELSEIF(KFLA.LE.KFLC.OR.KFLA.LT.KFLB) THEN   
84         ELSEIF(KFLA.GE.6.OR.KFLB.GE.4.OR.KFLC.GE.4) THEN    
85           LUCOMP_HIJING=80+KFLA    
86         ELSEIF(KFLB.LT.KFLC) THEN   
87            LUCOMP_HIJING=300+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLC*(KFLC-1))
88      $          /2+KFLB  
89         ELSE    
90            LUCOMP_HIJING=330+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))
91      $          /2+KFLC  
92         ENDIF   
93     
94 C...Spin 3/2 baryons.   
95       ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.4) THEN  
96         IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN   
97         ELSEIF(KFLA.LT.KFLB.OR.KFLB.LT.KFLC) THEN   
98         ELSEIF(KFLA.GE.6.OR.KFLB.GE.4) THEN 
99           LUCOMP_HIJING=80+KFLA    
100         ELSE    
101            LUCOMP_HIJING=360+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))
102      $          /2+KFLC  
103         ENDIF   
104       ENDIF 
105     
106       RETURN    
107       END