]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA/jetset/luname.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / PYTHIA / jetset / luname.F
1  
2 C********************************************************************* 
3  
4       SUBROUTINE LUNAME(KF,CHAU) 
5  
6 C...Purpose: to give the particle/parton name as a character string. 
7       COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) 
8       COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) 
9       COMMON/LUDAT4/CHAF(500) 
10       CHARACTER CHAF*8 
11       SAVE /LUDAT1/,/LUDAT2/,/LUDAT4/ 
12       CHARACTER CHAU*16 
13  
14 C...Initial values. Charge. Subdivide code. 
15       CHAU=' ' 
16       KFA=IABS(KF) 
17       KC=LUCOMP(KF) 
18       IF(KC.EQ.0) RETURN 
19       KQ=LUCHGE(KF) 
20       KFLA=MOD(KFA/1000,10) 
21       KFLB=MOD(KFA/100,10) 
22       KFLC=MOD(KFA/10,10) 
23       KFLS=MOD(KFA,10) 
24       KFLR=MOD(KFA/10000,10) 
25  
26 C...Read out root name and spin for simple particle. 
27       IF(KFA.LE.100.OR.(KFA.GT.100.AND.KC.GT.100)) THEN 
28         CHAU=CHAF(KC) 
29         LEN=0 
30         DO 100 LEM=1,8 
31         IF(CHAU(LEM:LEM).NE.' ') LEN=LEM 
32   100   CONTINUE 
33  
34 C...Construct root name for diquark. Add on spin. 
35       ELSEIF(KFLC.EQ.0) THEN 
36         CHAU(1:2)=CHAF(KFLA)(1:1)//CHAF(KFLB)(1:1) 
37         IF(KFLS.EQ.1) CHAU(3:4)='_0' 
38         IF(KFLS.EQ.3) CHAU(3:4)='_1' 
39         LEN=4 
40  
41 C...Construct root name for heavy meson. Add on spin and heavy flavour. 
42       ELSEIF(KFLA.EQ.0) THEN 
43         IF(KFLB.EQ.5) CHAU(1:1)='B' 
44         IF(KFLB.EQ.6) CHAU(1:1)='T' 
45         IF(KFLB.EQ.7) CHAU(1:1)='L' 
46         IF(KFLB.EQ.8) CHAU(1:1)='H' 
47         LEN=1 
48         IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN 
49         ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN 
50           CHAU(2:2)='*' 
51           LEN=2 
52         ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN 
53           CHAU(2:3)='_1' 
54           LEN=3 
55         ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN 
56           CHAU(2:4)='*_0' 
57           LEN=4 
58         ELSEIF(KFLR.EQ.2) THEN 
59           CHAU(2:4)='*_1' 
60           LEN=4 
61         ELSEIF(KFLS.EQ.5) THEN 
62           CHAU(2:4)='*_2' 
63           LEN=4 
64         ENDIF 
65         IF(KFLC.GE.3.AND.KFLR.EQ.0.AND.KFLS.LE.3) THEN 
66           CHAU(LEN+1:LEN+2)='_'//CHAF(KFLC)(1:1) 
67           LEN=LEN+2 
68         ELSEIF(KFLC.GE.3) THEN 
69           CHAU(LEN+1:LEN+1)=CHAF(KFLC)(1:1) 
70           LEN=LEN+1 
71         ENDIF 
72  
73 C...Construct root name and spin for heavy baryon. 
74       ELSE 
75         IF(KFLB.LE.2.AND.KFLC.LE.2) THEN 
76           CHAU='Sigma ' 
77           IF(KFLC.GT.KFLB) CHAU='Lambda' 
78           IF(KFLS.EQ.4) CHAU='Sigma*' 
79           LEN=5 
80           IF(CHAU(6:6).NE.' ') LEN=6 
81         ELSEIF(KFLB.LE.2.OR.KFLC.LE.2) THEN 
82           CHAU='Xi ' 
83           IF(KFLA.GT.KFLB.AND.KFLB.GT.KFLC) CHAU='Xi''' 
84           IF(KFLS.EQ.4) CHAU='Xi*' 
85           LEN=2 
86           IF(CHAU(3:3).NE.' ') LEN=3 
87         ELSE 
88           CHAU='Omega ' 
89           IF(KFLA.GT.KFLB.AND.KFLB.GT.KFLC) CHAU='Omega''' 
90           IF(KFLS.EQ.4) CHAU='Omega*' 
91           LEN=5 
92           IF(CHAU(6:6).NE.' ') LEN=6 
93         ENDIF 
94  
95 C...Add on heavy flavour content for heavy baryon. 
96         CHAU(LEN+1:LEN+2)='_'//CHAF(KFLA)(1:1) 
97         LEN=LEN+2 
98         IF(KFLB.GE.KFLC.AND.KFLC.GE.4) THEN 
99           CHAU(LEN+1:LEN+2)=CHAF(KFLB)(1:1)//CHAF(KFLC)(1:1) 
100           LEN=LEN+2 
101         ELSEIF(KFLB.GE.KFLC.AND.KFLB.GE.4) THEN 
102           CHAU(LEN+1:LEN+1)=CHAF(KFLB)(1:1) 
103           LEN=LEN+1 
104         ELSEIF(KFLC.GT.KFLB.AND.KFLB.GE.4) THEN 
105           CHAU(LEN+1:LEN+2)=CHAF(KFLC)(1:1)//CHAF(KFLB)(1:1) 
106           LEN=LEN+2 
107         ELSEIF(KFLC.GT.KFLB.AND.KFLC.GE.4) THEN 
108           CHAU(LEN+1:LEN+1)=CHAF(KFLC)(1:1) 
109           LEN=LEN+1 
110         ENDIF 
111       ENDIF 
112  
113 C...Add on bar sign for antiparticle (where necessary). 
114       IF(KF.GT.0.OR.LEN.EQ.0) THEN 
115       ELSEIF(KFA.GT.10.AND.KFA.LE.40.AND.KQ.NE.0.AND.MOD(KQ,3).EQ.0) 
116      &THEN 
117       ELSEIF(KFA.EQ.89.OR.(KFA.GE.91.AND.KFA.LE.99)) THEN 
118       ELSEIF(KFA.GT.100.AND.KFLA.EQ.0.AND.KQ.NE.0) THEN 
119       ELSEIF(MSTU(15).LE.1) THEN 
120         CHAU(LEN+1:LEN+1)='~' 
121         LEN=LEN+1 
122       ELSE 
123         CHAU(LEN+1:LEN+3)='bar' 
124         LEN=LEN+3 
125       ENDIF 
126  
127 C...Add on charge where applicable (conventional cases skipped). 
128       IF(KQ.EQ.6) CHAU(LEN+1:LEN+2)='++' 
129       IF(KQ.EQ.-6) CHAU(LEN+1:LEN+2)='--' 
130       IF(KQ.EQ.3) CHAU(LEN+1:LEN+1)='+' 
131       IF(KQ.EQ.-3) CHAU(LEN+1:LEN+1)='-' 
132       IF(KQ.EQ.0.AND.(KFA.LE.22.OR.LEN.EQ.0)) THEN 
133       ELSEIF(KQ.EQ.0.AND.(KFA.GE.81.AND.KFA.LE.100)) THEN 
134       ELSEIF(KFA.EQ.28.OR.KFA.EQ.29) THEN 
135       ELSEIF(KFA.GT.100.AND.KFLA.EQ.0.AND.KFLB.EQ.KFLC.AND. 
136      &KFLB.NE.1) THEN 
137       ELSEIF(KQ.EQ.0) THEN 
138         CHAU(LEN+1:LEN+1)='0' 
139       ENDIF 
140  
141       RETURN 
142       END