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