Next: Initial- and Final-State Radiation
Up: The Process Generation Program
Previous: Interfaces to Other Generators
  Contents
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 PYMULT(MMUL) :
- to generate semi-hard interactions according to the
multiple interaction formalism.
- SUBROUTINE PYREMN(IPU1,IPU2) :
- to add on target remnants and include primordial
.
- 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.
- 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.
- 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(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(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 used. 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(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 option 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. 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'.
- 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 DIS
VMD/
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.
- VINT(1) :
-
, c.m. energy.
- VINT(2) :
(
) squared mass of
complete system.
- VINT(3) :
- mass of beam particle. Can be negative to denote
a spacelike particle, e.g. a
.
- VINT(4) :
- mass of target particle. Can be negative to denote
a spacelike 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(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.
- 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(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) :
-
of process, i.e. CKIN(3) or
CKIN(5), depending on which is larger, and whether the process
is singular in
or not.
- 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(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(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(313), VINT(314) :
, azimuthal angle of the
respective scattered lepton in the c.m. frame of the event.
- VINT(319) :
- photon flux factor in PYGAGA for current event.
- VINT(320) :
- photon flux factor in PYGAGA at initialization.
- 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 subsection
.
- 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 must 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/unallowed 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 subsection
. 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, perfomed 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.
Next: Initial- and Final-State Radiation
Up: The Process Generation Program
Previous: Interfaces to Other Generators
  Contents
Stephen Mrenna
2004-03-12