source: HiSusy/trunk/Pythia8/pythia8170/phpdoc/ProgramFlow.php @ 1

Last change on this file since 1 was 1, checked in by zerwas, 11 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 54.5 KB
Line 
1<html>
2<head>
3<title>Program Flow</title>
4<link rel="stylesheet" type="text/css" href="pythia.css"/>
5<link rel="shortcut icon" href="pythia32.gif"/>
6</head>
7<body>
8
9<script language=javascript type=text/javascript>
10function stopRKey(evt) {
11var evt = (evt) ? evt : ((event) ? event : null);
12var node = (evt.target) ? evt.target :((evt.srcElement) ? evt.srcElement : null);
13if ((evt.keyCode == 13) && (node.type=="text"))
14{return false;}
15}
16
17document.onkeypress = stopRKey;
18</script>
19<?php
20if($_POST['saved'] == 1) {
21if($_POST['filepath'] != "files/") {
22echo "<font color='red'>SETTINGS SAVED TO FILE</font><br/><br/>"; }
23else {
24echo "<font color='red'>NO FILE SELECTED YET.. PLEASE DO SO </font><a href='SaveSettings.php'>HERE</a><br/><br/>"; }
25}
26?>
27
28<form method='post' action='ProgramFlow.php'>
29
30<h2>Program Flow</h2>
31
32Recall that, to first order, the event generation process can be
33subdivided into three stages:
34<ol>
35<li>Initializaion.</li>
36<li>The event loop.</li>
37<li>Finishing.</li>
38</ol>
39This is reflected in how the top-level <code>Pythia</code> class should
40be used in the user-supplied main program, further outlined in the
41following. Since the nature of the run is defined at the initialization
42stage, this is where most of the PYTHIA user code has to be written.
43So as not to confuse the reader unduly, the description of initialization
44options has been subdivided into what would normally be used and what is
45intended for more special applications.
46
47<p/>
48At the bottom of this webpge is a complete survey of all public
49<code>Pythia</code> methods and data members, in a more formal style
50than the task-oriented descriptions found in the preceding sections.
51This offers complementary information. 
52   
53<h3>Initialization - normal usage</h3>
54
55<ol>
56
57<li>
58Already at the top of the main program file, you need to include the proper
59header file
60<pre>
61    #include "Pythia.h"
62</pre>
63To simplify typing, it also makes sense to declare
64<pre>
65    using namespace Pythia8;
66</pre>
67</li>
68
69<p/>
70<li>
71The first step is to create a generator object,
72e.g. with
73<pre>
74     Pythia pythia;
75</pre>
76It is this object that we will use from now on. Normally a run
77will only contain one <code>Pythia</code> object. (But you can
78use several <code>Pythia</code> objects, which then will be
79independent of each other.)<br/>
80By default all output from <code>Pythia</code> will be on the
81<code>cout</code> stream, but the <code>list</code> methods below do
82allow output to alternative streams or files.
83</li> 
84
85<p/>
86<li> 
87You next want to set up the character of the run.
88The pages under the "Setup Run Tasks" heading in the index
89describe all the options available (with some very few exceptions,
90found on the other pages). 
91The default values and your modifications are stored in two databases,
92one for <?php $filepath = $_GET["filepath"];
93echo "<a href='SettingsScheme.php?filepath=".$filepath."' target='page'>";?>generic settings</a>
94and one for <?php $filepath = $_GET["filepath"];
95echo "<a href='ParticleDataScheme.php?filepath=".$filepath."' target='page'>";?>particle data</a>.
96Both of these are initialized with their default values by the
97<code>Pythia</code> constructor. The default values can then be
98changed, primarily by one of the two ways below, or by a combination
99of them.
100
101<p/>
102a) You can use the
103<pre>
104    pythia.readString(string);
105</pre>
106method repeatedly to do a change of a property at a time.
107The information in the string is case-insensitive, but upper- and
108lowercase can be combined for clarity. The rules are that<br/>
109(i) if the first nonblank character of the string is a letter
110it is assumed to contain a setting, and is sent on to
111<code>pythia.settings.readString(string)</code>;<br/> 
112(ii) if instead the string begins with a digit it is assumed to
113contain particle data updates, and so sent on to
114<code>pythia.particleData.readString(string)</code>;<br/>
115(iii) if none of the above, the string is assumed to be a comment,
116i.e. nothing will be done.<br/>
117In the former two cases, a warning is issued whenever a string
118cannot be recognized (maybe because of a spelling mistake).<br/>
119Some examples would be
120<pre>
121    pythia.readString("TimeShower:pTmin = 1.0");
122    pythia.readString("111:mayDecay = false");
123</pre>
124The <code>readString(string)</code> method is intended primarily for
125a few changes. It can also be useful if you want to construct a
126parser for input files that contain commands both to PYTHIA and to
127other libraries.<br/>
128
129<p/>
130b) You can read in a file containing a list of those variables
131you want to see changed, with a
132<pre>
133    pythia.readFile(fileName);
134</pre>
135Each line in this file with be processes by the
136<code>readString(string)</code> method introduced above. You can thus
137freely mix comment lines and lines handed on to <code>Settings</code>
138or to <code>ParticleData</code>.<br/>
139This approach is better suited for more extensive changes than a direct
140usage of <code>readString(string)</code>, and can also avoid having to
141recompile and relink your main program between runs.<br/>
142It is also possible to read input from an <code>istream</code>, by
143default <code>cin</code>, rather than from a file. This may be convenient
144if information is generated on-the-fly, within the same run.
145
146<p/>
147Changes are made sequentially in the order the commands are encountered
148during execution, meaning that if a parameter is changed several times
149it is the last one that counts. The two special
150<code><?php $filepath = $_GET["filepath"];
151echo "<a href='Tunes.php?filepath=".$filepath."' target='page'>";?>Tune:ee</a></code> and
152<code><?php $filepath = $_GET["filepath"];
153echo "<a href='Tunes.php?filepath=".$filepath."' target='page'>";?>Tune:pp</a></code>
154modes are expanded to change several settings in one go, but these obey
155the same ordering rules.
156<br/> 
157</li>
158
159<p/>
160<li>
161Next comes the initialization stage, where all
162remaining details of the generation are to be specified.
163There is one standard method to use for this
164
165<p/>
166<code>pythia.init();</code><br/>
167with no arguments will read all relevant information from the
168<code><?php $filepath = $_GET["filepath"];
169echo "<a href='SettingsScheme.php?filepath=".$filepath."' target='page'>";?>Settings</a></code>
170and <code><?php $filepath = $_GET["filepath"];
171echo "<a href='ParticleDataScheme.php?filepath=".$filepath."' target='page'>";?>ParticleData</a></code>
172databases. Specifically the setup of incoming beams and energies
173is governed by the the beam parameters from the
174<code><?php $filepath = $_GET["filepath"];
175echo "<a href='BeamParameters.php?filepath=".$filepath."' target='page'>";?>Beams</a></code>
176group of variables. If you don't change any of those you will
177default to proton-proton collisions at 14 TeV, i.e. the nominal LHC
178values.
179
180<p/> 
181A few alternative forms are available, where the arguments of the
182<code>init(...)</code> call can be used to set the beam parameters.
183These alternatives are now deprecated, and will bew removed for
184PYTHIA 8.2. 
185
186<p/>
187a) <code>pythia.init( idA, idB, eCM);</code><br/>
188lets you specify the identities and the CM energy of the two incoming
189beam particles, with A (B) assumed moving in the <i>+z (-z)</i>
190direction.
191
192<p/>
193b) <code>pythia.init( idA, idB, eA, eB);</code><br/>
194is similar, but the two beam energies can be different, so the
195collisions do not occur in the CM frame. If one of the beam energies
196is below the particle mass you obtain a fixed-target topology.
197
198<p/>
199c) <code>pythia.init( idA, idB, pxA, pyA, pzA, pxB, pyB, pzB);</code><br/>
200is similar, but here you provide the three-momenta
201<i>(p_x, p_y, p_z)</i> of the two incoming particles,
202to allow for arbitrary beam directions.
203
204<p/>
205d) <code>pythia.init(fileName);</code> <br/>
206assumes a file in the <?php $filepath = $_GET["filepath"];
207echo "<a href='LesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>Les Houches
208Event File</a> format is provided.
209
210<p/>
211e) <code>pythia.init( LHAup*);</code> <br/>
212assumes <?php $filepath = $_GET["filepath"];
213echo "<a href='LesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>Les Houches Accord</a>
214initialization and event information is available in an <code>LHAup</code>
215class object, and that a pointer to this object is handed in.
216
217<p/>
218<li>
219If you want to have a list of the generator and particle data used,
220either only what has been changed or everything, you can use
221<pre>
222    pythia.settings.listChanged();
223    pythia.settings.listAll();
224    pythia.particleData.listChanged();
225    pythia.particleData.listAll();
226</pre>
227</li>
228
229</ol>
230
231<h3>The event loop</h3>
232
233<ol>
234
235<li>
236Inside the event generation loop you generate the
237next event using the <code>next()</code> method,
238<pre>
239    pythia.next();
240</pre>
241This method takes no arguments; everything has already been specified.
242It does return a bool value, however, <code>false</code> when the
243generation failed. This can be a "programmed death" when the
244supply of input parton-level configurations on file is exhausted.
245It can alternatively signal a failure of <code>Pythia</code> to
246generate an event, or unphysical features in the event record at the
247end of the generation step. It makes sense to allow a few <code>false</code>
248values before a run is aborted, so long as the related faulty
249events are skipped.
250</li> 
251 
252<p/>
253<li>
254The generated event is now stored in the <code>event</code>
255object, of type <code><?php $filepath = $_GET["filepath"];
256echo "<a href='EventRecord.php?filepath=".$filepath."' target='page'>";?>Event</a></code>,
257which is a public member of <code>pythia</code>. You therefore have
258access to all the tools described on the pages under the "Study Output"
259header in the index. For instance, an event can be listed with
260<code>pythia.event.list()</code>, the identity of the <i>i</i>'th
261<?php $filepath = $_GET["filepath"];
262echo "<a href='ParticleProperties.php?filepath=".$filepath."' target='page'>";?>particle</a> is given by
263<code>pythia.event[i].id()</code>, and so on.<br/> 
264The hard process - roughly the information normally stored in the
265Les Houches Accord event record - is available as a second object,
266<code>process</code>, also of type <code>Event</code>.<br/> 
267A third useful public object is
268<code><?php $filepath = $_GET["filepath"];
269echo "<a href='EventInformation.php?filepath=".$filepath."' target='page'>";?>info</a></code>, which offers
270a set of one-of-a kind pieces of information about the most recent
271event.
272</li>
273
274</ol>
275
276<h3>Finishing</h3>
277
278<ol>
279
280<li>At the end of the generation process, you can call
281<pre>
282    pythia.stat();
283</pre>
284to get some run statistics, on cross sections and the number of errors
285and warnings encountered. The alternative
286<code>pythia.statistics(...);</code> is equivalent but deprecated.
287</li>
288
289</ol>
290
291<h3>Advanced usage, mainly for initialization</h3>
292
293A) Necessary data are automatically loaded when you use the
294default PYTHIA installation directory structure and run the main
295programs in the <code>examples</code> subdirectory. However, in the
296general case, you must provide the path of the <code>xmldoc</code>
297directory, where default settings and particle data are found.
298This can be done in two ways.
299
300<ol>
301
302<li>
303You can set the environment variable <code>PYTHIA8DATA</code> to
304contain the location of the <code>xmldoc</code> directory. In the
305<code>csh</code> and <code>tcsh</code> shells this could e.g. be
306<pre>
307     setenv PYTHIA8DATA /home/myname/pythia81xx/xmldoc
308</pre>
309while in other shells it could be
310<pre>
311     export PYTHIA8DATA=/home/myname/pythia81xx/xmldoc
312</pre>
313where xx is the subversion number.<br/>
314Recall that environment variables set locally are only defined in the
315current instance of the shell. The above lines should go into your
316<code>.cshrc</code> and <code>.bashrc</code> files, respectively,
317if you want a more permanant assignment.
318</li>
319
320<p/>
321<li>
322You can provide the path as argument to the <code>Pythia</code>
323constructor, e.g.
324<pre>
325     Pythia pythia("/home/myname/pythia81xx/xmldoc");
326</pre>
327</li>
328</ol>
329where again xx is the subversion number.<br/>
330When <code>PYTHIA8DATA</code> is set it takes precedence, else
331the path in the constructor is used, else one defaults to the
332<code>../xmldoc</code> directory.
333
334<p/>
335B) You can override the default behaviour of PYTHIA not only by the
336settings and particle data, but also by replacing some of the
337PYTHIA standard routines by ones of your own. Of course, this is only
338possible if your routines fit into the general PYTHIA framework.
339Therefore they must be coded according to the the rules relevant
340in each case, as a derived class of a PYTHIA base class, and a pointer
341to such an object must be handed in by one of the methods below.
342These calls must be made before the <code>pythia.init(...)</code> call.
343
344<ol>
345
346<li>
347If you are not satisfied with the list of parton density functions that
348are implemented internally or available via the LHAPDF interface
349(see the <?php $filepath = $_GET["filepath"];
350echo "<a href='PDFSelection.php?filepath=".$filepath."' target='page'>";?>PDF Selection</a> page), you
351can suppy your own by a call to the <code>setPDFPtr(...)</code> method
352<pre>
353      pythia.setPDFptr( pdfAPtr, pdfBPtr);
354</pre>
355where <code>pdfAPtr</code> and <code>pdfBPtr</code> are pointers to
356two <code>Pythia</code> <?php $filepath = $_GET["filepath"];
357echo "<a href='PartonDistributions.php?filepath=".$filepath."' target='page'>";?>PDF
358objects</a>. Note that <code>pdfAPtr</code> and <code>pdfBPtr</code>
359cannot point to the same object; even if the PDF set is the same,
360two copies are needed to keep track of two separate sets of <i>x</i>
361and density values.<br/>
362If you further wish to use separate PDF's for the hard process of an
363event than the ones being used for everything else, the extended form
364<pre>
365      pythia.setPDFptr( pdfAPtr, pdfBPtr, pdfHardAPtr, pdfHardBPtr);
366</pre>
367allows you to specify those separately, and then the first two sets
368would only be used for the showers and for multiparton interactions.
369</li>
370
371<p/>
372<li>
373If you want to link to an external generator that feeds in events
374in the LHA format, you can call the <code>setLHAupPtr(...)</code>
375method
376<pre>
377      pythia.setLHAupPtr( lhaUpPtr);
378</pre>
379where the  <code>lhaUpPtr</code> derives from the
380<?php $filepath = $_GET["filepath"];
381echo "<a href='LesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>LHAup</a> base class.
382</li>
383
384<p/>
385<li>
386If you want to perform some particle decays with an
387external generator, you can call the <code>setDecayPtr(...)</code>
388method
389<pre>
390      pythia.setDecayPtr( decayHandlePtr, particles);
391</pre>
392where the <code>decayHandlePtr</code> derives from the
393<code><?php $filepath = $_GET["filepath"];
394echo "<a href='ExternalDecays.php?filepath=".$filepath."' target='page'>";?>DecayHandler</a></code> base
395class and <code>particles</code> is a vector of particle codes to be
396handled.
397</li>
398
399<p/>
400<li>
401If you want to use an external random number generator,
402you can call the <code>setRndmEnginePtr(...)</code> method
403<pre>
404      pythia.setRndmEnginePtr( rndmEnginePtr);
405</pre>
406where <code>rndmEnginePtr</code> derives from the
407<code><?php $filepath = $_GET["filepath"];
408echo "<a href='RandomNumbers.php?filepath=".$filepath."' target='page'>";?>RndmEngine</a></code> base class.
409The <code>Pythia</code> default random number generator is perfectly
410good, so this is only intended for consistency in bigger frameworks.
411</li>
412
413<p/>
414<li>
415If you want to interrupt the evolution at various stages,
416to interrogate the event and possibly veto it, or you want to
417reweight the cross section, you can use   
418<pre>
419      pythia.setUserHooksPtr( userHooksPtr);
420</pre>
421where <code>userHooksPtr</code> derives from the
422<code><?php $filepath = $_GET["filepath"];
423echo "<a href='UserHooks.php?filepath=".$filepath."' target='page'>";?>UserHooks</a></code> base class.
424</li>
425
426<p/>
427<li>
428If you want to use your own merging scale definition for
429matrix element + parton shower merging, you can call   
430<pre>
431      pythia.setMergingHooksPtr( mergingHooksPtr);
432</pre>
433where <code>mergingHooksPtr</code> derives from the
434<code><?php $filepath = $_GET["filepath"];
435echo "<a href='MatrixElementMerging.php?filepath=".$filepath."' target='page'>";?>MergingHooks</a></code> base class.
436</li>
437
438<p/>
439<li>
440If you want to use your own parametrization of beam momentum spread and
441interaction vertex, rather than the provided simple Gaussian
442parametrization (off by default), you can call
443<pre>
444      pythia.setBeamShapePtr( beamShapePtr);
445</pre>
446where <code>beamShapePtr</code> derives from the
447<code><?php $filepath = $_GET["filepath"];
448echo "<a href='BeamShape.php?filepath=".$filepath."' target='page'>";?>BeamShape</a></code> base class.
449</li>
450
451<p/>
452<li>
453If you want to implement a cross section of your own, but still make use
454of the built-in phase space selection machinery, you can use
455<pre>
456      pythia.setSigmaPtr( sigmaPtr);
457</pre>
458where <code>sigmaPtr</code> of type <code>SigmaProcess*</code> is an
459instance of a class derived from one of the <code>Sigma1Process</code>,
460<code>Sigma2Process</code> and  <code>Sigma3Process</code> base classes
461in their turn derived from
462<code><?php $filepath = $_GET["filepath"];
463echo "<a href='SemiInternalProcesses.php?filepath=".$filepath."' target='page'>";?>SigmaProcess</a></code>.
464This call can be used repeatedly to hand in several different processes.
465</li>
466
467<p/>
468<li>
469If your cross section contains the production of a new resonance
470with known analytical expression for all the relevant partial widths,
471you can make this resonance available to the program with
472<pre>
473      pythia.setResonancePtr( resonancePtr);
474</pre>
475where <code>resonancePtr</code> of type <code>ResonanceWidths*</code>
476is an instance of a class derived from the
477<code><?php $filepath = $_GET["filepath"];
478echo "<a href='SemiInternalResonances.php?filepath=".$filepath."' target='page'>";?>ResonanceWidths</a></code>
479base class. In addition you need to add the particle to the normal
480<?php $filepath = $_GET["filepath"];
481echo "<a href='ParticleDataScheme.php?filepath=".$filepath."' target='page'>";?>particle and decay database</a>.
482This procedure can be used repeatedly to hand in several different
483resonances.
484</li>
485
486<p/>
487<li>
488If you are a real expert and want to <?php $filepath = $_GET["filepath"];
489echo "<a href='ImplementNewShowers.php?filepath=".$filepath."' target='page'>";?>replace
490the PYTHIA initial- and final-state showers</a>, you can use
491<pre>
492      pythia.setShowerPtr( timesDecPtr, timesPtr, spacePtr);
493</pre>
494where <code>timesDecPtr</code> and <code>timesPtr</code>
495derive from the <code>TimeShower</code> base class, and
496<code>spacePtr</code> from <code>SpaceShower</code>.
497</li>
498
499</ol>
500
501<p/>
502C) Some comments on collecting several tasks in the same run.
503<ol>
504
505<li>
506PYTHIA has not been written for threadsafe execution on multicore
507processors. If you want to use all cores,
508the most efficient way presumably is to start correspondingly many jobs,
509with different random number seeds, and add the statistics at the end.
510However, note that several instances  can be set up in the same main
511program, since instances are completely independent of each other,
512so each instance could be run inside a separate thread.
513</li>
514
515<p/>
516<li>
517In some cases it is convenient to use more than one <code>Pythia</code>
518object. The key example would be the simultaneous generation of signal
519and pileup events, see <code>main19.cc</code>. The two objects are then
520set up and initialized separately, and generate events completely
521independently of each other. It is only afterwards that the event records
522are combined into one single super-event per beam crossing.
523</li>
524
525<p/>
526<li>
527When time is not an issue, it may be that you want to perform several
528separate subruns sequentially inside a run, e.g. to combine results for
529several kinematical regions or to compare results for some different
530tunes of the underlying event. One way to go is to create (and destroy)
531one <code>pythia</code> object for each subrun, in which case they are
532completely separate. You can also use the same <code>pythia</code> object,
533only doing a new <code>init(...)</code> call for each subrun. In that
534case, the settings and particle databases remain as they were in the 
535previous subrun, only affected by the specific changes you introduced in
536the meantime. You can put those changes in the main program, with
537<code>pythia.readString(string)</code>, using your own logic to decide
538which ones to execute in which subrun. A corresponding possibility
539exists with <code>pythia.readFile(fileName, subrun)</code> (or an
540<code>istream</code> instead of a <code>fileName</code>), which as second
541argument can take a non-negative subrun number. Then only those
542sections of the file before any <code>Main:subrun = ...</code> line
543or with matching <code>subrun</code> number will be read. That is, the
544file could have a structure like
545<pre>
546    ( lines always read, i.e. "default values" always (re)set )
547    Main:subrun = 1
548    ( lines only read with readFile(fileName, 1) )
549    Main:subrun = 2
550    ( lines only read with readFile(fileName, 2) )
551</pre>
552Both of these possibilities are illustrated in <code>main08.cc</code>.
553</li>
554
555<p/>
556<li>
557When working with Les Houches Event Files, it may well be that your
558intended input event sample is spread over several files, that you all
559want to turn into complete events in one and the same run. There is no
560problem with looping over several subruns, where each new subrun
561is initialized with a new file, with name set in <code>Beams:LHEF</code>.
562However, in that case you will do a complete re-initialization each time
563around. If you want to avoid this, note that the flag
564<code>Beams:newLHEFsameInit = true</code> can be set for the second and
565subsequent subruns. Then the new file will be simulated with the same
566initialization data as already set in a previous
567<code>pythia.init()</code> call. The burden rests on you to ensure
568that this is indeed correct, e.g. that the two event samples have not
569been generated for different beam energies. Also note that cross
570sections for processes will be based on the information in the
571first-read file, when the full initialization is performed.
572</li>
573
574</ol>
575
576<h2>The Pythia Class</h2>
577
578Here follows the complete survey of all public <code>Pythia</code>
579methods and data members.   
580
581<h3>Constructor and destructor</h3>
582
583<a name="method1"></a>
584<p/><strong>Pythia::Pythia(string xmlDir = &quot;../xmldoc&quot;) &nbsp;</strong> <br/>
585creates an instance of the <code>Pythia</code> event generators,
586and sets initial default values, notably for all settings and
587particle data. You may use several <code>Pythia</code> instances
588in the same run; only when you want to access external static
589libraries could this cause problems. (This includes in particular
590Fortran libraries such as <?php $filepath = $_GET["filepath"];
591echo "<a href='PDFSelection.php?filepath=".$filepath."' target='page'>";?>LHAPDF</a>.)
592<br/><code>argument</code><strong> xmlDir </strong> (<code>default = <strong>../xmldoc</strong></code>) : allows you to choose
593from which directory the default settings and particle data values
594are read in. If the <code>PYTHIA8DATA</code> environment variable
595has been set it takes precedence. Else this optional argument allows
596you to choose another directory location than the default one. Note
597that it is only the directory location you can change, its contents
598must be the ones of the <code>xmldoc</code> directory in the
599standard distribution.
600 
601 
602
603<a name="method2"></a>
604<p/><strong>Pythia::~Pythia &nbsp;</strong> <br/>
605the destructor deletes the objects created by the constructor.
606
607<h3>Set up run</h3>
608
609<a name="method3"></a>
610<p/><strong>bool Pythia::readString(string line, bool warn = true) &nbsp;</strong> <br/>
611reads in a single string, that is interpreted as an instruction to
612modify the value of a <?php $filepath = $_GET["filepath"];
613echo "<a href='SettingsScheme.php?filepath=".$filepath."' target='page'>";?>setting</a> or
614<?php $filepath = $_GET["filepath"];
615echo "<a href='ParticleDataScheme.php?filepath=".$filepath."' target='page'>";?>particle data</a>, as already described
616above.
617<br/><code>argument</code><strong> line </strong>  :
618the string to be interpreted as an instruction.
619 
620<br/><code>argument</code><strong> warn </strong> (<code>default = <strong>true</strong></code>) :
621write a warning message or not whenever the instruction does not make
622sense, e.g. if the variable does not exist in the databases.
623 
624<br/><b>Note:</b> the method returns false if it fails to
625make sense out of the string.
626 
627
628<a name="method4"></a>
629<p/><strong>bool Pythia::readFile(string fileName, bool warn = true, int subrun = SUBRUNDEFAULT) &nbsp;</strong> <br/>
630 
631<strong>bool Pythia::readFile(string fileName, int subrun = SUBRUNDEFAULT) &nbsp;</strong> <br/>
632 
633<strong>bool Pythia::readFile(istream& inStream = cin, bool warn = true, int subrun = SUBRUNDEFAULT) &nbsp;</strong> <br/>
634 
635<strong>bool Pythia::readFile(istream& inStream = cin, int subrun = SUBRUNDEFAULT) &nbsp;</strong> <br/>
636reads in a whole file, where each line is interpreted as an instruction
637to modify the value of a <?php $filepath = $_GET["filepath"];
638echo "<a href='SettingsScheme.php?filepath=".$filepath."' target='page'>";?>setting</a> or
639<?php $filepath = $_GET["filepath"];
640echo "<a href='ParticleDataScheme.php?filepath=".$filepath."' target='page'>";?>particle data</a>, cf. the above
641<code>readString</code> method. All four forms of the
642<code>readFile</code> command share code for actually reading a file.
643<br/><code>argument</code><strong> fileName </strong>  :
644the file from which instructions are read.
645 
646<br/><code>argument</code><strong> inStream </strong>  :
647an istream from which instructions are read.
648 
649<br/><code>argument</code><strong> warn </strong> (<code>default = <strong>true</strong></code>) :
650write a warning message or not whenever the instruction does not make
651sense, e.g. if the variable does not exist in the databases. In the
652command forms where <code>warn</code> is omitted it is true.
653 
654<br/><code>argument</code><strong> subrun </strong>  :
655allows you have several optional sets of commands within the same file.
656Only those sections of the file before any <code>Main:subrun = ...</code>
657line or following such a line with matching subrun number will be read.
658The subrun number should not be negative; negative codes like
659<code>SUBRUNDEFAULT</code> corresponds to no specific subrun.
660 
661<br/><b>Note:</b> the method returns false if it fails to
662make sense out of any one line.
663 
664
665<a name="method5"></a>
666<p/><strong>bool Pythia::setPDFPtr( PDF* pdfAPtr, PDF* pdfBPtr, PDF* pdfHardAPtr = 0, PDF* pdfHardBPtr = 0) &nbsp;</strong> <br/>
667offers the possibility to link in external PDF sets for usage inside
668the program. The rules for constructing your own class from
669the <code>PDF</code> base class are described
670<?php $filepath = $_GET["filepath"];
671echo "<a href='PartonDistributions.php?filepath=".$filepath."' target='page'>";?>here</a>.
672<br/><code>argument</code><strong> pdfAPtr, pdfBPtr </strong>  : 
673pointers to two <code>PDF</code>-derived objects, one for each of
674the incoming beams. The two objects have to be instantiated by you
675in your program. Even if the two beam particles are the same
676(protons, say) two separate instances are required, since current
677information is cached in the objects. If both arguments are zero
678then any previous linkage to external PDF's is disconnected,
679see further Note 2 below.
680 
681<br/><code>argument</code><strong> pdfHardAPtr, pdfHardBPtr </strong> (<code>default = <strong>0</strong></code>) : 
682pointers to two further <code>PDF</code>-derived objects, one for each
683of the incoming beams. Normally only the first two arguments above would
684be used, and then the same PDF sets would be invoked everywhere. If you
685provide these two further pointers then two different sets of PDF's are
686used. This second set is then exclusively for the generation of the hard
687process from the process matrix elements library. The first set above
688is for everything else, notably parton showers and multiparton interactions.
689 
690<br/><b>Note 1:</b> The method returns false if the input is obviously
691incorrect, e.g. if two (nonzero) pointers agree.
692<br/><b>Note 2:</b> If you want to combine several subruns you can
693call <code>setPDFPtr</code> with new arguments before each
694<code>Pythia::init(...)</code> call. To revert from external PDF's
695to the normal internal PDF selection you must call
696<code>setPDFPtr(0, 0)</code> before <code>Pythia::init(...)</code>.
697 
698
699<a name="method6"></a>
700<p/><strong>bool Pythia::setLHAupPtr( LHAup* lhaUpPtrIn) &nbsp;</strong> <br/>
701offers linkage to an external generator that feeds in events
702in the LHA format, see
703<?php $filepath = $_GET["filepath"];
704echo "<a href='LesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>Les Houches Accord</a>,
705assuming that
706<code><?php $filepath = $_GET["filepath"];
707echo "<a href='BeamParameters.php?filepath=".$filepath."' target='page'>";?>Beams:frameType = 5</a></code>
708has been set.
709<br/><code>argument</code><strong> lhaUpPtrIn </strong>  :   
710pointer to a <code>LHAup</code>-derived object.
711 
712<br/><b>Note:</b> The method currently always returns true.
713 
714
715<a name="method7"></a>
716<p/><strong>bool Pythia::setDecayPtr( DecayHandler* decayHandlePtr, vector&lt;int&gt; handledParticles) &nbsp;</strong> <br/>
717offers the possibility to link to an external program that can do some
718of the particle decays, instad of using the internal decay machinery.
719With particles we here mean the normal hadrons and leptons, not
720top quarks, electroweak bosons or new particles in BSM scenarios.
721The rules for constructing your own class from the
722<code>DecayHandler</code> base class are described
723<?php $filepath = $_GET["filepath"];
724echo "<a href='ExternalDecays.php?filepath=".$filepath."' target='page'>";?>here</a>. Note that you can only
725provide one external object, but this object in its turn could
726very well hand on different particles to separate decay libraries.
727<br/><code>argument</code><strong> decayHandlePtr </strong>  :   
728pointer to a <code>DecayHandler</code>-derived object. This object
729must be instantiated by you in your program.
730 
731<br/><code>argument</code><strong> handledParticles </strong>  :  vector with the PDG identity codes
732of the particles that should be handled by the external decay package.
733You should only give the particle (positive) codes; the respective
734antiparticle is always included as well.
735 
736<br/><b>Note:</b> The method currently always returns true.
737 
738
739<a name="method8"></a>
740<p/><strong>bool Pythia::setRndmEnginePtr( RndmEngine* rndmEnginePtr) &nbsp;</strong> <br/>
741offers the possibility to link to an external random number generator.
742The rules for constructing your own class from the
743<code>RndmEngine</code> base class are described
744<?php $filepath = $_GET["filepath"];
745echo "<a href='RandomNumbers.php?filepath=".$filepath."' target='page'>";?>here</a>. 
746<br/><code>argument</code><strong> rndmEnginePtr </strong>  :   
747pointer to a <code>RndmEngine</code>-derived object. This object
748must be instantiated by you in your program.
749 
750<br/><b>Note:</b> The method returns true if the pointer is different
751from 0.
752 
753
754<a name="method9"></a>
755<p/><strong>bool Pythia::setUserHooksPtr( UserHooks* userHooksPtr) &nbsp;</strong> <br/>
756offers the possibility to interact with the generation process at
757a few different specified points, e.g. to reject undesirable events
758at an early stage to save computer time. The rules for constructing
759your own class from the <code>UserHooks</code> base class are described
760<?php $filepath = $_GET["filepath"];
761echo "<a href='UserHooks.php?filepath=".$filepath."' target='page'>";?>here</a>. You can only hand in one such
762pointer, but this may be to a class that implements several of the
763different allowed possibilities.
764<br/><code>argument</code><strong> userHooksPtr </strong>  :   
765pointer to a <code>userHooks</code>-derived object. This object
766must be instantiated by you in your program.
767 
768<br/><b>Note:</b> The method currently always returns true.
769 
770
771<a name="method10"></a>
772<p/><strong>bool Pythia::setBeamShapePtr( BeamShape* beamShapePtr) &nbsp;</strong> <br/>
773offers the possibility to provide your own shape of the momentum and
774space-time spread of the incoming beams. The rules for constructing
775your own class from the <code>BeamShape</code> base class are described
776<?php $filepath = $_GET["filepath"];
777echo "<a href='BeamShape.php?filepath=".$filepath."' target='page'>";?>here</a>.
778<br/><code>argument</code><strong> BeamShapePtr </strong>  :   
779pointer to a <code>BeamShape</code>-derived object. This object
780must be instantiated by you in your program.
781 
782<br/><b>Note:</b> The method currently always returns true.
783 
784
785<a name="method11"></a>
786<p/><strong>bool Pythia::setSigmaPtr( SigmaProcess* sigmaPtr) &nbsp;</strong> <br/>
787offers the possibility to link your own implementation of a process
788and its cross section, to make it a part of the normal process
789generation machinery, without having to recompile the
790<code>Pythia</code> library itself.  The rules for constructing your
791own class from the <code>SigmaProcess</code> base class are described
792<?php $filepath = $_GET["filepath"];
793echo "<a href='SemiInternalProcesses.php?filepath=".$filepath."' target='page'>";?>here</a>. You may call this
794routine repeatedly, to add as many new processes as you wish.
795<br/><code>argument</code><strong> sigmaPtr </strong>  :   
796pointer to a <code>SigmaProcess</code>-derived object. This object
797must be instantiated by you in your program.
798 
799<br/><b>Note:</b> The method currently always returns true.
800 
801
802<a name="method12"></a>
803<p/><strong>bool Pythia::setResonancePtr( ResonanceWidths* resonancePtr) &nbsp;</strong> <br/>
804offers the possibility to link your own implementation of the
805calculation of partial resonance widths, to make it a part of the
806normal process generation machinery, without having to recompile the
807<code>Pythia</code> library itself.  This allows the decay of new
808resonances to be handled internally, when combined with new particle
809data. Note that the decay of normal hadrons cannot be modelled here;
810this is for New Physics resonances. The rules for constructing your
811own class from the <code>ResonanceWidths</code> base class are described
812<?php $filepath = $_GET["filepath"];
813echo "<a href='SemiInternalResonances.php?filepath=".$filepath."' target='page'>";?>here</a>. You may call this
814routine repeatedly, to add as many new resonances as you wish.
815<br/><code>argument</code><strong> resonancePtr </strong>  :   
816pointer to a <code>ResonanceWidths</code>-derived object. This object
817must be instantiated by you in your program.
818 
819<br/><b>Note:</b> The method currently always returns true.
820 
821
822<a name="method13"></a>
823<p/><strong>bool Pythia::setShowerPtr( TimeShower* timesDecPtr, TimeShower* timesPtr = 0, SpaceShower* spacePtr = 0) &nbsp;</strong> <br/>
824offers the possibility to link your own parton shower routines as
825replacements for the default ones. This is much more complicated
826since the showers are so central and are so interlinked with other
827parts of the program. Therefore it is also possible to do the
828replacement in stages, from the more independent to the more
829intertwined. The rules for constructing your own classes from the
830<code>TimeShower</code> and <code>SpaceShower</code>base classes
831are described <?php $filepath = $_GET["filepath"];
832echo "<a href='ImplementNewShowers.php?filepath=".$filepath."' target='page'>";?>here</a>. These
833objects must be instantiated by you in your program.
834<br/><code>argument</code><strong> timesDecPtr </strong>  : 
835pointer to a <code>TimeShower</code>-derived object for doing
836timelike shower evolution in resonance decays, e.g. of a
837<i>Z^0</i>. This is decoupled from beam remnants and parton
838distributions, and is therefore the simplest kind of shower
839to write. If you provide a value 0 then the internal shower
840routine will be used.
841 
842<br/><code>argument</code><strong> timesPtr </strong> (<code>default = <strong>0</strong></code>) :   
843pointer to a <code>TimeShower</code>-derived object for doing
844all other timelike shower evolution, which is normally interleaved
845with multiparton interactions and spacelike showers, introducing
846both further physics and further technical issues. If you retain
847the default value 0 then the internal shower routine will be used.
848You are allowed to use the same pointer as above for the
849<code>timesDecPtr</code> if the same shower can fulfill both tasks.
850 
851<br/><code>argument</code><strong> spacePtr </strong> (<code>default = <strong>0</strong></code>) :   
852pointer to a <code>SpaceShower</code>-derived object for doing
853all spacelike shower evolution, which is normally interleaved
854with multiparton interactions and timelike showers. If you retain
855the default value 0 then the internal shower routine will be used.
856 
857<br/><b>Note:</b> The method currently always returns true.
858 
859
860<h3>Initialize</h3>
861
862At the initialization stage all the information provided above is
863processed, and the stage is set up for the subsequent generation
864of events. Currently several alterative forms of the <code>init</code>
865method are available for this stage, but only the first one is
866recommended.
867
868<a name="method14"></a>
869<p/><strong>bool Pythia::init() &nbsp;</strong> <br/>
870initialize for collisions, in any of the five separate possibilities
871below. In this option the beams are not specified by input arguments,
872but instead by the settings in the
873<?php $filepath = $_GET["filepath"];
874echo "<a href='BeamParameters.php?filepath=".$filepath."' target='page'>";?>Beam Parameters</a> section.
875This allows the beams to be specified in the same file as other
876run instructions. The default settings give pp collisions at 14 TeV.
877<br/><b>Note:</b> The method returns false if the
878initialization fails. It is then not possible to generate any
879events.
880 
881
882<a name="method15"></a>
883<p/><strong>bool Pythia::init( int idA, int idB, double eCM) &nbsp;</strong> <br/>
884initialize for collisions in the center-of-mass frame, with the
885beams moving in the <i>+-z</i> directions.
886<br/><code>argument</code><strong> idA, idB </strong>  :   
887particle identity code for the two incoming beams.
888 
889<br/><code>argument</code><strong> eCM </strong>  :   
890the CM energy of the collisions.
891 
892<br/><b>Notes:</b> Deprecated. The method returns false if the
893initialization fails. It is then not possible to generate any
894events.
895 
896
897<a name="method16"></a>
898<p/><strong>bool Pythia::init( int idA, int idB, double eA, double eB) &nbsp;</strong> <br/>
899initialize for collisions with back-to-back beams,
900moving in the <i>+-z</i> directions, but with different energies.
901<br/><code>argument</code><strong> idA, idB </strong>  :   
902particle identity code for the two incoming beams.
903 
904<br/><code>argument</code><strong> eA, eB </strong>  :   
905the energies of the two beams. If an energy is set to be below
906the mass of the respective beam particle that particle is taken to
907be at rest. This offers a simple possibility to simulate
908fixed-target collisions.
909 
910<br/><b>Notes:</b> Deprecated. The method returns false if the
911initialization fails. It is then not possible to generate any
912events.
913 
914
915<a name="method17"></a>
916<p/><strong>bool Pythia::init( int idA, int idB, double pxA, double pyA, double pzA, double pxB, double pyB, double pzB) &nbsp;</strong> <br/>
917initialize for collisions with arbitrary beam directions.
918<br/><code>argument</code><strong> idA, idB </strong>  :   
919particle identity code for the two incoming beams.
920 
921<br/><code>argument</code><strong> pxA, pyA, pzA </strong>  :   
922the three-momntum vector <i>(p_x, p_y, p_z)</i> of the first
923incoming beam.
924 
925<br/><code>argument</code><strong> pxB, pyB, pzB </strong>  :   
926the three-momntum vector <i>(p_x, p_y, p_z)</i> of the second
927incoming beam.
928 
929<br/><b>Notes:</b> Deprecated. The method returns false if the
930initialization fails. It is then not possible to generate any
931events.
932 
933
934<a name="method18"></a>
935<p/><strong>bool Pythia::init( string LesHouchesEventFile, bool skipInit = false) &nbsp;</strong> <br/>
936initialize for hard-process collisions fed in from an external file
937with events, written according to the
938<?php $filepath = $_GET["filepath"];
939echo "<a href='LesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>Les Houches Event File</a>
940standard. 
941<br/><code>argument</code><strong> LesHouchesEventFile </strong>  :   
942the file name (including path, where required) where the
943events are stored, including relevant information on beam
944identities and energies.
945 
946<br/><code>argument</code><strong> skipInit </strong> (<code>default = <strong>false</strong></code>) : 
947By default this method does a complete reinitialization of the
948generation process. If you set this argument to true then
949no reinitialization will occur, only the pointer to the event
950file is updated. This may come in handy if the full event sample
951is split across several files generated under the same conditions
952(except random numbers, of course). You then do the first
953initialization with the default, and all subsequent ones with
954true. Note that things may go wrong if the files are not created
955under the same conditions.
956 
957<br/><b>Notes:</b> Deprecated. The method returns false if the
958initialization fails. It is then not possible to generate any
959events.
960 
961
962<a name="method19"></a>
963<p/><strong>bool Pythia::init( LHAup* lhaUpPtr) &nbsp;</strong> <br/>
964initialize for hard-process collisions fed in from an external
965source of events, consistent with the Les Houches Accord standard.
966The rules for constructing your own class from the <code>LHAup</code>
967base class are described <?php $filepath = $_GET["filepath"];
968echo "<a href='LesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>here</a>.
969This class is also required to provide the beam parameters.
970<br/><code>argument</code><strong> lhaUpPtr </strong>  :   
971pointer to a <code>LHAup</code>-derived object. This object
972must be instantiated by you in your program.
973 
974<br/><b>Notes:</b> Deprecated. The method returns false if the
975initialization fails. It is then not possible to generate any
976events.
977 
978
979<h3>Generate events</h3>
980
981The <code>next()</code> method is the main one to generate events.
982In this section we also put a few other specialized methods that
983may be useful in some circumstances.
984
985<a name="method20"></a>
986<p/><strong>bool Pythia::next() &nbsp;</strong> <br/>
987generate the next event. No input parameters are required; all
988instructions have already been set up in the initialization stage.
989<br/><b>Note:</b> The method returns false if the event generation
990fails. The event record is then not consistent and should not be
991studied. When reading in hard collisions from a Les Houches Event File
992the problem may be that the end of the file has been reached. This
993can be checked with the
994<code><?php $filepath = $_GET["filepath"];
995echo "<a href='EventInformation.php?filepath=".$filepath."' target='page'>";?>Info::atEndOfFile()</a></code>
996method.
997 
998
999<a name="method21"></a>
1000<p/><strong>int Pythia::forceTimeShower( int iBeg, int iEnd, double pTmax, int nBranchMax = 0) &nbsp;</strong> <br/>
1001perform a final-state shower evolution on partons in the
1002<code>event</code> event record. This could be used for externally
1003provided simple events, or even parts of events, for which
1004a complete generation is not foreseen. Since the mother source of
1005the parton system is not known, one cannot expect as good accuracy
1006as in a normal generation. When two different timelike shower
1007instances are set up, it is the one used for showering in resonance
1008decays that is used here. The <code>forceTimeShower</code> method
1009can be used in conjunction with the <code>forceHadronLevel</code>
1010one below. Further comments are found
1011<?php $filepath = $_GET["filepath"];
1012echo "<a href='HadronLevelStandalone.php?filepath=".$filepath."' target='page'>";?>here</a>. 
1013<br/><code>argument</code><strong> iBeg, iEnd </strong>  :  the first and last entry of the event
1014record to be affected by the call.
1015 
1016<br/><code>argument</code><strong> pTmax </strong>  :  the maximum <i>pT</i> scale of emissions.
1017Additionally, as always, the <code>scale</code> variable of each parton
1018sets the maximum <i>pT</i> scale of branchings of this parton.
1019Recall that this scale defaults to 0 if not set, so that no radiation
1020can occur.
1021 
1022<br/><code>argument</code><strong> nBranchMax </strong> (<code>default = <strong>0</strong></code>) :  when positive, it sets the
1023maximum number of branchings that are allowed to occur in the shower,
1024i.e. the shower may stop evolving before reaching the lower cutoff.
1025The argument has no effect when zero or negative, i.e. then the shower
1026will continue to the lower cutoff.
1027 
1028<br/><b>Note:</b> The method returns the number of branchings that
1029has been generated.
1030 
1031
1032<a name="method22"></a>
1033<p/><strong>bool Pythia::forceHadronLevel(bool findJunctions = true) &nbsp;</strong> <br/>
1034hadronize the existing event record, i.e. perform string fragmentation
1035and particle decays. There are two main applications. Firstly,
1036you can use the same parton-level content as a basis for repeated
1037hadronization attempts, in schemes intended to save computer time.
1038Secondly, you may have an external program that can simulate the full
1039partonic level of the event - hard process, parton showers, multiparton
1040interactions, beam remnants, colour flow, and so on - but not
1041hadronization. Further details are found
1042<?php $filepath = $_GET["filepath"];
1043echo "<a href='HadronLevelStandalone.php?filepath=".$filepath."' target='page'>";?>here</a>. 
1044<br/><code>argument</code><strong> findJunctions </strong> (<code>default = <strong>true</strong></code>) :   
1045normally this routine will search through the event record and try to
1046figure out if any colour junctions are present. If so, the colour
1047topology of such junctions must be sorted out. In tricky cases this
1048might fail, and then hadronization will not work. A user who is
1049aware of this and knows the intended colour flow can set up the
1050junction information in the event record, and then call
1051<code>forceHadronLevel(false)</code> so as not to have this information
1052overwritten.   
1053<br/><b>Note:</b> The method returns false if the hadronization
1054fails. The event record is then not consistent and should not be
1055studied.
1056 
1057
1058<a name="method23"></a>
1059<p/><strong>bool Pythia::moreDecays() &nbsp;</strong> <br/>
1060perform decays of all particles in the event record that have not been
1061decayed but should have been done so. This can be used e.g. for
1062repeated decay attempts, in schemes intended to save computer time.
1063Further details are found <?php $filepath = $_GET["filepath"];
1064echo "<a href='HadronLevelStandalone.php?filepath=".$filepath."' target='page'>";?>here</a>. 
1065<br/><b>Note:</b> The method returns false if the decays fail. The
1066event record is then not consistent and should not be studied.
1067 
1068
1069<a name="method24"></a>
1070<p/><strong>bool Pythia::forceRHadronDecays() &nbsp;</strong> <br/>
1071perform decays of R-hadrons that were previously considered stable.
1072This could be if an R-hadron is sufficiently long-lived that
1073it may interact in the detector between production and decay, so that
1074its four-momentum is changed. Further details are found
1075<?php $filepath = $_GET["filepath"];
1076echo "<a href='RHadrons.php?filepath=".$filepath."' target='page'>";?>here</a>. 
1077<br/><b>Note:</b> The method returns false if the decays fail. The
1078event record is then not consistent and should not be studied.
1079 
1080
1081<a name="method25"></a>
1082<p/><strong>void Pythia::LHAeventList(ostream& os = cout) &nbsp;</strong> <br/>
1083list the Les Houches Accord information on the current event, see
1084<code><?php $filepath = $_GET["filepath"];
1085echo "<a href='LesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>LHAup::listEvent(...)</a></code>.
1086(Other listings are available via the class members below, so this
1087listing is a special case that would not fit elsewhere.)
1088<br/><code>argument</code><strong> os </strong> (<code>default = <strong>cout</strong></code>) :   
1089output stream where the listing occurs.
1090 
1091 
1092
1093<a name="method26"></a>
1094<p/><strong>bool Pythia::LHAeventSkip(int nSkip) &nbsp;</strong> <br/>
1095skip ahead a number of events in the Les Houches generation
1096sequence, without doing anything further with them, see
1097<code><?php $filepath = $_GET["filepath"];
1098echo "<a href='LesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>LHAup::skipEvent(nSkip)</a></code>.
1099Mainly intended for debug purposes, e.g. when an event at a known
1100location in a Les Houches Event File is causing problems.
1101<br/><code>argument</code><strong> nSkip </strong>  :   
1102number of events to skip.
1103 
1104<br/><b>Note:</b> The method returns false if the operation fails,
1105specifically if the end of a LHEF has been reached, cf.
1106<code>next()</code> above.
1107 
1108
1109<h3>Finalize</h3>
1110
1111There is no required finalization step; you can stop generating events
1112when and how you want. It is still recommended that you make it a
1113routine to call the following method at the end. A second method provides
1114a deprecated alternative.
1115
1116<a name="method27"></a>
1117<p/><strong>void Pythia::stat() &nbsp;</strong> <br/>
1118list statistics on the event generation, specifically total and partial
1119cross sections and the number of different errors. For more details see
1120<?php $filepath = $_GET["filepath"];
1121echo "<a href='EventStatistics.php?filepath=".$filepath."' target='page'>";?>here</a> and for available options
1122<?php $filepath = $_GET["filepath"];
1123echo "<a href='MainProgramSettings.php?filepath=".$filepath."' target='page'>";?>here</a>.
1124 
1125
1126<a name="method28"></a>
1127<p/><strong>void Pythia::statistics(bool all = false, bool reset = false) &nbsp;</strong> <br/>
1128list statistics on the event generation, specifically total and partial
1129cross sections and the number of different errors. For more details see
1130<?php $filepath = $_GET["filepath"];
1131echo "<a href='EventStatistics.php?filepath=".$filepath."' target='page'>";?>here</a>.
1132<br/><code>argument</code><strong> all </strong> (<code>default = <strong>false</strong></code>) : 
1133if true also statistics on multiparton interactions is shown, by default not.
1134 
1135<br/><code>argument</code><strong> reset </strong> (<code>default = <strong>false</strong></code>) :  if true then all counters,
1136e.g on events generated and errors experienced, are reset to zero
1137 whenever the routine is called. The default instead is that
1138all stored statistics information is unaffected by the call. Counters
1139are automatically reset in each new <code>Pythia::init(...)</code>
1140call, however, so the only time the <code>reset</code> option makes a
1141difference is if <code>statistics(...)</code> is called several times
1142in a (sub)run.
1143 
1144<br/><b>Note:</b> Deprecated.
1145 
1146
1147<h3>Interrogate settings</h3>
1148
1149Normally settings are used in the setup and initialization stages
1150to determine the character of a run, e.g. read from a file with the
1151above-described <code>Pythia::readFile(...)</code> method.
1152There is no strict need for a user to interact with the
1153<code>Settings</code> database in any other way. However, as an option,
1154some settings variables have been left free for the user to set in
1155such a file, and then use in the main program to directly affect the
1156performance of that program, see
1157<?php $filepath = $_GET["filepath"];
1158echo "<a href='MainProgramSettings.php?filepath=".$filepath."' target='page'>";?>here</a>. A typical example would
1159be the number of events to generate. For such applications the
1160following shortcuts to some <code>Settings</code> methods may be
1161convenient.
1162
1163<a name="method29"></a>
1164<p/><strong>bool Pythia::flag(string key) &nbsp;</strong> <br/>
1165read in a boolean variable from the <code>Settings</code> database.
1166<br/><code>argument</code><strong> key </strong>  :   
1167the name of the variable to be read.
1168 
1169 
1170 
1171<a name="method30"></a>
1172<p/><strong>int Pythia::mode(string key) &nbsp;</strong> <br/>
1173read in an integer variable from the <code>Settings</code> database.
1174<br/><code>argument</code><strong> key </strong>  :   
1175the name of the variable to be read.
1176 
1177 
1178 
1179<a name="method31"></a>
1180<p/><strong>double Pythia::parm(string key) &nbsp;</strong> <br/>
1181read in a double-precision variable from the <code>Settings</code>
1182database.
1183<br/><code>argument</code><strong> key </strong>  :   
1184the name of the variable to be read.
1185 
1186 
1187 
1188<a name="method32"></a>
1189<p/><strong>string Pythia::word(string key) &nbsp;</strong> <br/>
1190read in a string variable from the <code>Settings</code> database.
1191<br/><code>argument</code><strong> key </strong>  :   
1192the name of the variable to be read.
1193 
1194 
1195 
1196<h3>Data members</h3>
1197
1198The <code>Pythia</code> class contains a few public data members,
1199several of which play a central role. We list them here, with
1200links to the places where they are further described.
1201 
1202<a name="method33"></a>
1203<p/><strong>Event Pythia::process &nbsp;</strong> <br/>
1204the hard-process event record, see <?php $filepath = $_GET["filepath"];
1205echo "<a href='EventRecord.php?filepath=".$filepath."' target='page'>";?>here</a>
1206for further details.
1207 
1208 
1209<a name="method34"></a>
1210<p/><strong>Event Pythia::event &nbsp;</strong> <br/>
1211the complete event record, see <?php $filepath = $_GET["filepath"];
1212echo "<a href='EventRecord.php?filepath=".$filepath."' target='page'>";?>here</a>
1213for further details.
1214 
1215 
1216<a name="method35"></a>
1217<p/><strong>Info Pythia::info &nbsp;</strong> <br/>
1218further information on the event-generation process, see
1219<?php $filepath = $_GET["filepath"];
1220echo "<a href='EventInformation.php?filepath=".$filepath."' target='page'>";?>here</a> for further details.
1221 
1222 
1223<a name="method36"></a>
1224<p/><strong>Settings Pythia::settings &nbsp;</strong> <br/>
1225the settings database, see <?php $filepath = $_GET["filepath"];
1226echo "<a href='SettingsScheme.php?filepath=".$filepath."' target='page'>";?>here</a>
1227for further details.
1228 
1229 
1230<a name="method37"></a>
1231<p/><strong>ParticleData Pythia::particleData &nbsp;</strong> <br/>
1232the particle properties and decay tables database, see
1233<?php $filepath = $_GET["filepath"];
1234echo "<a href='ParticleDataScheme.php?filepath=".$filepath."' target='page'>";?>here</a> for further details.
1235 
1236 
1237<a name="method38"></a>
1238<p/><strong>Rndm Pythia::rndm &nbsp;</strong> <br/>
1239the random number generator, see <?php $filepath = $_GET["filepath"];
1240echo "<a href='RandomNumberSeed.php?filepath=".$filepath."' target='page'>";?>here</a>
1241and <?php $filepath = $_GET["filepath"];
1242echo "<a href='RandomNumbers.php?filepath=".$filepath."' target='page'>";?>here</a> for further details.
1243 
1244 
1245<a name="method39"></a>
1246<p/><strong>CoupSM Pythia::coupSM &nbsp;</strong> <br/>
1247Standard Model couplings and mixing matrices, see
1248<?php $filepath = $_GET["filepath"];
1249echo "<a href='StandardModelParameters.php?filepath=".$filepath."' target='page'>";?>here</a> for further details.
1250 
1251 
1252<a name="method40"></a>
1253<p/><strong>SusyLesHouches Pythia::slha &nbsp;</strong> <br/>
1254parameters and particle data in the context of supersymmetric models,
1255see <?php $filepath = $_GET["filepath"];
1256echo "<a href='SUSYLesHouchesAccord.php?filepath=".$filepath."' target='page'>";?>here</a> for further details.
1257 
1258 
1259<a name="method41"></a>
1260<p/><strong>PartonSystems Pythia::partonSystems &nbsp;</strong> <br/>
1261a grouping of the partons in the event record by subsystem,
1262see <?php $filepath = $_GET["filepath"];
1263echo "<a href='AdvancedUsage.php?filepath=".$filepath."' target='page'>";?>here</a> for further details.
1264 
1265   
1266</body>
1267</html>
1268
1269<!-- Copyright (C) 2012 Torbjorn Sjostrand -->
Note: See TracBrowser for help on using the repository browser.