]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | |
2 | C********************************************************************* | |
3 | ||
4 | FUNCTION KLU(I,J) | |
5 | ||
6 | C...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 | ||
12 | C...Default value. For I=0 number of entries, number of stable entries | |
13 | C...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 | ||
26 | C...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 | ||
32 | C...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 | ||
46 | C...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 | ||
54 | C...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 | ||
92 | C...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 | ||
116 | C...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 |