~maddevelopers/mg5amcnlo/2.9.4

« back to all changes in this revision

Viewing changes to vendor/StdHEP/src/stdhep/hepnam_old.F

pass to v2.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
      subroutine HEPNAM_old(ID,CHAU)
 
3
 
 
4
C...Purpose: to give the particle/parton name as a character string.
 
5
 
 
6
C       ID   = particle ID
 
7
C       CHAU = particle name
 
8
 
 
9
      character CHAU*20
 
10
      character CHSP(1605)*15
 
11
 
 
12
      integer hepchg_old,hepcmp_old
 
13
      external hepchg_old,hepcmp_old
 
14
 
 
15
      data (CHSP(I), I=1,119) /'d','u','s','c','b','t','l','h',2*' ',
 
16
     1'e','nu_e','mu','nu_mu','tau','nu_tau','chi','nu_chi','reggeon',
 
17
     2'pomeron','g','gamma','Z','W','H_1',' ','eta_tech','LQ','R','Z_2',
 
18
     3'W_2','H_2','H_2','H_2','Z_3','H_3','H_3','H_3','H_4','H_5',
 
19
     4'L susy d','L susy u','L susy s','L susy c',
 
20
     5'L susy b','L susy t','gluino','photino',2*' ',
 
21
     6'L susy e','L susy nu_e','L susy mu','L susy nu_mu',
 
22
     7'L susy tau','L susy nu_tau','susy HL','susy HH','susy HA',
 
23
     8' ','R susy d','R susy u','R susy s','R susy c',
 
24
     9'R susy b','R susy t','zino','susy Z2','susy Z3',
 
25
     *'susy Z4','R susy e','R susy nu_e','R susy mu',
 
26
     1'R susy nu_mu','R susy tau','R susy nu_tau','wino',
 
27
     2'susy W2',2*' ',19*'gen. code',' ','KS','KL','diquark',
 
28
     3'l-baryon','h-baryon',' ','rho_diffr','pi_diffr','omega_diffr',
 
29
     4'phi_diffr','psi_diffr','n_diffr','p_diffr',
 
30
     5'remnant gamma','remnant nucleon',4*' '/
 
31
      data (CHSP(I), I=120,219) /'pi','a_0(980)','pi(1300)',7*' ',
 
32
     1'rho(770)','b_1(1235)','a_1(1260)','rho(1450)','rho(1700)',5*' ',
 
33
     2'a_2(1320)','pi_2(1670)',8*' ','rho_3(1690)',19*' ','eta',
 
34
     3'f_0(975)','eta(1295)','f_0(1400)','eta(1440)','f_0(1590)',
 
35
     4'f_0(1710)',3*' ','omega(783)','h_1(1170)','f_1(1285)',
 
36
     5'omega(1390)','f_1(1420)','f_1(1510)','omega(1600)',3*' ',
 
37
     6'f_2(1270)',' ','f_2(2010)','f_2(2300)','f_2(2340)',5*' ',
 
38
     7'omega_3(1670)',9*' ','f_4(2050)',9*' '/
 
39
      data (CHSP(I), I=220,369) /'eta''(958)','f''0',8*' ','phi(1020)',
 
40
     1 'h_1(1380)','f_1(1420)','phi(1680)','f''_1',5*' ','f''_2(1525)',
 
41
     2 9*' ','phi_3(1850)',19*' ','eta_c(1S)','chi_c0(1P)','eta_c(2S)',
 
42
     3 7*' ','J/PSI','hc(1P)','chi_c1(1P)','PSI(2S)','PSI(3770)',
 
43
     4 'PSI(4040)','PSI(4160)','PSI(4415)',2*' ','chi_c2(1P)',29*' ',
 
44
     5 'eta_b(1S)','chi_b0(1P)','eta_b(2S)','chi_b0(2P)','eta_b(3S)',
 
45
     6 5*' ','upsilon(1S)','h_b(1P)','chi_b1(1P)','upsilon(2S)',
 
46
     7 'h_b(2P)','chi_b1(2P)','upsilon(3S)','upsilon(4S)',
 
47
     8 'upsilon(10860)','upsilon(11020)','chi_b2(1P)','chi_b2(2P)',
 
48
     9 28*' '/
 
49
      data (CHSP(I), I=370,419) /'eta_t','chi_t0',8*' ','theta',
 
50
     1'h_1t','chi_t1',7*' ','chi_t2',29*' '/
 
51
      data (CHSP(I), I=420,449) /'eta_l','chi_l0',' ',
 
52
     2'theta_l','h_1l','chi_l1','chi_l2',8*' ','eta_h',
 
53
     3'chi_h0',' ','theta_h','h_1h','chi_h1','chi_h2',8*' '/
 
54
      data (CHSP(I), I=450,499) /'pi','a_0(980)','pi(1300)',7*' ',
 
55
     1'rho(770)','b_1(1235)','a_1(1260)','rho(1450)','rho(1700)',5*' ',
 
56
     2'a_2(1320)','pi_2(1670)',8*' ','rho_3(1690)',19*' '/
 
57
      data (CHSP(I), I=500,599) /'K','K*_0(1430)',8*' ','K*(892)',
 
58
     1'K_1(1270)','K_1(1400)','K*(1410)','K*(1680)',5*' ','K*_2(1430)',
 
59
     2'K_2(1770)','K_2(1820)',7*' ','K*_3(1780)',9*' ','K*_4(2045)',
 
60
     3 9*' ','K','K*_0(1430)',8*' ','K*(892)','K_1(1270)','K_1(1400)',
 
61
     4'K*(1410)','K*(1680)',5*' ','K*_2(1430)','K_2(1770)','K_2(1820)',
 
62
     5 7*' ','K*_3(1780)',9*' ','K*_4(2045)',9*' '/
 
63
      data (CHSP(I), I=600,749) /'D','D*_0',8*' ','D*(2010)',
 
64
     1'D_1(2420)','D*_1',7*' ','D*_2(2460)',29*' ','D','D*_0',8*' ',
 
65
     2'D*(2010)','D_1(2420)','D*_1',7*' ','D*_2(2460)',29*' ','D_s',
 
66
     3'D*_s0',8*' ','D*_s','D_s1(2536)','D*_s1',7*' ','D*_s2',29*' '/
 
67
      data (CHSP(I), I=750,949) /'B','B*_0',8*' ','B*',
 
68
     1'B_1','B*_1',7*' ','B*_2',29*' ','B','B*_0',8*' ',
 
69
     2'B*','B_1','B*_1',7*' ','B*_2',29*' ','B_s',
 
70
     3'B*_s0',8*' ','B*_s','B_s1','B*_s1',7*' ','B*_s2',29*' ','B_c',
 
71
     3'B*_c0',8*' ','B*_c','B_c1','B*_c1',7*' ','B*_c2',29*' '/
 
72
      data (CHSP(I), I=950,1199) /'T','T*_0',8*' ','T*',
 
73
     1'T_1','T*_1',7*' ','T*_2',29*' ','T','T*_0',8*' ',
 
74
     2'T*','T_1','T*_1',7*' ','T*_2',29*' ','T_s',
 
75
     3'T*_s0',8*' ','T*_s','T_s1','T*_s1',7*' ','T*_s2',29*' ','T_c',
 
76
     3'T*_c0',8*' ','T*_c','T_c1','T*_c1',7*' ','T*_c2',29*' ','T_b',
 
77
     3'T*_b0',8*' ','T*_b','T_b1','T*_b1',7*' ','T*_b2',29*' '/
 
78
      data (CHSP(I), I=1200,1289) /'L','L*_0',' ','L*','L_1','L*_1',
 
79
     1'L*_2',8*' ','L','L*_0',' ','L*','L_1','L*_1','L*_2',8*' ',
 
80
     2'L_s','L*_s0',' ','L*_s','L_s1','L*_s1','L*_s2',8*' ',
 
81
     3'L_c','L*_c0',' ','L*_c','L_c1','L*_c1','L*_c2',8*' ',
 
82
     4'L_b','L*_b0',' ','L*_b','L_b1','L*_b1','L*_b2',8*' ',
 
83
     5'L_t','L*_t0',' ','L*_t','L_t1','L*_t1','L*_t2',8*' '/
 
84
      data (CHSP(I), I=1290,1394) /'H','H*_0',' ','H*','H_1','H*_1',
 
85
     1'H*_2',8*' ','H','H*_0',' ','H*','H_1','H*_1','H*_2',8*' ',
 
86
     2'H_s','H*_s0',' ','H*_s','H_s1','H*_s1','H*_s2',8*' ',
 
87
     3'H_c','H*_c0',' ','H*_c','H_c1','H*_c1','H*_c2',8*' ',
 
88
     4'H_b','H*_b0',' ','H*_b','H_b1','H*_b1','H*_b2',8*' ',
 
89
     5'H_t','H*_t0',' ','H*_t','H_t1','H*_t1','H*_t2',8*' ',
 
90
     6'H_l','H*_l0',' ','H*_l','H_l1','H*_l1','H*_l2',8*' '/
 
91
      data (CHSP(I), I=1395,1415) /' ','Lambda','Lambda_c',
 
92
     1'Xi_c','Xi_c','Lambda_b','Xi_b','Xi_b','Xi_bc',
 
93
     2'Xi_bc','Omega_bc','Lambda_t','Xi_t','Xi_t',
 
94
     3'Xi_tc','Xi_tc','Omega_tc','Xi_tb','Xi_tb',
 
95
     4'Omega_tb','Omega_tbc'/
 
96
      data (CHSP(I), I=1416,1475) /' ','n','p',' ','Sigma','Sigma',
 
97
     1'Sigma','Xi','Xi',' ','Sigma_c','Sigma_c','Sigma_c','Xi_c''',
 
98
     2'Xi_c''','Omega_c','Xi_cc','Xi_cc','Omega_cc',' ','Sigma_b',
 
99
     3'Sigma_b','Sigma_b','Xi_b''','Xi_b''','Omega_b','Xi_bc''',
 
100
     4'Xi_bc''','Omega_bc''','Omega_bcc','Xi_bb','Xi_bb','Omega_bb',
 
101
     5'Omega_bbc',' ','Sigma_t','Sigma_t','Sigma_t','Xi_t''','Xi_t''',
 
102
     6'Omega_t','Xi_tc''','Xi_tc''','Omega_tc''','Omega_tcc','Xi_tb''',
 
103
     7'Xi_tb''','Omega_tb''','Omega_tbc''','Omega_tbb','Xi_tt','Xi_tt',
 
104
     8'Omega_tt','Omega_ttc','Omega_ttb',5*' '/
 
105
      data (CHSP(I), I=1476,1535) /'Delta','Delta','Delta','Delta',
 
106
     1'Sigma*','Sigma*','Sigma*','Xi*','Xi*','Omega',
 
107
     2'Sigma*_c','Sigma*_c','Sigma*_c','Xi*_c','Xi*_c','Omega*_c',
 
108
     3'Xi*_cc','Xi*_cc','Omega*_cc','Omega*_ccc',
 
109
     4'Sigma*_b','Sigma*_b','Sigma*_b','Xi*_b','Xi*_b','Omega*_b',
 
110
     5'Xi*_bc','Xi*_bc','Omega*_bc','Omega*_bcc',
 
111
     6'Xi*_bb','Xi*_bb','Omega*_bb','Omega*_bbc','Omega*_bbb',
 
112
     7'Sigma*_t','Sigma*_t','Sigma*_t','Xi*_t','Xi*_t','Omega*_t',
 
113
     8'Xi*_tc','Xi*_tc','Omega*_tc','Omega*_tcc','Xi*_tb','Xi*_tb',
 
114
     9'Omega*_tb','Omega*_tbc','Omega*_tbb','Xi*_tt','Xi*_tt',
 
115
     *'Omega*_tt','Omega*_ttc','Omega*_ttb','Omega*_ttt',4*' '/
 
116
      data (CHSP(I), I=1536,1600) /65*' '/
 
117
      data (CHSP(I), I=1601,1605) /'Hydrogen','Deuteron','Tritium',
 
118
     1'He3','Alpha'/
 
119
 
 
120
      save CHSP
 
121
 
 
122
 
 
123
C...Initial values. Charge (in units of 1/3). Subdivide code.
 
124
      CHAU=' '
 
125
      IDA=IABS(ID)
 
126
      if(IDA.EQ.0) return
 
127
 
 
128
      IDCM=hepcmp_old(ID)
 
129
      if(IDCM.LE.0) return
 
130
 
 
131
      LEN=0
 
132
      KQ=hepchg_old(ID)
 
133
      KQN=MOD(IDA/1000000000,10)
 
134
      IDQ3=MOD(IDA/1000,10)
 
135
      IDQ2=MOD(IDA/100,10)
 
136
      IDQ1=MOD(IDA/10,10)
 
137
      IDJS=MOD(IDA,10)
 
138
      IDEX=MOD(IDA/10000,10)
 
139
 
 
140
C...Read out root name and spin for simple particles and special cases
 
141
      if(IDA.LE.100) then
 
142
        CHAU=CHSP(IDCM)
 
143
        LEN=0
 
144
        do 100 LEM=1,20
 
145
  100     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
146
      elseif(KQN.eq.1) then
 
147
        CHAU=CHSP(IDCM)
 
148
        LEN=0
 
149
        do 110 LEM=1,20
 
150
  110     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
151
      elseif(IDJS.EQ.0) then
 
152
        CHAU=CHSP(IDCM)
 
153
        LEN=0
 
154
        do 150 LEM=1,20
 
155
  150     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
156
 
 
157
C...Construct root name for diquark. Add on spin.
 
158
      elseif(IDQ1.EQ.0) then
 
159
        CHAU(1:2)=CHSP(IDQ3)(1:1)//CHSP(IDQ2)(1:1)
 
160
        if(IDJS.EQ.1) CHAU(3:4)='_0'
 
161
        if(IDJS.EQ.3) CHAU(3:4)='_1'
 
162
        LEN=4
 
163
 
 
164
C...Construct root name for meson.
 
165
      elseif(IDQ3.EQ.0) then
 
166
        CHAU=CHSP(IDCM)
 
167
        LEN=0
 
168
        do 200 LEM=1,20
 
169
  200     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
170
 
 
171
C...Construct root name for Herwig remnant particles
 
172
      elseif(IDQ1.eq.9 .and. IDQ2.eq.9 .and. IDQ3.eq.9) then
 
173
        CHAU=CHSP(IDCM)
 
174
        LEN=0
 
175
        do 250 LEM=1,20
 
176
  250     if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
177
 
 
178
C...Construct root name and spin for baryon.
 
179
      else
 
180
        if(IDQ3.LE.6) then
 
181
          CHAU=CHSP(IDCM)
 
182
          LEN=0
 
183
          do 300 LEM=1,20
 
184
  300       if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
185
        else
 
186
C...Construct root name and spin for heavy baryon.
 
187
          LEN=0
 
188
          if(IDQ2.LE.2 .AND. IDQ1.LE.2)then
 
189
            CHAU='Sigma'
 
190
            if(IDJS.EQ.4) CHAU='Sigma*'
 
191
            if(IDQ1.GT.IDQ2) CHAU='Lambda'
 
192
          elseif(IDQ1.LE.2) then
 
193
            CHAU='Xi'''
 
194
            if(IDJS.EQ.4) CHAU='Xi*'
 
195
          elseif(IDQ2.LE.2) then
 
196
            CHAU='Xi'
 
197
          elseif(IDQ1.GT.IDQ2) then
 
198
            CHAU='Omega'
 
199
          else
 
200
            CHAU='Omega'''
 
201
            if(IDJS.EQ.4) CHAU='Omega*'
 
202
          endif
 
203
          do 320 LEM=1,20
 
204
  320       if(CHAU(LEM:LEM).NE.' ') LEN=LEM
 
205
 
 
206
C...Add on heavy flavour content for heavy baryon.
 
207
          CHAU(LEN+1:LEN+2)='_'//CHSP(IDQ3)(1:1)
 
208
          LEN=LEN+2
 
209
          if(IDQ2.GE.IDQ1.AND.IDQ1.GE.4) then
 
210
            CHAU(LEN+1:LEN+2)=CHSP(IDQ2)(1:1)//CHSP(IDQ1)(1:1)
 
211
            LEN=LEN+2
 
212
          elseif(IDQ2.GE.IDQ1.AND.IDQ2.GE.4) then
 
213
            CHAU(LEN+1:LEN+1)=CHSP(IDQ2)(1:1)
 
214
            LEN=LEN+1
 
215
          elseif(IDQ1.GT.IDQ2.AND.IDQ2.GE.4) then
 
216
            CHAU(LEN+1:LEN+2)=CHSP(IDQ1)(1:1)//CHSP(IDQ2)(1:1)
 
217
            LEN=LEN+2
 
218
          elseif(IDQ1.GT.IDQ2.AND.IDQ1.GE.4) then
 
219
            CHAU(LEN+1:LEN+1)=CHSP(IDQ1)(1:1)
 
220
            LEN=LEN+1
 
221
          endif
 
222
        endif
 
223
      endif
 
224
 
 
225
C...Add on bar sign for antiparticle (where necessary).
 
226
      if(ID.GT.0.OR.LEN.EQ.0) then
 
227
      elseif(IDA.GT.10.AND.IDA.LE.40.AND.KQ.NE.0) then
 
228
      elseif(IDA.GT.46.AND.IDA.LE.60.AND.KQ.NE.0) then
 
229
      elseif(IDA.GT.66.AND.IDA.LE.80.AND.KQ.NE.0) then
 
230
      elseif(IDA.GE.81.AND.IDA.LE.99) then
 
231
      elseif(IDA.GT.100.AND.IDQ3.EQ.0.AND.KQ.NE.0) then
 
232
      else
 
233
        CHAU(LEN+1:LEN+1)='~'
 
234
        LEN=LEN+1
 
235
      endif
 
236
 
 
237
C...Add on charge where applicable (conventional cases skipped).
 
238
      if(IDA.GE.81.AND.IDA.LE.100) then
 
239
C...generator specific codes
 
240
      elseif(IDCM.eq.114 .or. IDCM.eq.115) then
 
241
C...Herwig remnant particles
 
242
      elseif(KQN.eq.1) then
 
243
C...ions
 
244
      elseif(LEN.NE.0)then
 
245
C...everything else
 
246
        if(KQ.EQ.6) CHAU(LEN+1:LEN+2)='++'
 
247
        if(KQ.EQ.-6) CHAU(LEN+1:LEN+2)='--'
 
248
        if(KQ.EQ.3) CHAU(LEN+1:LEN+1)='+'
 
249
        if(KQ.EQ.-3) CHAU(LEN+1:LEN+1)='-'
 
250
 
 
251
        if(KQ.EQ.0.AND.IDA.LE.22) then
 
252
C...quarks and leptons
 
253
        elseif(KQ.EQ.0.AND.(IDA.GE.41.AND.IDA.LE.56)) then
 
254
C...left squarks, sleptons, etc.
 
255
        elseif(KQ.EQ.0.AND.(IDA.GE.61.AND.IDA.LE.67)) then
 
256
C...right squarks
 
257
        elseif(KQ.EQ.0.AND.(IDA.GE.71.AND.IDA.LE.76)) then
 
258
C...right sleptons
 
259
        elseif(IDA.GT.100.AND.IDQ3.EQ.0.AND.IDQ2.EQ.IDQ1.AND.
 
260
     &      IDQ2.NE.1) then
 
261
C... eta, psi, upsilon, etc.
 
262
        elseif(KQ.EQ.0) then
 
263
          CHAU(LEN+1:LEN+1)='0'
 
264
        endif
 
265
      endif
 
266
 
 
267
      return
 
268
      end