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