1
subroutine hepnmg(ID,CHAUG)
5
C...Purpose: to give the particle/parton name as a character string.
7
c SCCS ID: hepnmg.f 1.1 4/6/92
9
c Copyright (c) 1991 Universities Research Association, Inc.
10
c All rights reserved.
12
c This material resulted from work developed under a Government Contract and
13
c is subject to the following license: The Government r~gh~nins a paid-up,
14
c nonexclusive, irrevocable worldwide license to reproduce, prepare derivative
15
c works, perform publicly and display publicly by or for the Government,
16
c including the right to distribute to other Government contractors. Neither
17
c the United States nor the United States Department of Energy, nor any of
18
c their employees, makes any warrenty, express or implied, or assumes any
19
c legal liability or responsibility for the accuracy, completeness, or
20
c usefulness of any information, apparatus, product, or process disclosed, or
21
c represents that its use would not infringe privately owned rights.
23
c Written by Paul Lebrun & Lynn Garren
27
c ID :Standard particle name See Convention in Particle Data book,
28
c Physics LetterB vol 239, p. III.67
30
c CHAUG : Null terminated Character string, the name of
31
c particle, using Greek fonts, as defined in module StringUtils.c
32
c Limited to 30 characters
36
INTEGER ID, IDEX, IDA, IDQ1, IDQ2, IDQ3, LEN, LEM, KQN
37
INTEGER I, KQ, IDJS, IDCM
38
CHARACTER CHAU*25, CHAUG*25
40
EQUIVALENCE (ICHAU(1), CHAU(1:1))
41
character CHSP(1605)*20
44
external hepchg,hepcmp
46
data (CHSP(I), I=1,119) /'d','u','s','c','b','t','l','h',2*' ',
47
1'e','~gn~n~de~n','~gm~n','~gn~n~dm~n','~gt~n','~gn~n~dt~n',
48
1'~gc~n','~gn~n~dc~n','reggeon','pomeron','g','~gg~n','Z','W',
49
2'H~d1~n',' ','~gh~n~dtech~n','LQ','R','Z~d2~n','W~d2~n','H~d2~n',
50
3'H~d2~n','H~d2~n','Z~d3~n','H~d3~n','H~d3~n','H~d3~n','H~d4~n',
51
4'H~d5~n','L susy d','L susy u','L susy s','L susy c','L susy b',
52
5'L susy t','gluino','photino',2*' ','L susy e',
53
6'L susy ~gn~n~de~n','L susy ~gm~n','L susy ~gn~n~dm~n',
54
7'L susy ~gt~n','L susy ~gn~n~dt~n','susy HL','susy HH','susy HA',
55
8' ','R susy d','R susy u','R susy s','R susy c','R susy b',
56
9'R susy t','zino','susy Z2','susy Z3','susy Z4','R susy e',
57
*'R susy ~gn~n~de~n','R susy ~gm~n','R susy ~gn~n~dm~n',
58
1'R susy ~gt~n','R susy ~gn~n~dt~n','wino','susy W2',2*' ',
59
2 19*'gen. code',' ','K~ds~n','K~dl~n','diquark','l-baryon',
60
3'h-baryon',' ','~gr~n~ddiffr~n','~gp~n~ddiffr~n','~gw~n~ddiffr~n',
61
4'~gf~n~ddiffr~n','~gY~n~ddiffr~n','n~ddiffr~n','p~ddiffr~n',
62
5'remnant ~gg~n','remnant nucleon',4*' '/
63
data (CHSP(I), I=120,219) /'~gp~n','a~d0~n(980)','~gp~n(1300)',
64
17*' ','~gr~n(770)','b~d1~n(1235)','a~d1~n(1260)','~gr~n(1450)',
65
1'~gr~n(1700)',5*' ','a~d2~n(1320)','~gp~n~d2~n(1670)',8*' ',
66
2'~gr~n~d3~n(1690)',19*' ','~gh~n','f~d0~n(975)','~gh~n(1295)',
67
3'f~d0~n(1400)','~gh~n(1440)','f~d0~n(1590)','f~d0~n(1710)',3*' ',
68
4'~gw~n(783)','h~d1~n(1170)','f~d1~n(1285)','~gw~n(1390)',
69
5'f~d1~n(1420)','f~d1~n(1510)','~gw~n(1600)',3*' ','f~d2~n(1270)',
70
6' ','f~d2~n(2010)','f~d2~n(2300)','f~d2~n(2340)',5*' ',
71
7'~gw~n~d3~n(1670)',9*' ','f~d4~n(2050)',9*' '/
72
data (CHSP(I), I=220,369) /'~gh~n''(958)','f''0',8*' ',
73
1 '~gf~n(1020)','h~d1~n(1380)','f~d1~n(1420)','~gf~n(1680)',
74
1 'f''~d1~n',5*' ','f''~d2~n(1525)', 9*' ','~gf~n~d3~n(1850)',
75
2 19*' ','~gh~n~dc~n(1S)','~gc~n~dc0~n(1P)','~gh~n~dc~n(2S)',7*' ',
76
3 'J/~gY~n','hc(1P)','~gc~n~dc1~n(1P)','~gY~n(2S)','~gY~n(3770)',
77
4 '~gY~n(4040)','~gY~n(4160)','~gY~n(4415)',2*' ',
78
4 '~gc~n~dc2~n(1P)',29*' ','~gh~n~db~n(1S)','~gc~n~db0~n(1P)',
79
5 '~gh~n~db~n(2S)','~gc~n~db0~n(2P)','~gh~n~db~n(3S)',
80
5 5*' ','~gU~n(1S)','h~db~n(1P)','~gc~n~db1~n(1P)',
81
6 '~gU~n(2S)','h~db~n(2P)','~gc~n~db1~n(2P)','~gU~n(3S)',
82
7 '~gU~n(4S)','~gU~n(10860)','~gU~n(11020)',
83
8 '~gc~n~db2~n(1P)','~gc~n~db2~n(2P)',28*' '/
84
data (CHSP(I), I=370,419) /'~gh~n~dt~n','~gc~n~dt0~n',8*' ',
85
1'~gq~n','h~d1t~n','~gc~n~dt1~n',7*' ','~gc~n~dt2~n',29*' '/
86
data (CHSP(I), I=420,449) /'~gh~n~dl~n','~gc~n~dl0~n',' ',
87
2'~gq~n~dl~n','h~d1l~n','~gc~n~dl1~n','~gc~n~dl2~n',8*' ',
88
3'~gh~n~dh~n','~gc~n~dh0~n',' ','~gq~n~dh~n','h~d1h~n',
89
4'~gc~n~dh1~n','~gc~n~h2~n',8*' '/
90
data (CHSP(I), I=450,499) /'~gp~n','a~d0~n(980)','~gp~n(1300)',
91
1 7*' ','~gr~n(770)','b~d1~n(1235)','a~d1~n(1260)','~gr~n(1450)',
92
2 '~gr~n(1700)',5*' ','a~d2~n(1320)','~gp~n~d2~n(1670)',
93
2 8*' ','~gr~n~d3~n(1690)',19*' '/
94
data (CHSP(I), I=500,599) /'K','K~u*~n~d0~n(1430)',8*' ',
95
1'K~u*~n(892)','K~d1~n(1270)','K~d1~n(1400)','K~u*~n(1410)',
96
1'K~u*~n(1680)',5*' ','K~u*~n~d2~n(1430)','K~d2~n(1770)',
97
2'K~d2~n(1820)',7*' ','K~u*~n~d3~n(1780)',9*' ',
98
3 'K~u*~n~d4~n(2045)',9*' ','K','K~u*~n~d0~n(1430)',8*' ',
99
3'K~u*~n(892)','K~d1~n(1270)','K~d1~n(1400)','K~u*~n(1410)',
100
3'K~u*~n(1680)', 5*' ','K~u*~n~d2~n(1430)','K~d2~n(1770)',
101
4'K~d2~n(1820)',7*' ', 'K~u*~n~d3~n(1780)',9*' ',
102
5'K~u*~n~d4~n(2045)',9*' '/
103
data (CHSP(I), I=600,749) /'D','D~u*~n~d0~n',8*' ','D~u*~n(2010)',
104
1'D~d1~n(2420)','D~u*~n~d1~n',7*' ','D~u*~n~d2~n(2460)',29*' ',
105
1'D','D~u*~n~d0~n',8*' ','D~u*~n(2010)','D~d1~n(2420)',
106
2'D~u*~n~d1~n',7*' ','D~u*~n~d2~n(2460)',29*' ','D~ds~n',
107
3'D~u*~n~ds0~n',8*' ','D~u*~n~ds~n','D~ds1~n(2536)',
108
4'D~u*~n~ds1~n',7*' ','D~u*~n~ds2~n',29*' '/
109
data (CHSP(I), I=750,949) /'B','B~u*~n~d0~n',8*' ','B~u*~n',
110
1'B~d1~n','B~u*~n~d1~n',7*' ','B~u*~n~d2~n',29*' ','B',
111
1'B~u*~n~d0~n',8*' ','B~u*~n','B~d1~n','B~u*~n~d1~n',7*' ',
112
2'B~u*~n~d2~n',29*' ','B~ds~n','B~u*~n~ds0~n',8*' ',
113
3'B~u*~n~ds~n','B~ds1~n','B~u*~n~ds1~n',7*' ','B~u*~n~ds2~n',
114
3 29*' ','B~dc~n','B~u*~n~dc0~n',8*' ','B~u*~n~dc~n',
115
3'B~dc1~n','B~u*~n~dc1~n',7*' ','B~u*~n~dc2~n',29*' '/
116
data (CHSP(I), I=950,1199) /'T','T~u*~n~d0~n',8*' ','T~u*~n',
117
1'T~d1~n','T~u*~n~d1~n',7*' ','T~u*~n~d2~n',29*' ','T',
118
1'T~u*~n~d0~n',8*' ','T~u*~n','T~d1~n','T~u*~n~d1~n',7*' ',
119
2'T~u*~n~d2~n',29*' ','T~ds~n','T~u*~n~ds0~n',8*' ',
120
3'T~u*~n~ds~n','T~ds1~n','T~u*~n~ds1~n',7*' ','T~u*~n~ds2~n',
121
3 29*' ','T~dc~n','T~u*~n~dc0~n',8*' ','T~u*~n~dc~n','T~dc1~n',
122
3'T~u*~n~dc1~n',7*' ','T~u*~n~dc2~n',29*' ','T~db~n',
123
3 'T~u*~n~db0~n',8*' ','T~u*~n~db~n','T~db1~n','T~u*~n~db1~n',
124
4 7*' ','T~u*~n~db2~n',29*' '/
125
data (CHSP(I), I=1200,1289) /'L','L~u*~n~d0~n',' ','L~u*~n',
126
1'L~d1~n','L~u*~n~d1~n','L~u*~n~d2~n',8*' ','L','L~u*~n~d0~n',
127
1' ','L~u*~n','L~d1~n','L~u*~n~d1~n','L~u*~n~d2~n',8*' ','L~ds~n',
128
2'L~u*~n~ds0~n',' ','L~u*~n~ds~n','L~ds1~n','L~u*~n~ds1~n',
129
2'L~u*~n~ds2~n',8*' ','L~dc~n','L~u*~n~dc0~n',' ','L~u*~n~dc~n',
130
3'L~dc1~n','L~u*~n~dc1~n','L~u*~n~dc2~n',8*' ','L~db~n',
131
4'L~u*~n~db0~n',' ','L~u*~n~db~n','L~db1~n','L~u*~n~db1~n',
132
4'L~u*~n~db2~n',8*' ','L~dt~n','L~u*~n~dt0~n',' ',
133
5'L~u*~n~dt~n','L~dt1~n','L~u*~n~dt1~n','L~u*~n~dt2~n',8*' '/
134
data (CHSP(I), I=1290,1394) /'H','H~u*~n~d0~n',' ','H~u*~n',
135
1'H~d1~n','H~u*~n~d1~n','H~u*~n~d2~n',8*' ','H','H~u*~n~d0~n',
136
1' ','H~u*~n','H~d1~n','H~u*~n~d1~n','H~u*~n~d2~n',8*' ','H~ds~n',
137
2'H~u*~n~ds0~n',' ','H~u*~n~ds~n','H~ds1~n','H~u*~n~ds1~n',
138
2'H~u*~n~ds2~n',8*' ','H~dc~n','H~u*~n~dc0~n',' ','H~u*~n~dc~n',
139
3'H~dc1~n','H~u*~n~dc1~n','H~u*~n~dc2~n',8*' ','H~db~n',
140
4'H~u*~n~db0~n',' ','H~u*~n~db~n','H~db1~n','H~u*~n~db1~n',
141
4'H~u*~n~db2~n',8*' ','H~dt~n','H~u*~n~dt0~n',' ',
142
5'H~u*~n~dt~n','H~dt1~n','H~u*~n~dt1~n','H~u*~n~dt2~n',8*' ',
143
6'H~dl~n','H~u*~n~dl0~n',' ','H~u*~n~dl~n','H~dl1~n',
144
7'H~u*~n~dl1~n','H~u*~n~dl2~n',8*' '/
145
data (CHSP(I), I=1395,1415) /' ','~gL~n','~gL~n~dc~n',
146
1'~gX~n~dc~n','~gX~n~dc~n','~gL~n~db~n','~gX~n~db~n',
147
1'~gX~n~db~n','~gX~n~dbc~n','~gX~n~dbc~n','~gW~n~dbc~n',
148
2'~gL~n~dt~n','~gX~n~dt~n','~gX~n~dt~n','~gX~n~dtc~n',
149
3'~gX~n~dtc~n','~gW~n~dtc~n','~gX~n~dtb~n','~gX~n~dtb~n',
150
4'~gW~n~dtb~n','~gW~n~dtbc~n'/
151
data (CHSP(I), I=1416,1475) /' ','n','p',' ','~gS~n','~gS~n',
152
1'~gS~n','~gX~n','~gX~n',' ','~gS~n~dc~n','~gS~n~dc~n',
153
1'~gS~n~dc~n','~gX~n~dc~n''','~gX~n~dc~n''','~gW~n~dc~n',
154
2'~gX~n~dcc~n','~gX~n~dcc~n','~gW~n~dcc~n',' ','~gS~n~db~n',
155
3'~gS~n~db~n','~gS~n~db~n','~gX~n~db~n''','~gX~n~db~n''',
156
3'~gW~n~db~n','~gX~n~dbc~n''','~gX~n~dbc~n''','~gW~n~dbc~n''',
157
4'~gW~n~dbcc~n','~gX~n~dbb~n','~gX~n~dbb~n','~gW~n~dbb~n',
158
5'~gW~n~dbbc~n',' ','~gS~n~dt~n','~gS~n~dt~n','~gS~n~dt~n',
159
5'~gX~n~dt~n''','~gX~n~dt~n''','~gW~n~dt~n','~gX~n~dtc~n''',
160
6'~gX~n~dtc~n''','~gW~n~dtc~n''','~gW~n~dtcc~n','~gX~n~dtb~n''',
161
7'~gX~n~dtb~n''','~gW~n~dtb~n''','~gW~n~dtbc~n''','~gW~n~dtbb~n',
162
7'~gX~n~dtt~n','~gX~n~dtt~n','~gW~n~dtt~n','~gW~n~dttc~n',
163
8'~gW~n~dttb~n',5*' '/
164
data (CHSP(I), I=1476,1535) /'~gD~n','~gD~n','~gD~n','~gD~n',
165
1'~gS~n~u*~n','~gS~n~u*~n','~gS~n~u*~n','~gX~n~u*~n',
166
1'~gX~n~u*~n','~gW~n','~gS~n~u*~n~dc~n','~gS~n~u*~n~dc~n',
167
2'~gS~n~u*~n~dc~n','~gX~n~u*~n~dc~n','~gX~n~u*~n~dc~n',
168
2'~gW~n~u*~n~dc~n','~gX~n~u*~n~dcc~n','~gX~n~u*~n~dcc~n',
169
3'~gW~n~u*~n~dcc~n','~gW~n~u*~n~dccc~n','~gS~n~u*~n~db~n',
170
4'~gS~n~u*~n~db~n','~gS~n~u*~n~db~n','~gX~n~u*~n~db~n',
171
4'~gX~n~u*~n~db~n','~gW~n~u*~n~db~n','~gX~n~u*~n~dbc~n',
172
5'~gX~n~u*~n~dbc~n','~gW~n~u*~n~dbc~n','~gW~n~u*~n~dbcc~n',
173
6'~gX~n~u*~n~dbb~n','~gX~n~u*~n~dbb~n','~gW~n~u*~n~dbb~n',
174
6'~gW~n~u*~n~dbbc~n','~gW~n~u*~n~dbbb~n','~gS~n~u*~n~dt~n',
175
7'~gS~n~u*~n~dt~n','~gS~n~u*~n~dt~n','~gX~n~u*~n~dt~n',
176
7'~gX~n~u*~n~dt~n','~gW~n~u*~n~dt~n','~gX~n~u*~n~dtc~n',
177
8'~gX~n~u*~n~dtc~n','~gW~n~u*~n~dtc~n','~gW~n~u*~n~dtcc~n',
178
8'~gX~n~u*~n~dtb~n','~gX~n~u*~n~dtb~n','~gW~n~u*~n~dtb~n',
179
9'~gW~n~u*~n~dtbc~n','~gW~n~u*~n~dtbb~n','~gX~n~u*~n~dtt~n',
180
9'~gX~n~u*~n~dtt~n','~gW~n~u*~n~dtt~n','~gW~n~u*~n~dttc~n',
181
*'~gW~n~u*~n~dttb~n','~gW~n~u*~n~dttt~n',4*' '/
182
data (CHSP(I), I=1536,1600) /65*' '/
183
data (CHSP(I), I=1601,1605) /'Hydrogen','Deuteron','Tritium',
184
1'He~n~u3~n','Alpha'/
190
C...Initial values. Charge (in units of 1/3). Subdivide code.
194
if(IDA.EQ.0) go to 900
197
if(IDCM.LE.0) go to 900
200
KQN=MOD(IDA/1000000000,10)
201
IDQ3=MOD(IDA/1000,10)
205
IDEX=MOD(IDA/10000,10)
207
C...Read out root name and spin for simple particles and special cases
212
100 if(CHAU(LEM:LEM).NE.' ') LEN=LEM
213
elseif(KQN.eq.1) then
217
110 if(CHAU(LEM:LEM).NE.' ') LEN=LEM
218
elseif(IDJS.EQ.0) then
222
150 if(CHAU(LEM:LEM).NE.' ') LEN=LEM
224
C...Construct root name for diquark. Add on spin.
225
elseif(IDQ1.EQ.0) then
226
CHAU(1:2)=CHSP(IDQ3)(1:1)//CHSP(IDQ2)(1:1)
227
if(IDJS.EQ.1) CHAU(3:7)='~d0~n'
228
if(IDJS.EQ.3) CHAU(3:7)='~d1~n'
231
C...Construct root name for meson.
232
elseif(IDQ3.EQ.0) then
236
200 if(CHAU(LEM:LEM).NE.' ') LEN=LEM
238
C...Construct root name for Herwig remnant particles
239
elseif(IDQ1.eq.9 .and. IDQ2.eq.9 .and. IDQ3.eq.9) then
243
250 if(CHAU(LEM:LEM).NE.' ') LEN=LEM
245
C...Construct root name and spin for baryon.
251
300 if(CHAU(LEM:LEM).NE.' ') LEN=LEM
253
C...Construct root name and spin for heavy baryon.
255
if(IDQ2.LE.2 .AND. IDQ1.LE.2)then
257
if(IDJS.EQ.4) CHAU='~gS~n~u*~n'
258
if(IDQ1.GT.IDQ2) CHAU='~gL~n'
259
elseif(IDQ1.LE.2) then
261
if(IDJS.EQ.4) CHAU='~gX~n~u*~n'
262
elseif(IDQ2.LE.2) then
264
elseif(IDQ1.GT.IDQ2) then
268
if(IDJS.EQ.4) CHAU='~gW~n~u*~n'
271
320 if(CHAU(LEM:LEM).NE.' ') LEN=LEM
273
C...Add on heavy flavour content for heavy baryon.
274
CHAU(LEN+1:LEN+5)='~d'//CHSP(IDQ3)(1:1)//'~n'
276
if(IDQ2.GE.IDQ1.AND.IDQ1.GE.4) then
277
CHAU(LEN+1:LEN+2)=CHSP(IDQ2)(1:1)//CHSP(IDQ1)(1:1)
279
elseif(IDQ2.GE.IDQ1.AND.IDQ2.GE.4) then
280
CHAU(LEN+1:LEN+1)=CHSP(IDQ2)(1:1)
282
elseif(IDQ1.GT.IDQ2.AND.IDQ2.GE.4) then
283
CHAU(LEN+1:LEN+2)=CHSP(IDQ1)(1:1)//CHSP(IDQ2)(1:1)
285
elseif(IDQ1.GT.IDQ2.AND.IDQ1.GE.4) then
286
CHAU(LEN+1:LEN+1)=CHSP(IDQ1)(1:1)
292
C...Add on bar sign for antiparticle (where necessary).
293
if(ID.GT.0.OR.LEN.EQ.0) then
294
elseif(IDA.GT.10.AND.IDA.LE.40.AND.KQ.NE.0) then
295
elseif(IDA.GT.46.AND.IDA.LE.60.AND.KQ.NE.0) then
296
elseif(IDA.GT.66.AND.IDA.LE.80.AND.KQ.NE.0) then
297
elseif(IDA.GE.81.AND.IDA.LE.99) then
298
elseif(IDA.GT.100.AND.IDQ3.EQ.0.AND.KQ.NE.0) then
300
CHAU(LEN+1:LEN+2)='~~'
304
C...Add on charge where applicable (conventional cases skipped).
305
if(IDA.GE.81.AND.IDA.LE.100) then
306
C...generator specific codes
307
elseif(IDCM.eq.114 .or. IDCM.eq.115) then
308
C...Herwig remnant particles
309
elseif(KQN.eq.1) then
314
if(KQ.EQ.6) CHAU(LEN+1:LEN+6)='~u++~n'
315
if(KQ.EQ.-6) CHAU(LEN+1:LEN+6)='~u--~n'
317
elseif(abs(KQ).eq.3)then
318
if(KQ.EQ.3) CHAU(LEN+1:LEN+4)='~u+~n'
319
if(KQ.EQ.-3) CHAU(LEN+1:LEN+4)='~u-~n'
323
if(KQ.EQ.0.AND.IDA.LE.22) then
324
C...quarks and leptons
325
elseif(KQ.EQ.0.AND.(IDA.GE.41.AND.IDA.LE.56)) then
326
C...left squarks, sleptons, etc.
327
elseif(KQ.EQ.0.AND.(IDA.GE.61.AND.IDA.LE.67)) then
329
elseif(KQ.EQ.0.AND.(IDA.GE.71.AND.IDA.LE.76)) then
331
elseif(IDA.GT.100.AND.IDQ3.EQ.0.AND.IDQ2.EQ.IDQ1.AND.
333
C... eta, psi, upsilon, etc.
335
CHAU(LEN+1:LEN+5)='~u0~n'