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
pyinit(...)
to initialize the event generation
chain,
pyupev()
to generate the next process,
pylist(mode)
to list the event at the process
level,
pystat(mode)
to print statistics on the event
generation process.
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.