1 | <html> |
---|
2 | <head> |
---|
3 | <title>Particle Properties</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> |
---|
10 | function stopRKey(evt) { |
---|
11 | var evt = (evt) ? evt : ((event) ? event : null); |
---|
12 | var node = (evt.target) ? evt.target :((evt.srcElement) ? evt.srcElement : null); |
---|
13 | if ((evt.keyCode == 13) && (node.type=="text")) |
---|
14 | {return false;} |
---|
15 | } |
---|
16 | |
---|
17 | document.onkeypress = stopRKey; |
---|
18 | </script> |
---|
19 | <?php |
---|
20 | if($_POST['saved'] == 1) { |
---|
21 | if($_POST['filepath'] != "files/") { |
---|
22 | echo "<font color='red'>SETTINGS SAVED TO FILE</font><br/><br/>"; } |
---|
23 | else { |
---|
24 | echo "<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='ParticleProperties.php'> |
---|
29 | |
---|
30 | <h2>Particle Properties</h2> |
---|
31 | |
---|
32 | A <code>Particle</code> corresponds to one entry/slot in the |
---|
33 | event record. Its properties therefore is a mix of ones belonging |
---|
34 | to a particle-as-such, like its identity code or four-momentum, |
---|
35 | and ones related to the event-as-a-whole, like which mother it has. |
---|
36 | |
---|
37 | <p/> |
---|
38 | What is stored for each particle is |
---|
39 | <ul> |
---|
40 | <li>the identity code,</li> |
---|
41 | <li>the status code,</li> |
---|
42 | <li>two mother indices,</li> |
---|
43 | <li>two daughter indices,</li> |
---|
44 | <li>a colour and an anticolour index,</li> |
---|
45 | <li>the four-momentum and mass,</li> |
---|
46 | <li>the scale at which the particle was produced (optional),</li> |
---|
47 | <li>the polarization/spin/helicity of the particle (optional),</li> |
---|
48 | <li>the production vertex and proper lifetime (optional),</li> |
---|
49 | <li>a pointer to the particle kind in the particle data table, and</li> |
---|
50 | <li>a pointer to the whole particle data table.</li> |
---|
51 | </ul> |
---|
52 | From these, a number of further quantities may be derived. |
---|
53 | |
---|
54 | <h3>Basic output methods</h3> |
---|
55 | |
---|
56 | The following member functions can be used to extract the most important |
---|
57 | information: |
---|
58 | |
---|
59 | <a name="method1"></a> |
---|
60 | <p/><strong>int Particle::id() </strong> <br/> |
---|
61 | the identity of a particle, according to the PDG particle codes |
---|
62 | [<a href="Bibliography.php" target="page">Yao06</a>]. |
---|
63 | |
---|
64 | |
---|
65 | <a name="method2"></a> |
---|
66 | <p/><strong>int Particle::status() </strong> <br/> |
---|
67 | status code. The status code includes information on how a particle was |
---|
68 | produced, i.e. where in the program execution it was inserted into the |
---|
69 | event record, and why. It also tells whether the particle is still present |
---|
70 | or not. It does not tell how a particle disappeared, whether by a decay, |
---|
71 | a shower branching, a hadronization process, or whatever, but this is |
---|
72 | implicit in the status code of its daughter(s). The basic scheme is: |
---|
73 | <ul> |
---|
74 | <li>status = +- (10 * i + j)</li> |
---|
75 | <li> + : still remaining particles</li> |
---|
76 | <li> - : decayed/branched/fragmented/... and not remaining</li> |
---|
77 | <li> i = 1 - 9 : stage of event generation inside PYTHIA</li> |
---|
78 | <li> i = 10 -19 : reserved for future expansion</li> |
---|
79 | <li> i >= 20 : free for add-on programs</li> |
---|
80 | <li> j = 1 - 9 : further specification</li> |
---|
81 | </ul> |
---|
82 | In detail, the list of used or foreseen status codes is: |
---|
83 | <ul> |
---|
84 | <li>11 - 19 : beam particles</li> |
---|
85 | <ul> |
---|
86 | <li>11 : the event as a whole</li> |
---|
87 | <li>12 : incoming beam</li> |
---|
88 | <li>13 : incoming beam-inside-beam (e.g. <i>gamma</i> |
---|
89 | inside <i>e</i>)</li> |
---|
90 | <li>14 : outgoing elastically scattered</li> |
---|
91 | <li>15 : outgoing diffractively scattered</li> |
---|
92 | </ul> |
---|
93 | <li>21 - 29 : particles of the hardest subprocess</li> |
---|
94 | <ul> |
---|
95 | <li>21 : incoming</li> |
---|
96 | <li>22 : intermediate (intended to have preserved mass)</li> |
---|
97 | <li>23 : outgoing</li> |
---|
98 | </ul> |
---|
99 | <li>31 - 39 : particles of subsequent subprocesses</li> |
---|
100 | <ul> |
---|
101 | <li>31 : incoming</li> |
---|
102 | <li>32 : intermediate (intended to have preserved mass)</li> |
---|
103 | <li>33 : outgoing</li> |
---|
104 | <li>34 : incoming that has already scattered</li> |
---|
105 | </ul> |
---|
106 | <li>41 - 49 : particles produced by initial-state-showers</li> |
---|
107 | <ul> |
---|
108 | <li>41 : incoming on spacelike main branch</li> |
---|
109 | <li>42 : incoming copy of recoiler</li> |
---|
110 | <li>43 : outgoing produced by a branching</li> |
---|
111 | <li>44 : outgoing shifted by a branching</li> |
---|
112 | <li>45 : incoming rescattered parton, with changed kinematics |
---|
113 | owing to ISR in the mother system (cf. status 34)</li> |
---|
114 | <li>46 : incoming copy of recoiler when this is a rescattered |
---|
115 | parton (cf. status 42)</li> |
---|
116 | </ul> |
---|
117 | <li>51 - 59 : particles produced by final-state-showers</li> |
---|
118 | <ul> |
---|
119 | <li>51 : outgoing produced by parton branching</li> |
---|
120 | <li>52 : outgoing copy of recoiler, with changed momentum</li> |
---|
121 | <li>53 : copy of recoiler when this is incoming parton, |
---|
122 | with changed momentum</li> |
---|
123 | <li>54 : copy of a recoiler, when in the initial state of a |
---|
124 | different system from the radiator</li> |
---|
125 | <li>55 : copy of a recoiler, when in the final state of a |
---|
126 | different system from the radiator</li> |
---|
127 | </ul> |
---|
128 | <li>61 - 69 : particles produced by beam-remnant treatment</li> |
---|
129 | <ul> |
---|
130 | <li>61 : incoming subprocess particle with primordial <i>kT</i> |
---|
131 | included</li> |
---|
132 | <li>62 : outgoing subprocess particle with primordial <i>kT</i> |
---|
133 | included</li> |
---|
134 | <li>63 : outgoing beam remnant</li> |
---|
135 | </ul> |
---|
136 | <li>71 - 79 : partons in preparation of hadronization process</li> |
---|
137 | <ul> |
---|
138 | <li>71 : copied partons to collect into contiguous colour singlet</li> |
---|
139 | <li>72 : copied recoiling singlet when ministring collapses to |
---|
140 | one hadron and momentum has to be reshuffled</li> |
---|
141 | <li>73 : combination of very nearby partons into one</li> |
---|
142 | <li>74 : combination of two junction quarks (+ nearby gluons) |
---|
143 | to a diquark</li> |
---|
144 | <li>75 : gluons split to decouple a junction-antijunction pair</li> |
---|
145 | <li>76 : partons with momentum shuffled to decouple a |
---|
146 | junction-antijunction pair </li> |
---|
147 | <li>77 : temporary opposing parton when fragmenting first two |
---|
148 | strings in to junction (should disappear again)</li> |
---|
149 | <li>78 : temporary combined diquark end when fragmenting last |
---|
150 | string in to junction (should disappear again)</li> |
---|
151 | </ul> |
---|
152 | <li>81 - 89 : primary hadrons produced by hadronization process</li> |
---|
153 | <ul> |
---|
154 | <li>81 : from ministring into one hadron</li> |
---|
155 | <li>82 : from ministring into two hadrons</li> |
---|
156 | <li>83, 84 : from normal string (the difference between the two |
---|
157 | is technical, whether fragmented off from the top of the |
---|
158 | string system or from the bottom, useful for debug only)</li> |
---|
159 | <li>85, 86 : primary produced hadrons in junction frogmentation of |
---|
160 | the first two string legs in to the junction, |
---|
161 | in order of treatment</li> |
---|
162 | </ul> |
---|
163 | <li>91 - 99 : particles produced in decay process, or by Bose-Einstein |
---|
164 | effects</li> |
---|
165 | <ul> |
---|
166 | <li>91 : normal decay products</li> |
---|
167 | <li>92 : decay products after oscillation <i>B0 <-> B0bar</i> or |
---|
168 | <i>B_s0 <-> B_s0bar</i></li> |
---|
169 | <li>93, 94 : decay handled by external program, normally |
---|
170 | or with oscillation</li> |
---|
171 | <li>99 : particles with momenta shifted by Bose-Einstein effects |
---|
172 | (not a proper decay, but bookkept as an <i>1 -> 1</i> such, |
---|
173 | happening after decays of short-lived resonances but before |
---|
174 | decays of longer-lived particles)</li> |
---|
175 | </ul> |
---|
176 | <li>101 - 109 : particles in the handling of R-hadron production and |
---|
177 | decay, i.e. long-lived (or stable) particles containing a very heavy |
---|
178 | flavour</li> |
---|
179 | <ul> |
---|
180 | <li>101 : when a string system contains two such long-lived particles, |
---|
181 | the system is split up by the production of a new q-qbar |
---|
182 | pair (bookkept as decay chains that seemingly need not conserve |
---|
183 | flavour etc., but do when considered together)</li> |
---|
184 | <li>102 : partons rearranged from the long-lived particle end to prepare |
---|
185 | for fragmentation from this end</li> |
---|
186 | <li>103 : intermediate "half-R-hadron" formed when a colour octet particle |
---|
187 | (like the gluino) has been fragmented on one side, but not yet on |
---|
188 | the other</li> |
---|
189 | <li>104 : an R-hadron</li> |
---|
190 | <li>105 : partons or particles formed together with the R-hadron during |
---|
191 | the fragmentation treatment</li> |
---|
192 | <li>106 : subdivision of an R-hadron into its flavour content, with |
---|
193 | momentum split accordingly, in preparation of the decay of |
---|
194 | the heavy new particle, if it is unstable</li> |
---|
195 | <li>107 : two temporary leftover gluons joined into one in the formation |
---|
196 | of a gluino-gluon R-hadron.</li> |
---|
197 | </ul> |
---|
198 | <li>111 - 199 : reserved for future expansion</li> |
---|
199 | <li>201 - : free to be used by anybody</li> |
---|
200 | </ul> |
---|
201 | |
---|
202 | |
---|
203 | <a name="method3"></a> |
---|
204 | <p/><strong>int Particle::mother1() </strong> <br/> |
---|
205 | |
---|
206 | <strong>int Particle::mother2() </strong> <br/> |
---|
207 | the indices in the event record where the first and last mothers are |
---|
208 | stored, if any. There are five allowed combinations of <code>mother1</code> |
---|
209 | and <code>mother2</code>: |
---|
210 | <ol> |
---|
211 | <li><code>mother1 = mother2 = 0</code>: for lines 0 - 2, where line 0 |
---|
212 | represents the event as a whole, and 1 and 2 the two incoming |
---|
213 | beam particles; </li> |
---|
214 | <li><code>mother1 = mother2 > 0</code>: the particle is a "carbon copy" |
---|
215 | of its mother, but with changed momentum as a "recoil" effect, |
---|
216 | e.g. in a shower;</li> |
---|
217 | <li><code>mother1 > 0, mother2 = 0</code>: the "normal" mother case, where |
---|
218 | it is meaningful to speak of one single mother to several products, |
---|
219 | in a shower or decay;</li> |
---|
220 | <li><code>mother1 < mother2</code>, both > 0, for |
---|
221 | <code>abs(status) = 81 - 86</code>: primary hadrons produced from the |
---|
222 | fragmentation of a string spanning the range from <code>mother1</code> |
---|
223 | to <code>mother2</code>, so that all partons in this range should be |
---|
224 | considered mothers; and analogously for |
---|
225 | <code>abs(status) = 101 - 106</code>, the formation of R-hadrons;</li> |
---|
226 | <li><code>mother1 < mother2</code>, both > 0, except case 4: particles |
---|
227 | with two truly different mothers, in particular the particles emerging |
---|
228 | from a hard <i>2 -> n</i> interaction.</li> |
---|
229 | </ol> |
---|
230 | <br/><b>Note 1:</b> in backwards evolution of initial-state showers, |
---|
231 | the mother may well appear below the daughter in the event record. |
---|
232 | <br/><b>Note 2:</b> the <code>motherList(i)</code> method of the |
---|
233 | <code>Event</code> class returns a vector of all the mothers, |
---|
234 | providing a uniform representation for all five cases. |
---|
235 | |
---|
236 | |
---|
237 | <a name="method4"></a> |
---|
238 | <p/><strong>int Particle::daughter1() </strong> <br/> |
---|
239 | |
---|
240 | <strong>int Particle::daughter2() </strong> <br/> |
---|
241 | the indices in the event record where the first and last daughters |
---|
242 | are stored, if any. There are five allowed combinations of |
---|
243 | <code>daughter1</code> and <code>daughter2</code>: |
---|
244 | <ol> |
---|
245 | <li><code>daughter1 = daughter2 = 0</code>: there are no daughters |
---|
246 | (so far);</li> |
---|
247 | <li><code>daughter1 = daughter2 > 0</code>: the particle has a |
---|
248 | "carbon copy" as its sole daughter, but with changed momentum |
---|
249 | as a "recoil" effect, e.g. in a shower;</li> |
---|
250 | <li><code>daughter1 > 0, daughter2 = 0</code>: each of the incoming beams |
---|
251 | has only (at most) one daughter, namely the initiator parton of the |
---|
252 | hardest interaction; further, in a <i>2 -> 1</i> hard interaction, |
---|
253 | like <i>q qbar -> Z^0</i>, or in a clustering of two nearby partons, |
---|
254 | the initial partons only have this one daughter;</li> |
---|
255 | <li><code>daughter1 < daughter2</code>, both > 0: the particle has |
---|
256 | a range of decay products from <code>daughter1</code> to |
---|
257 | <code>daughter2</code>;</li> <li><code>daughter2 < daughter1</code>, |
---|
258 | both > 0: the particle has two separately stored decay products (e.g. |
---|
259 | in backwards evolution of initial-state showers).</li> |
---|
260 | </ol> |
---|
261 | <br/><b>Note 1:</b> in backwards evolution of initial-state showers, the |
---|
262 | daughters may well appear below the mother in the event record. |
---|
263 | <br/><b>Note 2:</b> the mother-daughter relation normally is reciprocal, |
---|
264 | but not always. An example is hadron beams (indices 1 and 2), where each |
---|
265 | beam remnant and the initiator of each multiparton interaction has the |
---|
266 | respective beam as mother, but the beam itself only has the initiator |
---|
267 | of the hardest interaction as daughter. |
---|
268 | <br/><b>Note 3:</b> the <code>daughterList(i)</code> method of the |
---|
269 | <code>Event</code> class returns a vector of all the daughters, |
---|
270 | providing a uniform representation for all five cases. With this method, |
---|
271 | also all the daughters of the beams are caught, with the initiators of |
---|
272 | the basic process given first, while the rest are in no guaranteed order |
---|
273 | (since they are found by a scanning of the event record for particles |
---|
274 | with the beam as mother, with no further information). |
---|
275 | |
---|
276 | |
---|
277 | <a name="method5"></a> |
---|
278 | <p/><strong>int Particle::col() </strong> <br/> |
---|
279 | |
---|
280 | <strong>int Particle::acol() </strong> <br/> |
---|
281 | the colour and anticolour tags, Les Houches Accord [<a href="Bibliography.php" target="page">Boo01</a>] |
---|
282 | style (starting from tag 101 by default, see below). |
---|
283 | <br/><b>Note:</b> in the preliminary implementation of colour sextets |
---|
284 | (exotic BSM particles) that exists since PYTHIA 8.150, a negative |
---|
285 | anticolour tag is interpreted as an additional positive colour tag, |
---|
286 | and vice versa. |
---|
287 | |
---|
288 | |
---|
289 | <a name="method6"></a> |
---|
290 | <p/><strong>double Particle::px() </strong> <br/> |
---|
291 | |
---|
292 | <strong>double Particle::py() </strong> <br/> |
---|
293 | |
---|
294 | <strong>double Particle::pz() </strong> <br/> |
---|
295 | |
---|
296 | <strong>double Particle::e() </strong> <br/> |
---|
297 | the particle four-momentum components. |
---|
298 | |
---|
299 | |
---|
300 | <a name="method7"></a> |
---|
301 | <p/><strong>Vec4 Particle::p() </strong> <br/> |
---|
302 | the particle four-momentum vector, with components as above. |
---|
303 | |
---|
304 | |
---|
305 | <a name="method8"></a> |
---|
306 | <p/><strong>double Particle::m() </strong> <br/> |
---|
307 | the particle mass, stored with a minus sign (times the absolute value) |
---|
308 | for spacelike virtual particles. |
---|
309 | |
---|
310 | |
---|
311 | <a name="method9"></a> |
---|
312 | <p/><strong>double Particle::scale() </strong> <br/> |
---|
313 | the scale at which a parton was produced, which can be used to restrict |
---|
314 | its radiation to lower scales in subsequent steps of the shower evolution. |
---|
315 | Note that scale is linear in momenta, not quadratic (i.e. <i>Q</i>, |
---|
316 | not <i>Q^2</i>). |
---|
317 | |
---|
318 | |
---|
319 | <a name="method10"></a> |
---|
320 | <p/><strong>double Particle::pol() </strong> <br/> |
---|
321 | the polarization/spin/helicity of a particle. Currently Pythia does not |
---|
322 | use this variable for any internal operations, so its meaning is not |
---|
323 | uniquely defined. The LHA standard sets <code>SPINUP</code> to be the |
---|
324 | cosine of the angle between the spin vector and the 3-momentum of the |
---|
325 | decaying particle in the lab frame, i.e. restricted to be between +1 |
---|
326 | and -1. A more convenient choice could be the same quantity in the rest |
---|
327 | frame of the particle production, either the hard subprocess or the |
---|
328 | mother particle of a decay. Unknown or unpolarized particles should |
---|
329 | be assigned the value 9. |
---|
330 | |
---|
331 | |
---|
332 | <a name="method11"></a> |
---|
333 | <p/><strong>double Particle::xProd() </strong> <br/> |
---|
334 | |
---|
335 | <strong>double Particle::yProd() </strong> <br/> |
---|
336 | |
---|
337 | <strong>double Particle::zProd() </strong> <br/> |
---|
338 | |
---|
339 | <strong>double Particle::tProd() </strong> <br/> |
---|
340 | the production vertex coordinates, in mm or mm/c. |
---|
341 | |
---|
342 | |
---|
343 | <a name="method12"></a> |
---|
344 | <p/><strong>Vec4 Particle::vProd() </strong> <br/> |
---|
345 | The production vertex four-vector. Note that the components of a |
---|
346 | <code>Vec4</code> are named <code>px(), py(), pz() and e()</code> |
---|
347 | which of course then should be reinterpreted as above. |
---|
348 | |
---|
349 | |
---|
350 | <a name="method13"></a> |
---|
351 | <p/><strong>double Particle::tau() </strong> <br/> |
---|
352 | the proper lifetime, in mm/c. It is assigned for all hadrons with |
---|
353 | positive nominal <i>tau</i>, <i>tau_0 > 0</i>, because it can be used |
---|
354 | by PYTHIA to decide whether a particle should or should not be allowed |
---|
355 | to decay, e.g. based on the decay vertex distance to the primary interaction |
---|
356 | vertex. |
---|
357 | |
---|
358 | |
---|
359 | <h3>Input methods</h3> |
---|
360 | |
---|
361 | The same method names as above are also overloaded in versions that |
---|
362 | set values. These have an input argument of the same type as the |
---|
363 | respective output above, and are of type <code>void</code>. |
---|
364 | |
---|
365 | <p/> |
---|
366 | There are also a few alternative methods for input: |
---|
367 | |
---|
368 | <a name="method14"></a> |
---|
369 | <p/><strong>void Particle::statusPos() </strong> <br/> |
---|
370 | |
---|
371 | <strong>void Particle::statusNeg() </strong> <br/> |
---|
372 | sets the status sign positive or negative, without changing the absolute value. |
---|
373 | |
---|
374 | |
---|
375 | <a name="method15"></a> |
---|
376 | <p/><strong>void Particle::statusCode(int code) </strong> <br/> |
---|
377 | changes the absolute value but retains the original sign. |
---|
378 | |
---|
379 | |
---|
380 | <a name="method16"></a> |
---|
381 | <p/><strong>void Particle::mothers(int mother1, int mother2) </strong> <br/> |
---|
382 | sets both mothers in one go. |
---|
383 | |
---|
384 | |
---|
385 | <a name="method17"></a> |
---|
386 | <p/><strong>void Particle::daughters(int daughter1, int daughter2) </strong> <br/> |
---|
387 | sets both daughters in one go. |
---|
388 | |
---|
389 | |
---|
390 | <a name="method18"></a> |
---|
391 | <p/><strong>void Particle::cols(int col, int acol) </strong> <br/> |
---|
392 | sets both colour and anticolour in one go. |
---|
393 | |
---|
394 | |
---|
395 | <a name="method19"></a> |
---|
396 | <p/><strong>void Particle::p(double px, double py, double pz, double e) </strong> <br/> |
---|
397 | sets the four-momentum components in one go. |
---|
398 | |
---|
399 | |
---|
400 | <a name="method20"></a> |
---|
401 | <p/><strong>void Particle::vProd(double xProd, double yProd, double zProd, double tProd) </strong> <br/> |
---|
402 | sets the production vertex components in one go. |
---|
403 | |
---|
404 | |
---|
405 | <h3>Further output methods</h3> |
---|
406 | |
---|
407 | <p/> |
---|
408 | In addition, a number of derived quantities can easily be obtained, |
---|
409 | but cannot be set, such as: |
---|
410 | |
---|
411 | <a name="method21"></a> |
---|
412 | <p/><strong>int Particle::idAbs() </strong> <br/> |
---|
413 | the absolute value of the particle identity code. |
---|
414 | |
---|
415 | |
---|
416 | <a name="method22"></a> |
---|
417 | <p/><strong>int Particle::statusAbs() </strong> <br/> |
---|
418 | the absolute value of the status code. |
---|
419 | |
---|
420 | |
---|
421 | <a name="method23"></a> |
---|
422 | <p/><strong>bool Particle::isFinal() </strong> <br/> |
---|
423 | true for a remaining particle, i.e. one with positive status code, |
---|
424 | else false. Thus, after an event has been fully generated, it |
---|
425 | separates the final-state particles from intermediate-stage ones. |
---|
426 | (If used earlier in the generation process, a particle then |
---|
427 | considered final may well decay later.) |
---|
428 | |
---|
429 | |
---|
430 | <a name="method24"></a> |
---|
431 | <p/><strong>bool Particle::isRescatteredIncoming() </strong> <br/> |
---|
432 | true for particles with a status code -34, -45, -46 or -54, else false. |
---|
433 | This singles out partons that have been created in a previous |
---|
434 | scattering but here are bookkept as belonging to the incoming state |
---|
435 | of another scattering. |
---|
436 | |
---|
437 | |
---|
438 | <a name="method25"></a> |
---|
439 | <p/><strong>bool Particle::hasVertex() </strong> <br/> |
---|
440 | production vertex has been set; if false then production at the origin |
---|
441 | is assumed. |
---|
442 | |
---|
443 | |
---|
444 | <a name="method26"></a> |
---|
445 | <p/><strong>double Particle::m2() </strong> <br/> |
---|
446 | squared mass, which can be negative for spacelike partons. |
---|
447 | |
---|
448 | |
---|
449 | <a name="method27"></a> |
---|
450 | <p/><strong>double Particle::mCalc() </strong> <br/> |
---|
451 | |
---|
452 | <strong>double Particle::m2Calc() </strong> <br/> |
---|
453 | (squared) mass calculated from the four-momentum; should agree |
---|
454 | with <code>m(), m2()</code> up to roundoff. Negative for spacelike |
---|
455 | virtualities. |
---|
456 | |
---|
457 | |
---|
458 | <a name="method28"></a> |
---|
459 | <p/><strong>double Particle::eCalc() </strong> <br/> |
---|
460 | energy calculated from the mass and three-momentum; should agree |
---|
461 | with <code>e()</code> up to roundoff. For spacelike partons a |
---|
462 | positive-energy solution is picked. This need not be the correct |
---|
463 | one, so it is recommended not to use the method in such cases. |
---|
464 | |
---|
465 | |
---|
466 | <a name="method29"></a> |
---|
467 | <p/><strong>double Particle::pT() </strong> <br/> |
---|
468 | |
---|
469 | <strong>double Particle::pT2() </strong> <br/> |
---|
470 | (squared) transverse momentum. |
---|
471 | |
---|
472 | |
---|
473 | <a name="method30"></a> |
---|
474 | <p/><strong>double Particle::mT() </strong> <br/> |
---|
475 | |
---|
476 | <strong>double Particle::mT2() </strong> <br/> |
---|
477 | (squared) transverse mass. If <i>m_T^2</i> is negative, which can happen |
---|
478 | for a spacelike parton, then <code>mT()</code> returns |
---|
479 | <i>-sqrt(-m_T^2)</i>, by analogy with the negative sign used to store |
---|
480 | spacelike masses. |
---|
481 | |
---|
482 | |
---|
483 | <a name="method31"></a> |
---|
484 | <p/><strong>double Particle::pAbs() </strong> <br/> |
---|
485 | |
---|
486 | <strong>double Particle::pAbs2() </strong> <br/> |
---|
487 | (squared) three-momentum size. |
---|
488 | |
---|
489 | |
---|
490 | <a name="method32"></a> |
---|
491 | <p/><strong>double Particle::eT() </strong> <br/> |
---|
492 | |
---|
493 | <strong>double Particle::eT2() </strong> <br/> |
---|
494 | (squared) transverse energy, |
---|
495 | <i>eT = e * sin(theta) = e * pT / pAbs</i>. |
---|
496 | |
---|
497 | |
---|
498 | <a name="method33"></a> |
---|
499 | <p/><strong>double Particle::theta() </strong> <br/> |
---|
500 | |
---|
501 | <strong>double Particle::phi() </strong> <br/> |
---|
502 | polar and azimuthal angle. |
---|
503 | |
---|
504 | |
---|
505 | <a name="method34"></a> |
---|
506 | <p/><strong>double Particle::thetaXZ() </strong> <br/> |
---|
507 | angle in the <i>(p_x, p_z)</i> plane, between <i>-pi</i> and |
---|
508 | <i>+pi</i>, with 0 along the <i>+z</i> axis |
---|
509 | |
---|
510 | |
---|
511 | <a name="method35"></a> |
---|
512 | <p/><strong>double Particle::pPos() </strong> <br/> |
---|
513 | |
---|
514 | <strong>double Particle::pNeg() </strong> <br/> |
---|
515 | <i>E +- p_z</i>. |
---|
516 | |
---|
517 | |
---|
518 | <a name="method36"></a> |
---|
519 | <p/><strong>double Particle::y() </strong> <br/> |
---|
520 | |
---|
521 | <strong>double Particle::eta() </strong> <br/> |
---|
522 | rapidity and pseudorapidity. |
---|
523 | |
---|
524 | |
---|
525 | <a name="method37"></a> |
---|
526 | <p/><strong>double Particle::xDec() </strong> <br/> |
---|
527 | |
---|
528 | <strong>double Particle::yDec() </strong> <br/> |
---|
529 | |
---|
530 | <strong>double Particle::zDec() </strong> <br/> |
---|
531 | |
---|
532 | <strong>double Particle::tDec() </strong> <br/> |
---|
533 | |
---|
534 | <strong>Vec4 Particle::vDec() </strong> <br/> |
---|
535 | the decay vertex coordinates, in mm or mm/c. This decay vertex is |
---|
536 | calculated from the production vertex, the proper lifetime and the |
---|
537 | four-momentum assuming no magnetic field or other detector interference. |
---|
538 | It can be used to decide whether a decay should be performed or not, |
---|
539 | and thus is defined also for particles which PYTHIA did not let decay. |
---|
540 | |
---|
541 | |
---|
542 | <p/> |
---|
543 | Each Particle contains a pointer to the respective |
---|
544 | <code>ParticleDataEntry</code> object in the |
---|
545 | <?php $filepath = $_GET["filepath"]; |
---|
546 | echo "<a href='ParticleDataScheme.php?filepath=".$filepath."' target='page'>";?>particle data tables</a>. |
---|
547 | This gives access to properties of the particle species as such. It is |
---|
548 | there mainly for convenience, and should be thrown if an event is |
---|
549 | written to disk, to avoid any problems of object persistency. Should |
---|
550 | an event later be read back in, the pointer will be recreated from the |
---|
551 | <code>id</code> code if the normal input methods are used. (Use the |
---|
552 | <code><?php $filepath = $_GET["filepath"]; |
---|
553 | echo "<a href='EventRecord.php?filepath=".$filepath."' target='page'>";?>Event::restorePtrs()</a></code> method |
---|
554 | if your persistency scheme bypasses the normal methods.) This pointer is |
---|
555 | used by the following member functions: |
---|
556 | |
---|
557 | <a name="method38"></a> |
---|
558 | <p/><strong>string Particle::name() </strong> <br/> |
---|
559 | the name of the particle. |
---|
560 | |
---|
561 | |
---|
562 | <a name="method39"></a> |
---|
563 | <p/><strong>string Particle::nameWithStatus() </strong> <br/> |
---|
564 | as above, but for negative-status particles the name is given in |
---|
565 | brackets to emphasize that they are intermediaries. |
---|
566 | |
---|
567 | |
---|
568 | <a name="method40"></a> |
---|
569 | <p/><strong>int Particle::spinType() </strong> <br/> |
---|
570 | <i>2 *spin + 1</i> when defined, else 0. |
---|
571 | |
---|
572 | |
---|
573 | <a name="method41"></a> |
---|
574 | <p/><strong>double Particle::charge() </strong> <br/> |
---|
575 | |
---|
576 | <strong>int Particle::chargeType() </strong> <br/> |
---|
577 | charge, and three times it to make an integer. |
---|
578 | |
---|
579 | |
---|
580 | <a name="method42"></a> |
---|
581 | <p/><strong>bool Particle::isCharged() </strong> <br/> |
---|
582 | |
---|
583 | <strong>bool Particle::isNeutral() </strong> <br/> |
---|
584 | charge different from or equal to 0. |
---|
585 | |
---|
586 | |
---|
587 | <a name="method43"></a> |
---|
588 | <p/><strong>int Particle::colType() </strong> <br/> |
---|
589 | 0 for colour singlets, 1 for triplets, |
---|
590 | -1 for antitriplets and 2 for octets. (A preliminary implementation of |
---|
591 | colour sextets also exists, using 3 for sextets and -3 for antisextets.) |
---|
592 | |
---|
593 | |
---|
594 | <a name="method44"></a> |
---|
595 | <p/><strong>double Particle::m0() </strong> <br/> |
---|
596 | the nominal mass of the particle, according to the data tables. |
---|
597 | |
---|
598 | |
---|
599 | <a name="method45"></a> |
---|
600 | <p/><strong>double Particle::mWidth() </strong> <br/> |
---|
601 | |
---|
602 | <strong>double Particle::mMin() </strong> <br/> |
---|
603 | |
---|
604 | <strong>double Particle::mMax() </strong> <br/> |
---|
605 | the width of the particle, and the minimum and maximum allowed mass value |
---|
606 | for particles with a width, according to the data tables. |
---|
607 | |
---|
608 | |
---|
609 | <a name="method46"></a> |
---|
610 | <p/><strong>double Particle::mass() </strong> <br/> |
---|
611 | the mass of the particle, picked according to a Breit-Wigner |
---|
612 | distribution for particles with width. It is different each time called, |
---|
613 | and is therefore only used once per particle to set its mass |
---|
614 | <code>m()</code>. |
---|
615 | |
---|
616 | |
---|
617 | <a name="method47"></a> |
---|
618 | <p/><strong>double Particle::constituentMass() </strong> <br/> |
---|
619 | will give the constituent masses for quarks and diquarks, |
---|
620 | else the same masses as with <code>m0()</code>. |
---|
621 | |
---|
622 | |
---|
623 | <a name="method48"></a> |
---|
624 | <p/><strong>double Particle::tau0() </strong> <br/> |
---|
625 | the nominal lifetime <i>tau_0 > 0</i>, in mm/c, of the particle species. |
---|
626 | It is used to assign the actual lifetime <i>tau</i>. |
---|
627 | |
---|
628 | |
---|
629 | <a name="method49"></a> |
---|
630 | <p/><strong>bool Particle::mayDecay() </strong> <br/> |
---|
631 | flag whether particle has been declared unstable or not, offering |
---|
632 | the main user switch to select which particle species to decay. |
---|
633 | |
---|
634 | |
---|
635 | <a name="method50"></a> |
---|
636 | <p/><strong>bool Particle::canDecay() </strong> <br/> |
---|
637 | flag whether decay modes have been declared for a particle, |
---|
638 | so that it could be decayed, should that be requested. |
---|
639 | |
---|
640 | |
---|
641 | <a name="method51"></a> |
---|
642 | <p/><strong>bool Particle::doExternalDecay() </strong> <br/> |
---|
643 | particles that are decayed by an external program. |
---|
644 | |
---|
645 | |
---|
646 | <a name="method52"></a> |
---|
647 | <p/><strong>bool Particle::isResonance() </strong> <br/> |
---|
648 | particles where the decay is to be treated as part of the hard process, |
---|
649 | typically with nominal mass above 20 GeV (<i>W^+-, Z^0, t, ...</i>). |
---|
650 | |
---|
651 | |
---|
652 | <a name="method53"></a> |
---|
653 | <p/><strong>bool Particle::isVisible() </strong> <br/> |
---|
654 | particles with strong or electric charge, or composed of ones having it, |
---|
655 | which thereby should be considered visible in a normal detector. |
---|
656 | |
---|
657 | |
---|
658 | <a name="method54"></a> |
---|
659 | <p/><strong>bool Particle::isLepton() </strong> <br/> |
---|
660 | true for a lepton or an antilepton (including neutrinos). |
---|
661 | |
---|
662 | |
---|
663 | <a name="method55"></a> |
---|
664 | <p/><strong>bool Particle::isQuark() </strong> <br/> |
---|
665 | true for a quark or an antiquark. |
---|
666 | |
---|
667 | |
---|
668 | <a name="method56"></a> |
---|
669 | <p/><strong>bool Particle::isGluon() </strong> <br/> |
---|
670 | true for a gluon. |
---|
671 | |
---|
672 | |
---|
673 | <a name="method57"></a> |
---|
674 | <p/><strong>bool Particle::isDiquark() </strong> <br/> |
---|
675 | true for a diquark or an antidiquark. |
---|
676 | |
---|
677 | |
---|
678 | <a name="method58"></a> |
---|
679 | <p/><strong>bool Particle::isParton() </strong> <br/> |
---|
680 | true for a gluon, a quark or antiquark up to the b (but excluding top), |
---|
681 | and a diquark or antidiquark consisting of quarks up to the b. |
---|
682 | |
---|
683 | |
---|
684 | <a name="method59"></a> |
---|
685 | <p/><strong>bool Particle::isHadron() </strong> <br/> |
---|
686 | true for a hadron (made up out of normal quarks and gluons, |
---|
687 | i.e. not for R-hadrons and other exotic states). |
---|
688 | |
---|
689 | |
---|
690 | <a name="method60"></a> |
---|
691 | <p/><strong>ParticleDataEntry& particleDataEntry() </strong> <br/> |
---|
692 | a reference to the ParticleDataEntry. |
---|
693 | |
---|
694 | |
---|
695 | <p/> |
---|
696 | Not part of the <code>Particle</code> class proper, but obviously tightly |
---|
697 | linked, are the two methods |
---|
698 | |
---|
699 | <a name="method61"></a> |
---|
700 | <p/><strong>double m(const Particle& pp1, const Particle& pp2) </strong> <br/> |
---|
701 | |
---|
702 | <strong>double m2(const Particle& pp1, const Particle& pp2) </strong> <br/> |
---|
703 | the (squared) invariant mass of two particles. |
---|
704 | |
---|
705 | |
---|
706 | <h3>Methods that perform operations</h3> |
---|
707 | |
---|
708 | There are some further methods, some of them inherited from |
---|
709 | <code>Vec4</code>, to modify the properties of a particle. |
---|
710 | They are of little interest to the normal user. |
---|
711 | |
---|
712 | <a name="method62"></a> |
---|
713 | <p/><strong>void Particle::rescale3(double fac) </strong> <br/> |
---|
714 | multiply the three-momentum components by <code>fac</code>. |
---|
715 | |
---|
716 | |
---|
717 | <a name="method63"></a> |
---|
718 | <p/><strong>void Particle::rescale4(double fac) </strong> <br/> |
---|
719 | multiply the four-momentum components by <code>fac</code>. |
---|
720 | |
---|
721 | |
---|
722 | <a name="method64"></a> |
---|
723 | <p/><strong>void Particle::rescale5(double fac) </strong> <br/> |
---|
724 | multiply the four-momentum components and the mass by <code>fac</code>. |
---|
725 | |
---|
726 | |
---|
727 | <a name="method65"></a> |
---|
728 | <p/><strong>void Particle::rot(double theta, double phi) </strong> <br/> |
---|
729 | rotate three-momentum and production vertex by these polar and azimuthal |
---|
730 | angles. |
---|
731 | |
---|
732 | |
---|
733 | <a name="method66"></a> |
---|
734 | <p/><strong>void Particle::bst(double betaX, double betaY, double betaZ) </strong> <br/> |
---|
735 | boost four-momentum and production vertex by this three-vector. |
---|
736 | |
---|
737 | |
---|
738 | <a name="method67"></a> |
---|
739 | <p/><strong>void Particle::bst(double betaX, double betaY, double betaZ, double gamma) </strong> <br/> |
---|
740 | as above, but also input the <i>gamma</i> value, to reduce roundoff errors. |
---|
741 | |
---|
742 | |
---|
743 | <a name="method68"></a> |
---|
744 | <p/><strong>void Particle::bst(const Vec4& pBst) </strong> <br/> |
---|
745 | boost four-momentum and production vertex by |
---|
746 | <i>beta = (px/e, py/e, pz/e)</i>. |
---|
747 | |
---|
748 | |
---|
749 | <a name="method69"></a> |
---|
750 | <p/><strong>void Particle::bst(const Vec4& pBst, double mBst) </strong> <br/> |
---|
751 | as above, but also use <i>gamma> = e/m</i> to reduce roundoff errors. |
---|
752 | |
---|
753 | |
---|
754 | <a name="method70"></a> |
---|
755 | <p/><strong>void Particle::bstback(const Vec4& pBst) </strong> <br/> |
---|
756 | |
---|
757 | <strong>void Particle::bstback(const Vec4& pBst, double mBst) </strong> <br/> |
---|
758 | as above, but with sign of boost flipped. |
---|
759 | |
---|
760 | |
---|
761 | <a name="method71"></a> |
---|
762 | <p/><strong>void Particle::rotbst(const RotBstMatrix& M) </strong> <br/> |
---|
763 | combined rotation and boost of the four-momentum and production vertex. |
---|
764 | |
---|
765 | |
---|
766 | <a name="method72"></a> |
---|
767 | <p/><strong>void Particle::offsetHistory( int minMother, int addMother, int minDaughter, int addDaughter)) </strong> <br/> |
---|
768 | add a positive offset to the mother and daughter indices, i.e. |
---|
769 | if <code>mother1</code> is above <code>minMother</code> then |
---|
770 | <code>addMother</code> is added to it, same with <code>mother2</code>, |
---|
771 | if <code>daughter1</code> is above <code>minDaughter</code> then |
---|
772 | <code>addDaughter</code> is added to it, same with <code>daughter2</code>. |
---|
773 | |
---|
774 | |
---|
775 | <a name="method73"></a> |
---|
776 | <p/><strong>void Particle::offsetCol( int addCol) </strong> <br/> |
---|
777 | add a positive offset to colour indices, i.e. if <code>col</code> is |
---|
778 | positive then <code>addCol</code> is added to it, same with <code>acol</code>. |
---|
779 | |
---|
780 | |
---|
781 | <h3>Constructors and operators</h3> |
---|
782 | |
---|
783 | Normally a user would not need to create new particles. However, if |
---|
784 | necessary, the following constructors and methods may be of interest. |
---|
785 | |
---|
786 | <a name="method74"></a> |
---|
787 | <p/><strong>Particle::Particle() </strong> <br/> |
---|
788 | constructs an empty particle, i.e. where all properties have been set 0 |
---|
789 | or equivalent. |
---|
790 | |
---|
791 | |
---|
792 | <a name="method75"></a> |
---|
793 | <p/><strong>Particle::Particle(int id, int status = 0, int mother1 = 0, int mother2 = 0, int daughter1 = 0, int daughter2 = 0, int col = 0, int acol = 0, double px = 0., double py = 0., double pz = 0., double e = 0., double m = 0., double scale = 0., double pol = 9.) </strong> <br/> |
---|
794 | constructs a particle with the input properties provided, and non-provided |
---|
795 | ones set 0 (9 for <code>pol</code>). |
---|
796 | |
---|
797 | |
---|
798 | <a name="method76"></a> |
---|
799 | <p/><strong>Particle::Particle(int id, int status, int mother1, int mother2, int daughter1, int daughter2, int col, int acol, Vec4 p, double m = 0., double scale = 0., double pol = 9.) </strong> <br/> |
---|
800 | constructs a particle with the input properties provided, and non-provided |
---|
801 | ones set 0 (9 for <code>pol</code>). |
---|
802 | |
---|
803 | |
---|
804 | <a name="method77"></a> |
---|
805 | <p/><strong>Particle::Particle(const Particle& pt) </strong> <br/> |
---|
806 | constructs an particle that is a copy of the input one. |
---|
807 | |
---|
808 | |
---|
809 | <a name="method78"></a> |
---|
810 | <p/><strong>Particle& Particle::operator=(const Particle& pt) </strong> <br/> |
---|
811 | copies the input particle. |
---|
812 | |
---|
813 | |
---|
814 | <a name="method79"></a> |
---|
815 | <p/><strong>void Particle::setPDTPtr() </strong> <br/> |
---|
816 | sets the pointer to the <code>ParticleData</code> objects, |
---|
817 | i.e. to the full particle data table. Also calls <code>setPDEPtr</code> |
---|
818 | below. |
---|
819 | |
---|
820 | |
---|
821 | <a name="method80"></a> |
---|
822 | <p/><strong>void Particle::setPDEPtr() </strong> <br/> |
---|
823 | sets the pointer to the <code>ParticleDataEntry</code> object of the |
---|
824 | particle, based on its current <code>id</code> code. |
---|
825 | |
---|
826 | |
---|
827 | <h3>Final notes</h3> |
---|
828 | |
---|
829 | The |
---|
830 | <code><?php $filepath = $_GET["filepath"]; |
---|
831 | echo "<a href='EventRecord.php?filepath=".$filepath."' target='page'>";?>Event</a></code> |
---|
832 | class also contains a few methods defined for individual particles, |
---|
833 | but these may require some search in the event record and therefore |
---|
834 | cannot be defined as <code>Particle</code> methods. |
---|
835 | |
---|
836 | <p/> |
---|
837 | Currently there is no information on polarization states. |
---|
838 | |
---|
839 | </body> |
---|
840 | </html> |
---|
841 | |
---|
842 | <!-- Copyright (C) 2012 Torbjorn Sjostrand --> |
---|
843 | |
---|