]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA/jetset/klu.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / PYTHIA / jetset / klu.F
CommitLineData
fe4da5cc 1
2C*********************************************************************
3
4 FUNCTION KLU(I,J)
5
6C...Purpose: to provide various integer-valued event related data.
7 COMMON/LUJETS/N,K(4000,5),P(4000,5),V(4000,5)
8 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
9 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
10 SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
11
12C...Default value. For I=0 number of entries, number of stable entries
13C...or 3 times total charge.
14 KLU=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=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=KLU+1
21 IF(J.EQ.6.AND.K(I1,1).GE.1.AND.K(I1,1).LE.10) KLU=KLU+
22 & LUCHGE(K(I1,2))
23 100 CONTINUE
24 ELSEIF(I.EQ.0) THEN
25
26C...For I > 0 direct readout of K matrix or charge.
27 ELSEIF(J.LE.5) THEN
28 KLU=K(I,J)
29 ELSEIF(J.EQ.6) THEN
30 KLU=LUCHGE(K(I,2))
31
32C...Status (existing/fragmented/decayed), parton/hadron separation.
33 ELSEIF(J.LE.8) THEN
34 IF(K(I,1).GE.1.AND.K(I,1).LE.10) KLU=1
35 IF(J.EQ.8) KLU=KLU*K(I,2)
36 ELSEIF(J.LE.12) THEN
37 KFA=IABS(K(I,2))
38 KC=LUCOMP(KFA)
39 KQ=0
40 IF(KC.NE.0) KQ=KCHG(KC,2)
41 IF(J.EQ.9.AND.KC.NE.0.AND.KQ.NE.0) KLU=K(I,2)
42 IF(J.EQ.10.AND.KC.NE.0.AND.KQ.EQ.0) KLU=K(I,2)
43 IF(J.EQ.11) KLU=KC
44 IF(J.EQ.12) KLU=KQ*ISIGN(1,K(I,2))
45
46C...Heaviest flavour in hadron/diquark.
47 ELSEIF(J.EQ.13) THEN
48 KFA=IABS(K(I,2))
49 KLU=MOD(KFA/100,10)*(-1)**MOD(KFA/100,10)
50 IF(KFA.LT.10) KLU=KFA
51 IF(MOD(KFA/1000,10).NE.0) KLU=MOD(KFA/1000,10)
52 KLU=KLU*ISIGN(1,K(I,2))
53
54C...Particle history: generation, ancestor, rank.
55 ELSEIF(J.LE.15) THEN
56 I2=I
57 I1=I
58 110 KLU=KLU+1
59 I2=I1
60 I1=K(I1,3)
61 IF(I1.GT.0.AND.K(I1,1).GT.0.AND.K(I1,1).LE.20) GOTO 110
62 IF(J.EQ.15) KLU=I2
63 ELSEIF(J.EQ.16) THEN
64 KFA=IABS(K(I,2))
65 IF(K(I,1).LE.20.AND.((KFA.GE.11.AND.KFA.LE.20).OR.KFA.EQ.22.OR.
66 & (KFA.GT.100.AND.MOD(KFA/10,10).NE.0))) THEN
67 I1=I
68 120 I2=I1
69 I1=K(I1,3)
70 IF(I1.GT.0) THEN
71 KFAM=IABS(K(I1,2))
72 ILP=1
73 IF(KFAM.NE.0.AND.KFAM.LE.10) ILP=0
74 IF(KFAM.EQ.21.OR.KFAM.EQ.91.OR.KFAM.EQ.92.OR.KFAM.EQ.93)
75 & ILP=0
76 IF(KFAM.GT.100.AND.MOD(KFAM/10,10).EQ.0) ILP=0
77 IF(ILP.EQ.1) GOTO 120
78 ENDIF
79 IF(K(I1,1).EQ.12) THEN
80 DO 130 I3=I1+1,I2
81 IF(K(I3,3).EQ.K(I2,3).AND.K(I3,2).NE.91.AND.K(I3,2).NE.92
82 & .AND.K(I3,2).NE.93) KLU=KLU+1
83 130 CONTINUE
84 ELSE
85 I3=I2
86 140 KLU=KLU+1
87 I3=I3+1
88 IF(I3.LT.N.AND.K(I3,3).EQ.K(I2,3)) GOTO 140
89 ENDIF
90 ENDIF
91
92C...Particle coming from collapsing jet system or not.
93 ELSEIF(J.EQ.17) THEN
94 I1=I
95 150 KLU=KLU+1
96 I3=I1
97 I1=K(I1,3)
98 I0=MAX(1,I1)
99 KC=LUCOMP(K(I0,2))
100 IF(I1.EQ.0.OR.K(I0,1).LE.0.OR.K(I0,1).GT.20.OR.KC.EQ.0) THEN
101 IF(KLU.EQ.1) KLU=-1
102 IF(KLU.GT.1) KLU=0
103 RETURN
104 ENDIF
105 IF(KCHG(KC,2).EQ.0) GOTO 150
106 IF(K(I1,1).NE.12) KLU=0
107 IF(K(I1,1).NE.12) RETURN
108 I2=I1
109 160 I2=I2+1
110 IF(I2.LT.N.AND.K(I2,1).NE.11) GOTO 160
111 K3M=K(I3-1,3)
112 IF(K3M.GE.I1.AND.K3M.LE.I2) KLU=0
113 K3P=K(I3+1,3)
114 IF(I3.LT.N.AND.K3P.GE.I1.AND.K3P.LE.I2) KLU=0
115
116C...Number of decay products. Colour flow.
117 ELSEIF(J.EQ.18) THEN
118 IF(K(I,1).EQ.11.OR.K(I,1).EQ.12) KLU=MAX(0,K(I,5)-K(I,4)+1)
119 IF(K(I,4).EQ.0.OR.K(I,5).EQ.0) KLU=0
120 ELSEIF(J.LE.22) THEN
121 IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) RETURN
122 IF(J.EQ.19) KLU=MOD(K(I,4)/MSTU(5),MSTU(5))
123 IF(J.EQ.20) KLU=MOD(K(I,5)/MSTU(5),MSTU(5))
124 IF(J.EQ.21) KLU=MOD(K(I,4),MSTU(5))
125 IF(J.EQ.22) KLU=MOD(K(I,5),MSTU(5))
126 ELSE
127 ENDIF
128
129 RETURN
130 END