Access PYTHIA 6 Processes

In order to give access to the Fortran PYTHIA process library at runtime (and not only by writing/reading event files) an interface is provided to C++. This interface is residing in Pythia6.h, while the ordinary Fortran code is in Pythia6.f. The latter should normally be the most recent Fortran PYTHIA version, but must be at least 6.314, since this is the first version that allows processes to be output in the Les Houches format (and not only input).

The communication with PYTHIA 6 is transparent to the user, and the main choices are made in the Pythia class. It may be useful to understand what the interface can and cannot do, however.

The normal Pythia routines readString and readFile can be used to modify the performance of the PYTHIA 6 generator. The name of any variable must be preceded by Pythia6: to distinguish it from normal PYTHIA 8 parameters, either in the Settings or the ParticleDataTable classes. An example would be

    pythia.readString("Pythia6:ckin(3) = 10.")
The first part is then peeled off, to give the string ckin(3) = 10.. This string is given as argument to pygive, accessed via the extern "C" pygive_ interface. Thus all parameters that could be set with the PYGIVE Fortran routine can also be set by readString and readFile. Only those commands that influence the generation of the hard process have any impact, however, since this is the only part of the Fortran code that is used.

The other routines interfaced are

The modes for the last two routines are as given in the PYTHIA 6.4 manual, and these two are the only ones a user might wish to access directly.

This means that all other Fortran routines have not been interfaced and cannot be accessed directly from the C++ code; there is no need for them in the current setup.

All hard PYTHIA 6 processes should be available for full generation in PYTHIA 8, at least to the extent that they are defined for beams of protons and antiprotons, which are the only ones fully implemented in PYTHIA 8 so far. Soft processes, i.e. elastic and diffractive scattering, as well as minimum-bias events, require a different kinematics machinery, and can only be generated with the internal PYTHIA 8 processes.

Finally, note that it is not possible to mix processes from PYTHIA 6 with those from PYTHIA 8. If you give but a single command beginning with Pythia6:, even if not for a specific process, it is assumed that PYTHIA 6 should be used for all hard-process generation.