~maddevelopers/mg5amcnlo/2.9.4

« back to all changes in this revision

Viewing changes to vendor/StdHEP/src/display/hepnmg.f

pass to v2.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine hepnmg(ID,CHAUG)
 
2
c                                                                              
 
3
c  HEPNMG --
 
4
c
 
5
C...Purpose: to give the particle/parton name as a character string.
 
6
c
 
7
c SCCS ID: hepnmg.f 1.1 4/6/92
 
8
c                                               
 
9
c Copyright (c) 1991 Universities Research Association, Inc.                    
 
10
c All rights reserved.                                                          
 
11
c                                                                               
 
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.            
 
22
c                                                                               
 
23
c Written by Paul Lebrun & Lynn Garren                                                                                                     
 
24
c
 
25
c       Arguments : 
 
26
c
 
27
c       ID  :Standard particle name See Convention in Particle Data book,
 
28
c               Physics LetterB vol 239, p. III.67
 
29
c
 
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
 
33
c       
 
34
      IMPLICIT NONE
 
35
 
 
36
      INTEGER ID, IDEX, IDA, IDQ1, IDQ2, IDQ3, LEN, LEM, KQN
 
37
      INTEGER I, KQ, IDJS, IDCM
 
38
      CHARACTER CHAU*25, CHAUG*25
 
39
      BYTE ICHAU(25)
 
40
      EQUIVALENCE (ICHAU(1), CHAU(1:1))
 
41
      character CHSP(1605)*20
 
42
 
 
43
      integer hepchg,hepcmp
 
44
      external hepchg,hepcmp
 
45
 
 
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'/
 
185
 
 
186
 
 
187
      save CHSP
 
188
 
 
189
 
 
190
C...Initial values. Charge (in units of 1/3). Subdivide code.
 
191
      CHAU=' '
 
192
      LEN=1
 
193
      IDA=IABS(ID)
 
194
      if(IDA.EQ.0) go to 900
 
195
 
 
196
      IDCM=hepcmp(ID)
 
197
      if(IDCM.LE.0) go to 900
 
198
 
 
199
      KQ=hepchg(ID)
 
200
      KQN=MOD(IDA/1000000000,10)
 
201
      IDQ3=MOD(IDA/1000,10)
 
202
      IDQ2=MOD(IDA/100,10)
 
203
      IDQ1=MOD(IDA/10,10)
 
204
      IDJS=MOD(IDA,10)
 
205
      IDEX=MOD(IDA/10000,10)
 
206
 
 
207
C...Read out root name and spin for simple particles and special cases
 
208
      if(IDA.LE.100) then
 
209
        CHAU=CHSP(IDCM)
 
210
        LEN=1
 
211
        do 100 LEM=1,20
 
212
  100     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
213
      elseif(KQN.eq.1) then
 
214
        CHAU=CHSP(IDCM)
 
215
        LEN=0
 
216
        do 110 LEM=1,20
 
217
  110     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
218
      elseif(IDJS.EQ.0) then
 
219
        CHAU=CHSP(IDCM)
 
220
        LEN=1
 
221
        do 150 LEM=1,20
 
222
  150     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
223
 
 
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'
 
229
        LEN=7
 
230
 
 
231
C...Construct root name for meson.
 
232
      elseif(IDQ3.EQ.0) then
 
233
        CHAU=CHSP(IDCM)
 
234
        LEN=1
 
235
        do 200 LEM=1,20
 
236
  200     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
237
 
 
238
C...Construct root name for Herwig remnant particles
 
239
      elseif(IDQ1.eq.9 .and. IDQ2.eq.9 .and. IDQ3.eq.9) then
 
240
        CHAU=CHSP(IDCM)
 
241
        LEN=1
 
242
        do 250 LEM=1,20
 
243
  250     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
244
 
 
245
C...Construct root name and spin for baryon.
 
246
      else
 
247
        if(IDQ3.LE.6) then
 
248
          CHAU=CHSP(IDCM)
 
249
          LEN=1
 
250
          do 300 LEM=1,20
 
251
  300       if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
252
        else
 
253
C...Construct root name and spin for heavy baryon.
 
254
          LEN=1
 
255
          if(IDQ2.LE.2 .AND. IDQ1.LE.2)then
 
256
            CHAU='~gS~n'
 
257
            if(IDJS.EQ.4) CHAU='~gS~n~u*~n'
 
258
            if(IDQ1.GT.IDQ2) CHAU='~gL~n'
 
259
          elseif(IDQ1.LE.2) then
 
260
            CHAU='~gX~n'''
 
261
            if(IDJS.EQ.4) CHAU='~gX~n~u*~n'
 
262
          elseif(IDQ2.LE.2) then
 
263
            CHAU='~gX~n'
 
264
          elseif(IDQ1.GT.IDQ2) then
 
265
            CHAU='~gW~n'
 
266
          else
 
267
            CHAU='~gW~n'''
 
268
            if(IDJS.EQ.4) CHAU='~gW~n~u*~n'
 
269
          endif
 
270
          do 320 LEM=1,20
 
271
  320       if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
272
 
 
273
C...Add on heavy flavour content for heavy baryon.
 
274
          CHAU(LEN+1:LEN+5)='~d'//CHSP(IDQ3)(1:1)//'~n'
 
275
          LEN=LEN+5
 
276
          if(IDQ2.GE.IDQ1.AND.IDQ1.GE.4) then
 
277
            CHAU(LEN+1:LEN+2)=CHSP(IDQ2)(1:1)//CHSP(IDQ1)(1:1)
 
278
            LEN=LEN+2
 
279
          elseif(IDQ2.GE.IDQ1.AND.IDQ2.GE.4) then
 
280
            CHAU(LEN+1:LEN+1)=CHSP(IDQ2)(1:1)
 
281
            LEN=LEN+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)
 
284
            LEN=LEN+2
 
285
          elseif(IDQ1.GT.IDQ2.AND.IDQ1.GE.4) then
 
286
            CHAU(LEN+1:LEN+1)=CHSP(IDQ1)(1:1)
 
287
            LEN=LEN+1
 
288
          endif
 
289
        endif
 
290
      endif
 
291
 
 
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
 
299
      else
 
300
        CHAU(LEN+1:LEN+2)='~~'
 
301
        LEN=LEN+2
 
302
      endif
 
303
 
 
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
 
310
C...ions
 
311
      elseif(LEN.GT.0)then
 
312
C...everything else
 
313
        if(abs(KQ).EQ.6)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'
 
316
          LEN = LEN + 6
 
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'
 
320
          LEN = LEN + 4
 
321
        endif
 
322
 
 
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
 
328
C...right squarks
 
329
        elseif(KQ.EQ.0.AND.(IDA.GE.71.AND.IDA.LE.76)) then
 
330
C...right sleptons
 
331
        elseif(IDA.GT.100.AND.IDQ3.EQ.0.AND.IDQ2.EQ.IDQ1.AND.
 
332
     &      IDQ2.NE.1) then
 
333
C... eta, psi, upsilon, etc.
 
334
        elseif(KQ.EQ.0) then
 
335
          CHAU(LEN+1:LEN+5)='~u0~n'
 
336
          LEN = LEN + 5
 
337
        endif
 
338
      endif
 
339
 
 
340
900   continue
 
341
      ICHAU(LEN+1) = 0
 
342
      CHAUG = CHAU
 
343
      return
 
344
      end