Update to pythi8.170
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8170 / htmldoc / SampleMainPrograms.html
1 <html>
2 <head>
3 <title>Sample Main Programs</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 <h2>Sample Main Programs</h2>
10
11 Descriptions of available classes, methods and settings are all
12 very good and useful. Ultimately they are necessary for you to
13 be able to fine-tune your runs to the task at hand. To get going, 
14 however, nothing helps like having explicit examples to study. 
15 This is what is provided in the <code>examples</code> subdirectory, 
16 along with instructions how they should be run: 
17 <ul>
18
19 <li><code>main00.cc</code> : does not exist, but it has been defined
20 in the <code>Makefile</code>, so this name could be used for a simple
21 first test run.
22
23 <li><code>main01.cc</code> : a simple study of the charged multiplicity
24 for jet events at the LHC. (Brief example fitting on one slide.)</li>
25
26 <li><code>main02.cc</code> : a simple study of the <i>pT</i> spectrum 
27 of Z bosons at the Tevatron. (Brief example fitting on one slide.)</li>
28
29 <li><code>main03.cc</code> : a simple study of several different kinds 
30 of events, with the choice to be made in the <code>main03.cmnd</code> 
31 "cards file".</li>
32
33 <li><code>main04.cc</code> : tests of cross sections, multiplicities and
34 average transverse momenta for elastic, diffractive and nondiffractive 
35 topologies, using <code>main04.cmnd</code> to pick processes.</li>
36
37 <li><code>main05.cc</code> : generation of QCD jet events at the LHC, 
38 with jet analysis using the <code>SlowJet</code> inclusive anti-<i>kT</i> 
39 sequential-recombination finder and the <code>CellJet</code> 
40 cone-jet finder.</li>
41
42 <li><code>main06.cc</code> : generation of LEP1 hadronic events, i.e. 
43 <i>e^+e^- -> gamma*/Z^0 -> q qbar</i>, with charged multiplicity, 
44 sphericity, thrust and jet analysis.</li>
45
46 <li><code>main07.cc</code> : set up a fictitious production process 
47 to a generic resonance, where you easily can compose your own list
48 of (two-body) decay modes to a variety of final states. Also traces
49 decay chains down to truly stable particles: gamma, e+-, p/pbar and
50 neutrinos. Suitable for astroparticle applications, like neutralino 
51 pair annihilation, where cross sections are calculated separately 
52 in another program.</li>
53
54 <li><code>main08.cc</code> : generation of the QCD jet cross section
55 biased towards higher pT values, by two different techniques.
56 Firstly, by splitting the run into subruns, each in its own <i>pT</i> 
57 bin, and adding the results properly reweighted. Two suboptions, with 
58 limits set either in the main program or by subrun specification in the
59 <code>main08.cmnd</code> file. Secondly, by a continuous reweighting
60 with a <i>pT^4</i> bias in the selection, compensated by a  
61 <i>1/pT^4</i> event weight. Also inclusion of soft processes is
62 illustrated, with subruns and weighted events.</li>
63
64 <li><code>main09.cc</code> : generation of two predetermined hard
65 interactions in each event.</li>
66
67 <li><code>main10.cc</code> : illustration how userHooks can be used
68 interact directly with the event-generation process.</li>
69
70 <li><code>main11.cc</code> : a study of top events, fed in from the 
71 Les Houches Event File <code>ttbar.lhe</code>, here generated by 
72 PYTHIA 6.4. This file currently only contains 100 events 
73 so as not to make the distributed PYTHIA package too big, and so serves 
74 mainly as a demonstration of the principles involved. </li> 
75
76 <li><code>main12.cc</code> : a more sophisticated variant of 
77 <code>main11.cc</code>, where two Les Houches Event Files
78 (<code>ttbar.lhe</code> and <code>ttbar2.lhe</code>) successively
79 are used as input. Also illustrating some other aspects, like the
80 capability to mix in internally generated events.</li> 
81
82 <li><code>main13.cc</code> : a streamlined version of  
83 <code>main12.cc</code>, where two Les Houches Event Files
84 (<code>ttbar.lhe</code> and <code>ttbar2.lhe</code>) successively
85 are used as input in <code>main13.cmnd</code> file.</li> 
86
87 <li><code>main14.cc</code> : a systematic comparison of several 
88 cross section values with their corresponding values in PYTHIA 6.4,
89 the latter available as a table in the code.</li> 
90
91 <li><code>main15.cc</code> : loop over several tries, either to redo 
92 B decays only or to redo the complete hadronization chain of an event.
93 Since much of the generation process is only made once this is a way 
94 to increase efficiency.</li> 
95
96 <li><code>main16.cc</code> : put all user analysis code into a class
97 of its own, separate from the main program; provide the "cards file" 
98 name as a command-line argument.</li> 
99
100 <li><code>main17.cc</code> : shows (a) how to use UserHooks to 
101 regularize onium cross section for pT -> 0, and (b) how decays 
102 could be handled externally.</li>
103
104 <li><code>main18.cc</code> : shows how to write an event filter class,
105 where you keep a vector of pointers to the subset of particles you
106 want to study further. The event record itself remains unchanged.</li> 
107
108 <li><code>main19.cc</code> : use several instances of Pythia, one for 
109 signal events and others for a variable number of pileup and "beam-gas"
110 events, combined into one common event record.</li> 
111
112 <li><code>main20.cc</code> : shows how PYTHIA 8 can write a Les Houches
113 Event File, using facilities potentially useful also for other programs
114 to write an LHEF.</li> 
115
116 <li><code>main21.cc</code> : an example how a single particle or various
117 parton-level configurations can be input directly for hadronization, 
118 without being tied to the full process-generation machinery, e.g. to 
119 study the hadronization of junction topologies. Can also be used for 
120 single-resonance decays, with showers.</li>
121
122 <li><code>main22.cc</code> : shows how an external resonance can be 
123 implemented as a new class derived from a PYTHIA base class, and be 
124 used in an external process, both of them handed in for generation 
125 as with normal internal classes.</li>
126
127 <li><code>main23.cc</code> : shows how an external beam momentum spread
128 and vertex location generator can be implemented as a new class derived 
129 from a PYTHIA base class, and then handed in for internal use.
130 Also how to use an external random-number generator and an external
131 parton distribution set.</li>
132
133 <li><code>main24.cc</code> : tests of internally implemented cross sections
134 for Supersymmetric particle production, with SYSY spectrum defined in
135 <code>cmssm.spc</code> and settings in <code>main24.cmnd</code>. For
136 illustration, an alternative example spectrum is also
137 available, <code>sps1aWithDecays.spc</code>, which contains a decay
138 table in SLHA format.</li>
139
140 <li><code>main25.cc</code> : input RPV-SUSY events from an LHEF file that
141 contains an SLHA spectrum inside its header. The event file, 
142 <code>main25.lhe</code>, contains a sample events that 
143 illustrate how to arrange color tags in the presence of the
144 color-space epsilon tensors that accompany baryon number violating
145 event topologies. </li>
146
147 <li><code>main26.cc</code> : test program for processes in scenarios
148 with large extra dimensions or unparticles. </li>
149
150 <li><code>main27.cc</code> : production of Kaluza-Klein <i>gamma/Z</i> 
151 states in TeV-sized extra dimensions. </li>
152
153 <li><code>main28.cc</code> : production of long-lived R-hadrons, that 
154 are forced to decay at a separate vertices and possibly with changed
155 momenta.</li>
156
157 <li><code>main31.cc</code> : exemplifies an improved matching of
158 parton showers to LHEF-style input based on the POWHEG approach.
159 The <code>main31.cmnd</code> allows to switch between several 
160 different matching options. It also allows to select input process,
161 in this case either for the POWHEG-hvq program applied to top
162 pair production [<a href="Bibliography.html" target="page">Cor10</a>] or for QCD 2+3-jet events. The small 
163 samples of input events are stored in the <code>powheg-hvq.lhe</code> 
164 and <code>powheg-dijets.lhe</code> files, respectively.
165 </li>
166
167 <li><code>main32.cc</code> : exemplifies MLM merging for ALPGEN events,
168 see <a href="AlpgenAndMLM.html" target="page">ALPGEN and MLM merging</a> for further
169 details. Traditionally the ALPGEN output is split into one file with 
170 events and another with parameters and cross sections (unlike in LHEF).
171 Here a sample of <i>W + 3 jets</i> events is stored in 
172 <code>main32.unw</code> and the parameters to go with it in 
173 <code>main32_unw.par</code>, while normal PYTHIA control cards are in
174 <code>main32.cmnd</code>. 
175 </li>
176
177 <li><code>main41.cc</code> : similar to <code>main01</code>, except that 
178 the event record is output in the HepMC event record format. Requires that  
179 HepMC is properly linked. Note that the <code>hepmcout41.dat</code> output
180 file can become quite big; so no example is included in this 
181 distribution.</li>
182
183 <li><code>main42.cc</code> : a streamlined version for the generation
184 of events that are then stored in HepMC format, without any event 
185 analysis. That is, all physics studies will have to be done afterwards.
186 The name of the input "cards file" (e.g. <code>main42.cmnd</code>)
187 and output HepMC event file (e.g. <code>hepmcout42.dat</code>) are to 
188 be provided as command-line arguments. Requires that HepMC is properly 
189 linked. Note that the HepMC output file can become quite big; so no 
190 example is included in this distribution.</li>
191
192 <li><code>main51.cc</code> : a test of the shape of parton densities,
193 as a check prior to using a given PDF set in a generator.  Requires 
194 that LHAPDF is properly linked.</li>
195
196 <li><code>main52.cc</code> : compares the charged multiplicity 
197 distribution, and a few other minimum-bias physics aspects, between 
198 default PYTHIA PDF and another one. Requires that LHAPDF is properly 
199 linked.</li>
200
201 <li><code>main53.cc</code> : tests the possibility to do backwards
202 evolution from an incoming photon at the hard interaction. Requires 
203 that you link to a LHAPDF set that includes the photon PDF.</li>
204
205 <li><code>main61.cc</code> : a streamlined version for the generation
206 of events that are then stored in HepMC format, without any event 
207 analysis. That is, just like <code>main42.cc</code>, with the difference 
208 that <code>main61.cc</code> can be used in conjunction with LHAPDF.
209 The name of the input "cards file" (e.g. <code>main61.cmnd</code>)
210 and output HepMC event file (e.g. <code>hepmcout61.dat</code>) are to 
211 be provided as command-line arguments. Requires that HepMC and LHAPDF
212 are properly linked. Note that the HepMC output file can become quite 
213 big; so no example is included in this distribution.</li>
214
215 <li><code>main62.cc</code> : a further extension of <code>main61.cc</code>, 
216 where subruns are used to process several consecutive LHEF, 
217 as in <code>main13.cc</code>, with information stored e.g in 
218 <code>main62.cmnd</code>. Other comments as for <code>main61.cc</code>.</li>
219
220 <li><code>main71.cc</code> : an example how the FastJet jet finding 
221 package can be linked to allow an analysis of the final state,
222 in this case for a study of W + jet production.</li>
223
224 <li><code>main72.cc</code> : a comparison of SlowJet and FastJet
225 jet finding, showing that they find the same jets if run under 
226 identical conditions, in this case for QCD jets.</li>
227
228 <li><code>main81.cc</code> : do CKKW-L merging with a merging scale
229 defined in <i>kT</i>. Input is provided by the <code>main81.cmnd</code> 
230 file and the three data files <code>w+_production_lhc_0.lhe</code>,
231 <code>w+_production_lhc_1.lhe</code> and <code>w+_production_lhc_2.lhe</code>.
232 </li>
233
234 <li><code>main82.cc</code> : do CKKW-L merging with a user-defined 
235 merging scale function. Input is provided by the <code>main82.cmnd</code> 
236 file and the three data files <code>w+_production_lhc_0.lhe</code>,
237 <code>w+_production_lhc_1.lhe</code> and <code>w+_production_lhc_2.lhe</code>.
238 </li>
239
240 <li><code>main83.cc</code> : as <code>main82.cc</code> but with an 
241 additional cut on the lowest multiplicity allowed for the reclustered 
242 state. The same input as for <code>main82.cc</code> can be used.
243 </li>
244
245 <li><code>main84.cc</code> : do CKKW-L merging with output in such a way
246 that it can be used in subsequent RIVET analyses. Input is provided by 
247 the <code>main84.cmnd</code> file and the three data files 
248 <code>w+_production_lhc_0.lhe</code>, <code>w+_production_lhc_1.lhe</code> 
249 and <code>w+_production_lhc_2.lhe</code>.
250 </li>
251
252 <li><code>main91.cc</code> : exemplifies how you can link in runtime
253 generation of hard processes from PYTHIA 6, using the Les Houches
254 Accord facilities. This example is deprecated, since PYTHIA 8 by now
255 contains essentially all hard processes found in PYTHIA 6.</li>
256
257 </ul>
258
259 In addition two main program illustrating the use of ROOT are available
260 in the <code>rootexamples</code> subdirectory:
261  
262 <ul>
263
264 <li><code>hist.cc</code> : shows how ROOT can be used for histogramming
265 in a program that for the rest is structured like a normal PYTHIA run.
266 </li>
267
268 <li><code>tree.cc</code> : shows how PYTHIA events can be stored as
269 ROOT trees.</li>
270
271 </ul>
272
273 This subdirectory also contains a special Makefile and related
274 documentation.
275
276
277 </body>
278 </html>
279
280 <!-- Copyright (C) 2012 Torbjorn Sjostrand -->