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 and , 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
and 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 and 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 branching may give a 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
DIS process
. 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:`PYSGQC :`normal QCD processes, plus some similar instead with photons;`PYSGHF :`heavy flavour production, open and closed;`PYSGWZ :`processes, except as below;`PYSGHG :`Higgs processes (2 doublets), except Higgs pairs in`PYSGSU`, but including longitudinal scattering for a heavy Higgs;`PYSGSU :`SUSY processes, including Higgs pair production;`PYSGTC :`Technicolor processes, including some related compositeness ones;`PYSGEX :`assorted exotic processes, including new gauge bosons ( ), leptoquarks ( ), horizontal gauge bosons (), a generation of excited fermions ( ), left-right-symmetric scenarios ( ), and extra dimensions ().

`SUBROUTINE PYPDFL(KF,X,Q2,XPQ) :`- to give parton distributions for and in the option
with modified behaviour at small and , see
`MSTP(57)`. `SUBROUTINE PYPDFU(KF,X,Q2,XPQ) :`- to give parton-distribution functions (multiplied by , i.e.
) 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 :`- value at which to evaluate parton distributions.
`Q2 :`- scale at which to evaluate parton distributions.
`XPQ :`- array of dimensions
`XPQ(-25:25)`, which contains the evaluated parton distributions . Components 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
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 and parton distributions of the photon
by summing homogeneous (VMD) and inhomogeneous (anomalous) terms.
For , and are included by the Bethe-Heitler formula;
in the `
' scheme additionally a 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 to .
`SUBROUTINE PYGANO(KF,X,Q2,P2,ALAM,XPGA,VXPGA) :`- to evaluate the parton distributions of the anomalous
photon, inhomogeneously evolved from a scale (where it vanishes)
to .
`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 term,
as needed in `
' 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 function
(used in some parton-distribution parameterizations).
`SUBROUTINE PYWAUX(IAUX,EPS,WRE,WIM) :`- to evaluate the two auxiliary functions and appearing
in some cross section expressions in
`PYSIGH`. `SUBROUTINE PYI3AU(EPS,RAT,Y3RE,Y3IM) :`- to evaluate the auxiliary function 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
and
.
`SUBROUTINE PYRECO(IW1,IW2,NSD1,NAFT1)) :`- to perform nonperturbative reconnection among strings in
and
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).

**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 or , respectively. `MINT(3) :`- number of partons produced in the hard
interactions, i.e. the number of the matrix elements
used; is sometimes 3 or 4 when a basic or process
has been convoluted with two initial branchings
(like
).
`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 or 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 -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- 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)``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 , i.e. a hadron or a resolved (VMD or GVMD) photon.
`= 3 :`- defined with parton distributions that are peaked at , 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 .
`= 5 :`- parton distributions for both beam and target, with both peaked at .
`= 6 :`- parton distribution is peaked at for target and no distribution at all for beam.
`= 7 :`- parton distribution is peaked at 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 and are to be preserved. `MINT(61) :`- internal switch for the mode of operation of
resonance width calculations in
`PYWIDT`for or .`= 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
width.
`= 0 :`- use widths into or calculated before.
`= 1 :`- evaluate widths into or 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
or not.
`= 0 :`- non-singular process, i.e. proceeding via an
-channel resonance or with both products having a mass above
`CKIN(6)`. `= 1 :`- singular process.

`MINT(72) :`- number of -channel resonances that may
contribute to the cross section.
`MINT(73) :``KF`code of first -channel resonance; 0 if there is none.`MINT(74) :``KF`code of second -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 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 and , 2 small but large , 3 small but large and 4 small and . `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``NPTYPE + 1000``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 , , and
.
`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 , , or ). 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
interaction when
`MSTP(14)`is set to mix different photon components.

`MINT(122) :`- event class used in current event for
or
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 DISVMD/ 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) :`-
, c.m. energy.
`VINT(2) :`- (
) squared mass of
complete system.
`VINT(3) :`- mass of beam particle. Can be negative to denote
a space-like particle, e.g. a .
`VINT(4) :`- mass of target particle. Can be negative to denote
a space-like particle, e.g. a .
`VINT(5) :`- absolute value of momentum of beam (and target)
particle in c.m. frame.
`VINT(6) - VINT(10) :`- , and
for rotation and boost
from c.m. frame to user-specified frame.
`VINT(11) :`-
.
`VINT(12) :`-
.
`VINT(13) :`-
for
.
`VINT(14) :`-
for
.
`VINT(15) :`-
.
`VINT(16) :`-
.
`VINT(17) :`- (D = 0.) absolute lower 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) :`- .
`VINT(22) :`- .
`VINT(23) :`-
.
`VINT(24) :`- (azimuthal angle).
`VINT(25) :`- .
`VINT(26) :`- .
`VINT(31) :`-
.
`VINT(32) :`-
.
`VINT(33) :`-
for
.
`VINT(34) :`-
for
.
`VINT(35) :`-
.
`VINT(36) :`-
.
`VINT(41), VINT(42) :`- the momentum fractions 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,
.
`VINT(43) :`-
, mass of
hard-scattering subsystem.
`VINT(44) :`- of the hard subprocess ( or
).
`VINT(45) :`- of the hard subprocess ( or
).
`VINT(46) :`- of the hard subprocess ( or
).
`VINT(47) :`-
of the hard subprocess
( or ), i.e. transverse momentum evaluated
in the rest frame of the scattering.
`VINT(48) :`-
of the hard subprocess;
see
`VINT(47)`. `VINT(49) :`- , the mass of the complete three- or
four-body final state in or processes.
`VINT(50) :`-
; see
`VINT(49)`. `VINT(51) :`- of the hard subprocess. The exact definition is
process-dependent, see
`MSTP(32)`. `VINT(52) :`- of the hard subprocess; see
`VINT(51)`. `VINT(53) :`- of the outer hard-scattering subprocess,
used as scale for parton distribution function evaluation.
Agrees with
`VINT(51)`for a or process. For a or fusion process, it is set by the mass scale, and for subprocesses 121 and 122 by the heavy-quark mass. `VINT(54) :`- of the outer hard-scattering subprocess;
see
`VINT(53)`. `VINT(55) :`- scale used as maximum virtuality in parton
showers. Is equal to
`VINT(53)`, except for DIS processes when`MSTP(22)`. `VINT(56) :`- scale in parton showers; see
`VINT(55)`. `VINT(57) :`-
value of hard process.
`VINT(58) :`-
value of hard process.
`VINT(59) :`-
(cf.
`VINT(23)`); used for improved numerical precision in elastic and diffractive scattering. `VINT(61) :`- scale used as maximum transverse momentum
for multiple interactions. See
`MSTP(86)`. `VINT(62) :`- maximum scale for multiple interactions, see
`VINT(61)`. `VINT(63), VINT(64) :`- nominal 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)`or`VINT(70)`, and for diffractive events it is above that. `VINT(65) :`-
, i.e. common nominal absolute
momentum of the two partons entering the hard interaction, in their
rest frame.
`VINT(66) :`-
, 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 is assigned the , or 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 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
. Thus the mass
selection for a GVMD state is according to
between limits
. Required for
elastic and diffractive events.
`VINT(71) :`- initially it is
of process, but this is
replaced by the actual once the process has actually been
selected. For a normal hard process
is either
`CKIN(3)`or`CKIN(5)`, depending on which is larger, and whether the process is singular in or not. For multiple interactions it is either the energy-dependent derived from`PARP(81)`or the fraction derived from`PARP(82)`, depending on`MSTP(82)`setting. (In the latter scenario, formally is allowed but is numerically unstable; hence the small nonvanishing value.) `VINT(73) :`- value of first resonance, if any;
see
`MINT(73)`. `VINT(74) :`- value of first resonance, if any;
see
`MINT(73)`. `VINT(75) :`- value of second resonance, if any;
see
`MINT(74)`. `VINT(76) :`- value of second resonance, if any;
see
`MINT(74)`. `VINT(80) :`- correction factor (evaluated in
`PYOFSH`) for the cross section of resonances produced in 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 , else it is . `VINT(97) :`- an event weight, normally 1 and thus uninteresting,
but for external processes with
`IDWTUP = -1, -2`or`-3`it can be 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)`, 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 or production, for`MINT(61) = 2`gives sum of final-state weights for the same; coefficients are given in the order pure , - interference, - interference, pure , - interference and pure . `VINT(117) :`- width of ; needed in
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) :`-
`VINT(131)``PARP(131)`of pile-up events, cf.`PARI(91)`. `VINT(133) :`-
of pile-up events as actually simulated, i.e.
(or smaller), see
`PARI(92)`. `VINT(134) :`- number related to probability to have an event in
a beam-beam crossing; is
for
`MSTP(133) = 1`and 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) :`- values for the parton-shower
initiators of the hardest interaction; used to find what is left
for multiple interactions.
`VINT(143), VINT(144) :`-
for all scatterings;
used for rescaling each new -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)`. `VINT(146) :`- common correction factor in the
multiple-interaction probability; used for
`MSTP(82)`(part of , see eq. ()). `VINT(147) :`- average hadronic matter overlap; used for
`MSTP(82)`(needed in evaluation of , 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)`(is of eq. ()). `VINT(149) :`- cut-off or turn-off for multiple
interactions. For
`MSTP(82)`it is , for`MSTP(82)`it is . For hadronic collisions, , but in photoproduction or physics the 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 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
or
, used
for multiple interactions and also as upper cut-off if the
GVMD spectrum. See comments at
`VINT(149)`. `VINT(155), VINT(156) :`- the value of a photon that branches
into quarks or gluons, i.e. at interface between initial-state QED
and QCD cascades, in the old photoproduction machinery.
`VINT(157), VINT(158) :`- the primordial values
selected in the two beam remnants.
`VINT(159), VINT(160) :`- the 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 processes with
`ISET(ISUB) = 5`. Below indices 1, 2 and 3 refer to scattered partons 1, 2 and 3, except that the four-momentum variables are . 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 and , and the mass distribution of particle 3 (a resonance) by .`VINT(201) :`- .
`VINT(202) :`- .
`VINT(203) :`- .
`VINT(204) :`- (mass of propagator particle).
`VINT(205) :`- weight for the choice.
`VINT(206) :`- .
`VINT(207) :`- .
`VINT(208) :`- .
`VINT(209) :`- (mass of propagator particle).
`VINT(210) :`- weight for the choice.
`VINT(211) :`- .
`VINT(212) :`- .
`VINT(213) :`- ; choice between two mirror solutions .
`VINT(214) :`- weight associated to -choice.
`VINT(215) :`- .
`VINT(216) :`- .
`VINT(217) :`- four-product.
`VINT(218) :`- four-product.
`VINT(219) :`- four-product.
`VINT(220) :`- , where is the transverse mass of the system.

`VINT(221) - VINT(225) :`- , and
for rotation and boost
from c.m. frame to hadronic c.m. frame of a lepton-hadron
event.
`VINT(231) :`-
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 cross section and the total
cross section, where 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 of the
vertex. For elastic and diffractive scatterings,
is stored, where 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 , while jet production involves a primordial
but no mass selection. Both are thus not used at the same time,
but for GVMD/anomalous photons, the standard (though approximate)
identification
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 -hadron or 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) :`- values, i.e. respective photon energy
fractions of the incoming lepton in the c.m. frame of the event.
`VINT(307), VINT(308) :`- or , virtuality of the
respective photon (thus the square of
`VINT(3)`,`VINT(4)`). `VINT(309), VINT(310) :`- values, i.e. respective photon
light-cone energy fraction of the lepton.
`VINT(311), VINT(312) :`- , scattering angle of the
respective lepton in the c.m. frame of the event.
`VINT(313), VINT(314) :`- , azimuthal angle of the
respective scattered lepton in the c.m. frame of the event.
`VINT(315), VINT(316):`- the 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
of multiple interactions,
excluding the hardest process. (Note that the total is twice
this, since each interaction produces two opposite-pT partons.)
`VINT(352) :`- Scalar
of initial-state radiation
branchings, with defined with respect to the direction of the
branching parton. (Note that each branching produces two opposite-
daughters, resulting in a factor two more activity.)
`VINT(353) :`- Scalar
of final-state radiation
branchings, with comment as above.
`VINT(354) :`- Scalar
of multiple interactions joinings
(not fully implemented).
`VINT(356) :`- of hardest multiple interaction
(i.e. excluding the very first and hardest interaction).
`VINT(357) :`- of hardest initial-state radiation branching.
`VINT(358) :`- of hardest final-state radiation branching.
`VINT(359) :`- of hardest multiple interactions joining.

**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- processes.
`= 1 :`- processes (irrespective of subsequent decays).
`= 2 :`- processes (i.e. the bulk of processes).
`= 3 :`- processes (like ).
`= 4 :`- processes (like ).
`= 5 :`- `true' processes, one method.
`= 8 :`- process where, unlike the processes above, .
`= 9 :`- in multiple interactions ( 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 (, , , 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 :`- selected according .
`J = 2 :`- selected according to .
`J = 3 :`- selected according to , where is value of resonance; only used for resonance production.
`J = 4 :`- selected according to Breit-Wigner of form , where is value of resonance and is its scaled mass times width; only used for resonance production.
`J = 5 :`- selected according to , where is value of second resonance; only used for simultaneous production of two resonances.
`J = 6 :`- selected according to second Breit-Wigner of form , where is value of second resonance and is its scaled mass times width; is used only for simultaneous production of two resonances, like .
`J = 7 :`- selected according to ; only used when both parton distributions are peaked at .
`J = 8 :`- selected according to .
`J = 9 :`- selected according to .
`J = 10 :`- selected according to .
`J = 11 :`- selected according to ; only used when beam parton distribution is peaked close to .
`J = 12 :`- selected according to ; only used when target parton distribution is peaked close to .
`J = 13 :`- selected evenly between limits.
`J = 14 :`- selected according to , where , and being the masses of the two final-state particles.
`J = 15 :`- selected according to , with as above.
`J = 16 :`- selected according to , with as above.
`J = 17 :`- selected according to , with as above.
`J = 18 :`- selected according to .
`J = 19 :`- selected according to .
`J = 20 :`- selected according to ; only used when both parton distributions are peaked close to .

`ICOL :`- contains information on different
colour-flow topologies in hard processes.

**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 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`ICHN``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)`.

**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 , 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 and 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 and 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 ) is the relevant combination, else the particle-particle one (such as ). `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. ).
`J = 5 :`- suppression when a pair of two identical antiparticles are produced, for a particle which has a nonidentical antiparticle (e.g. ).

**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-, 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
and 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.

**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.

**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 VMD state.
`= 2 :`- the contribution from the VMD state.
`= 3 :`- the contribution from the VMD state.
`= 4 :`- the contribution from the 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 .
`= 3 :`- the single diffractive cross section .
`= 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.

**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
(, and ).
`XPANL(KFL) :`- gives distributions of the anomalous
part of light quarks (, and ).
`XPANH(KFL) :`- gives distributions of the anomalous
part of heavy quarks ( and ).
`XPBEH(KFL) :`- gives Bethe-Heitler distributions of
heavy quarks ( and ). 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 (, and ). This term is
nonvanishing only in the
scheme, and is applicable for
rather than for the parton distributions themselves.

**Purpose:**- to give the valence parts of the photon parton distributions
(-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.