/usr/share/pythia8-data/xmldoc/EventStatistics.xml is in pythia8-data 8.1.86-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | <chapter name="Event Statistics">
<h2>Event Statistics</h2>
At the end of the run you will want to write out the final statistics
on number of events generated, the corresponding cross sections and
the number of errors encountered. This is done either with the
<code>pythia.stat()</code> method or the <code>pythia.statistics()</code>
one, assuming <code>pythia</code> is an instance of the
<code>Pythia</code> class.The former method is steered entirely by
settings values, see <aloc href="MainProgramSettings">here</aloc>.
The latter, deprecated one instead takes two arguments:
<method name="void Pythia::statistics(bool all = false, bool reset = false)">
write out statistics on cross sections and errors. This is based on
calls to the methods below, for the two kinds of information.
<argument name="all">
if <code>true</code> it allows a more extensive listing than the default
one, see multiparton-interactions statistics below.
</argument>
<argument name="reset"> if <code>true</code> it implies that all counters,
e.g on events generated and errors experienced, are reset to zero whenever
the routine is called. The default instead is that all stored
statistics information is unaffected by the call.
Counters are automatically reset in each new <code>Pythia::init()</code>
call, however, so the only time the <code>reset</code> option makes a
difference is if <code>statistics(...)</code> is called several times
in a (sub)run.
</argument>
</method>
<h3>Cross-section statistics</h3>
The <code>ProcessLevel::statistics()</code> method cannot be accessed
directly, but only via the <code>Pythia::stat()</code> and
<code>Pythia::statistics(...)</code> calls above.
When called it will loop over the list of existing processes, and for
each write out name, code, the number of tried, selected and accepted
events, the cross section and the estimated error on the latter.
The three different event numbers are related to the Monte Carlo method
used, whereby an initial upper estimate of the cross section is used to
select a large number of trial phase-space points, whereof then not all
survive. Rejections are normally done by the internal machinery, but can
also be obtained by <aloc href="UserHooks">user hooks</aloc>.
Therefore:
<ul>
<li><b>tried</b> events reflect the original number of
phase-space points probed, as part of the upper estimate;</li>
<li><b>selected</b> events correspond to those that survive
the internal Monte-Carlo selection procedure;</li>
<li><b>accepted</b> events are those that also survive
the additional user cuts.</li>
</ul>
In most runs there would be no user hooks implemented, and then the
numbers of selected and of accepted events will agree. Aborted events
(see below) usually appear in the selected statistics but not in the
accepted one.
<p/>
For Les Houches events the total cross section will be correctly
displayed; however the (optional) error value will not be used, so that
the reported error will be smaller than the correct statistical ones,
and often vanish completely. Furthermore, while the number of events
is shown for each user process, the cross section is only for the sum
of them.
<h3>Error messages</h3>
When Pythia is run, errors may occur, and give rise to warning messages.
These may be of varying severity, as follows:
<ul>
<li><b>Abort</b> means things went seriously wrong, and the
initialization or event generation failed. In the former case it is
not possible to generate events at all, in the latter the current
event is flawed and should be skipped. In either case the respective
method, <code>Pythia::init()</code> or <code>Pythia::next()</code>,
then also returns the value <code>false</code>. There are occasions
where an abort may be deliberate, such as when a file of Les Houches
Events is read and the end of the file is reached.</li>
<li><b>Error</b> normally is less severe. Typically the program will
back up one step and try again. There are cases where this is not possible,
in particular during the initialization and the generation of a hard
process, and then the error may be followed by an abort as a direct
consequence (with two separate messages).</li>
<li><b>Warning</b> is even less severe. In some cases the program will
try again, with good chances of success, in others no measure at all
need to be taken.</li>
</ul>
<p/>
The error messages is handled by a small part of the <code>Info</code>
class. It is handed any abort, error or warning messages during the event
generation phase, and will store each distinct message, with a counter
for how many times it is issued. Thus it is possible to limit the number
of identical messages issued, currently hardcoded so that each kind of
error message is only printed once
(<code>static const int TIMESTOPRINT = 1</code>).
This can be overridden by the calling routine, so that all messages of
this kind are shown, which is particularly relevant for the
initialization stage.
The summary table printed by <code>Pythia::statistics()</code>
provides a table with all the different messages issued, in
alphabetical order, with the total number of times each was generated.
<h3>Multiparton-interactions statistics</h3>
If you call <code>Pythia::statistics(true)</code>, i.e. with the first
optional argument <code>true</code>, also statistics on multiparton
interactions is printed, comprising a list of all allowed subprocesses
with how many times each of them has been generated. For the nondiffractive
process this also includes the hardest interaction, while else the
hardest process is excluded from the statistics. (This is because
the hardest process is of the same character and generated by the same
machinery in the former case but not in the latter. Also, for the
former case only, the standard statistics listing only lists
nondiffractive as one single process, i.e. does not further specify
the character of the hardest subprocess, so there is not any overlap
between the two.)
</chapter>
<!-- Copyright (C) 2014 Torbjorn Sjostrand -->
|