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