source: HiSusy/trunk/Pythia8/pythia8170/phpdoc/HepMCInterface.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: 10.0 KB
Line 
1<html>
2<head>
3<title>HepMC Interface</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='HepMCInterface.php'>
29
30<h2>HepMC Interface</h2>
31
32An interface to the HepMC [<a href="Bibliography.php" target="page">Dob01</a>] standard event record
33format has been provided by M. Kirsanov. To use it, the relevant
34libraries need to be linked, as explained in the <code>README</code>
35file. Only version 2 of HepMC is supported. (Version 1 requires
36a different interface structure, which was only supported up until
37Pythia 8.107.)
38
39<p/>
40The (simple) procedure to translate PYTHIA 8 events into HepMC ones
41is illustrated in the <code>main41.cc</code>, <code>main42.cc</code>
42<code>main61.cc</code> and <code>main62.cc</code>   
43main programs. At the core is a call to the
44<pre>
45HepMC::I_Pythia8::fill_next_event( pythia, hepmcevt, ievnum = -1, convertGluonTo0 = false )
46</pre>
47which takes a reference of the generator object and uses it, on the one
48hand, to read out and covert the event record in <code>pythia.event</code>
49and, on the other hand, to extract and store parton-density (PDF)
50information for the hard subprocess from <code>pythia.info</code>.
51The optional last argument, if <code>true</code>, allows you to store
52gluons as "PDG" code 0 rather than the normal 21; this only applies to
53the PDF information, not the event record.
54
55<p/>
56The earlier version of this routine,
57<pre>
58HepMC::I_Pythia8::fill_next_event( pythia.event, hepmcevt, ievnum = -1 )
59</pre>
60is retained (for now) for backwards compatibility. It takes a PYTHIA event
61as input and returns a HepMC one, but without storing the PDF information.
62The latter could then instead be stored by a separate call
63<pre>
64HepMC::I_Pythia8::pdf_put_info( hepmcevt, pythia, convertGluonTo0 = false )
65</pre>
66or not, as wished.
67
68<p/>
69While PYTHIA stores momenta in units of GeV, with <i>c = 1</i>,
70the HepMC standard originally did not specify which units to use,
71unfortunately. Later versions allow units to be specified either as
72MeV or as GeV. The dividing line goes with the introduction of the
73<code>HEPMC_HAS_UNITS</code> environment variable in HepMC 2.04.
74When PYTHIA is linked to older versions, which do not have this
75environment variable, the default behaviour of
76<code>fill_next_event</code> is to convert momenta to MeV.
77To store momenta in GeV instead, you must call
78<pre>
79HepMC::I_Pythia8::set_convert_to_mev( false )
80</pre>
81beforehand. When linked to newer HepMC versions, PYTHIA will adapt
82to the unit specified for the HepMC event record. A default unit
83is chosen when HepMC is built, but this choice can be overridden
84in the constructor of a <code>HepMC::GenEvent</code>, to be either
85GeV or MeV. The <code>main41.cc</code> code illustrates these
86possibilities.
87
88<p/>
89Also for length units there could exist ambiguities, but the mm
90choice of PYTHIA seems to be shared by most other programs.
91When linked to older HepMC versions there is never a conversion,
92while for newer versions the PYTHIA interface will convert to the
93units set for the HepMC event record, as for momenta.
94
95<p/>
96By agreement with the LHC experimental community, support for the
97older behaviour will be dropped for all versions released after
98the end of 2012.
99
100<p/>
101The status code is now based on the new standard for HepMC 2.05,
102see the <?php $filepath = $_GET["filepath"];
103echo "<a href='EventRecord.php?filepath=".$filepath."' target='page'>";?>Event::statusHepMC(...)</a>
104conversion routine for details. The earlier behaviour, where all
105final particles had status 1 and all initial or intermediate ones
106status 2, is available as a commented-out line in the   
107<code>I_Pythia8::fill_next_event(...)</code> method, and so is simple
108to recover.
109
110<p/>
111In HepMC 2.05 it also becomes possible to store the generated cross
112section and its error. The environment variable
113<code>HEPMC_HAS_CROSS_SECTION</code> is used to check whether this
114possibility exists and, if it does the current values from
115<code>pythia.info.sigmaGen()</code> and
116<code>pythia.info.sigmaErr()</code> are stored for each event,
117multiplied by <i>10^9</i> to convert from mb to pb. Note that
118PYTHIA improves its accuracy by Monte Carlo integration in the course
119of the run, so the values associated with the last generated event
120should be the most accurate ones. (If events also come with a dimensional
121weight, like in some Les Houches strategies, conversion from mb to fb
122for that weight must be set by hand, see the last method below.)
123
124<h2>The public methods</h2>
125
126Here comes a complete list of all public methods of the
127<code>I_Pythia8</code> class in the <code>HepMC</code>
128(<i>not</i> <code>Pythia8</code>!) namespace.
129
130<a name="method1"></a>
131<p/><strong>I_Pythia8::I_Pythia8() &nbsp;</strong> <br/>
132 
133<strong>virtual I_Pythia8::~I_Pythia8() &nbsp;</strong> <br/>
134the constructor and destructor take no arguments.
135 
136
137<a name="method2"></a>
138<p/><strong>bool I_Pythia8::fill_next_event( Pythia8::Pythia& pythia, GenEvent* evt, int ievnum = -1, bool convertGluonTo0 = false) &nbsp;</strong> <br/>
139convert a <code>Pythia</code> event to a <code>HepMC</code> one.
140Will return true if succeeded.
141<br/><code>argument</code><strong> pythia </strong>  :
142the input <code>Pythia</code> generator object, from which both the
143event and the parton density information can be obtained.
144   
145<br/><code>argument</code><strong> evt </strong>  :
146the output <code>GenEvt</code> event, in its standard form.
147   
148<br/><code>argument</code><strong> iev </strong>  :
149set the event number of the current event. If negative then the
150internal event number is used, which is incremented by one for
151each new event.
152 
153<br/><code>argument</code><strong> convertGluonTo0 </strong>  :
154the normal gluon identity code 21 is used also when parton density
155information is stored, unless this optional argument is set true to
156have gluons represented by a 0. This choice does not affect the
157normal event record, where a gluon is always 21.
158 
159 
160
161<a name="method3"></a>
162<p/><strong>bool I_Pythia8::fill_next_event( Pythia8::Event& pyev, GenEvent* evt, int ievnum = -1 ) &nbsp;</strong> <br/>
163convert a <code>Pythia</code> event to a <code>HepMC</code> one.
164Will return true if succeeded. Do not store parton-density information.
165<br/><code>argument</code><strong> pyev </strong>  :
166the input <code>Pythia</code> event, in its standard form.
167   
168<br/><code>argument</code><strong> evt </strong>  :
169the output <code>GenEvt</code> event, in its standard form.
170   
171<br/><code>argument</code><strong> iev </strong>  :
172set the event number of the current event. If negative then the
173internal event number is used, which is incremented by one for
174each new event.
175 
176 
177
178<a name="method4"></a>
179<p/><strong>bool I_Pythia8::put_pdf_info( GenEvent* evt, Pythia8::Pythia& pythia, bool convertGluonTo0 = false ) &nbsp;</strong> <br/>
180append parton-density information to an event already stored
181by the previous method.
182<br/><code>argument</code><strong> evt </strong>  :
183the output <code>GenEvt</code> event record, in its standard form.
184   
185<br/><code>argument</code><strong> pythia </strong>  :
186the input <code>Pythia</code> generator object, from which both the
187event and the parton density information can be obtained.
188   
189<br/><code>argument</code><strong> convertGluonTo0 </strong>  :
190the normal gluon identity code 21 is used also when parton density
191information is stored, unless this optional argument is set true to
192have gluons represented by a 0.
193 
194 
195
196<p/>
197The following methods can be used to set, and in some cases interrogate,
198the status of some switches that can be used to modify the behaviour
199of the conversion routine. The <code>set</code> methods have the
200same default input values as the internal initialization ones, so
201that a call without an argument (re)stores the default.
202
203<a name="method5"></a>
204<p/><strong>void I_Pythia8::set_trust_mothers_before_daughters( bool b = true ) &nbsp;</strong> <br/>
205 
206<strong>bool I_Pythia8::trust_mothers_before_daughters() &nbsp;</strong> <br/>
207if there is a conflict in the history information, then trust the
208information on mothers above that on daughters. Currently this is
209the only option implemented.
210 
211
212<a name="method6"></a>
213<p/><strong>void I_Pythia8::set_trust_both_mothers_and_daughters( bool b = false ) &nbsp;</strong> <br/>
214 
215<strong>bool I_Pythia8::trust_both_mothers_and_daughters() &nbsp;</strong> <br/>
216currently dummy methods intended to resolve conflicts in the event
217history.
218 
219
220<a name="method7"></a>
221<p/><strong>void I_Pythia8::set_print_inconsistency_errors( bool b = true ) &nbsp;</strong> <br/>
222 
223<strong>bool I_Pythia8::print_inconsistency_errors() &nbsp;</strong> <br/>
224print a warning line, on <code>cerr</code>, when inconsistent mother
225and daughter information is encountered.
226 
227
228<a name="method8"></a>
229<p/><strong>void I_Pythia8::set_crash_on_problem( bool b = false ) &nbsp;</strong> <br/>
230if problems are encountered then the run is interrupted by an
231<code>exit(1)</code> command. Default is not to crash.
232 
233
234<a name="method9"></a>
235<p/><strong>void I_Pythia8::set_freepartonwarnings( bool b = true ) &nbsp;</strong> <br/>
236interrupt the run by an <code>exit(1)</code> command if unhadronized
237gluons or quarks are encountered in the event record, unless
238hadronization is switched off. Default is to crash.
239 
240
241<a name="method10"></a>
242<p/><strong>void I_Pythia8::set_convert_to_mev( bool b = false ) &nbsp;</strong> <br/>
243convert the normal GeV energies, momenta and masses to MeV.
244 
245
246</body>
247</html>
248
249<!-- Copyright (C) 2012 Torbjorn Sjostrand -->
Note: See TracBrowser for help on using the repository browser.