Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyinpr.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyinpr.f
1 
2 C*********************************************************************
3 
4 C...PYINPR
5 C...Selects partonic subprocesses to be included in the simulation.
6 
7  SUBROUTINE pyinpr
8 
9 C...Double precision and integer declarations.
10  IMPLICIT DOUBLE PRECISION(a-h, o-z)
11  IMPLICIT INTEGER(i-n)
12  INTEGER pyk,pychge,pycomp
13 
14 C...User process initialization commonblock.
15  INTEGER maxpup
16  parameter(maxpup=100)
17  INTEGER idbmup,pdfgup,pdfsup,idwtup,nprup,lprup
18  DOUBLE PRECISION ebmup,xsecup,xerrup,xmaxup
19  common/heprup/idbmup(2),ebmup(2),pdfgup(2),pdfsup(2),
20  &idwtup,nprup,xsecup(maxpup),xerrup(maxpup),xmaxup(maxpup),
21  &lprup(maxpup)
22  SAVE /heprup/
23 
24 C...Commonblocks and character variables.
25  common/pydat1/mstu(200),paru(200),mstj(200),parj(200)
26  common/pydat3/mdcy(500,3),mdme(8000,2),brat(8000),kfdp(8000,5)
27  common/pysubs/msel,mselpd,msub(500),kfin(2,-40:40),ckin(200)
28  common/pypars/mstp(200),parp(200),msti(200),pari(200)
29  common/pyint1/mint(400),vint(400)
30  common/pyint2/iset(500),kfpr(500,2),coef(500,20),icol(40,4,2)
31  common/pyint6/proc(0:500)
32  CHARACTER proc*28
33  SAVE /pydat1/,/pydat3/,/pysubs/,/pypars/,/pyint1/,/pyint2/,
34  &/pyint6/
35  CHARACTER chipr*10
36 
37 C...Reset processes to be included.
38  IF(msel.NE.0) THEN
39  DO 100 i=1,500
40  msub(i)=0
41  100 CONTINUE
42  ENDIF
43 
44 C...Set running pTmin scale.
45  IF(mstp(82).LE.1) THEN
46  ptmrun=parp(81)*(vint(1)/parp(89))**parp(90)
47  ELSE
48  ptmrun=parp(82)*(vint(1)/parp(89))**parp(90)
49  ENDIF
50 
51 C...Begin by assuming incoming photon to enter subprocess.
52  IF(mint(11).EQ.22) mint(15)=22
53  IF(mint(12).EQ.22) mint(16)=22
54 
55 C...For e-gamma with MSTP(14)=10 allow mixture of VMD and anomalous.
56  IF(mint(121).EQ.2.AND.mstp(14).EQ.10) THEN
57  msub(10)=1
58  mint(123)=mint(122)+1
59 
60 C...For gamma-p or gamma-gamma with MSTP(14) = 10, 20, 25 or 30
61 C...allow mixture.
62 C...Here also set a few parameters otherwise normally not touched.
63  ELSEIF(mint(121).GT.1) THEN
64 
65 C...Parton distributions dampened at small Q2; go to low energies,
66 C...alpha_s <1; no minimum pT cut-off a priori.
67  IF(mstp(18).EQ.2) THEN
68  mstp(57)=3
69  parp(2)=2d0
70  paru(115)=1d0
71  ckin(5)=0.2d0
72  ckin(6)=0.2d0
73  ENDIF
74 
75 C...Define pT cut-off parameters and whether run involves low-pT.
76  ptmvmd=ptmrun
77  vint(154)=ptmvmd
78  ptmdir=ptmvmd
79  IF(mstp(18).EQ.2) ptmdir=parp(15)
80  ptmano=ptmvmd
81  IF(mstp(15).EQ.5) ptmano=0.60d0+
82  & 0.125d0*log(1d0+0.10d0*vint(1))**2
83  iptl=1
84  IF(vint(285).GT.max(ptmvmd,ptmdir,ptmano)) iptl=0
85  IF(msel.EQ.2) iptl=1
86 
87 C...Set up for p/gamma * gamma; real or virtual photons.
88  IF(mint(121).EQ.3.OR.mint(121).EQ.6.OR.(mint(121).EQ.4.AND.
89  & mstp(14).EQ.30)) THEN
90 
91 C...Set up for p/VMD * VMD.
92  IF(mint(122).EQ.1) THEN
93  mint(123)=2
94  msub(11)=1
95  msub(12)=1
96  msub(13)=1
97  msub(28)=1
98  msub(53)=1
99  msub(68)=1
100  IF(iptl.EQ.1) msub(95)=1
101  IF(msel.EQ.2) THEN
102  msub(91)=1
103  msub(92)=1
104  msub(93)=1
105  msub(94)=1
106  ENDIF
107  IF(iptl.EQ.1) ckin(3)=0d0
108 
109 C...Set up for p/VMD * direct gamma.
110  ELSEIF(mint(122).EQ.2) THEN
111  mint(123)=0
112  IF(mint(121).EQ.6) mint(123)=5
113  msub(131)=1
114  msub(132)=1
115  msub(135)=1
116  msub(136)=1
117  IF(iptl.EQ.1) ckin(3)=ptmdir
118 
119 C...Set up for p/VMD * anomalous gamma.
120  ELSEIF(mint(122).EQ.3) THEN
121  mint(123)=3
122  IF(mint(121).EQ.6) mint(123)=7
123  msub(11)=1
124  msub(12)=1
125  msub(13)=1
126  msub(28)=1
127  msub(53)=1
128  msub(68)=1
129  IF(iptl.EQ.1) msub(95)=1
130  IF(msel.EQ.2) THEN
131  msub(91)=1
132  msub(92)=1
133  msub(93)=1
134  msub(94)=1
135  ENDIF
136  IF(iptl.EQ.1) ckin(3)=0d0
137 
138 C...Set up for DIS * p.
139  ELSEIF(mint(122).EQ.4.AND.(iabs(mint(11)).GT.100.OR.
140  & iabs(mint(12)).GT.100)) THEN
141  mint(123)=8
142  IF(iptl.EQ.1) msub(99)=1
143 
144 C...Set up for direct * direct gamma (switch off leptons).
145  ELSEIF(mint(122).EQ.4) THEN
146  mint(123)=0
147  msub(137)=1
148  msub(138)=1
149  msub(139)=1
150  msub(140)=1
151  DO 110 ii=mdcy(22,2),mdcy(22,2)+mdcy(22,3)-1
152  IF(iabs(kfdp(ii,1)).GE.10) mdme(ii,1)=min(0,mdme(ii,1))
153  110 CONTINUE
154  IF(iptl.EQ.1) ckin(3)=ptmdir
155 
156 C...Set up for direct * anomalous gamma.
157  ELSEIF(mint(122).EQ.5) THEN
158  mint(123)=6
159  msub(131)=1
160  msub(132)=1
161  msub(135)=1
162  msub(136)=1
163  IF(iptl.EQ.1) ckin(3)=ptmano
164 
165 C...Set up for anomalous * anomalous gamma.
166  ELSEIF(mint(122).EQ.6) THEN
167  mint(123)=3
168  msub(11)=1
169  msub(12)=1
170  msub(13)=1
171  msub(28)=1
172  msub(53)=1
173  msub(68)=1
174  IF(iptl.EQ.1) msub(95)=1
175  IF(msel.EQ.2) THEN
176  msub(91)=1
177  msub(92)=1
178  msub(93)=1
179  msub(94)=1
180  ENDIF
181  IF(iptl.EQ.1) ckin(3)=0d0
182  ENDIF
183 
184 C...Set up for gamma* * gamma*; virtual photons = dir, VMD, anom.
185  ELSEIF(mint(121).EQ.9.OR.mint(121).EQ.13) THEN
186 
187 C...Set up for direct * direct gamma (switch off leptons).
188  IF(mint(122).EQ.1) THEN
189  mint(123)=0
190  msub(137)=1
191  msub(138)=1
192  msub(139)=1
193  msub(140)=1
194  DO 120 ii=mdcy(22,2),mdcy(22,2)+mdcy(22,3)-1
195  IF(iabs(kfdp(ii,1)).GE.10) mdme(ii,1)=min(0,mdme(ii,1))
196  120 CONTINUE
197  IF(iptl.EQ.1) ckin(3)=ptmdir
198 
199 C...Set up for direct * VMD and VMD * direct gamma.
200  ELSEIF(mint(122).EQ.2.OR.mint(122).EQ.4) THEN
201  mint(123)=5
202  msub(131)=1
203  msub(132)=1
204  msub(135)=1
205  msub(136)=1
206  IF(iptl.EQ.1) ckin(3)=ptmdir
207 
208 C...Set up for direct * anomalous and anomalous * direct gamma.
209  ELSEIF(mint(122).EQ.3.OR.mint(122).EQ.7) THEN
210  mint(123)=6
211  msub(131)=1
212  msub(132)=1
213  msub(135)=1
214  msub(136)=1
215  IF(iptl.EQ.1) ckin(3)=ptmano
216 
217 C...Set up for VMD*VMD.
218  ELSEIF(mint(122).EQ.5) THEN
219  mint(123)=2
220  msub(11)=1
221  msub(12)=1
222  msub(13)=1
223  msub(28)=1
224  msub(53)=1
225  msub(68)=1
226  IF(iptl.EQ.1) msub(95)=1
227  IF(msel.EQ.2) THEN
228  msub(91)=1
229  msub(92)=1
230  msub(93)=1
231  msub(94)=1
232  ENDIF
233  IF(iptl.EQ.1) ckin(3)=0d0
234 
235 C...Set up for VMD * anomalous and anomalous * VMD gamma.
236  ELSEIF(mint(122).EQ.6.OR.mint(122).EQ.8) THEN
237  mint(123)=7
238  msub(11)=1
239  msub(12)=1
240  msub(13)=1
241  msub(28)=1
242  msub(53)=1
243  msub(68)=1
244  IF(iptl.EQ.1) msub(95)=1
245  IF(msel.EQ.2) THEN
246  msub(91)=1
247  msub(92)=1
248  msub(93)=1
249  msub(94)=1
250  ENDIF
251  IF(iptl.EQ.1) ckin(3)=0d0
252 
253 C...Set up for anomalous * anomalous gamma.
254  ELSEIF(mint(122).EQ.9) THEN
255  mint(123)=3
256  msub(11)=1
257  msub(12)=1
258  msub(13)=1
259  msub(28)=1
260  msub(53)=1
261  msub(68)=1
262  IF(iptl.EQ.1) msub(95)=1
263  IF(msel.EQ.2) THEN
264  msub(91)=1
265  msub(92)=1
266  msub(93)=1
267  msub(94)=1
268  ENDIF
269  IF(iptl.EQ.1) ckin(3)=0d0
270 
271 C...Set up for DIS * VMD and VMD * DIS gamma.
272  ELSEIF(mint(122).EQ.10.OR.mint(122).EQ.12) THEN
273  mint(123)=8
274  IF(iptl.EQ.1) msub(99)=1
275 
276 C...Set up for DIS * anomalous and anomalous * DIS gamma.
277  ELSEIF(mint(122).EQ.11.OR.mint(122).EQ.13) THEN
278  mint(123)=9
279  IF(iptl.EQ.1) msub(99)=1
280  ENDIF
281 
282 C...Set up for gamma* * p; virtual photons = dir, res.
283  ELSEIF(mint(121).EQ.2) THEN
284 
285 C...Set up for direct * p.
286  IF(mint(122).EQ.1) THEN
287  mint(123)=0
288  msub(131)=1
289  msub(132)=1
290  msub(135)=1
291  msub(136)=1
292  IF(iptl.EQ.1) ckin(3)=ptmdir
293 
294 C...Set up for resolved * p.
295  ELSEIF(mint(122).EQ.2) THEN
296  mint(123)=1
297  msub(11)=1
298  msub(12)=1
299  msub(13)=1
300  msub(28)=1
301  msub(53)=1
302  msub(68)=1
303  IF(iptl.EQ.1) msub(95)=1
304  IF(msel.EQ.2) THEN
305  msub(91)=1
306  msub(92)=1
307  msub(93)=1
308  msub(94)=1
309  ENDIF
310  IF(iptl.EQ.1) ckin(3)=0d0
311  ENDIF
312 
313 C...Set up for gamma* * gamma*; virtual photons = dir, res.
314  ELSEIF(mint(121).EQ.4) THEN
315 
316 C...Set up for direct * direct gamma (switch off leptons).
317  IF(mint(122).EQ.1) THEN
318  mint(123)=0
319  msub(137)=1
320  msub(138)=1
321  msub(139)=1
322  msub(140)=1
323  DO 130 ii=mdcy(22,2),mdcy(22,2)+mdcy(22,3)-1
324  IF(iabs(kfdp(ii,1)).GE.10) mdme(ii,1)=min(0,mdme(ii,1))
325  130 CONTINUE
326  IF(iptl.EQ.1) ckin(3)=ptmdir
327 
328 C...Set up for direct * resolved and resolved * direct gamma.
329  ELSEIF(mint(122).EQ.2.OR.mint(122).EQ.3) THEN
330  mint(123)=5
331  msub(131)=1
332  msub(132)=1
333  msub(135)=1
334  msub(136)=1
335  IF(iptl.EQ.1) ckin(3)=ptmdir
336 
337 C...Set up for resolved * resolved gamma.
338  ELSEIF(mint(122).EQ.4) THEN
339  mint(123)=2
340  msub(11)=1
341  msub(12)=1
342  msub(13)=1
343  msub(28)=1
344  msub(53)=1
345  msub(68)=1
346  IF(iptl.EQ.1) msub(95)=1
347  IF(msel.EQ.2) THEN
348  msub(91)=1
349  msub(92)=1
350  msub(93)=1
351  msub(94)=1
352  ENDIF
353  IF(iptl.EQ.1) ckin(3)=0d0
354  ENDIF
355 
356 C...End of special set up for gamma-p and gamma-gamma.
357  ENDIF
358  ckin(1)=2d0*ckin(3)
359  ENDIF
360 
361 C...Flavour information for individual beams.
362  DO 140 i=1,2
363  mint(40+i)=1
364  IF(mint(123).GE.1.AND.mint(10+i).EQ.22) mint(40+i)=2
365  IF(iabs(mint(10+i)).GT.100) mint(40+i)=2
366  mint(44+i)=mint(40+i)
367  IF(mstp(11).GE.1.AND.(iabs(mint(10+i)).EQ.11.OR.
368  & iabs(mint(10+i)).EQ.13.OR.iabs(mint(10+i)).EQ.15)) mint(44+i)=3
369  140 CONTINUE
370 
371 C...If two real gammas, whereof one direct, pick the first.
372 C...For two virtual photons, keep requested order.
373  IF(mint(11).EQ.22.AND.mint(12).EQ.22) THEN
374  IF(mstp(14).LE.10.AND.mint(123).GE.4.AND.mint(123).LE.6) THEN
375  mint(41)=1
376  mint(45)=1
377  ELSEIF(mstp(14).EQ.12.OR.mstp(14).EQ.13.OR.mstp(14).EQ.22.OR.
378  & mstp(14).EQ.26.OR.mstp(14).EQ.27) THEN
379  mint(41)=1
380  mint(45)=1
381  ELSEIF(mstp(14).EQ.14.OR.mstp(14).EQ.17.OR.mstp(14).EQ.23.OR.
382  & mstp(14).EQ.28.OR.mstp(14).EQ.29) THEN
383  mint(42)=1
384  mint(46)=1
385  ELSEIF((mstp(14).EQ.20.OR.mstp(14).EQ.30).AND.(mint(122).EQ.2
386  & .OR.mint(122).EQ.3.OR.mint(122).EQ.10.OR.mint(122).EQ.11)) THEN
387  mint(41)=1
388  mint(45)=1
389  ELSEIF((mstp(14).EQ.20.OR.mstp(14).EQ.30).AND.(mint(122).EQ.4
390  & .OR.mint(122).EQ.7.OR.mint(122).EQ.12.OR.mint(122).EQ.13)) THEN
391  mint(42)=1
392  mint(46)=1
393  ELSEIF(mstp(14).EQ.25.AND.mint(122).EQ.2) THEN
394  mint(41)=1
395  mint(45)=1
396  ELSEIF(mstp(14).EQ.25.AND.mint(122).EQ.3) THEN
397  mint(42)=1
398  mint(46)=1
399  ENDIF
400  ELSEIF(mint(11).EQ.22.OR.mint(12).EQ.22) THEN
401  IF(mstp(14).EQ.26.OR.mstp(14).EQ.28.OR.mint(122).EQ.4) THEN
402  IF(mint(11).EQ.22) THEN
403  mint(41)=1
404  mint(45)=1
405  ELSE
406  mint(42)=1
407  mint(46)=1
408  ENDIF
409  ENDIF
410  IF(mint(123).GE.4.AND.mint(123).LE.7) CALL pyerrm(26,
411  & '(PYINPR:) unallowed MSTP(14) code for single photon')
412  ENDIF
413 
414 C...Flavour information on combination of incoming particles.
415  mint(43)=2*mint(41)+mint(42)-2
416  mint(44)=mint(43)
417  IF(mint(123).LE.0) THEN
418  IF(mint(11).EQ.22) mint(43)=mint(43)+2
419  IF(mint(12).EQ.22) mint(43)=mint(43)+1
420  ELSEIF(mint(123).LE.3) THEN
421  IF(mint(11).EQ.22) mint(44)=mint(44)-2
422  IF(mint(12).EQ.22) mint(44)=mint(44)-1
423  ELSEIF(mint(11).EQ.22.AND.mint(12).EQ.22) THEN
424  mint(43)=4
425  mint(44)=1
426  ENDIF
427  mint(47)=2*min(2,mint(45))+min(2,mint(46))-2
428  IF(min(mint(45),mint(46)).EQ.3) mint(47)=5
429  IF(mint(45).EQ.1.AND.mint(46).EQ.3) mint(47)=6
430  IF(mint(45).EQ.3.AND.mint(46).EQ.1) mint(47)=7
431  mint(50)=0
432  IF(mint(41).EQ.2.AND.mint(42).EQ.2.AND.mint(111).NE.12) mint(50)=1
433  mint(107)=0
434  mint(108)=0
435  IF(mint(121).EQ.9.OR.mint(121).EQ.13) THEN
436  IF((mint(122).GE.4.AND.mint(122).LE.6).OR.mint(122).EQ.12)
437  & mint(107)=2
438  IF((mint(122).GE.7.AND.mint(122).LE.9).OR.mint(122).EQ.13)
439  & mint(107)=3
440  IF(mint(122).EQ.10.OR.mint(122).EQ.11) mint(107)=4
441  IF(mint(122).EQ.2.OR.mint(122).EQ.5.OR.mint(122).EQ.8.OR.
442  & mint(122).EQ.10) mint(108)=2
443  IF(mint(122).EQ.3.OR.mint(122).EQ.6.OR.mint(122).EQ.9.OR.
444  & mint(122).EQ.11) mint(108)=3
445  IF(mint(122).EQ.12.OR.mint(122).EQ.13) mint(108)=4
446  ELSEIF(mint(121).EQ.4.AND.mstp(14).EQ.25) THEN
447  IF(mint(122).GE.3) mint(107)=1
448  IF(mint(122).EQ.2.OR.mint(122).EQ.4) mint(108)=1
449  ELSEIF(mint(121).EQ.2) THEN
450  IF(mint(122).EQ.2.AND.mint(11).EQ.22) mint(107)=1
451  IF(mint(122).EQ.2.AND.mint(12).EQ.22) mint(108)=1
452  ELSE
453  IF(mint(11).EQ.22) THEN
454  mint(107)=mint(123)
455  IF(mint(123).GE.4) mint(107)=0
456  IF(mint(123).EQ.7) mint(107)=2
457  IF(mstp(14).EQ.26.OR.mstp(14).EQ.27) mint(107)=4
458  IF(mstp(14).EQ.28) mint(107)=2
459  IF(mstp(14).EQ.29) mint(107)=3
460  IF(mstp(14).EQ.30.AND.mint(121).EQ.4.AND.mint(122).EQ.4)
461  & mint(107)=4
462  ENDIF
463  IF(mint(12).EQ.22) THEN
464  mint(108)=mint(123)
465  IF(mint(123).GE.4) mint(108)=mint(123)-3
466  IF(mint(123).EQ.7) mint(108)=3
467  IF(mstp(14).EQ.26) mint(108)=2
468  IF(mstp(14).EQ.27) mint(108)=3
469  IF(mstp(14).EQ.28.OR.mstp(14).EQ.29) mint(108)=4
470  IF(mstp(14).EQ.30.AND.mint(121).EQ.4.AND.mint(122).EQ.4)
471  & mint(108)=4
472  ENDIF
473  IF(mint(11).EQ.22.AND.mint(12).EQ.22.AND.(mstp(14).EQ.14.OR.
474  & mstp(14).EQ.17.OR.mstp(14).EQ.18.OR.mstp(14).EQ.23)) THEN
475  minttp=mint(107)
476  mint(107)=mint(108)
477  mint(108)=minttp
478  ENDIF
479  ENDIF
480  IF(mint(15).EQ.22.AND.mint(41).EQ.2) mint(15)=0
481  IF(mint(16).EQ.22.AND.mint(42).EQ.2) mint(16)=0
482 
483 C...Select default processes according to incoming beams
484 C...(already done for gamma-p and gamma-gamma with
485 C...MSTP(14) = 10, 20, 25 or 30).
486  IF(mint(121).GT.1) THEN
487  ELSEIF(msel.EQ.1.OR.msel.EQ.2) THEN
488 
489  IF(mint(43).EQ.1) THEN
490 C...Lepton + lepton -> gamma/Z0 or W.
491  IF(mint(11)+mint(12).EQ.0) msub(1)=1
492  IF(mint(11)+mint(12).NE.0) msub(2)=1
493 
494  ELSEIF(mint(43).LE.3.AND.mint(123).EQ.0.AND.
495  & (mint(11).EQ.22.OR.mint(12).EQ.22)) THEN
496 C...Unresolved photon + lepton: Compton scattering.
497  msub(133)=1
498  msub(134)=1
499 
500  ELSEIF((mint(123).EQ.8.OR.mint(123).EQ.9).AND.(mint(11).EQ.22
501  & .OR.mint(12).EQ.22)) THEN
502 C...DIS as pure gamma* + f -> f process.
503  msub(99)=1
504 
505  ELSEIF(mint(43).LE.3) THEN
506 C...Lepton + hadron: deep inelastic scattering.
507  msub(10)=1
508 
509  ELSEIF(mint(123).EQ.0.AND.mint(11).EQ.22.AND.
510  & mint(12).EQ.22) THEN
511 C...Two unresolved photons: fermion pair production,
512 C...exclude lepton pairs.
513  DO 150 isub=137,140
514  msub(isub)=1
515  150 CONTINUE
516  DO 160 ii=mdcy(22,2),mdcy(22,2)+mdcy(22,3)-1
517  IF(iabs(kfdp(ii,1)).GE.10) mdme(ii,1)=min(0,mdme(ii,1))
518  160 CONTINUE
519  ptmdir=ptmrun
520  IF(mstp(18).EQ.2) ptmdir=parp(15)
521  IF(ckin(3).LT.ptmrun.OR.msel.EQ.2) ckin(3)=ptmdir
522  ckin(1)=max(ckin(1),2d0*ckin(3))
523 
524  ELSEIF((mint(123).EQ.0.AND.(mint(11).EQ.22.OR.mint(12).EQ.22))
525  & .OR.(mint(123).GE.4.AND.mint(123).LE.6.AND.mint(11).EQ.22.AND.
526  & mint(12).EQ.22)) THEN
527 C...Unresolved photon + hadron: photon-parton scattering.
528  DO 170 isub=131,136
529  msub(isub)=1
530  170 CONTINUE
531 
532  ELSEIF(msel.EQ.1) THEN
533 C...High-pT QCD processes:
534  msub(11)=1
535  msub(12)=1
536  msub(13)=1
537  msub(28)=1
538  msub(53)=1
539  msub(68)=1
540  ptmn=ptmrun
541  vint(154)=ptmn
542  IF(ckin(3).LT.ptmn) msub(95)=1
543  IF(msub(95).EQ.1.AND.mint(50).EQ.0) msub(95)=0
544 
545  ELSE
546 C...All QCD processes:
547  msub(11)=1
548  msub(12)=1
549  msub(13)=1
550  msub(28)=1
551  msub(53)=1
552  msub(68)=1
553  msub(91)=1
554  msub(92)=1
555  msub(93)=1
556  msub(94)=1
557  msub(95)=1
558  ENDIF
559 
560  ELSEIF(msel.GE.4.AND.msel.LE.8) THEN
561 C...Heavy quark production.
562  msub(81)=1
563  msub(82)=1
564  msub(84)=1
565  DO 180 j=1,min(8,mdcy(21,3))
566  mdme(mdcy(21,2)+j-1,1)=0
567  180 CONTINUE
568  mdme(mdcy(21,2)+msel-1,1)=1
569  msub(85)=1
570  DO 190 j=1,min(12,mdcy(22,3))
571  mdme(mdcy(22,2)+j-1,1)=0
572  190 CONTINUE
573  mdme(mdcy(22,2)+msel-1,1)=1
574 
575  ELSEIF(msel.EQ.10) THEN
576 C...Prompt photon production:
577  msub(14)=1
578  msub(18)=1
579  msub(29)=1
580 
581  ELSEIF(msel.EQ.11) THEN
582 C...Z0/gamma* production:
583  msub(1)=1
584 
585  ELSEIF(msel.EQ.12) THEN
586 C...W+/- production:
587  msub(2)=1
588 
589  ELSEIF(msel.EQ.13) THEN
590 C...Z0 + jet:
591  msub(15)=1
592  msub(30)=1
593 
594  ELSEIF(msel.EQ.14) THEN
595 C...W+/- + jet:
596  msub(16)=1
597  msub(31)=1
598 
599  ELSEIF(msel.EQ.15) THEN
600 C...Z0 & W+/- pair production:
601  msub(19)=1
602  msub(20)=1
603  msub(22)=1
604  msub(23)=1
605  msub(25)=1
606 
607  ELSEIF(msel.EQ.16) THEN
608 C...h0 production:
609  msub(3)=1
610  msub(102)=1
611  msub(103)=1
612  msub(123)=1
613  msub(124)=1
614 
615  ELSEIF(msel.EQ.17) THEN
616 C...h0 & Z0 or W+/- pair production:
617  msub(24)=1
618  msub(26)=1
619 
620  ELSEIF(msel.EQ.18) THEN
621 C...h0 production; interesting processes in e+e-.
622  msub(24)=1
623  msub(103)=1
624  msub(123)=1
625  msub(124)=1
626 
627  ELSEIF(msel.EQ.19) THEN
628 C...h0, H0 and A0 production; interesting processes in e+e-.
629  msub(24)=1
630  msub(103)=1
631  msub(123)=1
632  msub(124)=1
633  msub(153)=1
634  msub(171)=1
635  msub(173)=1
636  msub(174)=1
637  msub(158)=1
638  msub(176)=1
639  msub(178)=1
640  msub(179)=1
641 
642  ELSEIF(msel.EQ.21) THEN
643 C...Z'0 production:
644  msub(141)=1
645 
646  ELSEIF(msel.EQ.22) THEN
647 C...W'+/- production:
648  msub(142)=1
649 
650  ELSEIF(msel.EQ.23) THEN
651 C...H+/- production:
652  msub(143)=1
653 
654  ELSEIF(msel.EQ.24) THEN
655 C...R production:
656  msub(144)=1
657 
658  ELSEIF(msel.EQ.25) THEN
659 C...LQ (leptoquark) production.
660  msub(145)=1
661  msub(162)=1
662  msub(163)=1
663  msub(164)=1
664 
665  ELSEIF(msel.GE.35.AND.msel.LE.38) THEN
666 C...Production of one heavy quark (W exchange):
667  msub(83)=1
668  DO 200 j=1,min(8,mdcy(21,3))
669  mdme(mdcy(21,2)+j-1,1)=0
670  200 CONTINUE
671  mdme(mdcy(21,2)+msel-31,1)=1
672 
673 CMRENNA++Define SUSY alternatives.
674  ELSEIF(msel.EQ.39) THEN
675 C...Turn on all SUSY processes.
676  IF(mint(43).EQ.4) THEN
677 C...Hadron-hadron processes.
678  DO 210 i=201,301
679  IF(iset(i).GE.0) msub(i)=1
680  210 CONTINUE
681  ELSEIF(mint(43).EQ.1) THEN
682 C...Lepton-lepton processes: QED production of squarks.
683  DO 220 i=201,214
684  msub(i)=1
685  220 CONTINUE
686  msub(210)=0
687  msub(211)=0
688  msub(212)=0
689  DO 230 i=216,228
690  msub(i)=1
691  230 CONTINUE
692  DO 240 i=261,263
693  msub(i)=1
694  240 CONTINUE
695  msub(277)=1
696  msub(278)=1
697  ENDIF
698 
699  ELSEIF(msel.EQ.40) THEN
700 C...Gluinos and squarks.
701  IF(mint(43).EQ.4) THEN
702  msub(243)=1
703  msub(244)=1
704  msub(258)=1
705  msub(259)=1
706  msub(261)=1
707  msub(262)=1
708  msub(264)=1
709  msub(265)=1
710  DO 250 i=271,296
711  msub(i)=1
712  250 CONTINUE
713  ELSEIF(mint(43).EQ.1) THEN
714  msub(277)=1
715  msub(278)=1
716  ENDIF
717 
718  ELSEIF(msel.EQ.41) THEN
719 C...Stop production.
720  msub(261)=1
721  msub(262)=1
722  msub(263)=1
723  IF(mint(43).EQ.4) THEN
724  msub(264)=1
725  msub(265)=1
726  ENDIF
727 
728  ELSEIF(msel.EQ.42) THEN
729 C...Slepton production.
730  DO 260 i=201,214
731  msub(i)=1
732  260 CONTINUE
733  IF(mint(43).NE.4) THEN
734  msub(210)=0
735  msub(211)=0
736  msub(212)=0
737  ENDIF
738 
739  ELSEIF(msel.EQ.43) THEN
740 C...Neutralino/Chargino + Gluino/Squark.
741  IF(mint(43).EQ.4) THEN
742  DO 270 i=237,242
743  msub(i)=1
744  270 CONTINUE
745  DO 280 i=246,254
746  msub(i)=1
747  280 CONTINUE
748  msub(256)=1
749  ENDIF
750 
751  ELSEIF(msel.EQ.44) THEN
752 C...Neutralino/Chargino pair production.
753  IF(mint(43).EQ.4) THEN
754  DO 290 i=216,236
755  msub(i)=1
756  290 CONTINUE
757  ELSEIF(mint(43).EQ.1) THEN
758  DO 300 i=216,228
759  msub(i)=1
760  300 CONTINUE
761  ENDIF
762 
763  ELSEIF(msel.EQ.45) THEN
764 C...Sbottom production.
765  msub(287)=1
766  msub(288)=1
767  IF(mint(43).EQ.4) THEN
768  DO 310 i=281,296
769  msub(i)=1
770  310 CONTINUE
771  ENDIF
772 
773  ELSEIF(msel.EQ.50) THEN
774 C...Pair production of technipions and gauge bosons.
775  DO 320 i=361,368
776  msub(i)=1
777  320 CONTINUE
778  IF(mint(43).EQ.4) THEN
779  DO 330 i=370,377
780  msub(i)=1
781  330 CONTINUE
782  ENDIF
783 
784  ELSEIF(msel.EQ.51) THEN
785 C...QCD 2 -> 2 processes with compositeness/technicolor modifications.
786  DO 340 i=381,386
787  msub(i)=1
788  340 CONTINUE
789 
790  ELSEIF(msel.EQ.61) THEN
791 C...Charmonium production in colour octet model, with recoiling parton.
792  DO 342 i=421,439
793  msub(i)=1
794  342 CONTINUE
795 
796  ELSEIF(msel.EQ.62) THEN
797 C...Bottomonium production in colour octet model, with recoiling parton.
798  DO 344 i=461,479
799  msub(i)=1
800  344 CONTINUE
801 
802  ELSEIF(msel.EQ.63) THEN
803 C...Charmonium and bottomonium production in colour octet model.
804  DO 346 i=421,439
805  msub(i)=1
806  msub(i+40)=1
807  346 CONTINUE
808  ENDIF
809 
810 C...Find heaviest new quark flavour allowed in processes 81-84.
811  kflqm=1
812  DO 350 i=1,min(8,mdcy(21,3))
813  idc=i+mdcy(21,2)-1
814  IF(mdme(idc,1).LE.0) goto 350
815  kflqm=i
816  350 CONTINUE
817  IF(mstp(7).GE.1.AND.mstp(7).LE.8.AND.(msel.LE.3.OR.msel.GE.9))
818  &kflqm=mstp(7)
819  mint(55)=kflqm
820  kfpr(81,1)=kflqm
821  kfpr(81,2)=kflqm
822  kfpr(82,1)=kflqm
823  kfpr(82,2)=kflqm
824  kfpr(83,1)=kflqm
825  kfpr(84,1)=kflqm
826  kfpr(84,2)=kflqm
827 
828 C...Find heaviest new fermion flavour allowed in process 85.
829  kflfm=1
830  DO 360 i=1,min(12,mdcy(22,3))
831  idc=i+mdcy(22,2)-1
832  IF(mdme(idc,1).LE.0) goto 360
833  kflfm=kfdp(idc,1)
834  360 CONTINUE
835  IF(((mstp(7).GE.1.AND.mstp(7).LE.8).OR.(mstp(7).GE.11.AND.
836  &mstp(7).LE.18)).AND.(msel.LE.3.OR.msel.GE.9)) kflfm=mstp(7)
837  mint(56)=kflfm
838  kfpr(85,1)=kflfm
839  kfpr(85,2)=kflfm
840 
841 C...Import relevant information on external user processes.
842  IF(mint(111).GE.11) THEN
843  ipypr=0
844  DO 390 iup=1,nprup
845 C...Find next empty PYTHIA process number slot and enable it.
846  370 ipypr=ipypr+1
847  IF(ipypr.GT.500) CALL pyerrm(26,
848  & '(PYINPR.) no more empty slots for user processes')
849  IF(iset(ipypr).GE.0.AND.iset(ipypr).LE.9) goto 370
850  IF(ipypr.GE.91.AND.ipypr.LE.100) goto 370
851  iset(ipypr)=11
852 C...Overwrite KFPR with references back to process number and ID.
853  kfpr(ipypr,1)=iup
854  kfpr(ipypr,2)=lprup(iup)
855 C...Process title.
856  WRITE(chipr,'(I10)') lprup(iup)
857  ichin=1
858  DO 380 ich=1,9
859  IF(chipr(ich:ich).EQ.' ') ichin=ich+1
860  380 CONTINUE
861  proc(ipypr)='User process '//chipr(ichin:10)//' '
862 C...Switch on process.
863  msub(ipypr)=1
864  390 CONTINUE
865  ENDIF
866 
867  RETURN
868  END