]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA/jetset/lucomp.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / PYTHIA / jetset / lucomp.F
CommitLineData
fe4da5cc 1
2C*********************************************************************
3
4 FUNCTION LUCOMP(KF)
5
6C...Purpose: to compress the standard KF codes for use in mass and decay
7C...arrays; also to check whether a given code actually is defined.
8 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
9 SAVE /LUDAT2/
10 DIMENSION KFTAB(25),KCTAB(25)
11 DATA KFTAB/211,111,221,311,321,130,310,213,113,223,
12 &313,323,2112,2212,210,2110,2210,110,220,330,440,30443,30553,0,0/
13 DATA KCTAB/101,111,112,102,103,221,222,121,131,132,
14 &122,123,332,333,281,282,283,284,285,286,287,231,235,0,0/
15
16C...Starting values.
17 LUCOMP=0
18 KFA=IABS(KF)
19
20C...Simple cases: direct translation or table.
21 IF(KFA.EQ.0.OR.KFA.GE.100000) THEN
22 RETURN
23 ELSEIF(KFA.LE.100) THEN
24 LUCOMP=KFA
25 IF(KF.LT.0.AND.KCHG(KFA,3).EQ.0) LUCOMP=0
26 RETURN
27 ELSE
28 DO 100 IKF=1,23
29 IF(KFA.EQ.KFTAB(IKF)) THEN
30 LUCOMP=KCTAB(IKF)
31 IF(KF.LT.0.AND.KCHG(LUCOMP,3).EQ.0) LUCOMP=0
32 RETURN
33 ENDIF
34 100 CONTINUE
35 ENDIF
36
37C...Subdivide KF code into constituent pieces.
38 KFLA=MOD(KFA/1000,10)
39 KFLB=MOD(KFA/100,10)
40 KFLC=MOD(KFA/10,10)
41 KFLS=MOD(KFA,10)
42 KFLR=MOD(KFA/10000,10)
43
44C...Mesons.
45 IF(KFA-10000*KFLR.LT.1000) THEN
46 IF(KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.0.OR.KFLC.EQ.9) THEN
47 ELSEIF(KFLB.LT.KFLC) THEN
48 ELSEIF(KF.LT.0.AND.KFLB.EQ.KFLC) THEN
49 ELSEIF(KFLB.EQ.KFLC) THEN
50 IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN
51 LUCOMP=110+KFLB
52 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN
53 LUCOMP=130+KFLB
54 ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN
55 LUCOMP=150+KFLB
56 ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN
57 LUCOMP=170+KFLB
58 ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN
59 LUCOMP=190+KFLB
60 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN
61 LUCOMP=210+KFLB
62 ENDIF
63 ELSEIF(KFLB.LE.5) THEN
64 IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN
65 LUCOMP=100+((KFLB-1)*(KFLB-2))/2+KFLC
66 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN
67 LUCOMP=120+((KFLB-1)*(KFLB-2))/2+KFLC
68 ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN
69 LUCOMP=140+((KFLB-1)*(KFLB-2))/2+KFLC
70 ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN
71 LUCOMP=160+((KFLB-1)*(KFLB-2))/2+KFLC
72 ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN
73 LUCOMP=180+((KFLB-1)*(KFLB-2))/2+KFLC
74 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN
75 LUCOMP=200+((KFLB-1)*(KFLB-2))/2+KFLC
76 ENDIF
77 ELSEIF((KFLS.EQ.1.AND.KFLR.LE.1).OR.(KFLS.EQ.3.AND.KFLR.LE.2)
78 & .OR.(KFLS.EQ.5.AND.KFLR.EQ.0)) THEN
79 LUCOMP=80+KFLB
80 ENDIF
81
82C...Diquarks.
83 ELSEIF((KFLR.EQ.0.OR.KFLR.EQ.1).AND.KFLC.EQ.0) THEN
84 IF(KFLS.NE.1.AND.KFLS.NE.3) THEN
85 ELSEIF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9) THEN
86 ELSEIF(KFLA.LT.KFLB) THEN
87 ELSEIF(KFLS.EQ.1.AND.KFLA.EQ.KFLB) THEN
88 ELSE
89 LUCOMP=90
90 ENDIF
91
92C...Spin 1/2 baryons.
93 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.2) THEN
94 IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN
95 ELSEIF(KFLA.LE.KFLC.OR.KFLA.LT.KFLB) THEN
96 ELSEIF(KFLA.GE.6.OR.KFLB.GE.4.OR.KFLC.GE.4) THEN
97 LUCOMP=80+KFLA
98 ELSEIF(KFLB.LT.KFLC) THEN
99 LUCOMP=300+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLC*(KFLC-1))/2+KFLB
100 ELSE
101 LUCOMP=330+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))/2+KFLC
102 ENDIF
103
104C...Spin 3/2 baryons.
105 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.4) THEN
106 IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN
107 ELSEIF(KFLA.LT.KFLB.OR.KFLB.LT.KFLC) THEN
108 ELSEIF(KFLA.GE.6.OR.KFLB.GE.4) THEN
109 LUCOMP=80+KFLA
110 ELSE
111 LUCOMP=360+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))/2+KFLC
112 ENDIF
113 ENDIF
114
115 RETURN
116 END