next up previous contents
Next: Initial- and Final-State Radiation Up: The Process Generation Program Previous: Interfaces to Other Generators   Contents

Other Routines and Common Blocks

The subroutines and common blocks that you will come in direct contact with have already been described. A number of other routines and common blocks exist, and those not described elsewhere are here briefly listed for the sake of completeness. The PYG*** routines are slightly modified versions of the SAS*** ones of the SASGAM library. The common block SASCOM is renamed PYINT8. If you want to use the parton distributions for standalone purposes, you are encouraged to use the original SASGAM routines rather than going the way via the PYTHIA adaptations.

SUBROUTINE PYINRE :
to initialize the widths and effective widths of resonances.

SUBROUTINE PYINBM(CHFRAM,CHBEAM,CHTARG,WIN) :
to read in and identify the beam (CHBEAM) and target (CHTARG) particles and the frame (CHFRAM) as given in the PYINIT call; also to save the original energy (WIN).

SUBROUTINE PYINKI(MODKI) :
to set up the event kinematics, either at initialization (MODKI = 0) or for each separate event, the latter when the program is run with varying kinematics (MODKI = 1).

SUBROUTINE PYINPR :
to set up the partonic subprocesses selected with MSEL. For $\gamma\mathrm{p}$ and $\gamma\gamma$, also the MSTP(14) value affects the choice of processes. In particular, options such as MSTP(14) = 10 and = 30 sets up the several different kinds of processes that need to be mixed, with separate cuts for each.

SUBROUTINE PYXTOT :
to give the parameterized total, double diffractive, single diffractive and elastic cross sections for different energies and colliding hadrons or photons.

SUBROUTINE PYMAXI :
to find optimal coefficients COEF for the selection of kinematical variables, and to find the related maxima for the differential cross section times Jacobian factors, for each of the subprocesses included.

SUBROUTINE PYPILE(MPILE) :
to determine the number of pile-up events, i.e. events appearing in the same beam-beam crossing.

SUBROUTINE PYSAVE(ISAVE,IGA) :
saves and restores parameters and cross section values between the several $\gamma\mathrm{p}$ and $\gamma\gamma$ components of mixing options such as MSTP(14) = 10 and = 30. The options for ISAVE are (1) a complete save of all parameters specific to a given component, (2) a partial save of cross-section information, (3) a restoration of all parameters specific to a given component, (4) as 3 but preceded by a random selection of component, and (5) a summation of component cross sections (for PYSTAT). The subprocess code in IGA is the one described for MSTI(9); it is input for options 1, 2 and 3 above, output for 4 and dummy for 5.

SUBROUTINE PYGAGA(IGA) :
to generate photons according to the virtual photon flux around a lepton beam, for the 'gamma/lepton' option in PYINIT.
IGA = 1 :
call at initialization to set up $x$ and $Q^2$ limits etc.
IGA = 2 :
call at maximization step to give estimate of maximal photon flux factor.
IGA = 3 :
call at the beginning of the event generation to select the kinematics of the photon emission and to give the flux factor.
IGA = 4 :
call at the end of the event generation to set up the full kinematics of the photon emission.

SUBROUTINE PYRAND :
to generate the quantities characterizing a hard scattering on the parton level, according to the relevant matrix elements.

SUBROUTINE PYSCAT :
to find outgoing flavours and to set up the kinematics and colour flow of the hard scattering.

SUBROUTINE PYRESD(IRES) :
to allow resonances to decay, including chains of successive decays and parton showers. Normally only two-body decays of each resonance, but a few three-body decays are also implemented.
IRES :
The standard call from PYEVNT, for the hard process, has IRES = 0, and then finds resonances to be treated based on the subprocess number ISUB. In case of a nonzero IRES only the resonance in position IRES of the event record is considered. This is used by PYEVNT and PYEXEC to decay leftover resonances. (Example: a $\b\to \mathrm{W}+ \t $ branching may give a $\t $ quark as beam remnant.)

SUBROUTINE PYDIFF :
to handle diffractive and elastic scattering events.

SUBROUTINE PYDISG :
to set up kinematics, beam remnants and showers in the $2 \to 1$ DIS process $\gamma^* \mathrm{f}\to \mathrm{f}$. Currently initial-state radiation is not yet implemented, while final-state is.

SUBROUTINE PYDOCU :
to compute cross sections of processes, based on current Monte Carlo statistics, and to store event information in the MSTI and PARI arrays.

SUBROUTINE PYWIDT(KFLR,SH,WDTP,WDTE) :
to calculate widths and effective widths of resonances. Everything is given in dimensions of GeV.

SUBROUTINE PYOFSH(MOFSH,KFMO,KFD1,KFD2,PMMO,RET1,RET2) :
to calculate partial widths into channels off the mass shell, and to select correlated masses of resonance pairs.

SUBROUTINE PYKLIM(ILIM) :
to calculate allowed kinematical limits.

SUBROUTINE PYKMAP(IVAR,MVAR,VVAR) :
to calculate the value of a kinematical variable when this is selected according to one of the simple pieces.

SUBROUTINE PYSIGH(NCHN,SIGS) :
to give the differential cross section (multiplied by the relevant Jacobians) for a given subprocess and kinematical setup. With time, the PYSIGH increased to a size of over 7000 lines, which gave some compilers problems. Therefore, currently, all the phase-space and parton-density generic weights remain in PYSIGH itself, whereas the process-specific matrix elements have been grouped according to:
$\bullet$
PYSGQC : normal QCD processes, plus some similar instead with photons;
$\bullet$
PYSGHF : heavy flavour production, open and closed;
$\bullet$
PYSGWZ : $\mathrm{W}/ \mathrm{Z}$ processes, except as below;
$\bullet$
PYSGHG : Higgs processes (2 doublets), except Higgs pairs in PYSGSU, but including longitudinal $\mathrm{W}\mathrm{W}$ scattering for a heavy Higgs;
$\bullet$
PYSGSU : SUSY processes, including Higgs pair production;
$\bullet$
PYSGTC : Technicolor processes, including some related compositeness ones;
$\bullet$
PYSGEX : assorted exotic processes, including new gauge bosons ( $\mathrm{Z}'/\mathrm{W}'$), leptoquarks ( $\L _{\mathrm{Q}}$), horizontal gauge bosons ($\mathrm{R}^0$), a generation of excited fermions ( $\d ^*/\u ^*/\mathrm{e}^{*-}/\nu^*_{\mathrm{e}}$), left-right-symmetric scenarios ( $\H ^{++}/\mathrm{Z}_R/\mathrm{W}_R$), and extra dimensions ($\mathrm{G}^*$).

SUBROUTINE PYPDFL(KF,X,Q2,XPQ) :
to give parton distributions for $\mathrm{p}$ and $\mathrm{n}$ in the option with modified behaviour at small $Q^2$ and $x$, see MSTP(57).

SUBROUTINE PYPDFU(KF,X,Q2,XPQ) :
to give parton-distribution functions (multiplied by $x$, i.e. $x f_i(x,Q^2)$) for an arbitrary particle (of those recognized by PYTHIA). Generic driver routine for the following, specialized ones.
KF :
flavour of probed particle, according to KF code.
X :
$x$ value at which to evaluate parton distributions.
Q2 :
$Q^2$ scale at which to evaluate parton distributions.
XPQ :
array of dimensions XPQ(-25:25), which contains the evaluated parton distributions $x f_i(x,Q^2)$. Components $i$ ordered according to standard KF code; additionally the gluon is found in position 0 as well as 21 (for historical reasons).
Note:
the above set of calling arguments is enough for a real photon, but has to be complemented for a virtual one. This is done by VINT(120).

SUBROUTINE PYPDEL(KFA,X,Q2,XPEL) :
to give $\mathrm{e}/ \mu / \tau$ parton distributions.

SUBROUTINE PYPDGA(X,Q2,XPGA) :
to give the photon parton distributions for sets other than the SaS ones.

SUBROUTINE PYGGAM(ISET,X,Q2,P2,IP2,F2GM,XPDFGM) :
to construct the SaS $F_2$ and parton distributions of the photon by summing homogeneous (VMD) and inhomogeneous (anomalous) terms. For $F_2$, $\c $ and $\b $ are included by the Bethe-Heitler formula; in the ` $\overline{\mbox{\textsc{ms}}}$' scheme additionally a $C^{\gamma}$ term is added. IP2 sets treatment of virtual photons, with same code as MSTP(60). Calls PYGVMD, PYGANO, PYGBEH, and PYGDIR.

SUBROUTINE PYGVMD(ISET,KF,X,Q2,P2,ALAM,XPGA,VXPGA) :
  to evaluate the parton distributions of a VMD photon, evolved homogeneously from an initial scale $P^2$ to $Q^2$.

SUBROUTINE PYGANO(KF,X,Q2,P2,ALAM,XPGA,VXPGA) :
to evaluate the parton distributions of the anomalous photon, inhomogeneously evolved from a scale $P^2$ (where it vanishes) to $Q^2$.

SUBROUTINE PYGBEH(KF,X,Q2,P2,PM2,XPBH) :
to evaluate the Bethe-Heitler cross section for heavy flavour production.

SUBROUTINE PYGDIR(X,Q2,P2,AK0,XPGA) :
to evaluate the direct contribution, i.e. the $C^{\gamma}$ term, as needed in ` $\overline{\mbox{\textsc{ms}}}$' parameterizations.

SUBROUTINE PYPDPI(X,Q2,XPPI) :
to give pion parton distributions.

SUBROUTINE PYPDPR(X,Q2,XPPR) :
to give proton parton distributions. Calls several auxiliary routines: PYCTEQ, PYGRVL, PYGRVM, PYGRVD, PYGRVV, PYGRVW, PYGRVS, PYCT5L, PYCT5M and PYPDPO.

FUNCTION PYHFTH(SH,SQM,FRATT) :
to give heavy-flavour threshold factor in matrix elements.

SUBROUTINE PYSPLI(KF,KFLIN,KFLCH,KFLSP) :
to give hadron remnant or remnants left behind when the reacting parton is kicked out.

FUNCTION PYGAMM(X) :
to give the value of the ordinary $\Gamma (x)$ function (used in some parton-distribution parameterizations).

SUBROUTINE PYWAUX(IAUX,EPS,WRE,WIM) :
to evaluate the two auxiliary functions $W_1$ and $W_2$ appearing in some cross section expressions in PYSIGH.

SUBROUTINE PYI3AU(EPS,RAT,Y3RE,Y3IM) :
to evaluate the auxiliary function $I_3$ appearing in some cross section expressions in PYSIGH.

FUNCTION PYSPEN(XREIN,XIMIN,IREIM) :
to calculate the real and imaginary part of the Spence function [Hoo79].

SUBROUTINE PYQQBH(WTQQBH) :
to calculate matrix elements for the two processes $\mathrm{g}\mathrm{g}\to \mathrm{Q}\overline{\mathrm{Q}}\mathrm{h}^0$ and $\mathrm{q}\overline{\mathrm{q}}\to \mathrm{Q}\overline{\mathrm{Q}}\mathrm{h}^0$.

SUBROUTINE PYRECO(IW1,IW2,NSD1,NAFT1)) :
to perform nonperturbative reconnection among strings in $\mathrm{W}^+ \mathrm{W}^-$ and $\mathrm{Z}^0 \mathrm{Z}^0$ events. The physics of this routine is described as part of the fragmentation story, section [*], but for technical reasons the code is called directly in the event generation sequence.

BLOCK DATA PYDATA :
to give sensible default values to all status codes and parameters.

SUBROUTINE PYCKBD :
to check that a few different parameters in BLOCK DATA PYDATA have been set. This addresses a compiler bug, where it has happened that only a part of PYDATA is loaded if libraries are linked in some order (while it may work fine with another order).


\fbox{\texttt{COMMON/PYINT1/MINT(400),VINT(400)}}

Purpose:
to collect a host of integer- and real-valued variables used internally in the program during the initialization and/or event generation stage. These variables must not be changed by you.

MINT(1) :
specifies the general type of subprocess that has occurred, according to the ISUB code given in section [*].

MINT(2) :
whenever MINT(1) (together with MINT(15) and MINT(16)) are not sufficient to specify the type of process uniquely, MINT(2) provides an ordering of the different possibilities, see MSTI(2). Internally and temporarily, in process 53 MINT(2) is increased by 2 or 4 for $\c $ or $\b $, respectively.

MINT(3) :
number of partons produced in the hard interactions, i.e. the number $n$ of the $2 \to n$ matrix elements used; is sometimes 3 or 4 when a basic $2 \to 1$ or $2 \to 2$ process has been convoluted with two $1 \to 2$ initial branchings (like $\mathrm{q}\mathrm{q}' \to \mathrm{q}'' \mathrm{q}''' \mathrm{h}^0$).

MINT(4) :
number of documentation lines at the beginning of the common block PYJETS that are given with K(I,1) = 21; 0 for MSTP(125) = 0.

MINT(5) :
number of events generated to date in current run. In runs with the variable-energy option, MSTP(171) = 1 and MSTP(172) = 2, only those events that survive (i.e. that do not have MSTI(61) = 1) are counted in this number. That is, MINT(5) may be less than the total number of PYEVNT calls.

MINT(6) :
current frame of event (see MSTP(124) for possible values).

MINT(7), MINT(8) :
line number for documentation of outgoing partons/particles from hard scattering for $2 \to 2$ or $2 \to 1 \to 2$ processes (else = 0).
MINT(10) :
is 1 if cross section maximum was violated in current event, and 0 if not.

MINT(11) :
KF flavour code for beam (side 1) particle.

MINT(12) :
KF flavour code for target (side 2) particle.

MINT(13), MINT(14) :
KF flavour codes for side 1 and side 2 initial-state shower initiators.

MINT(15), MINT(16) :
KF flavour codes for side 1 and side 2 incoming partons to the hard interaction. (For use in PYWIDT calls, occasionally MINT(15) = 1 signals the presence of an as yet unspecified quark, but the original value is then restored afterwards.)

MINT(17), MINT(18) :
flag to signal if particle on side 1 or side 2 has been scattered diffractively; 0 if no, 1 if yes.

MINT(19), MINT(20) :
flag to signal initial-state structure with parton inside photon inside electron on side 1 or side 2; 0 if no, 1 if yes.

MINT(21) - MINT(24) :
KF flavour codes for outgoing partons from the hard interaction. The number of positions actually used is process-dependent, see MINT(3); trailing positions not used are set = 0. For events with many outgoing partons, e.g. in external processes, also MINT(25) and MINT(26) could be used.

MINT(25), MINT(26) :
KF flavour codes of the products in the decay of a single $s$-channel resonance formed in the hard interaction. Are thus only used when MINT(3) = 1 and the resonance is allowed to decay.

MINT(30) :
normally 0, but when 1 or 2 it is a signal for PYPDFU that PDF's are to be evaluated taking into account the partons already removed from the beam remnant on side 1 or 2 of the event.

MINT(31) :
number of hard or semi-hard scatterings that occurred in the current event in the multiple-interaction scenario; is = 0 for a low-$p_{\perp}$ event.

MINT(32) :
information on whether a nonperturbative colour reconnection occurred in the current event; is 0 normally but 1 in case of reconnection.

MINT(33) :
Switch to select how to trace colour connections in PYPREP.
= 0 :
Old method, using K(I,4) and K(I,5) in /PYJETS/.
= 1 :
New method, using Les Houches Accord style colour tags in /PYCTAG/.

MINT(34) :
counter for the number of final-state colour reconnections in the new multiple interactions scenario.

MINT(35) :
internal switch to tell which routine generates the event, so that some details (partly physics, partly administrative) can be processed differently in the called routines.
= 1 :
PYEVNT generates event, using the `old' shower, multiple interactions and beam-remnants machinery.
= 2 :
PYEVNT generates event, using the `intermediate' model with the new handling of beam remnants but old showers.
= 3 :
PYEVNW generates event, using the `new' model.

MINT(36) :
the currently considered interaction number for (trial) showers and a (trial) additional interaction, i.e. = 1 for the hardest interaction and > 1 for additional interactions. MINT(36) $\leq$ MINT(31) for showering, while MINT(36) = MINT(31) + 1 for an additional (trial) interaction.

MINT(41), MINT(42) :
type of incoming beam or target particle; 1 for lepton and 2 for hadron. A photon counts as a lepton if it is not resolved (direct or DIS) and as a hadron if it is resolved (VMD or GVMD).

MINT(43) :
combination of incoming beam and target particles. A photon counts as a hadron.
= 1 :
lepton on lepton.
= 2 :
lepton on hadron.
= 3 :
hadron on lepton.
= 4 :
hadron on hadron.

MINT(44) :
as MINT(43), but a photon counts as a lepton.

MINT(45), MINT(46) :
structure of incoming beam and target particles.
= 1 :
no internal structure, i.e. a lepton or photon carrying the full beam energy.
= 2 :
defined with parton distributions that are not peaked at $x = 1$, i.e. a hadron or a resolved (VMD or GVMD) photon.
= 3 :
defined with parton distributions that are peaked at $x = 1$, i.e. a resolved lepton.

MINT(47) :
combination of incoming beam- and target-particle parton-distribution function types.
= 1 :
no parton distribution either for beam or target.
= 2 :
parton distributions for target but not for beam.
= 3 :
parton distributions for beam but not for target.
= 4 :
parton distributions for both beam and target, but not both peaked at $x = 1$.
= 5 :
parton distributions for both beam and target, with both peaked at $x = 1$.
= 6 :
parton distribution is peaked at $x = 1$ for target and no distribution at all for beam.
= 7 :
parton distribution is peaked at $x = 1$ for beam and no distribution at all for target.

MINT(48) :
total number of subprocesses switched on.

MINT(49) :
number of subprocesses that are switched on, apart from elastic scattering and single, double and central diffractive.

MINT(50) :
combination of incoming particles from a multiple interactions point of view.
= 0 :
the total cross section is not known; therefore no multiple interactions are possible.
= 1 :
the total cross section is known; therefore multiple interactions are possible if switched on. Requires beams of hadrons, VMD photons or GVMD photons.

MINT(51) :
internal flag that event failed cuts.
= 0 :
no problem.
= 1 :
event failed; new one to be generated.
= 2 :
event failed; no new event is to be generated but instead control is to be given back to the user. Is intended for user-defined processes, when NUP = 0.

MINT(52) :
internal counter for number of lines used (in PYJETS) before multiple interactions are considered.

MINT(53) :
internal counter for number of lines used (in PYJETS) before beam remnants are considered.

MINT(54) :
internal counter for the number of lines used (in PYJETS) after beam remnants are considered.

MINT(55) :
the heaviest new flavour switched on for QCD processes, specifically the flavour to be generated for ISUB = 81, 82, 83 or 84.

MINT(56) :
the heaviest new flavour switched on for QED processes, specifically for ISUB = 85. Note that, unlike MINT(55), the heaviest flavour may here be a lepton, and that heavy means the one with largest KF code.

MINT(57) :
number of times the beam-remnant treatment has failed, and the same basic kinematical setup is used to produce a new parton-shower evolution and beam-remnant set. Mainly used in leptoproduction, for the MSTP(23) options when $x$ and $Q^2$ are to be preserved.

MINT(61) :
internal switch for the mode of operation of resonance width calculations in PYWIDT for $\gamma^* / \mathrm{Z}^0$ or $\gamma^*/\mathrm{Z}^0/\mathrm{Z}'^0$.
= 0 :
without reference to initial-state flavours.
= 1 :
with reference to given initial-state flavours.
= 2 :
for given final-state flavours.

MINT(62) :
internal switch for use at initialization of $\mathrm{h}^0$ width.
= 0 :
use widths into $\mathrm{Z}\mathrm{Z}^*$ or $\mathrm{W}\mathrm{W}^*$ calculated before.
= 1 :
evaluate widths into $\mathrm{Z}\mathrm{Z}^*$ or $\mathrm{W}\mathrm{W}^*$ for current Higgs mass.

MINT(63) :
internal switch for use at initialization of the width of a resonance defined with MWID(KC) = 3.
= 0 :
use existing widths, optionally with simple energy rescaling.
= 1 :
evaluate widths at initialization, to be used subsequently.

MINT(65) :
internal switch to indicate initialization without specified reaction.
= 0 :
normal initialization.
= 1 :
initialization with argument 'none' in PYINIT call.

MINT(71) :
switch to tell whether current process is singular for $p_{\perp}\to 0$ or not.
= 0 :
non-singular process, i.e. proceeding via an $s$-channel resonance or with both products having a mass above CKIN(6).
= 1 :
singular process.

MINT(72) :
number of $s$-channel resonances that may contribute to the cross section.

MINT(73) :
KF code of first $s$-channel resonance; 0 if there is none.

MINT(74) :
KF code of second $s$-channel resonance; 0 if there is none.

MINT(81) :
number of selected pile-up events.

MINT(82) :
sequence number of currently considered pile-up event.

MINT(83) :
number of lines in the event record already filled by previously considered pile-up events.

MINT(84) :
MINT(83) + MSTP(126), i.e. number of lines already filled by previously considered events plus number of lines to be kept free for event documentation.

MINT(91) :
is 1 for a lepton-hadron event and 0 else. Used to determine whether a PYFRAM(3) call is possible.

MINT(92) :
is used to denote region in $(x, Q^2)$ plane when MSTP(57) = 2, according to numbering in [Sch93a]. Simply put, 0 means that the modified proton parton distributions were not used, 1 large $x$ and $Q^2$, 2 small $Q^2$ but large $x$, 3 small $x$ but large $Q^2$ and 4 small $x$ and $Q^2$.

MINT(93) :
is used to keep track of parton distribution set used in the latest STRUCTM call to PDFLIB or LHAPDF. The code for this set is stored in the form MINT(93) = 1000000$\times$NPTYPE + 1000$\times$NGROUP + NSET. The stored previous value is compared with the current new value to decide whether a PDFSET call is needed to switch to another set.

MINT(101), MINT(102) :
is normally 1, but is 4 when a resolved photon (appearing on side 1 or 2) can be represented by either of the four vector mesons $\rho^0$, $\omega$, $\phi$ and $\mathrm{J}/\psi $.

MINT(103), MINT(104) :
KF flavour code for the two incoming particles, i.e. the same as MINT(11) and MINT(12). The exception is when a resolved photon is represented by a vector meson (a $\rho^0$, $\omega$, $\phi$ or $\mathrm{J}/\psi $). Then the code of the vector meson is given.

MINT(105) :
is either MINT(103) or MINT(104), depending on which side of the event currently is being studied.

MINT(107), MINT(108) :
if either or both of the two incoming particles is a photon, then the respective value gives the nature assumed for that photon. The code follows the one used for MSTP(14):
= 0 :
direct photon.
= 1 :
resolved photon.
= 2 :
VMD-like photon.
= 3 :
anomalous photon.
= 4 :
DIS photon.

MINT(109) :
is either MINT(107) or MINT(108), depending on which side of the event currently is being studied.

MINT(111) :
the frame given in PYINIT call, 0-5 for 'NONE', 'CMS', 'FIXT', '3MOM', '4MOM' and '5MOM', respectively, and 11 for 'USER'. Option 12 signals input of Les Houches Accord events without beam-remnant processing, see PDFGUP(i) = -9 in section [*].

MINT(121) :
number of separate event classes to initialize and mix.
= 1 :
the normal value.
= 2 - 13 :
for $\gamma\mathrm{p}/\gamma^*\mathrm{p}/\gamma\gamma/\gamma^*\gamma/\gamma^*\gamma^*$ interaction when MSTP(14) is set to mix different photon components.

MINT(122) :
event class used in current event for $\gamma\mathrm{p}$ or $\gamma\gamma$ events generated with one of the MSTP(14) options mixing several event classes; code as described for MSTI(9).

MINT(123) :
event class used in the current event, with the same list of possibilities as for MSTP(14), except that options 1, 4 or 10 do not appear. = 8 denotes DIS$\times$VMD/$\mathrm{p}$ or vice verse, = 9 DIS*GVMD or vice versa. Apart from a different coding, this is exactly the same information as is available in MINT(122).

MINT(141), MINT(142) :
for 'gamma/lepton' beams, KF code for incoming lepton beam or target particles, while MINT(11) and MINT(12) is then the photon code. A nonzero value is the main check whether the photon emission machinery should be called at all.

MINT(143) :
the number of tries before a successful kinematics configuration is found in PYGAGA, used for 'gamma/lepton' beams. Used for the cross section updating in PYRAND.

MINT(351) :
Current number of multiple interactions, excluding the hardest in an event; is normally equal to MINT(31) - 1 = MSTI(31) - 1, but is = 0 when MINT(31) = MSTI(31) = 0.

MINT(352) :
Current number of initial-state-radiation branchings.

MINT(353) :
Current number of final-state-radiation branchings

MINT(354) :
Current number of multiple interactions joinings (not fully implemented.)


VINT(1) :
$E_{\mathrm{cm}}$, c.m. energy.

VINT(2) :
$s$ ( $=E_{\mathrm{cm}}^2$) squared mass of complete system.

VINT(3) :
mass of beam particle. Can be negative to denote a space-like particle, e.g. a $\gamma^*$.

VINT(4) :
mass of target particle. Can be negative to denote a space-like particle, e.g. a $\gamma^*$.

VINT(5) :
absolute value of momentum of beam (and target) particle in c.m. frame.

VINT(6) - VINT(10) :
$\theta$, $\varphi$ and $\beta$ for rotation and boost from c.m. frame to user-specified frame.

VINT(11) :
$\tau_{\mathrm{min}}$.

VINT(12) :
$y_{\mathrm{min}}$.

VINT(13) :
$\cos\hat{\theta}_{\mathrm{min}}$ for $\cos\hat{\theta} \leq 0$.

VINT(14) :
$\cos\hat{\theta}_{\mathrm{min}}$ for $\cos\hat{\theta} \geq 0$.

VINT(15) :
$x^2_{\perp \mathrm{min}}$.

VINT(16) :
$\tau'_{\mathrm{min}}$.

VINT(17) :
(D = 0.) absolute lower $p_{\perp}^2$ scale, as used to determine exit of multiple interactions and and initial-state radiation routines.

VINT(18) :
soft destructive colour interference scale used for regularising the multiple interactions and initial-state radiation matrix elements.

VINT(21) :
$\tau$.

VINT(22) :
$y$.

VINT(23) :
$\cos\hat{\theta}$.

VINT(24) :
$\varphi$ (azimuthal angle).

VINT(25) :
$x_{\perp}^2$.

VINT(26) :
$\tau'$.

VINT(31) :
$\tau_{\mathrm{max}}$.

VINT(32) :
$y_{\mathrm{max}}$.

VINT(33) :
$\cos\hat{\theta}_{\mathrm{max}}$ for $\cos\hat{\theta} \leq 0$.

VINT(34) :
$\cos\hat{\theta}_{\mathrm{max}}$ for $\cos\hat{\theta} \geq 0$.

VINT(35) :
$x^2_{\perp \mathrm{max}}$.

VINT(36) :
$\tau'_{\mathrm{max}}$.

VINT(41), VINT(42) :
the momentum fractions $x$ taken by the partons at the hard interaction, as used e.g. in the parton-distribution functions. For process 99 this agrees with the Bjorken definition, including target mass corrections, i.e., for a proton target, $x = Q^2/(W^2 + Q^2 - m_{\mathrm{p}}^2)$.

VINT(43) :
$\hat{m} = \sqrt{\hat{s}}$, mass of hard-scattering subsystem.

VINT(44) :
$\hat{s}$ of the hard subprocess ($2 \to 2$ or $2 \to 1$).

VINT(45) :
$\hat{t}$ of the hard subprocess ($2 \to 2$ or $2 \to 1 \to 2$).

VINT(46) :
$\hat{u}$ of the hard subprocess ($2 \to 2$ or $2 \to 1 \to 2$).

VINT(47) :
$\hat{p}_{\perp}$ of the hard subprocess ($2 \to 2$ or $2 \to 1 \to 2$), i.e. transverse momentum evaluated in the rest frame of the scattering.

VINT(48) :
$\hat{p}_{\perp}^2$ of the hard subprocess; see VINT(47).

VINT(49) :
$\hat{m}'$, the mass of the complete three- or four-body final state in $2 \to 3$ or $2 \to 4$ processes.

VINT(50) :
$\hat{s}' = \hat{m}'^2$; see VINT(49).

VINT(51) :
$Q$ of the hard subprocess. The exact definition is process-dependent, see MSTP(32).

VINT(52) :
$Q^2$ of the hard subprocess; see VINT(51).

VINT(53) :
$Q$ of the outer hard-scattering subprocess, used as scale for parton distribution function evaluation. Agrees with VINT(51) for a $2 \to 1$ or $2 \to 2$ process. For a $2 \to 3$ or $2 \to 4$ $\mathrm{W}/ \mathrm{Z}$ fusion process, it is set by the $\mathrm{W}/ \mathrm{Z}$ mass scale, and for subprocesses 121 and 122 by the heavy-quark mass.

VINT(54) :
$Q^2$ of the outer hard-scattering subprocess; see VINT(53).

VINT(55) :
$Q$ scale used as maximum virtuality in parton showers. Is equal to VINT(53), except for DIS processes when MSTP(22) $> 0$.

VINT(56) :
$Q^2$ scale in parton showers; see VINT(55).

VINT(57) :
$\alpha_{\mathrm{em}}$ value of hard process.

VINT(58) :
$\alpha_{\mathrm{s}}$ value of hard process.

VINT(59) :
$\sin\hat{\theta}$ (cf. VINT(23)); used for improved numerical precision in elastic and diffractive scattering.

VINT(61) :
$p_{\perp}$ scale used as maximum transverse momentum for multiple interactions. See MSTP(86).

VINT(62) :
$p_{\perp}2$ maximum scale for multiple interactions, see VINT(61).

VINT(63), VINT(64) :
nominal $m^2$ values, i.e. without final-state radiation effects, for the two (or one) partons/particles leaving the hard interaction. For elastic VMD and GVMD events, this equals VINT(69)$^2$ or VINT(70)$^2$, and for diffractive events it is above that.

VINT(65) :
$\hat{p}_{\mathrm{init}}$, i.e. common nominal absolute momentum of the two partons entering the hard interaction, in their rest frame.

VINT(66) :
$\hat{p}_{\mathrm{fin}}$, i.e. common nominal absolute momentum of the two partons leaving the hard interaction, in their rest frame.

VINT(67), VINT(68) :
mass of beam and target particle, as VINT(3) and VINT(4), except that an incoming $\gamma$ is assigned the $\rho^0$, $\omega$ or $\phi$ mass. (This also applies for a GVMD photon, where the mass of the VMD state with the equivalent flavour content is chosen.) Used for elastic scattering $\gamma \mathrm{p}\to \rho^0 \mathrm{p}$ and other similar processes.

VINT(69), VINT(70) :
the actual mass of a VMD or GVMD state; agrees with the above for VMD but is selected as a larger number for GVMD, using the approximate association $m = 2 k_{\perp}$. Thus the mass selection for a GVMD state is according to $\d m^2/(m^2+Q^2)^2$ between limits $2 k_0 < m < 2 k_1 = 2 p_{\perp\mathrm{min}}(W^2)$. Required for elastic and diffractive events.

VINT(71) :
initially it is $p_{\perp\mathrm{min}}$ of process, but this is replaced by the actual $p_{\perp}$ once the process has actually been selected. For a normal hard process $p_{\perp\mathrm{min}}$ is either CKIN(3) or CKIN(5), depending on which is larger, and whether the process is singular in $p_{\perp}\to 0$ or not. For multiple interactions it is either the energy-dependent $p_{\perp\mathrm{min}}$ derived from PARP(81) or the fraction $0.08 \times p_{\perp 0}$ derived from PARP(82), depending on MSTP(82) setting. (In the latter scenario, formally $p_{\perp}= 0$ is allowed but is numerically unstable; hence the small nonvanishing value.)

VINT(73) :
$\tau = m^2/s$ value of first resonance, if any; see MINT(73).

VINT(74) :
$m \Gamma/s$ value of first resonance, if any; see MINT(73).

VINT(75) :
$\tau = m^2/s$ value of second resonance, if any; see MINT(74).

VINT(76) :
$m \Gamma/s$ value of second resonance, if any; see MINT(74).

VINT(80) :
correction factor (evaluated in PYOFSH) for the cross section of resonances produced in $2 \to 2$ processes, if only some mass range of the full Breit-Wigner shape is allowed by user-set mass cuts (CKIN(2), CKIN(45) - CKIN(48)).

VINT(95) :
the value of the Coulomb factor in the current event, see MSTP(40). For MSTP(40) = 0 it is $=1$, else it is $>1$.

VINT(97) :
an event weight, normally 1 and thus uninteresting, but for external processes with IDWTUP = -1, -2 or -3 it can be $-1$ for events with negative cross section, with IDWTUP = 4 it can be an arbitrary non-negative weight of dimension mb, and with IDWTUP = -4 it can be an arbitrary weight of dimension mb. (The difference being that in most cases a rejection step is involved to bring the accepted events to a common weight normalization, up to a sign, while no rejection need be involved in the last two cases.)

VINT(98) :
is sum of VINT(100) values for current run.

VINT(99) :
is weight WTXS returned from PYEVWT call when MSTP(142) $\geq 1$, otherwise is 1.

VINT(100) :
is compensating weight 1./WTXS that should be associated with events when MSTP(142) = 1, otherwise is 1.

VINT(108) :
ratio of maximum differential cross section observed to maximum differential cross section assumed for the generation; cf. MSTP(123).

VINT(109) :
ratio of minimal (negative!) cross section observed to maximum differential cross section assumed for the generation; could only become negative if cross sections are incorrectly included.

VINT(111) - VINT(116) :
for MINT(61) = 1 gives kinematical factors for the different pieces contributing to $\gamma^* / \mathrm{Z}^0$ or $\gamma^*/\mathrm{Z}^0/\mathrm{Z}'^0$ production, for MINT(61) = 2 gives sum of final-state weights for the same; coefficients are given in the order pure $\gamma^*$, $\gamma^*$-$\mathrm{Z}^0$ interference, $\gamma^*$-$\mathrm{Z}'^0$ interference, pure $\mathrm{Z}^0$, $\mathrm{Z}^0$-$\mathrm{Z}'^0$ interference and pure $\mathrm{Z}'^0$.

VINT(117) :
width of $\mathrm{Z}^0$; needed in $\gamma^*/\mathrm{Z}^0/\mathrm{Z}'^0$ production.

VINT(120) :
mass of beam or target particle, i.e. coincides with VINT(3) or VINT(4), depending on which side of the event is considered. Is used to bring information on the user-defined virtuality of a photon beam to the parton distributions of the photon.

VINT(131) :
total cross section (in mb) for subprocesses allowed in the pile-up events scenario according to the MSTP(132) value.

VINT(132) :
$\overline{n} = $VINT(131)$\times$PARP(131) of pile-up events, cf. PARI(91).

VINT(133) :
$\langle n \rangle = \sum_i i \, {\cal P}_i /
\sum_i {\cal P}_i$ of pile-up events as actually simulated, i.e. $1 \leq i \leq 200$ (or smaller), see PARI(92).

VINT(134) :
number related to probability to have an event in a beam-beam crossing; is $\exp(-\overline{n}) \sum_i \overline{n}^i/i!$ for MSTP(133) = 1 and $\exp(-\overline{n}) \sum_i \overline{n}^i/(i-1)!$ for MSTP(133) = 2, cf. PARI(93).

VINT(138) :
size of the threshold factor (enhancement or suppression) in the latest event with heavy-flavour production; see MSTP(35).

VINT(140) :
extra rescaling factor when sum of companion momentum distributions exceed the total amount available. Is normally = 1.

VINT(141), VINT(142) :
$x$ values for the parton-shower initiators of the hardest interaction; used to find what is left for multiple interactions.

VINT(143), VINT(144) :
$1 - \sum_i x_i$ for all scatterings; used for rescaling each new $x$-value in the multiple-interaction parton-distribution-function evaluation.

VINT(145) :
estimate of total parton-parton cross section for multiple interactions; used for MSTP(82) $\geq 2$.

VINT(146) :
common correction factor $f_c$ in the multiple-interaction probability; used for MSTP(82) $\geq 2$ (part of $e(b)$, see eq. ([*])).

VINT(147) :
average hadronic matter overlap; used for MSTP(82) $\geq 2$ (needed in evaluation of $e(b)$, see eq. ([*])).

VINT(148) :
enhancement factor for current event in the multiple-interaction probability, defined as the actual overlap divided by the average one; used for MSTP(82) $\geq 2$ (is $e(b)$ of eq. ([*])).

VINT(149) :
$x_{\perp}^2$ cut-off or turn-off for multiple interactions. For MSTP(82) $\leq 1$ it is $4 p_{\perp\mathrm{min}}^2/W^2$, for MSTP(82) $\geq 2$ it is $4 p_{\perp 0}^2/W^2$. For hadronic collisions, $W^2 = s$, but in photoproduction or $\gamma\gamma$ physics the $W^2$ scale refers to the hadronic subsystem squared energy. This may vary from event to event, so VINT(149) needs to be recalculated.

VINT(150) :
probability to keep the given event in the multiple-interaction scenario with varying impact parameter, as given by the exponential factor in eq. ([*]).

VINT(151), VINT(152) :
sum of $x$ values for all the multiple-interaction partons.

VINT(153) :
current differential cross section value obtained from PYSIGH; used in multiple interactions only.

VINT(154) :
current $p_{\perp\mathrm{min}}(s)$ or $p_{\perp\mathrm{min}}(W^2)$, used for multiple interactions and also as upper cut-off $k_1$ if the GVMD $k_{\perp}$ spectrum. See comments at VINT(149).

VINT(155), VINT(156) :
the $x$ value of a photon that branches into quarks or gluons, i.e. $x$ at interface between initial-state QED and QCD cascades, in the old photoproduction machinery.

VINT(157), VINT(158) :
the primordial $k_{\perp}$ values selected in the two beam remnants.

VINT(159), VINT(160) :
the $\chi$ values selected for beam remnants that are split into two objects, describing how the energy is shared (see MSTP(92) and MSTP(94)); is 0 if no splitting is needed.

VINT(161) - VINT(200) :
sum of Cabibbo-Kobayashi-Maskawa squared matrix elements that a given flavour is allowed to couple to. Results are stored in format VINT(180+KF) for quark and lepton flavours and antiflavours (which need not be the same; see MDME(IDC,2)). For leptons, these factors are normally unity.

VINT(201) - VINT(220) :
additional variables needed in phase-space selection for $2 \to 3$ processes with ISET(ISUB) = 5. Below indices 1, 2 and 3 refer to scattered partons 1, 2 and 3, except that the $q$ four-momentum variables are $q_1 + q_2 \to q_1' + q_2' + q_3'$. All kinematical variables refer to the internal kinematics of the 3-body final state -- the kinematics of the system as a whole is described by $\tau'$ and $y$, and the mass distribution of particle 3 (a resonance) by $\tau$.
VINT(201) :
$m_1$.
VINT(202) :
$p_{\perp 1}^2$.
VINT(203) :
$\varphi_1$.
VINT(204) :
$M_1$ (mass of propagator particle).
VINT(205) :
weight for the $p_{\perp 1}^2$ choice.
VINT(206) :
$m_2$.
VINT(207) :
$p_{\perp 2}^2$.
VINT(208) :
$\varphi_2$.
VINT(209) :
$M_2$ (mass of propagator particle).
VINT(210) :
weight for the $p_{\perp 2}^2$ choice.
VINT(211) :
$y_3$.
VINT(212) :
$y_{3 \mathrm{max}}$.
VINT(213) :
$\epsilon = \pm 1$; choice between two mirror solutions $1 \leftrightarrow 2$.
VINT(214) :
weight associated to $\epsilon$-choice.
VINT(215) :
$t_1 = (q_1 - q_1')^2$.
VINT(216) :
$t_2 = (q_2 - q_2')^2$.
VINT(217) :
$q_1 q_2'$ four-product.
VINT(218) :
$q_2 q_1'$ four-product.
VINT(219) :
$q_1' q_2'$ four-product.
VINT(220) :
$\sqrt{(m_{\perp 12}^2 - m_{\perp 1}^2 -
m_{\perp 2}^2)^2 - 4 m_{\perp 1}^2 m_{\perp 2}^2}$, where $m_{\perp 12}$ is the transverse mass of the $q'_1 q'_2$ system.

VINT(221) - VINT(225) :
$\theta$, $\varphi$ and $\beta$ for rotation and boost from c.m. frame to hadronic c.m. frame of a lepton-hadron event.

VINT(231) :
$Q^2_{\mathrm{min}}$ scale for current parton-distribution function set.

VINT(232) :
valence quark distribution of a VMD photon; set in PYPDFU and used in PYPDFL.

VINT(281) :
for resolved photon events, it gives the ratio between the total $\gamma X$ cross section and the total $\pi^0 X$ cross section, where $X$ represents the target particle.

VINT(283), VINT(284) :
virtuality scale at which a GVMD/anomalous photon on the beam or target side of the event is being resolved. More precisely, it gives the $k_{\perp}^2$ of the $\gamma \to \mathrm{q}\overline{\mathrm{q}}$ vertex. For elastic and diffractive scatterings, $m^2/4$ is stored, where $m$ is the mass of the state being diffracted. For clarity, we point out that elastic and diffractive events are characterized by the mass of the diffractive states but without any primordial $k_{\perp}$, while jet production involves a primordial $k_{\perp}$ but no mass selection. Both are thus not used at the same time, but for GVMD/anomalous photons, the standard (though approximate) identification $k_{\perp}^2 = m^2/4$ ensures agreement between the two applications.

VINT(285) :
the CKIN(3) value provided by you at initialization; subsequently CKIN(3) may be overwritten (for MSTP(14) = 10) but VINT(285) stays.

VINT(289) :
squared c.m. energy found in PYINIT call.

VINT(290) :
the WIN argument of a PYINIT call.

VINT(291) - VINT(300) :
the two five-vectors of the two incoming particles, as reconstructed in PYINKI. These may vary from one event to the next.

VINT(301) - VINT(320) :
used when a flux of virtual photons is being generated by the PYGAGA routine, for 'gamma/lepton' beams.
VINT(301) :
c.m. energy for the full collision, while VINT(1) gives the $\gamma$-hadron or $\gamma\gamma$ subsystem energy.

VINT(302) :
full squared c.m. energy, while VINT(2) gives the subsystem squared energy.

VINT(303), VINT(304) :
mass of the beam or target lepton, while VINT(3) or VINT(4) give the mass of a photon emitted off it.

VINT(305), VINT(306) :
$x$ values, i.e. respective photon energy fractions of the incoming lepton in the c.m. frame of the event.

VINT(307), VINT(308) :
$Q^2$ or $P^2$, virtuality of the respective photon (thus the square of VINT(3), VINT(4)).

VINT(309), VINT(310) :
$y$ values, i.e. respective photon light-cone energy fraction of the lepton.

VINT(311), VINT(312) :
$\theta$, scattering angle of the respective lepton in the c.m. frame of the event.

VINT(313), VINT(314) :
$\phi$, azimuthal angle of the respective scattered lepton in the c.m. frame of the event.

VINT(315), VINT(316):
the $R$ factor defined at MSTP(17), giving a cross section enhancement from the contribution of resolved longitudinal photons.

VINT(317) :
dipole suppression factor in PYXTOT for current event.

VINT(318) :
dipole suppression factor in PYXTOT at initialization.

VINT(319) :
photon flux factor in PYGAGA for current event.

VINT(320) :
photon flux factor in PYGAGA at initialization.

VINT(351) :
scalar $\sum p_{\perp}$ of multiple interactions, excluding the hardest process. (Note that the total $E_{\perp}$ is twice this, since each interaction produces two opposite-pT partons.)

VINT(352) :
Scalar $\sum p_{\perp}$ of initial-state radiation branchings, with $p_{\perp}$ defined with respect to the direction of the branching parton. (Note that each branching produces two opposite-$p_{\perp}$ daughters, resulting in a factor two more activity.)

VINT(353) :
Scalar $\sum p_{\perp}$ of final-state radiation branchings, with comment as above.

VINT(354) :
Scalar $\sum p_{\perp}$ of multiple interactions joinings (not fully implemented).

VINT(356) :
$p_{\perp}$ of hardest multiple interaction (i.e. excluding the very first and hardest interaction).

VINT(357) :
$p_{\perp}$ of hardest initial-state radiation branching.

VINT(358) :
$p_{\perp}$ of hardest final-state radiation branching.

VINT(359) :
$p_{\perp}$ of hardest multiple interactions joining.


\fbox{\texttt{COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)}}

Purpose:
to store information necessary for efficient generation of the different subprocesses, specifically type of generation scheme and coefficients of the Jacobian. Also to store allowed colour-flow configurations. These variables must not be changed by you.

ISET(ISUB) :
gives the type of kinematical-variable selection scheme used for subprocess ISUB.
= 0 :
elastic, diffractive and low-$p_{\perp}$ processes.
= 1 :
$2 \to 1$ processes (irrespective of subsequent decays).
= 2 :
$2 \to 2$ processes (i.e. the bulk of processes).
= 3 :
$2 \to 3$ processes (like $\mathrm{q}\mathrm{q}' \to \mathrm{q}'' \mathrm{q}''' \mathrm{h}^0$).
= 4 :
$2 \to 4$ processes (like $\mathrm{q}\mathrm{q}' \to \mathrm{q}'' \mathrm{q}''' \mathrm{W}^+ \mathrm{W}^-$).
= 5 :
`true' $2 \to 3$ processes, one method.
= 8 :
$2 \to 1$ process $\gamma^* \mathrm{f}_i \to f_i$ where, unlike the $2 \to 1$ processes above, $\hat{s}=0$.
= 9 :
$2 \to 2$ in multiple interactions ($p_{\perp}$ as kinematics variable).
= 11 :
a user-defined process.
= -1 :
legitimate process which has not yet been implemented.
= -2 :
ISUB is an undefined process code.

KFPR(ISUB,J) :
give the KF flavour codes for the products produced in subprocess ISUB. If there is only one product, the J = 2 position is left blank. Also, quarks and leptons assumed massless in the matrix elements are denoted by 0. The main application is thus to identify resonances produced ($\mathrm{Z}^0$, $\mathrm{W}^{\pm}$, $\mathrm{h}^0$, etc.). For external processes, KFPR instead stores information on process numbers in the two external classifications, see section [*].

COEF(ISUB,J) :
factors used in the Jacobians in order to speed up the selection of kinematical variables. More precisely, the shape of the cross section is given as the sum of terms with different behaviour, where the integral over the allowed phase space is unity for each term. COEF gives the relative strength of these terms, normalized so that the sum of coefficients for each variable used is unity. Note that which coefficients are indeed used is process-dependent.
ISUB :
standard subprocess code.
J = 1 :
$\tau$ selected according $1/\tau$.
J = 2 :
$\tau$ selected according to $1/\tau^2$.
J = 3 :
$\tau$ selected according to $1/(\tau(\tau+\tau_R))$, where $\tau_R = m_R^2/s$ is $\tau$ value of resonance; only used for resonance production.
J = 4 :
$\tau$ selected according to Breit-Wigner of form $1/((\tau-\tau_R)^2+\gamma_R^2)$, where $\tau_R = m_R^2/s$ is $\tau$ value of resonance and $\gamma_R = m_R \Gamma_R/s$ is its scaled mass times width; only used for resonance production.
J = 5 :
$\tau$ selected according to $1/(\tau(\tau+\tau_{R'}))$, where $\tau_{R'} = m_{R'}^2/s$ is $\tau$ value of second resonance; only used for simultaneous production of two resonances.
J = 6 :
$\tau$ selected according to second Breit-Wigner of form $1/((\tau-\tau_{R'})^2+\gamma_{R'}^2)$, where $\tau_{R'} = m_{R'}^2/s$ is $\tau$ value of second resonance and $\gamma_{R'} = m_{R'} \Gamma_{R'}/s$ is its scaled mass times width; is used only for simultaneous production of two resonances, like $\gamma^*/\mathrm{Z}^0/\mathrm{Z}'^0$.
J = 7 :
$\tau$ selected according to $1/(1-\tau)$; only used when both parton distributions are peaked at $x = 1$.
J = 8 :
$y$ selected according to $y - y_{\mathrm{min}}$.
J = 9 :
$y$ selected according to $y_{\mathrm{max}} - y$.
J = 10 :
$y$ selected according to $1/\cosh(y)$.
J = 11 :
$y$ selected according to $1/(1-\exp(y-y_{\mathrm{max}}))$; only used when beam parton distribution is peaked close to $x = 1$.
J = 12 :
$y$ selected according to $1/(1-\exp(y_{\mathrm{min}}-y))$; only used when target parton distribution is peaked close to $x = 1$.
J = 13 :
$z = \cos\hat{\theta}$ selected evenly between limits.
J = 14 :
$z = \cos\hat{\theta}$ selected according to $1/(a-z)$, where $a = 1 + 2 m_3^2 m_4^2/\hat{s}^2$, $m_3$ and $m_4$ being the masses of the two final-state particles.
J = 15 :
$z = \cos\hat{\theta}$ selected according to $1/(a+z)$, with $a$ as above.
J = 16 :
$z = \cos\hat{\theta}$ selected according to $1/(a-z)^2$, with $a$ as above.
J = 17 :
$z = \cos\hat{\theta}$ selected according to $1/(a+z)^2$, with $a$ as above.
J = 18 :
$\tau'$ selected according to $1/\tau'$.
J = 19 :
$\tau'$ selected according to $(1 - \tau/\tau')^3/\tau'^2$.
J = 20 :
$\tau'$ selected according to $1/(1-\tau')$; only used when both parton distributions are peaked close to $x = 1$.

ICOL :
contains information on different colour-flow topologies in hard $2 \to 2$ processes.


\fbox{\texttt{COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)}}

Purpose:
to store information on parton distributions, subprocess cross sections and different final-state relative weights. These variables must not be changed by you.

XSFX :
current values of parton-distribution functions $xf(x)$ on beam and target side.

ISIG(ICHN,1) :
incoming parton/particle on the beam side to the hard interaction for allowed channel number ICHN. The number of channels filled with relevant information is given by NCHN, one of the arguments returned in a PYSIGH call. Thus only $1 \leq $ICHN$\leq$NCHN is filled with relevant information.

ISIG(ICHN,2) :
incoming parton/particle on the target side to the hard interaction for allowed channel number ICHN. See also comment above.

ISIG(ICHN,3) :
colour-flow type for allowed channel number ICHN; see MSTI(2) list. See also above comment. For `subprocess' 96 uniquely, ISIG(ICHN,3) is also used to translate information on what is the correct subprocess number (11, 12, 13, 28, 53 or 68); this is used for reassigning subprocess 96 to either of these.

SIGH(ICHN) :
evaluated differential cross section for allowed channel number ICHN, i.e. matrix-element value times parton distributions, for current kinematical setup (in addition, Jacobian factors are included in the numbers, as used to speed up generation). See also comment for ISIG(ICHN,1).


\fbox{\texttt{COMMON/PYINT4/MWID(500),WIDS(500,5)}}

Purpose:
to store character of resonance width treatment and partial and effective decay widths for the different resonances. These variables should normally not be changed by you.

MWID(KC) :
gives the character of particle with compressed code KC, mainly as used in PYWIDT to calculate widths of resonances (not necessarily at the nominal mass).
= 0 :
an ordinary particle; not to be treated as resonance.
= 1 :
a resonance for which the partial and total widths (and hence branching ratios) are dynamically calculated in PYWIDT calls; i.e. special code has to exist for each such particle. The effects of allowed/disallowed secondary decays are included, both in the relative composition of decays and in the process cross section.
= 2 :
The total width is taken to be the one stored in PMAS(KC,2) and the relative branching ratios the ones in BRAT(IDC) for decay channels IDC. There is then no need for any special code in PYWIDT to handle a resonance. During the run, the stored PMAS(KC,2) and BRAT(IDC) values are used to calculate the total and partial widths of the decay channels. Some extra information and assumptions are then used. Firstly, the stored BRAT values are assumed to be the full branching ratios, including all possible channels and all secondary decays. The actual relative branching fractions are modified to take into account that the simulation of some channels may be switched off (even selectively for a particle and an antiparticle), as given by MDME(IDC,1), and that some secondary channels may not be allowed, as expressed by the WIDS factors. This also goes into process cross sections. Secondly, it is assumed that all widths scale like $\sqrt{\hat{s}}/m$, the ratio of the actual to the nominal mass. A further nontrivial change as a function of the actual mass can be set for each channel by the MDME(IDC,2) value, see section [*].

= 3 :
a hybrid version of options 1 and 2 above. At initialization the PYWIDT code is used to calculate PMAS(KC,2) and BRAT(IDC) at the nominal mass of the resonance. Special code must then exist in PYWIDT for the particle. The PMAS(KC,2) and BRAT(IDC) values overwrite the default ones. In the subsequent generation of events, the simpler scheme of option 2 is used, thus saving some execution time.
Note:
the $\mathrm{Z}$ and $\mathrm{Z}'$ cannot be used with options 2 and 3, since the more complicated interference structure implemented for those particles is only handled correctly for option 1.

WIDS(KC,J) :
gives the dimensionless suppression factor to cross sections caused by the closing of some secondary decays, as calculated in PYWIDT. It is defined as the ratio of the total width of channels switched on to the total width of all possible channels (replace width by squared width for a pair of resonances). The on/off status of channels is set by the MDME switches; see section [*]. The information in WIDS is used e.g. in cross-section calculations. Values are built up recursively from the lightest particle to the heaviest one at initialization, with the exception that $\mathrm{W}$ and $\mathrm{Z}$ are done already from the beginning (since these often are forced off the mass shell). WIDS can go wrong in case you have perverse situations where the branching ratios vary rapidly as a function of energy, across the resonance shape. This then influences process cross sections.
KC :
standard KC code for resonance considered.
J = 1 :
suppression when a pair of resonances of type KC are produced together. When an antiparticle exists, the particle-antiparticle pair (such as $\mathrm{W}^+ \mathrm{W}^-$) is the relevant combination, else the particle-particle one (such as $\mathrm{Z}^0 \mathrm{Z}^0$).
J = 2 :
suppression for a particle of type KF when produced on its own, or together with a particle of another type.
J = 3 :
suppression for an antiparticle of type KF when produced on its own, or together with a particle of another type.
J = 4 :
suppression when a pair of two identical particles are produced, for a particle which has a nonidentical antiparticle (e.g. $\mathrm{W}^+\mathrm{W}^+$).
J = 5 :
suppression when a pair of two identical antiparticles are produced, for a particle which has a nonidentical antiparticle (e.g. $\mathrm{W}^-\mathrm{W}^-$).


\fbox{\texttt{COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)}}

Purpose:
to store information necessary for cross-section calculation and differential cross-section maximum violation. These variables must not be changed by you.

NGEN(ISUB,1) :
gives the number of times that the differential cross section (times Jacobian factors) has been evaluated for subprocess ISUB, with NGEN(0,1) the sum of these.

NGEN(ISUB,2) :
gives the number of times that a kinematical setup for subprocess ISUB is accepted in the generation procedure, with NGEN(0,2) the sum of these.

NGEN(ISUB,3) :
gives the number of times an event of subprocess type ISUB is generated, with NGEN(0,3) the sum of these. Usually NGEN(ISUB,3) = NGEN(ISUB,2), i.e. an accepted kinematical configuration can normally be used to produce an event.

XSEC(ISUB,1) :
estimated maximum differential cross section (times the Jacobian factors used to speed up the generation process) for the different subprocesses in use, with XSEC(0,1) the sum of these (except low-$p_{\perp}$, i.e. ISUB = 95). For external processes special rules may apply, see section [*]. In particular, negative cross sections and maxima may be allowed. In this case, XSEC(ISUB,1) stores the absolute value of the maximum, since this is the number that allows the appropriate mixing of subprocesses.

XSEC(ISUB,2) :
gives the sum of differential cross sections (times Jacobian factors) for the NGEN(ISUB,1) phase-space points evaluated so far.

XSEC(ISUB,3) :
gives the estimated integrated cross section for subprocess ISUB, based on the statistics accumulated so far, with XSEC(0,3) the estimated total cross section for all subprocesses included (all in mb). This is exactly the information obtainable by a PYSTAT(1) call.

Warning :
for $\gamma\mathrm{p}$ and $\gamma\gamma$ events, when several photon components are mixed (see MSTP(14)), a master copy of these numbers for each component is stored in the PYSAVE routine. What is then visible after each event is only the numbers for the last component considered, not the full statistics. A special PYSAVE call, performed e.g. in PYSTAT, is required to obtain the sum of all the components.


\fbox{\begin{minipage}{150mm}\begin{tabbing}{\texttt{COMMON/PYINT6/PROC(0:500)}}\\ {\texttt{CHARACTER PROC*28}}\end{tabbing}\end{minipage}}

Purpose:
to store character strings for the different possible subprocesses; used when printing tables.

PROC(ISUB) :
name for the different subprocesses, according to ISUB code. PROC(0) denotes all processes.


\fbox{\texttt{COMMON/PYINT7/SIGT(0:6,0:6,0:5)}}

Purpose:
to store information on total, elastic and diffractive cross sections. These variables should only be set by you for the option MSTP(31) = 0; else they should not be touched. All numbers are given in mb.

SIGT(I1,I2,J) :
the cross section, both total and subdivided by class (elastic, diffractive etc.). For a photon to be considered as a VMD meson the cross sections are additionally split into the contributions from the various meson states.
I1, I2 :
allowed states for the incoming particle on side 1 and 2, respectively.
= 0 :
sum of all allowed states. Except for a photon to be considered as a VMD meson this is the only nonvanishing entry.
= 1 :
the contribution from the $\rho^0$ VMD state.
= 2 :
the contribution from the $\omega$ VMD state.
= 3 :
the contribution from the $\phi$ VMD state.
= 4 :
the contribution from the $\mathrm{J}/\psi $ VMD state.
= 5, 6 :
reserved for future use.
J :
the total and partial cross sections.
= 0 :
the total cross section.
= 1 :
the elastic cross section.
= 2 :
the single diffractive cross section $AB \to XB$.
= 3 :
the single diffractive cross section $AB \to AX$.
= 4 :
the double diffractive cross section.
= 5 :
the inelastic, non-diffractive cross section.
Warning:
if you set these values yourself, it is important that they are internally consistent, since this is not explicitly checked by the program. Thus the contributions J = 1 - 5 should add up to the J = 0 one and, for VMD photons, the contributions I = 1 - 4 should add up to the I = 0 one.


\fbox{\begin{minipage}{150mm}\begin{tabbing}{\texttt{~COMMON/PYINT8/XPVMD(-6:6),...
...NH(-6:6),%
XPBEH(-6:6),}}\\ {\texttt{\&XPDIR(-6:6)}}\end{tabbing}\end{minipage}}

Purpose:
to store the various components of the photon parton distributions when the PYGGAM routine is called.

XPVMD(KFL) :
gives distributions of the VMD part ($\rho^0$, $\omega$ and $\phi$).

XPANL(KFL) :
gives distributions of the anomalous part of light quarks ($\d $, $\u $ and $\mathrm{s}$).

XPANH(KFL) :
gives distributions of the anomalous part of heavy quarks ($\c $ and $\b $).

XPBEH(KFL) :
gives Bethe-Heitler distributions of heavy quarks ($\c $ and $\b $). This provides an alternative to XPANH, i.e. both should not be used at the same time.

XPDIR(KFL) :
gives direct correction to the production of light quarks ($\d $, $\u $ and $\mathrm{s}$). This term is nonvanishing only in the $\overline{\mbox{\textsc{ms}}}$ scheme, and is applicable for $F_2^{\gamma}$ rather than for the parton distributions themselves.


\fbox{\texttt{~COMMON/PYINT9/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)}}

Purpose:
to give the valence parts of the photon parton distributions ($x$-weighted, as usual) when the PYGGAM routine is called. Companion to PYINT8, which gives the total parton distributions.

VXPVMD(KFL) :
valence distributions of the VMD part; matches XPVMD in PYINT8.

VXPANL(KFL) :
valence distributions of the anomalous part of light quarks; matches XPANL in PYINT8.

VXPANH(KFL) :
valence distributions of the anomalous part of heavy quarks; matches XPANH in PYINT8.

VXPDGM(KFL) :
gives the sum of valence distributions parts; matches XPDFGM in the PYGGAM call.

Note 1:
the Bethe-Heitler and direct contributions in XPBEH(KFL) and XPDIR(KFL) in PYINT8 are pure valence-like, and therefore are not duplicated here.

Note 2:
the sea parts of the distributions can be obtained by taking the appropriate differences between the total distributions and the valence distributions.


next up previous contents
Next: Initial- and Final-State Radiation Up: The Process Generation Program Previous: Interfaces to Other Generators   Contents
Stephen Mrenna 2007-10-30