Main-Program and Related Settings
- Introduction
- Initialization settings
- Event-generation settings
- Statistics
- Main-program settings
- Subruns
- Spares
Introduction
The main program is up to the user to write. However,
sample main programs
are provided. In one such class of programs, key settings of the run
are read in from a "cards file". For experimental collaborations
this is actually the most common way to run a program like PYTHIA.
The commands in such a file may be of two types
(a) instructions directly to Pythia
, like which
processes to generate, and
(b) instructions to the main program for what it should do,
like how many events to generate, and how many events should
be listed.
In principle these two kinds could be kept completely separate.
However, to make life simpler, a few useful main-program
settings are defined on this page, so that they are recognized by
the Settings
machinery. They can thus be put among
the other cards without distinction. It is up to you to decide which
ones, if any, you actually want to use when you write your main program.
To further reduce the necessary amount of main-program code, some of
the tasks that you can steer from your main program can also be done
internally. This in particular relates to some information printing.
To give an example, pythia.event.list()
can be inserted
to print an event, i.e. all the particles belonging to it. Given the
length of these listings one would list only a few events at the
beginning of the run, to get some feeling for the character of events.
This could be achieved e.g. with a main-program statement
if (iEvent < 3) pythia.event.list()
to list the first three events in a loop over iEvent
,
after pythia.next()
has been used to generate the next
event. Alternatively a Next:numberShowEvent = 3
setting, e.g. in a command file, would achieve the same, by an
internal call at the end of pythia.next()
.
The settings names on this page thus fall into four main groups
Init:...
denote actions that automatically may be
taken during the pythia.init()
call.
Next:...
denote actions that automatically may be
taken during the pythia.next()
call.
Stat:...
denote actions that automatically may be
taken during the pythia.stat()
call.
Main:...
denote actions that you yourself
have the freedom to make use of in your main program.
Initialization settings
flag
Init:showProcesses
(default = on
)
Print a list of all processes that will be simulated, with
their estimated cross section maxima, as used for the
subsequent Monte Carlo selection. Also print corresponding
Les Houches initialization data, where relevant.
flag
Init:showMultipartonInteractions
(default = on
)
Print initialization information for the multiparton interactions
machinery.
flag
Init:showChangedSettings
(default = on
)
Print a list of the changed flag/mode/parameter/word settings.
flag
Init:showAllSettings
(default = off
)
Print a list of all flag/mode/parameter/word settings.
Warning: this will be a long list.
flag
Init:showChangedParticleData
(default = on
)
Print a list of particle and decay data for those particles
that were changed (one way or another).
flag
Init:showChangedResonanceData
(default = off
)
In the previous listing also include the resonances that are
initialized at the beginning of a run and thus get new particle
data, even if these may well agree with the default ones.
Warning: this will be a rather long list.
flag
Init:showAllParticleData
(default = off
)
Print a list of all particle and decay data.
Warning: this will be a long list.
mode
Init:showOneParticleData
(default = 0
; minimum = 0
)
Print particle and decay data for the particle with this particular
identity code. Default means that no particle is printed.
wvec
Init:plugins
(default = {}
)
Vector of user provided plugins to load; full details can be found in
Plugins. Each entry should at a minimum
take the form LibraryName::ClassName
. Here,
LibraryName
is the name of the library, which can include
an absolute or relative path. If no path is provided, then the
standard search paths for libraries are searched. The argument
ClassName
specifies the class of the object to load from
the plugin library. Three additional optional arguments, separated by
::
can also be provided,
LibraryName::ClassName::Key::CommandFile::SubRun
. For all
classes except PDFs, Key
can be either set
,
which sets the corresponding pointer, or add
, which (when
available) adds to a list of Pythia pointers. For PDF plugins,
Key
specifies the beam type to set. The optional argument
CommandFile
specifies a command file that will be read in
using the Pythia::readFile
method, prior to the
construction of the plugin object. If SubRun
is provided,
then the settings for only that subrun are read. Warning: none of the
arguments provided per entry should contain the character
::
, as this is used as a delimeter for the arguments of
the entry. Additionally, the character ,
should not be
used either, as this separates the entries of the vector. All
arguments are case sensitive.
Event-generation settings
mode
Next:numberCount
(default = 1000
; minimum = 0
)
Print a line telling how many events have been generated so far, once
every numberCount
events. If set zero then no lines are
ever printed.
In include/Pythia8Plugins/ProgressLog.h
an alternative
method is implemented that intermittently prints out run progress
information, reports on CPU usage and estimates when the run will end.
It is used in the main421.cc
example.
mode
Next:numberShowLHA
(default = 1
; minimum = 0
)
The number of events to list the Les Houches input information for,
where relevant.
mode
Next:numberShowInfo
(default = 1
; minimum = 0
)
The number of events to list the Info
information for,
where relevant.
mode
Next:numberShowProcess
(default = 1
; minimum = 0
)
The number of events to list the process
record for,
where relevant.
mode
Next:numberShowEvent
(default = 1
; minimum = 0
)
The number of events to list the event
record for,
where relevant.
flag
Next:showScaleAndVertex
(default = off
)
In addition to the normal information in the listing of the
process
and event
records, a second line
per particle provides information on the production scale,
particle polarization and production vertex.
flag
Next:showMothersAndDaughters
(default = off
)
In addition to the normal information in the listing of the
process
and event
records, further lines
list all the mothers and daughters of each particle.
Statistics
flag
Stat:showProcessLevel
(default = on
)
Print the available statistics on number of generated events and
cross sections, where relevant.
flag
Stat:showPartonLevel
(default = off
)
Print the available statistics on number and types of multiparton
interactions, where relevant.
flag
Stat:showErrors
(default = on
)
Print the available statistics on number and types of
aborts, errors and warnings.
flag
Stat:reset
(default = off
)
Reset the statistics of the above three kinds. The default is that
all stored statistics information is unaffected by the
pythia.stat()
call. Counters are automatically reset
in each new pythia.init()
call, however, so the only time
the reset option makes a difference is if stat()
is called several times in a (sub)run.
Main-program settings
The settings in this section must be under the control of the
user, i.e. there are no internal equivalents. The first one is especially
important and would be a standard feature of any separate command file.
mode
Main:numberOfEvents
(default = 1000
; minimum = 0
)
The number of events to be generated.
mode
Main:numberOfTriedEvents
(default = 0
; minimum = 0
)
The number of events to be tried during generation. Any number smaller
than one means that the setting will be ignored.
mode
Main:numberOfSelectedEvents
(default = 0
; minimum = 0
)
The number of events to be selected during generation. Any number smaller than
one means that the setting will be ignored.
mode
Main:numberOfAcceptedEvents
(default = 0
; minimum = 0
)
The number of events to be accepted during generation. Any number smaller than
one means that the setting will be ignored.
mode
Main:timesAllowErrors
(default = 10
)
Allow this many times that pythia.next()
returns false,
i.e. that an event is flawed, before aborting the run.
The Main:...
options works like this. Once you have used
the pythia.readFile(fileName)
method to read in the cards
file, where the values have been set, you can interrogate the
Settings
database to make the values available in your
main program. A slight complication is that you need to use a different
Settings
method for each of the four possible return types
that you want to extract. To save some typing the same method names are
found directly in the Pythia
class, and these just send on
to the Settings
ones to do the job, e.g.
int nEvent = pythia.mode("Main:numberOfEvents");
The area of subruns is covered separately below. A few spares are also
defined after that, for unforeseen applications.
Subruns
You can use subruns to carry out
several tasks in the same run. In that case you will need repeated
instances of the first setting below in your command file, and could
additionally use the second and third as well.
mode
Main:subrun
(default = -999
; minimum = 0
)
The number of the current subrun, a non-negative integer, put as
first line in a section of lines to be read for this particular subrun.
flag
Main:LHEFskipInit
(default = off
)
If you read several Les Houches Event Files that you want to see
considered as one single combined event sample you can set this flag
on
after the first subrun to skip (most of) the
(re-)initialization step.
mode
Main:numberOfSubruns
(default = 0
)
The number of subruns you intend to use in your current run.
Unlike the two settings above, Pythia
itself will not
interpret this number, but you could e.g. have a loop in your main
program to loop over subruns from 0 through
numberOfSubruns - 1
.
Spares
For currently unforeseen purposes, a few dummy settings are made
available here. The user can set the desired value in a "cards file"
and then use that value in the main program as desired.
flag
Main:spareFlag1
(default = off
)
flag
Main:spareFlag2
(default = off
)
flag
Main:spareFlag3
(default = off
)
mode
Main:spareMode1
(default = 0
)
mode
Main:spareMode2
(default = 0
)
mode
Main:spareMode3
(default = 0
)
parm
Main:spareParm1
(default = 0.
)
parm
Main:spareParm2
(default = 0.
)
parm
Main:spareParm3
(default = 0.
)
word
Main:spareWord1
(default = void
)
word
Main:spareWord2
(default = void
)
word
Main:spareWord3
(default = void
)