~maddevelopers/mg5amcnlo/2.9.4

« back to all changes in this revision

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

pass to v2.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine hptrlstj
 
2
C
 
3
C    compare particle ID for pythia and standard
 
4
C
 
5
#include "stdlun.inc"
 
6
      integer id1,id2,it1,it2,itt1,itt2,itmp
 
7
      integer i,j,k,l,ll
 
8
      integer lutran,pycomp
 
9
      character*16 cnam1,cnam2
 
10
      character*20 hnam1,hnam2
 
11
 
 
12
C...special cases
 
13
      write(lnhout,1001)
 
14
      do 100 i=1,100
 
15
        itmp=pycomp(i)
 
16
        if(itmp.gt.0)then
 
17
          id1=i
 
18
          it1=lutran(id1,1)
 
19
          itt1=lutran(it1,2)
 
20
          call pyname(id1,cnam1)
 
21
          call hepnam(it1,hnam1)
 
22
          id2=-i
 
23
          it2=lutran(id2,1)
 
24
          itmp=pycomp(id2)
 
25
          if(it1.eq.0)then
 
26
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
27
          elseif(it2.eq.0 .or. itmp.eq.0)then
 
28
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
29
          else
 
30
            itt2=lutran(it2,2)
 
31
            call pyname(id2,cnam2)
 
32
            call hepnam(it2,hnam2)
 
33
            write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
34
     1               id2,it2,hnam2,itt2,cnam2
 
35
          endif
 
36
        endif
 
37
 100  continue
 
38
      do 150 j=11,300
 
39
        i=j*10
 
40
        itmp=pycomp(i)
 
41
        if(itmp.gt.0)then
 
42
          id1=i
 
43
          it1=lutran(id1,1)
 
44
          itt1=lutran(it1,2)
 
45
          call pyname(id1,cnam1)
 
46
          call hepnam(it1,hnam1)
 
47
          id2=-i
 
48
          it2=lutran(id2,1)
 
49
          if(it1.eq.0)then
 
50
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
51
          elseif(it2.eq.0)then
 
52
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
53
          else
 
54
            itt2=lutran(it2,2)
 
55
            call pyname(id2,cnam2)
 
56
            call hepnam(it2,hnam2)
 
57
            write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
58
     1               id2,it2,hnam2,itt2,cnam2
 
59
          endif
 
60
        endif
 
61
 150  continue
 
62
      do i=1000001,1000039
 
63
        itmp=pycomp(i)
 
64
        if(itmp.gt.0)then
 
65
          id1=i
 
66
          it1=lutran(id1,1)
 
67
          itt1=lutran(it1,2)
 
68
          call pyname(id1,cnam1)
 
69
          call hepnam(it1,hnam1)
 
70
          id2=-i
 
71
          it2=lutran(id2,1)
 
72
          if(it1.eq.0)then
 
73
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
74
          elseif(it2.eq.0)then
 
75
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
76
          else
 
77
            itt2=lutran(it2,2)
 
78
            call pyname(id2,cnam2)
 
79
            call hepnam(it2,hnam2)
 
80
            write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
81
     1               id2,it2,hnam2,itt2,cnam2
 
82
          endif
 
83
        endif
 
84
      enddo
 
85
      do i=2000001,2000020
 
86
        itmp=pycomp(i)
 
87
        if(itmp.gt.0)then
 
88
          id1=i
 
89
          it1=lutran(id1,1)
 
90
          itt1=lutran(it1,2)
 
91
          call pyname(id1,cnam1)
 
92
          call hepnam(it1,hnam1)
 
93
          id2=-i
 
94
          it2=lutran(id2,1)
 
95
          if(it1.eq.0)then
 
96
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
97
          elseif(it2.eq.0)then
 
98
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
99
          else
 
100
            itt2=lutran(it2,2)
 
101
            call pyname(id2,cnam2)
 
102
            call hepnam(it2,hnam2)
 
103
            write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
104
     1               id2,it2,hnam2,itt2,cnam2
 
105
          endif
 
106
        endif
 
107
      enddo
 
108
      do i=3000001,3500000
 
109
        itmp=pycomp(i)
 
110
        if(itmp.gt.0)then
 
111
          id1=i
 
112
          it1=lutran(id1,1)
 
113
          itt1=lutran(it1,2)
 
114
          call pyname(id1,cnam1)
 
115
          call hepnam(it1,hnam1)
 
116
          id2=-i
 
117
          it2=lutran(id2,1)
 
118
          if(it1.eq.0)then
 
119
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
120
          elseif(it2.eq.0)then
 
121
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
122
          else
 
123
            itt2=lutran(it2,2)
 
124
            call pyname(id2,cnam2)
 
125
            call hepnam(it2,hnam2)
 
126
            write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
127
     1               id2,it2,hnam2,itt2,cnam2
 
128
          endif
 
129
        endif
 
130
      enddo
 
131
      do i=4000001,5000050
 
132
        itmp=pycomp(i)
 
133
        if(itmp.gt.0)then
 
134
          id1=i
 
135
          it1=lutran(id1,1)
 
136
          itt1=lutran(it1,2)
 
137
          call pyname(id1,cnam1)
 
138
          call hepnam(it1,hnam1)
 
139
          id2=-i
 
140
          it2=lutran(id2,1)
 
141
          if(it1.eq.0)then
 
142
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
143
          elseif(it2.eq.0)then
 
144
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
145
          else
 
146
            itt2=lutran(it2,2)
 
147
            call pyname(id2,cnam2)
 
148
            call hepnam(it2,hnam2)
 
149
            write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
150
     1               id2,it2,hnam2,itt2,cnam2
 
151
          endif
 
152
        endif
 
153
      enddo
 
154
      do i=9900001,9911000
 
155
        itmp=pycomp(i)
 
156
        if(itmp.gt.0)then
 
157
          id1=i
 
158
          it1=lutran(id1,1)
 
159
          itt1=lutran(it1,2)
 
160
          call pyname(id1,cnam1)
 
161
          call hepnam(it1,hnam1)
 
162
          id2=-i
 
163
          it2=lutran(id2,1)
 
164
          if(it1.eq.0)then
 
165
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
166
          elseif(it2.eq.0)then
 
167
            write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
168
          else
 
169
            itt2=lutran(it2,2)
 
170
            call pyname(id2,cnam2)
 
171
            call hepnam(it2,hnam2)
 
172
            write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
173
     1               id2,it2,hnam2,itt2,cnam2
 
174
          endif
 
175
        endif
 
176
      enddo
 
177
C...diquarks
 
178
      write(lnhout,1002)
 
179
      do 200 i=11,99
 
180
        do 190 j=1,10
 
181
          id1=100*i+j-1
 
182
          itmp=pycomp(id1)
 
183
          if(itmp.gt.0)then
 
184
            id2=-id1
 
185
            it1=lutran(id1,1)
 
186
            itt1=lutran(it1,2)
 
187
            call pyname(id1,cnam1)
 
188
            call hepnam(it1,hnam1)
 
189
            it2=lutran(id2,1)
 
190
            if(it1.eq.0)then
 
191
              write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
192
            elseif(it2.eq.0)then
 
193
              write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
194
            else
 
195
              itt2=lutran(it2,2)
 
196
              call pyname(id2,cnam2)
 
197
              call hepnam(it2,hnam2)
 
198
              write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,id2,
 
199
     1                it2,hnam2,itt2,cnam2
 
200
            endif
 
201
          endif
 
202
 190    continue
 
203
 200  continue
 
204
C...mesons
 
205
      write(lnhout,1003)
 
206
      do 300 i=1,9
 
207
        do 290 j=1,9
 
208
          do 280 k=1,9
 
209
            do 270 l=1,10
 
210
              do ll=1,2
 
211
                id1=100000*(ll-1)+10000*(l-1)+100*i+10*j+k
 
212
                itmp=pycomp(id1)
 
213
                if(itmp.gt.0)then
 
214
                  id2=-id1
 
215
                  it1=lutran(id1,1)
 
216
                  itt1=lutran(it1,2)
 
217
                  call pyname(id1,cnam1)
 
218
                  call hepnam(it1,hnam1)
 
219
                  it2=lutran(id2,1)
 
220
                  if(it1.eq.0)then
 
221
                    write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
222
                  elseif(it2.eq.0)then
 
223
                    write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
224
                  else
 
225
                    itt2=lutran(it2,2)
 
226
                    call pyname(id2,cnam2)
 
227
                    call hepnam(it2,hnam2)
 
228
                    write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
229
     1                   id2,it2,hnam2,itt2,cnam2
 
230
                  endif
 
231
                endif
 
232
              enddo
 
233
 270        continue
 
234
 280      continue
 
235
 290    continue
 
236
 300  continue
 
237
C...baryons
 
238
      write(lnhout,1004)
 
239
      do 400 i=1,9
 
240
        do 390 j=1,9
 
241
          do 380 k=1,9
 
242
            do 370 l=1,9
 
243
              id1=1000*i+100*j+10*k+l
 
244
              itmp=pycomp(id1)
 
245
              if(itmp.gt.0)then
 
246
                id2=-id1
 
247
                it1=lutran(id1,1)
 
248
                itt1=lutran(it1,2)
 
249
                call pyname(id1,cnam1)
 
250
                call hepnam(it1,hnam1)
 
251
                it2=lutran(id2,1)
 
252
                if(it1.eq.0)then
 
253
                  write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
254
                elseif(it2.eq.0)then
 
255
                  write(lnhout,1101) id1,it1,hnam1,itt1,cnam1
 
256
                else
 
257
                  itt2=lutran(it2,2)
 
258
                  call pyname(id2,cnam2)
 
259
                  call hepnam(it2,hnam2)
 
260
                  write(lnhout,1102) id1,it1,hnam1,itt1,cnam1,
 
261
     1                      id2,it2,hnam2,itt2,cnam2
 
262
                endif
 
263
              endif
 
264
 370        continue
 
265
 380      continue
 
266
 390    continue
 
267
 400  continue
 
268
      return
 
269
 1001 format(//5X,'Special Cases'/5X,'IJET',5X,'ISTD  HNAM',16x,
 
270
     1     'IJET  JNAME',13X,'IJET',5X,'ISTD  HNAM',16x,'IJET  JNAME')
 
271
 1002 format(//5X,'Diquarks'/5X,'IJET',5X,'ISTD  HNAM',16x,
 
272
     1     'IJET  JNAME',13X,'IJET',5X,'ISTD  HNAM',16x,'IJET  JNAME')
 
273
 1003 format(//5X,'Mesons'/5X,'IJET',5X,'ISTD  HNAM',16x,'IJET  JNAME',
 
274
     1     13X,'IJET',4X,'ISTD  HNAM',16x,'IJET  JNAME')
 
275
 1004 format(//5X,'Baryons'/5X,'IJET',5X,'ISTD  HNAM',16x,'IJET  JNAME',
 
276
     1     13X,'IJET',5X,'ISTD  HNAM',16x,'IJET  JNAME')
 
277
 1101 format(1X,I8,1X,I8,2X,a16,1X,I8,2X,a16)
 
278
 1102 format(1X,I8,1X,I8,2X,a16,1X,I8,2X,a16,
 
279
     1          I8,1X,I8,1X,a16,1X,I8,1X,a16)
 
280
      end