A set of common blocks was developed and agreed on within the framework of the 1989 LEP physics study, see [Sjö89]. This standard defines an event record structure which should make the interfacing of different event generators much simpler.
It would be a major work to rewrite PYTHIA to agree with this standard event record structure. More importantly, the standard only covers quantities which can be defined unambiguously, i.e. which are independent of the particular program used. There are thus no provisions for the need for colour-flow information in models based on string fragmentation, etc., so the standard common blocks would anyway have to be supplemented with additional event information. For the moment, the adopted approach is therefore to retain the PYJETS event record, but supply a routine PYHEPC which can convert to or from the standard event record. Owing to a somewhat different content in the two records, some ambiguities do exist in the translation procedure. PYHEPC has therefore to be used with some judgement.
In this section, the standard event structure is first presented, i.e. the most important points in [Sjö89] are recapitulated. Thereafter the conversion routine is described, with particular attention to ambiguities and limitations.
The standard event record is stored in two common blocks. The second of these is specifically intended for spin information. Since PYTHIA never (explicitly) makes use of spin information, this latter common block is not addressed here. A third common block for colour flow information has been discussed, but never formalized. Note that a CALL PYLIST(5) can be used to obtain a simple listing of the more interesting information in the event record.
In order to make the components of the standard more distinguishable in your programs, the three characters HEP (for High Energy Physics) have been chosen to be a part of all names.
Originally it was not specified whether real variables should be in single or double precision. At the time, this meant that single precision became the default choice, but since then the trend has been towards increasing precision. In connection with the 1995 LEP 2 workshop, it was therefore agreed to adopt DOUBLE PRECISION real variables as part of the standard, and also to extend the size from 2000 to 4000 entries [Kno96]. If, for some reason, one would want to revert to single precision, this would only require trivial changes to the code of the PYHEPC conversion routine described below.
This completes the brief description of the standard. In PYTHIA, the routine PYHEPC is provided as an interface.
The conversion of momenta is trivial: it is just a matter of exchanging the order of the indices. The vertex information is but little more complicated; the extra fifth component present in PYJETS can be easily reconstructed from other information for particles which have decayed. (Some of the advanced features made possible by this component, such as the possibility to consider decays within expanding spatial volumes in subsequent PYEXEC calls, cannot be used if the record is translated back and forth, however.) Also, the particle codes K(I,2) and IDHEP(I) are identical, since they are both based on the PDG codes.
The remaining, non-trivial areas deal with the status codes and the event history. In moving from PYJETS to HEPEVT, information on colour flow is lost. On the other hand, the position of a second mother, if any, has to be found; this only affects lines with K(I,2)= 91-94. Also, for lines with K(I,1)= 13 or 14, the daughter pointers have to be found. By and large, however, the translation from PYJETS to HEPEVT should cause little problem, and there should never be any need for user intervention. (We assume that PYTHIA is run with the default MSTU(16)=1 mother pointer assignments, otherwise some discrepancies with respect to the proposed standard event history description will be present.)
In moving from HEPEVT to PYJETS, information on a second
mother is lost. Any codes IDHEP(I) not equal to 1, 2 or 3 are
translated into K(I,1)=0, and so all entries with
K(I,1)
are effectively lost in a translation back and
forth. All entries with IDHEP(I)=2 are translated
into K(I,1)=11, and so entries of type
K(I,1) = 12, 13, 14 or 15 are never found. There is thus
no colour-flow information available for partons which have
fragmented. For partons with IDHEP(I)=1,
i.e. which have not fragmented, an attempt is made to subdivide the
partonic system into colour singlets, as required for subsequent
string fragmentation. To this end, it is assumed that partons are
stored sequentially along strings. Normally, a string would then start
at a
(
) or
(
) entry, cover a number
of intermediate gluons, and end at a
(
) or
(
) entry. Particles could be interspersed in this list with
no adverse effects, i.e. a
sequence would be interpreted as a
string plus an
additional photon. A closed gluon loop would be assumed to be made up
of a sequential listing of the gluons, with the string continuing from
the last gluon up back to the first one. Contrary to the previous, open
string case, the appearance of any particle but a gluon would therefore
signal the end of the gluon loop. For example, a
sequence
would be interpreted as one single four-gluon loop, while a
sequence would be seen as composed of two
2-gluon systems.
If these interpretations, which are not unique, are not to your liking, it is up to you to correct them, e.g. by using PYJOIN to tell exactly which partons should be joined, in which sequence, to give a string. Calls to PYJOIN (or the equivalent) are also necessary if PYSHOW is to be used to have some partons develop a shower.
For practical applications, one should note that
events,
which have been allowed to shower but not to fragment, do have partons
arranged in the order assumed above, so that a translation to
HEPEVT and back does not destroy the possibility to perform
fragmentation by a simple PYEXEC call. Also the hard interactions
in hadronic events fulfil this condition, while problems may appear in the
multiple interaction scenario, where several closed
loops may
appear directly following one another, and thus would be
interpreted as a single multigluon loop after translation back and
forth.