1 | <html> |
---|
2 | <head> |
---|
3 | <title>The Particle Data Scheme</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>The Particle Data Scheme</h2> |
---|
10 | |
---|
11 | The particle data scheme may take somewhat longer to understand than |
---|
12 | the settings one. In particular the set of methods to access information |
---|
13 | is rather more varied, to allow better functionality for advanced usage. |
---|
14 | However, PYTHIA does come with a sensible default set of particle |
---|
15 | properties and decay tables. Thus there is no need to learn any of the |
---|
16 | methods on this page to get going. Only when you perceive a specific need |
---|
17 | does it make sense to learn the basics. |
---|
18 | |
---|
19 | <p/> |
---|
20 | The central section on this page is the Operation one. The preceding |
---|
21 | sections are there mainly to introduce the basic structure and the set |
---|
22 | of properties that can be accessed. The subsequent sections provide a |
---|
23 | complete listing of the existing public methods, which most users |
---|
24 | probably will have little interaction with. |
---|
25 | |
---|
26 | <h3>Databases</h3> |
---|
27 | |
---|
28 | The management of particle data is based on three classes: |
---|
29 | <ul> |
---|
30 | <li><code>ParticleData</code>, which is the top-level class, with |
---|
31 | methods that can be used to interrogate all particle data. It contains |
---|
32 | a map of PDG particle identity numbers [<a href="Bibliography.html" target="page">Yao06</a>] onto the relevant |
---|
33 | <code>ParticleDataEntry</code> objects,</li> |
---|
34 | <li><code>ParticleDataEntry</code>, which stores the relevant information |
---|
35 | on an individual particle species, and</li> |
---|
36 | <li><code>DecayChannel</code>, which stores info on one particular decay |
---|
37 | mode of a particle.</li> |
---|
38 | |
---|
39 | </ul> |
---|
40 | The objects of these classes together form a database that is |
---|
41 | continuously being used as the program has to assign particle masses, |
---|
42 | select decay modes, etc. |
---|
43 | |
---|
44 | <p/> |
---|
45 | Each <code>Pythia</code> object has a public member |
---|
46 | <code>particleData</code> of the <code>ParticleData</code> class. |
---|
47 | Therefore you access the particle data methods as |
---|
48 | <code>pythia.particleData.command(argument)</code>, |
---|
49 | assuming that <code>pythia</code> is an instance of the |
---|
50 | <code>Pythia</code> class. Further, for some of the most frequent user |
---|
51 | tasks, <code>Pythia</code> methods have been defined, so that |
---|
52 | <code>pythia.command(argument)</code> |
---|
53 | would work, see further below. |
---|
54 | |
---|
55 | <p/> |
---|
56 | A fundamental difference between the particle data classes and the |
---|
57 | settings ones is that the former are accessed regularly during the |
---|
58 | event generation process, as a new particle is produced and its mass |
---|
59 | need to be set, e.g., while the latter are mainly/only used |
---|
60 | at the initialization stage. Nevertheless, it is not a good idea to |
---|
61 | change data in either of them in mid-run, since this may lead to |
---|
62 | inconsistencies. |
---|
63 | |
---|
64 | <h3>Stored properties for particles</h3> |
---|
65 | |
---|
66 | The main properties stored for each particle are as follows. |
---|
67 | Different ways to set and get these properties will be described |
---|
68 | further down. |
---|
69 | |
---|
70 | <ul> |
---|
71 | |
---|
72 | <li><code>name</code>: a character string with the name of the |
---|
73 | particle. Particle and antiparticle names are stored separately, |
---|
74 | with <code>void</code> returned when no antiparticle exists.</li> |
---|
75 | |
---|
76 | <li><code>spinType</code>: the spin type, of the form <i>2 s + 1</i>, |
---|
77 | with special code 0 for entries of unknown or indeterminate spin.</li> |
---|
78 | |
---|
79 | <li><code>chargeType</code>: three times the charge (to make it an |
---|
80 | integer).</li> |
---|
81 | |
---|
82 | <li><code>colType</code>: the colour type, with 0 uncoloured, 1 triplet, |
---|
83 | -1 antitriplet and 2 octet. (A preliminary implementation of colour |
---|
84 | sextets, available since version 8.150, further uses 3 for a sextet |
---|
85 | and -3 for an antisextet.) </li> |
---|
86 | |
---|
87 | <li><code>m0</code>: the nominal mass <i>m_0</i> (in GeV).</li> |
---|
88 | |
---|
89 | <li><code>mWidth</code>: the width <i>Gamma</i> of the Breit-Wigner |
---|
90 | distribution (in GeV).</li> |
---|
91 | |
---|
92 | <li><code>mMin</code>: the lower limit of the allowed mass range |
---|
93 | generated by the Breit-Wigner (in GeV). Has no meaning for particles |
---|
94 | without width, and would typically be 0 there.</li> |
---|
95 | |
---|
96 | <li><code>mMax</code>: the upper limit of the allowed mass range |
---|
97 | generated by the Breit-Wigner (in GeV). If <i>mMax < mMin</i> then |
---|
98 | no upper limit is imposed. Has no meaning for particles without width, |
---|
99 | and would typically be 0 there.</li> |
---|
100 | |
---|
101 | <li><code>tau0</code>: the nominal proper lifetime <i>tau_0</i> |
---|
102 | (in mm/c).</li> |
---|
103 | |
---|
104 | <li><code>isResonance</code>: a flag telling whether a particle species |
---|
105 | is considered as a resonance or not. Here |
---|
106 | <a href="ResonanceDecays.html" target="page">"resonance"</a> is used as shorthand |
---|
107 | for any massive particle where the decay process should be counted as part |
---|
108 | of the hard process itself, and thus be performed before showers and other |
---|
109 | event aspects are added. Restrictions on allowed decay channels is also |
---|
110 | directly reflected in the cross section of simulated processes, while |
---|
111 | those of normal hadrons and other light particles are not. |
---|
112 | In practice, it is reserved for states above the <i>b bbar</i> |
---|
113 | bound systems in mass, i.e. for <i>W, Z, t</i>, Higgs states, |
---|
114 | supersymmetric states and (most?) other states in any new theory. |
---|
115 | All particles with <code>m0</code> above 20 GeV are by default |
---|
116 | initialized to be considered as resonances.</li> |
---|
117 | |
---|
118 | <li><code>mayDecay</code>: a flag telling whether a particle species |
---|
119 | may decay or not, offering the main user switch. Whether a given particle |
---|
120 | of this kind then actually will decay also depends on it having allowed |
---|
121 | decay channels, and on other flags for |
---|
122 | <a href="ParticleDecays.html" target="page">particle decays</a>. |
---|
123 | All particles with <code>tau0</code> below 1000 mm are |
---|
124 | by default initialized to allow decays.</li> |
---|
125 | |
---|
126 | <li><code>doExternalDecays</code>: a flag telling whether a particle |
---|
127 | should be handled by an external decay package or not, with the latter |
---|
128 | default. Can be manipulated as described on this page, but should |
---|
129 | normally not be. Instead the |
---|
130 | <code><a href="ExternalDecays.html" target="page">Pythia::decayPtr(...)</a></code> |
---|
131 | method should be provided with the list of relevant particles.</li> |
---|
132 | |
---|
133 | <li><code>isVisible</code>: a flag telling whether a particle species |
---|
134 | is to be considered as visible in a detector or not, as used e.g. in |
---|
135 | analysis routines. By default this includes neutrinos and a few BSM |
---|
136 | particles (gravitino, sneutrinos, neutralinos) that have neither strong |
---|
137 | nor electromagnetic charge, and are not made up of constituents that |
---|
138 | have it. The value of this flag is only relevant if a particle is |
---|
139 | long-lived enough actually to make it to a detector.</li> |
---|
140 | |
---|
141 | <li><code>doForceWidth</code>: a flag valid only for resonances where |
---|
142 | PYTHIA contains code to calculate the width of the resonance from |
---|
143 | encoded matrix-element expressions, i.e. the <i>Z^0</i>, <i>W^+-</i>, |
---|
144 | <i>t</i>, <i>h^0</i>, and a few more. The normal behaviour |
---|
145 | (<code>false</code>) is then that the width is calculated from the mass, |
---|
146 | but it is possible to <a href="ResonanceDecays.html" target="page">force</a> the |
---|
147 | resonance to retain the nominal width. Branching ratios and the running |
---|
148 | of the total width are unaffected.</li> |
---|
149 | |
---|
150 | </ul> |
---|
151 | |
---|
152 | <h3>Stored properties for decays</h3> |
---|
153 | |
---|
154 | An unstable particle has a decay table consisting of one or more |
---|
155 | decay channel. The following properties are stored for each such channel. |
---|
156 | Again different ways to set and get these properties will be described |
---|
157 | further down. |
---|
158 | <ul> |
---|
159 | |
---|
160 | <li><code>onMode</code>: integer code for use or not of channel,<br/> |
---|
161 | 0 if a channel is off,<br/> |
---|
162 | 1 if on,<br/> |
---|
163 | 2 if on for a particle but off for an antiparticle,<br/> |
---|
164 | 3 if on for an antiparticle but off for a particle.<br/> |
---|
165 | If a particle is its own antiparticle then 2 is on and 3 off |
---|
166 | but, of course, for such particles it is much simpler and safer |
---|
167 | to use only 1 and 0.<br/> |
---|
168 | The 2 and 3 options can be used e.g. to encode CP violation in |
---|
169 | B decays, or to let the <i>W</i>'s in a <i>q qbar -> W^+ W^-</i> |
---|
170 | process decay in different channels. </li> |
---|
171 | |
---|
172 | <li><code>bRatio</code>: the branching ratio of the channel.</li> |
---|
173 | |
---|
174 | <li><code>meMode</code>: the mode of processing this channel, possibly |
---|
175 | with matrix elements; see the |
---|
176 | <a href="ParticleDecays.html" target="page">particle decays</a> description</li> |
---|
177 | for the list of possibilities. |
---|
178 | |
---|
179 | <li><code>multiplicity</code>: the number of decay products of the |
---|
180 | channel. Can be at most 8.</li> |
---|
181 | |
---|
182 | <li><code>product(i)</code>: the identity code of the decay products, |
---|
183 | where <code>i</code> runs between <code>0</code> and |
---|
184 | <code>multiplicity - 1</code>. Trailing positions are filled with 0. |
---|
185 | </li> |
---|
186 | |
---|
187 | </ul> |
---|
188 | |
---|
189 | <h3>Operation</h3> |
---|
190 | |
---|
191 | The normal flow of the particle data operations is: |
---|
192 | |
---|
193 | <ol> |
---|
194 | |
---|
195 | <li> |
---|
196 | When a <code>Pythia</code> object <code>pythia</code> is created, the |
---|
197 | <code>pythia.particleData</code> member is asked to scan the |
---|
198 | <code>ParticleData.xml</code> file. |
---|
199 | |
---|
200 | <p/> |
---|
201 | All lines beginning with <code><particle</code> are scanned for |
---|
202 | information on a particle species, and all lines beginning with |
---|
203 | <code><channel</code> are assumed to contain a decay channel of the |
---|
204 | enclosing particle. In both cases XML syntax is used, with attributes |
---|
205 | used to identify the stored properties, and with omitted properties |
---|
206 | defaulting back to 0 where meaningful. The particle and channel |
---|
207 | information may be split over several lines, up to the > endtoken. |
---|
208 | The format of a <code><particle</code> tag is: |
---|
209 | <pre> |
---|
210 | <particle id="..." name="..." antiName="..." spinType="..." chargeType="..." colType="..." |
---|
211 | m0="..." mWidth="..." mMin="..." mMax="..." tau0="..."> |
---|
212 | </particle> |
---|
213 | </pre> |
---|
214 | where the fields are the properties already introduced above. |
---|
215 | Note that <code>isResonance</code>, <code>mayDecay</code>, |
---|
216 | <code>doExternalDecay</code>, <code>isVisible</code> and |
---|
217 | <code>doForceWidth</code> are not set here, but are provided with |
---|
218 | default values by the rules described above. Once initialized, also |
---|
219 | these latter properties can be changed, see below.<br/> |
---|
220 | |
---|
221 | The format of a <code><channel></code> tag is: |
---|
222 | <pre> |
---|
223 | <channel onMode="..." bRatio="..." meMode="..." products="..." /> |
---|
224 | </pre> |
---|
225 | again see properties above. The products are given as a blank-separated |
---|
226 | list of <code>id</code> codes. |
---|
227 | <br/><b>Important</b>: the values in the <code>.xml</code> file should not |
---|
228 | be changed, except by the PYTHIA authors. Any changes should be done |
---|
229 | with the help of the methods described below. |
---|
230 | </li> |
---|
231 | |
---|
232 | <li> <p/> |
---|
233 | Between the creation of the <code>Pythia</code> object and the |
---|
234 | <code>init</code> call for it, you may use the methods of the |
---|
235 | <code>ParticleData</code> class to modify some of the default values. |
---|
236 | Several different approaches can be chosen for this. |
---|
237 | |
---|
238 | <p/> |
---|
239 | a) Inside your main program you can directly set values with |
---|
240 | <pre> |
---|
241 | pythia.readString(string); |
---|
242 | </pre> |
---|
243 | where both the variable name and the value are contained inside |
---|
244 | the character string, separated by blanks and/or a =, e.g. |
---|
245 | <pre> |
---|
246 | pythia.readString("111:mayDecay = off"); |
---|
247 | </pre> |
---|
248 | switches off the decays of the <i>pi^0</i>.<br/> |
---|
249 | |
---|
250 | The particle id (> 0) and the property to be changed must be given, |
---|
251 | separated by a colon.<br/> |
---|
252 | |
---|
253 | The allowed properties are: <code>name</code>, <code>antiName</code>, |
---|
254 | <code>spinType</code>, <code>chargeType</code>, <code>colType</code>, |
---|
255 | <code>m0</code>, <code>mWidth</code>, <code>mMin</code>, |
---|
256 | <code>mMax</code>, <code>tau0</code>, <code>isResonance</code>, |
---|
257 | <code>mayDecay</code>, <code>doExternalDecay</code>, |
---|
258 | <code>isVisible</code> and <code>doForceWidth</code>. All of these |
---|
259 | names are case-insensitive. Names that do not match an existing |
---|
260 | variable are ignored.<br/> |
---|
261 | |
---|
262 | Strings beginning with a non-alphanumeric character, like # or !, |
---|
263 | are assumed to be comments and are not processed at all. For |
---|
264 | <code>bool</code> values, the following notation may be used |
---|
265 | interchangeably: <code>true = on = yes = ok = 1</code>, while everything |
---|
266 | else gives <code>false</code> (including but not limited to |
---|
267 | <code>false</code>, <code>off</code>, <code>no</code> and |
---|
268 | <code>0</code>). |
---|
269 | |
---|
270 | <p/> |
---|
271 | Particle data often comes in sets of closely related information. |
---|
272 | Therefore some properties expect the value to consist of several |
---|
273 | numbers. These can then be separated by blanks (or by commas). |
---|
274 | A simple example is <code>names</code>, which expects both the |
---|
275 | name and antiname to be given. A more interesting one is the |
---|
276 | <code>all</code> property, |
---|
277 | <pre> |
---|
278 | id:all = name antiName spinType chargeType colType m0 mWidth mMin mMax tau0 |
---|
279 | </pre> |
---|
280 | where all the current information on the particle itself is replaced, |
---|
281 | but any decay channels are kept unchanged. Using <code>new</code> instead |
---|
282 | of <code>all</code> also removes any previous decay channels. |
---|
283 | If the string contains fewer fields than expected the trailing |
---|
284 | properties are set to vanish ("void", 0 or 0.). Note that such a |
---|
285 | truncated string should not be followed by a comment, since this |
---|
286 | comment would then be read in as if it contained the missing properties. |
---|
287 | The truncation can be done anywhere, specifically a string with only |
---|
288 | <code>id:new</code> defines a new "empty" particle. |
---|
289 | As before, <code>isResonance</code>, <code>mayDecay</code>, |
---|
290 | <code>doExternalDecay</code>, <code>isVisible</code> and |
---|
291 | <code>doForceWidth</code> are (re)set to their default values, and |
---|
292 | would have to be changed separately if required. |
---|
293 | |
---|
294 | <p/> |
---|
295 | A further command is <code>rescaleBR</code>, which rescales each of the |
---|
296 | existing branching ratios with a common factor, such that their new |
---|
297 | sum is the provided value. This may be a first step towards adding |
---|
298 | new decay channels, see further below. |
---|
299 | |
---|
300 | <p/> |
---|
301 | Alternatively the <code>id</code> code may be followed by another integer, |
---|
302 | which then gives the decay channel number. This then has to be |
---|
303 | followed by the property specific to this channel, either |
---|
304 | <code>onMode</code>, <code>bRatio</code>, <code>meMode</code> or |
---|
305 | <code>products</code>. In the latter case all the products of |
---|
306 | the channel should be given: |
---|
307 | <pre> |
---|
308 | id:channel:products = product1 product2 .... |
---|
309 | </pre> |
---|
310 | The line will be scanned until the end of the line, or until a |
---|
311 | non-number word is encountered, or until the maximum allowed number |
---|
312 | of eight products is encountered, whichever happens first. (Thus the |
---|
313 | multiplicity of a decay channel need not be input; it is automatically |
---|
314 | calculated from the products list.) It is also possible to replace all |
---|
315 | the properties of a channel in a similar way: |
---|
316 | <pre> |
---|
317 | id:channel:all = onMode bRatio meMode product1 product2 .... |
---|
318 | </pre> |
---|
319 | To add a new channel at the end, use |
---|
320 | <pre> |
---|
321 | id:addChannel = onMode bRatio meMode product1 product2 .... |
---|
322 | </pre> |
---|
323 | |
---|
324 | <p/> |
---|
325 | It is currently not possible to remove a channel selectively, but |
---|
326 | setting its branching ratio vanishing is as effective. If you want to |
---|
327 | remove all existing channels and force decays into one new channel |
---|
328 | you can use |
---|
329 | <pre> |
---|
330 | id:oneChannel = onMode bRatio meMode product1 product2 .... |
---|
331 | </pre> |
---|
332 | A first <code>oneChannel</code> command could be followed by |
---|
333 | several subsequent <code>addChannel</code> ones, to build |
---|
334 | up a completely new decay table for an existing particle. |
---|
335 | |
---|
336 | <p/> |
---|
337 | When adding new channels or changing branching ratios in general, |
---|
338 | note that, once a particle is to be decayed, the sum of branching |
---|
339 | ratios is always rescaled to unity. Beforehand, <code>rescaleBR</code> |
---|
340 | may be used to rescale an existing branching ratio by the given factor. |
---|
341 | |
---|
342 | <p/> |
---|
343 | There are a few commands that will study all the decay channels of the |
---|
344 | given particle, to switch them on or off as desired. The |
---|
345 | <pre> |
---|
346 | id:onMode = onMode |
---|
347 | </pre> |
---|
348 | will set the <code>onMode</code> property of all channels to the |
---|
349 | desired value. The |
---|
350 | <pre> |
---|
351 | id:offIfAny = product1 product2 .... |
---|
352 | id:onIfAny = product1 product2 .... |
---|
353 | id:onPosIfAny = product1 product2 .... |
---|
354 | id:onNegIfAny = product1 product2 .... |
---|
355 | </pre> |
---|
356 | will set the <code>onMode</code> 0, 1, 2 or 3, respectively, for all |
---|
357 | channels which contain any of the enumerated products, where the matching |
---|
358 | to these products is done without distinction of particles and |
---|
359 | antiparticles. Note that "<code>Pos</code>" and "<code>Neg</code>" |
---|
360 | are slightly misleading since it refers to the particle and antiparticle |
---|
361 | of the <code>id</code> species rather than charge, but should still be |
---|
362 | simpler to remember and understand than alternative notations. |
---|
363 | Correspondingly |
---|
364 | <pre> |
---|
365 | id:offIfAll = product1 product2 .... |
---|
366 | id:onIfAll = product1 product2 .... |
---|
367 | id:onPosIfAll = product1 product2 .... |
---|
368 | id:onNegIfAll = product1 product2 .... |
---|
369 | </pre> |
---|
370 | will set the <code>onMode</code> 0, 1, 2 or 3, respectively, for all |
---|
371 | channels which contain all of the enumerated products, again without |
---|
372 | distinction of particles and antiparticles. If the same product appears |
---|
373 | twice in the list it must also appear twice in the decay channel, and |
---|
374 | so on. The decay channel is allowed to contain further particles, |
---|
375 | beyond the product list. By contrast, |
---|
376 | <pre> |
---|
377 | id:offIfMatch = product1 product2 .... |
---|
378 | id:onIfMatch = product1 product2 .... |
---|
379 | id:onPosIfMatch = product1 product2 .... |
---|
380 | id:onPosIfMatch = product1 product2 .... |
---|
381 | </pre> |
---|
382 | requires the decay-channel multiplicity to agree with that of the product |
---|
383 | list, but otherwise works as the <code>onIfAll/offIfAll</code> methods. |
---|
384 | |
---|
385 | <p/> |
---|
386 | Note that the action of several of the commands depends on the order |
---|
387 | in which they are executed, as one would logically expect. For instance, |
---|
388 | <code>id:oneChannel</code> removes all decay channels of <code>id</code> |
---|
389 | and thus all previous changes in this decay table, while subsequent |
---|
390 | additions or changes would still take effect. Another example would be that |
---|
391 | <code>23:onMode = off</code> followed by <code>23:onIfAny = 1 2 3 4 5</code> |
---|
392 | would let the <i>Z^0</i> decay to quarks, while no decays would be |
---|
393 | allowed if the order were to be reversed. |
---|
394 | |
---|
395 | <p/> |
---|
396 | b) The <code>Pythia</code> <code>readString(string)</code> method actually |
---|
397 | does not do changes itself, but sends on the string either to the |
---|
398 | <code>ParticleData</code> class or to the <code>Settings</code> one, |
---|
399 | depending on whether the string begins with a digit or a letter. |
---|
400 | If desired, it is possible to communicate directly with the corresponding |
---|
401 | <code>ParticleData</code> method: |
---|
402 | <pre> |
---|
403 | pythia.particleData.readString("111:mayDecay = off"); |
---|
404 | pythia.particleData.readString("15:2:products = 16 -211"); |
---|
405 | </pre> |
---|
406 | In this case, changes intended for <code>Settings</code> would not be |
---|
407 | understood. |
---|
408 | |
---|
409 | <p/> |
---|
410 | c) Underlying this are commands for all the individual properties in |
---|
411 | the <code>ParticleData</code> class, one for each. These are |
---|
412 | further described below. Thus, an example now reads |
---|
413 | <pre> |
---|
414 | pythia.particleData.mayDecay(111, false); |
---|
415 | </pre> |
---|
416 | Boolean values should here be given as <code>true</code> or |
---|
417 | <code>false</code>. |
---|
418 | |
---|
419 | <p/> |
---|
420 | d) A simpler and more useful way is to collect all your changes |
---|
421 | in a separate file, with one line per change, e.g. |
---|
422 | <pre> |
---|
423 | 111:mayDecay = off |
---|
424 | </pre> |
---|
425 | The file can be read by the |
---|
426 | <pre> |
---|
427 | pythia.readFile(fileName); |
---|
428 | </pre> |
---|
429 | method, where <code>fileName</code> is a string, e.g. |
---|
430 | <code>pythia.readFile("main.cmnd")</code> (or an <code>istream</code> |
---|
431 | instead of a <code>fileName</code>). Each line is processed as |
---|
432 | described for the string in 2a). This file can freely mix commands to |
---|
433 | the <code>Settings</code> and <code>ParticleData</code> classes. |
---|
434 | </li> |
---|
435 | |
---|
436 | <li> <p/> |
---|
437 | A routine <code>reInit(fileName)</code> is provided, and can be used to |
---|
438 | zero the particle data table and reinitialize it from scratch. |
---|
439 | Such a call might be useful if several subruns are to be made with |
---|
440 | widely different particle data - normally the maps are only built |
---|
441 | from scratch once, namely when the <code>Pythia()</code> object is |
---|
442 | created. Also, there is no other possibility to restore the default |
---|
443 | values, unlike for the settings. |
---|
444 | </li> |
---|
445 | |
---|
446 | <li> <p/> |
---|
447 | You may at any time obtain a listing of all the particle data by calling |
---|
448 | <pre> |
---|
449 | pythia.particleData.listAll(); |
---|
450 | </pre> |
---|
451 | The listing is by increasing <code>id</code> number. It shows the basic |
---|
452 | quantities introduced above. Some are abbreviated in the header to fit on |
---|
453 | the lines: <code>spn = spinType</code>, <code>chg = chargeType</code>, |
---|
454 | <code>col = colType</code>, <code>res = isResonance</code>, |
---|
455 | <code>dec = mayDecay && canDecay</code> (the latter checks that decay |
---|
456 | channels have been defined), <code>ext = doExternalDecay</code>, |
---|
457 | <code>vis = isVisible</code> and <code>wid = doForceWidth</code>.<br/> |
---|
458 | |
---|
459 | To list only those particles that were changed (one way or another, the |
---|
460 | listing will not tell what property or decay channel was changed), instead use |
---|
461 | <pre> |
---|
462 | pythia.particleData.listChanged(); |
---|
463 | </pre> |
---|
464 | (This info is based on a further <code>hasChanged</code> flag of a particle |
---|
465 | or a channel, set <code>true</code> whenever any of the changing methods are |
---|
466 | used. It is possible to manipulate this value, but this is not recommended.) |
---|
467 | By default the internal initialization of the widths of resonances such as |
---|
468 | <i>gamma^*/Z^0, W^+-, t/tbar, H^0</i> do not count as changes; if you want |
---|
469 | to list also those changes instead call <code>listChanged(true)</code>. |
---|
470 | <br/> |
---|
471 | |
---|
472 | To list only one particle, give its <code>id</code> code as argument to |
---|
473 | the <code>list(...)</code> function.. To list a restricted set of particles, |
---|
474 | give in their <code>id</code> codes to <code>list(...)</code> as a |
---|
475 | <code>vector<int></code>. |
---|
476 | </li> |
---|
477 | |
---|
478 | <li> <p/> |
---|
479 | For wholesale changes of particle properties all available data can be |
---|
480 | written out, edited, and then read back in again. These methods are |
---|
481 | mainly intended for expert users. You can choose between two alternative |
---|
482 | syntaxes. |
---|
483 | |
---|
484 | <p/> |
---|
485 | a) XML syntax, using the <code><particle</code> and |
---|
486 | <code><channel</code> lines already described. You use the method |
---|
487 | <code>particleData.listXML(fileName)</code> to produce such an XML |
---|
488 | file and <code>particleData.readXML(fileName)</code> to read it back |
---|
489 | in after editing. |
---|
490 | |
---|
491 | <p/> |
---|
492 | b) Fixed/free format, using exactly the same information as illustrated |
---|
493 | for the <code><particle</code> and <code><channel</code> lines |
---|
494 | above, but now without any tags. This means that all information fields |
---|
495 | must be provided (if there is no antiparticle then write |
---|
496 | <code>void</code>), in the correct order (while the order is irrelevant |
---|
497 | with XML syntax), and all on one line. Information is written out in |
---|
498 | properly lined-up columns, but the reading is done using free format, |
---|
499 | so fields need only be separated by at least one blank. Each new particle |
---|
500 | is supposed to be separated by (at least) one blank line, whereas no |
---|
501 | blank lines are allowed between the particle line and the subsequent |
---|
502 | decay channel lines, if any. You use the method |
---|
503 | <code>particleData.listFF(fileName)</code> to produce such a fixed/free |
---|
504 | file and <code>particleData.readFF(fileName)</code> to read it back |
---|
505 | in after editing. |
---|
506 | |
---|
507 | <p/> |
---|
508 | As an alternative to the <code>readXML</code> and <code>readFF</code> |
---|
509 | methods you can also use the |
---|
510 | <code>particleData.reInit(fileName, xmlFormat)</code> method, where |
---|
511 | <code>xmlFormat = true</code> (default) corresponds to reading an XML |
---|
512 | file and <code>xmlFormat = false</code> to a fixed/free format one. |
---|
513 | |
---|
514 | <p/> |
---|
515 | To check that the new particle and decay tables makes sense, you can use |
---|
516 | the <code>particleData.checkTable()</code> method, either directly or by |
---|
517 | switching it on among the standard |
---|
518 | <a href="ErrorChecks.html" target="page">error checks</a>. |
---|
519 | </li> |
---|
520 | |
---|
521 | </ol> |
---|
522 | |
---|
523 | <h2>The public methods</h2> |
---|
524 | |
---|
525 | In the following we present briefly the public methods in the three |
---|
526 | classes used to build up the particle database. The order |
---|
527 | is top-down, i.e from the full table of all particles to a single |
---|
528 | particle to a single channel. |
---|
529 | Note that these methods usually are less elegant and safe than the |
---|
530 | input methods outlined above. If you use any of these methods, it is |
---|
531 | likely to be the ones in the full database, i.e. the first ones to be |
---|
532 | covered in the following. |
---|
533 | |
---|
534 | <p/> |
---|
535 | For convenience, we have grouped related input and output methods |
---|
536 | together. It should be obvious from the context which is which: |
---|
537 | the input is of type <code>void</code> and has an extra last argument, |
---|
538 | namely is the input value, while the output method returns a |
---|
539 | quantity of the expected type. |
---|
540 | |
---|
541 | <h3>The ParticleData methods</h3> |
---|
542 | |
---|
543 | <a name="method1"></a> |
---|
544 | <p/><strong>ParticleData::ParticleData() </strong> <br/> |
---|
545 | the constructor has no arguments and does not do anything. Internal. |
---|
546 | |
---|
547 | |
---|
548 | <a name="method2"></a> |
---|
549 | <p/><strong>void ParticleData::initPtr(Info* infoPtr,Settings* settingsPtrIn, Rndm* rndmPtrIn, CoupSM* coupSMPtrIn) </strong> <br/> |
---|
550 | initialize pointers to a few other classes. Internal. |
---|
551 | |
---|
552 | |
---|
553 | <a name="method3"></a> |
---|
554 | <p/><strong>bool ParticleData::init(string startFile = "../xmldoc/ParticleData.xml") </strong> <br/> |
---|
555 | read in an XML-style file with particle data and initialize the |
---|
556 | particle data tables accordingly. This command is executed |
---|
557 | in the <code>Pythia</code> constructor, i.e. is mainly for |
---|
558 | internal use. |
---|
559 | <br/><code>argument</code><strong> startFile </strong> (<code>default = <strong>../xmldoc/ParticleData.xml</strong></code>) : |
---|
560 | the name of the data file to be read. When called from the |
---|
561 | <code>Pythia</code> constructor the directory is provided by the |
---|
562 | <code><a href="ProgramFlow.html" target="page">PYTHIA8DATA</a></code> |
---|
563 | environment variable, if set, else by the argument of this constructor, |
---|
564 | which has the default value "../xmldoc". |
---|
565 | |
---|
566 | |
---|
567 | |
---|
568 | <a name="method4"></a> |
---|
569 | <p/><strong>bool ParticleData::reInit(string startFile,bool xmlFormat = true) </strong> <br/> |
---|
570 | overwrite the existing database by reading from the specified file. |
---|
571 | Unlike <code>init</code> above this method is not called by the |
---|
572 | <code>Pythia</code> constructor, but is entirely intended for users |
---|
573 | who want to replace the existing particle data with their own. |
---|
574 | <br/><code>argument</code><strong> startFile </strong> : the path and name of file to be read. |
---|
575 | |
---|
576 | <br/><code>argument</code><strong> xmlFormat </strong> : if true read the same kind of XML-style file |
---|
577 | as used by <code>init</code>, if not use an alternative "free format" |
---|
578 | file (i.e. without any XML tags, but with well-defined rules |
---|
579 | specifying in which order properties are stored). |
---|
580 | |
---|
581 | |
---|
582 | |
---|
583 | <a name="method5"></a> |
---|
584 | <p/><strong>void ParticleData::initWidths(vector<ResonanceWidths*> resonancePtrs) </strong> <br/> |
---|
585 | initialize Breit-Wigner shape parameters for all particles, |
---|
586 | and the detailed handling of resonances, i.e. particles with |
---|
587 | perturbatively calculable partial widths, which can be used to |
---|
588 | obtain a mass-dependent Breit-Wigner and a dynamic choice of |
---|
589 | decay channels. Called from <code>Pythia::init()</code>. |
---|
590 | |
---|
591 | |
---|
592 | <a name="method6"></a> |
---|
593 | <p/><strong>bool ParticleData::readXML(string inFile, bool reset = true) </strong> <br/> |
---|
594 | |
---|
595 | <strong>void ParticleData::listXML(string outFile) </strong> <br/> |
---|
596 | read in XML-style data from a file or write it out to a file. For the |
---|
597 | former one can also decide whether to reset all particles to scratch, |
---|
598 | or only overwrite those particles in the file. The former method is |
---|
599 | used by <code>init</code> and <code>reInit</code> above. |
---|
600 | |
---|
601 | |
---|
602 | <a name="method7"></a> |
---|
603 | <p/><strong>bool ParticleData::readFF(string inFile, bool reset = true) </strong> <br/> |
---|
604 | |
---|
605 | <strong>void ParticleData::listFF(string outFile) </strong> <br/> |
---|
606 | read in free-format-style data from a file or write it out to a file. |
---|
607 | For the former one can also decide whether to reset all particles to |
---|
608 | scratch, or only overwrite those particles in the file. The former |
---|
609 | method is used by <code>reInit</code> above. |
---|
610 | |
---|
611 | |
---|
612 | <a name="method8"></a> |
---|
613 | <p/><strong>bool ParticleData::readString(string line, bool warn = true, ostream& os = cout) </strong> <br/> |
---|
614 | read in a string and interpret is as a new or changed particle data. |
---|
615 | The possibilities are extensively described above. It is normally |
---|
616 | used indirectly, via <code>Pythia::readString(...)</code> and |
---|
617 | <code>Pythia::readFile(...)</code>. |
---|
618 | <br/><code>argument</code><strong> line </strong> : |
---|
619 | the string to be interpreted as an instruction. |
---|
620 | |
---|
621 | <br/><code>argument</code><strong> warn </strong> (<code>default = <strong>true</strong></code>) : |
---|
622 | write a warning message or not whenever the instruction does not make |
---|
623 | sense, e.g. if the particle does not exist in the database. |
---|
624 | |
---|
625 | <br/><code>argument</code><strong> os </strong> (<code>default = <strong>cout</strong></code>) : |
---|
626 | stream for error printout. |
---|
627 | |
---|
628 | <br/><b>Note:</b> the method returns false if it fails to |
---|
629 | make sense out of the input string. |
---|
630 | |
---|
631 | |
---|
632 | <a name="method9"></a> |
---|
633 | <p/><strong>void ParticleData::listAll(ostream& os = cout) </strong> <br/> |
---|
634 | |
---|
635 | <strong>void ParticleData::listChanged(ostream& os = cout) </strong> <br/> |
---|
636 | |
---|
637 | <strong>void ParticleData::listChangedAndRes(ostream& os = cout) </strong> <br/> |
---|
638 | |
---|
639 | <strong>void ParticleData::list(bool changedOnly = false, bool changedRes = true, ostream& os = cout) </strong> <br/> |
---|
640 | methods intended to present a listing of particle data in a readable |
---|
641 | format. The first three are special cases of the fourth. The first |
---|
642 | lists all particle data, the second only data for those particles that |
---|
643 | were changed after the original creation of the particle data table. |
---|
644 | Resonances are a special case since they can get their data changed |
---|
645 | by being linked to an object that does the calculation of branching |
---|
646 | ratios. The second method does not count such resonances as changed, |
---|
647 | whereas the third does and thus lists all resonances. |
---|
648 | |
---|
649 | |
---|
650 | <a name="method10"></a> |
---|
651 | <p/><strong>void ParticleData::list(int idList, ostream& os = cout) </strong> <br/> |
---|
652 | |
---|
653 | <strong>void ParticleData::list(vector<int> idList, ostream& os = cout) </strong> <br/> |
---|
654 | list particle data for one single particle, with the identity code as |
---|
655 | input, or for a set of particles, with an input vector of identity codes. |
---|
656 | |
---|
657 | |
---|
658 | <a name="method11"></a> |
---|
659 | <p/><strong>void ParticleData::checkTable(ostream& os = cout) </strong> <br/> |
---|
660 | |
---|
661 | <strong>void ParticleData::checkTable(int verbosity,ostream& os = cout) </strong> <br/> |
---|
662 | check that the particle decay table makes sense, especially for decays. |
---|
663 | <br/><code>argument</code><strong> verbosity </strong> : level of checks. 0 is only mininal, |
---|
664 | e.g. if a particle has no open decay channels. 1, which is the level |
---|
665 | of the first method, provides warning if any individual channel is |
---|
666 | closed, except for resonances. 2 also prints the |
---|
667 | branching-ratio-averaged threshold mass. 11 and 12 are like 1 and 2, |
---|
668 | but also include resonances in the detailed checks. |
---|
669 | |
---|
670 | |
---|
671 | |
---|
672 | <a name="method12"></a> |
---|
673 | <p/><strong>void ParticleData::addParticle(int id, string name = " ", int spinType = 0, int chargeType = 0, int colType = 0, double m0 = 0., double mWidth = 0., double mMin = 0., double mMax = 0., double tau0 = 0.) </strong> <br/> |
---|
674 | |
---|
675 | <strong>void ParticleData::addParticle(int id, string name, string antiName, int spinType = 0, int chargeType = 0, int colType = 0, double m0 = 0., double mWidth = 0., double mMin = 0., double mMax = 0., double tau0 = 0.) </strong> <br/> |
---|
676 | add a particle to the decay table; in the first form a partcle which is |
---|
677 | its own antiparticle, in the second where a separate antiparticle exists. |
---|
678 | |
---|
679 | |
---|
680 | <a name="method13"></a> |
---|
681 | <p/><strong>void ParticleData::setAll(int id, string name, string antiName, int spinType = 0, int chargeType = 0, int colType = 0, double m0 = 0., double mWidth = 0., double mMin = 0., double mMax = 0.,double tau0 = 0.) </strong> <br/> |
---|
682 | change all the properties of the particle associated with a given |
---|
683 | identity code. |
---|
684 | |
---|
685 | |
---|
686 | <a name="method14"></a> |
---|
687 | <p/><strong>bool ParticleData::isParticle(int id) </strong> <br/> |
---|
688 | query whether the particle data table contains the particle of the |
---|
689 | identity code. |
---|
690 | |
---|
691 | |
---|
692 | <a name="method15"></a> |
---|
693 | <p/><strong>int ParticleData::nextId(int id) </strong> <br/> |
---|
694 | return the identity code of the sequentially next particle stored in table. |
---|
695 | |
---|
696 | |
---|
697 | <a name="method16"></a> |
---|
698 | <p/><strong>bool ParticleData::hasAnti(int id) </strong> <br/> |
---|
699 | bool whether a distinct antiparticle exists or not. Is true if an |
---|
700 | antiparticle name has been set (and is different from |
---|
701 | <code>void</code>). |
---|
702 | |
---|
703 | |
---|
704 | <a name="method17"></a> |
---|
705 | <p/><strong>void ParticleData::name(int id, string name) </strong> <br/> |
---|
706 | |
---|
707 | <strong>void ParticleData::antiName(int id, string antiName) </strong> <br/> |
---|
708 | |
---|
709 | <strong>void ParticleData::names(int id, string name, string antiName) </strong> <br/> |
---|
710 | |
---|
711 | <strong>string ParticleData::name(int id) </strong> <br/> |
---|
712 | particle and antiparticle names are stored separately, the sign of |
---|
713 | <code>id</code> determines which of the two is returned, with |
---|
714 | <code>void</code> used to indicate the absence of an antiparticle. |
---|
715 | |
---|
716 | |
---|
717 | <a name="method18"></a> |
---|
718 | <p/><strong>void ParticleData::spinType(int id, int spinType) </strong> <br/> |
---|
719 | |
---|
720 | <strong>int ParticleData::spinType(int id) </strong> <br/> |
---|
721 | the spin type, of the form <i>2 s + 1</i>, with special code 0 |
---|
722 | for entries of unknown or indeterminate spin. |
---|
723 | |
---|
724 | |
---|
725 | <a name="method19"></a> |
---|
726 | <p/><strong>void ParticleData::chargeType(int id, int chargeType) </strong> <br/> |
---|
727 | |
---|
728 | <strong>int ParticleData::chargeType(int id) </strong> <br/> |
---|
729 | three times the charge (to make it an integer), taking into account |
---|
730 | the sign of <code>id</code>. |
---|
731 | |
---|
732 | |
---|
733 | <a name="method20"></a> |
---|
734 | <p/><strong>double ParticleData::charge(int id) </strong> <br/> |
---|
735 | the electrical charge of a particle, equal to |
---|
736 | <code>chargeType(id)/3</code>. |
---|
737 | |
---|
738 | |
---|
739 | <a name="method21"></a> |
---|
740 | <p/><strong>void ParticleData::colType(int id, int colType) </strong> <br/> |
---|
741 | |
---|
742 | <strong>int ParticleData::colType(int id) </strong> <br/> |
---|
743 | the colour type, with 0 uncoloured, 1 triplet, -1 antitriplet and 2 |
---|
744 | octet, taking into account the sign of <code>id</code>. |
---|
745 | |
---|
746 | |
---|
747 | <a name="method22"></a> |
---|
748 | <p/><strong>void ParticleData::m0(int id, double m0) </strong> <br/> |
---|
749 | |
---|
750 | <strong>double ParticleData::m0(int id) </strong> <br/> |
---|
751 | the nominal mass <i>m_0</i> (in GeV). |
---|
752 | |
---|
753 | |
---|
754 | <a name="method23"></a> |
---|
755 | <p/><strong>void ParticleData::mWidth(int id, double mWidth) </strong> <br/> |
---|
756 | |
---|
757 | <strong>double ParticleData::mWidth(int id) </strong> <br/> |
---|
758 | the width <i>Gamma</i> of the Breit-Wigner distribution (in GeV). |
---|
759 | |
---|
760 | |
---|
761 | <a name="method24"></a> |
---|
762 | <p/><strong>void ParticleData::mMin(int id, double mMin) </strong> <br/> |
---|
763 | |
---|
764 | <strong>double ParticleData::mMin(int id) </strong> <br/> |
---|
765 | the lower limit of the allowed mass range generated by the Breit-Wigner |
---|
766 | (in GeV). Has no meaning for particles without width, and would |
---|
767 | typically be 0 there. |
---|
768 | |
---|
769 | |
---|
770 | <a name="method25"></a> |
---|
771 | <p/><strong>void ParticleData::mMax(int id, double mMax) </strong> <br/> |
---|
772 | |
---|
773 | <strong>double ParticleData::mMax(int id) </strong> <br/> |
---|
774 | the upper limit of the allowed mass range generated by the Breit-Wigner |
---|
775 | (in GeV). If <i>mMax < mMin</i> then no upper limit is imposed. |
---|
776 | Has no meaning for particles without width, and would typically |
---|
777 | be 0 there. |
---|
778 | |
---|
779 | |
---|
780 | <a name="method26"></a> |
---|
781 | <p/><strong>double ParticleData::m0Min(int id) </strong> <br/> |
---|
782 | similar to <code>mMin()</code> above, except that for particles with |
---|
783 | no width the <code>m0(id)</code> value is returned. |
---|
784 | |
---|
785 | |
---|
786 | <a name="method27"></a> |
---|
787 | <p/><strong>double ParticleData::m0Max(int id) </strong> <br/> |
---|
788 | similar to <code>mMax()</code> above, except that for particles with |
---|
789 | no width the <code>m0(id)</code> value is returned. |
---|
790 | |
---|
791 | |
---|
792 | <a name="method28"></a> |
---|
793 | <p/><strong>void ParticleData::tau0(int id, double tau0) </strong> <br/> |
---|
794 | |
---|
795 | <strong>double ParticleData::tau0(int id) </strong> <br/> |
---|
796 | the nominal proper lifetime <i>tau_0</i> (in mm/c). |
---|
797 | |
---|
798 | |
---|
799 | <a name="method29"></a> |
---|
800 | <p/><strong>void ParticleData::isResonance(int id, bool isResonance) </strong> <br/> |
---|
801 | |
---|
802 | <strong>bool ParticleData::isResonance(int id) </strong> <br/> |
---|
803 | a flag telling whether a particle species are considered as a resonance |
---|
804 | or not. Here <a href="ResonanceDecays.html" target="page">"resonance"</a> |
---|
805 | is used as shorthand for any massive particle |
---|
806 | where the decay process should be counted as part of the hard process |
---|
807 | itself, and thus be performed before showers and other event aspects |
---|
808 | are added. Restrictions on allowed decay channels is also directly |
---|
809 | reflected in the cross section of simulated processes, while those of |
---|
810 | normal hadrons and other light particles are not. |
---|
811 | In practice, it is reserved for states above the <i>b bbar</i> |
---|
812 | bound systems in mass, i.e. for <i>W, Z, t</i>, Higgs states, |
---|
813 | supersymmetric states and (most?) other states in any new theory. |
---|
814 | All particles with <code>m0</code> above 20 GeV are by default |
---|
815 | initialized to be considered as resonances. |
---|
816 | |
---|
817 | |
---|
818 | <a name="method30"></a> |
---|
819 | <p/><strong>void ParticleData::mayDecay(int id, bool mayDecay) </strong> <br/> |
---|
820 | |
---|
821 | <strong>bool ParticleData::mayDecay(int id) </strong> <br/> |
---|
822 | a flag telling whether a particle species may decay or not, offering |
---|
823 | the main user switch. Whether a given particle of this kind then actually |
---|
824 | will decay also depends on it having allowed decay channels, and on |
---|
825 | other flags for <a href="ParticleDecays.html" target="page">particle decays</a>. |
---|
826 | All particles with <code>tau0</code> below 1000 mm are |
---|
827 | by default initialized to allow decays. |
---|
828 | |
---|
829 | |
---|
830 | <a name="method31"></a> |
---|
831 | <p/><strong>void ParticleData::doExternalDecays(int id, bool doExternalDecays) </strong> <br/> |
---|
832 | |
---|
833 | <strong>bool ParticleData::doExternalDecay(int id) </strong> <br/> |
---|
834 | a flag telling whether a particle should be handled by an external |
---|
835 | decay package or not, with the latter default. Can be manipulated as |
---|
836 | described on this page, but should normally not be. Instead the |
---|
837 | <code><a href="ExternalDecays.html" target="page">pythia.decayPtr</a></code> |
---|
838 | method should be provided with the list of relevant particles. |
---|
839 | |
---|
840 | |
---|
841 | <a name="method32"></a> |
---|
842 | <p/><strong>void ParticleData::isVisible(int id, bool isVisible) </strong> <br/> |
---|
843 | |
---|
844 | <strong>bool ParticleData::isVisible(int id) </strong> <br/> |
---|
845 | a flag telling whether a particle species is to be considered as |
---|
846 | visible in a detector or not, as used e.g. in analysis routines. |
---|
847 | By default this includes neutrinos and a few BSM particles |
---|
848 | (gravitino, sneutrinos, neutralinos) that have neither strong nor |
---|
849 | electromagnetic charge, and are not made up of constituents that |
---|
850 | have it. The value of this flag is only relevant if a particle is |
---|
851 | long-lived enough actually to make it to a detector. |
---|
852 | |
---|
853 | |
---|
854 | <a name="method33"></a> |
---|
855 | <p/><strong>void ParticleData::doForceWidth(int id, bool doForceWidth) </strong> <br/> |
---|
856 | |
---|
857 | <strong>bool ParticleData::doForceWidth(int id) </strong> <br/> |
---|
858 | a flag valid only for resonances where PYTHIA contains code to |
---|
859 | calculate the width of the resonance from encoded matrix-element |
---|
860 | expressions, i.e. the <i>Z^0</i>, <i>W^+-</i>, <i>t</i>, |
---|
861 | <i>h^0</i>, and a few more. The normal behaviour (<code>false</code>) |
---|
862 | is then that the width is calculated from the mass, but it is |
---|
863 | possible to <a href="ResonanceDecays.html" target="page">force</a> the resonance |
---|
864 | to retain the nominal width. Branching ratios and the running of the |
---|
865 | total width are unaffected. |
---|
866 | |
---|
867 | |
---|
868 | <a name="method34"></a> |
---|
869 | <p/><strong>void ParticleData::hasChanged(int id, bool hasChanged) </strong> <br/> |
---|
870 | |
---|
871 | <strong>bool ParticleData::hasChanged(int id) </strong> <br/> |
---|
872 | keep track of whether the data for a particle has been changed |
---|
873 | in any respect between initialization and the current status. |
---|
874 | Is used e.g. by the <code>listChanged</code> method to determine |
---|
875 | which particles to list. |
---|
876 | |
---|
877 | |
---|
878 | <a name="method35"></a> |
---|
879 | <p/><strong>bool ParticleData::useBreitWigner(int id) </strong> <br/> |
---|
880 | tells whether a particle will have a Breit-Wigner mass distribution or |
---|
881 | not. Is determined by an internal logic based on the particle width and |
---|
882 | on the value of the |
---|
883 | <code><a href="ParticleData.html" target="page">ParticleData:modeBreitWigner</a></code> |
---|
884 | switch. |
---|
885 | |
---|
886 | |
---|
887 | <a name="method36"></a> |
---|
888 | <p/><strong>double ParticleData::constituentMass(int id) </strong> <br/> |
---|
889 | is the constituent mass for a quark, hardcoded as |
---|
890 | <i>m_u = m_d = 0.325</i>, <i>m_s = 0.50</i>, <i>m_c = 1.60</i> |
---|
891 | and <i>m_b = 5.0</i> GeV, for a diquark the sum of quark constituent |
---|
892 | masses, and for everything else the same as the ordinary mass. |
---|
893 | |
---|
894 | |
---|
895 | <a name="method37"></a> |
---|
896 | <p/><strong>double ParticleData::mass(int id) </strong> <br/> |
---|
897 | returns a mass distributed according to a truncated Breit-Wigner, |
---|
898 | with parameters as described here. Is equal to <code>m0(id)</code> for |
---|
899 | particles without width. |
---|
900 | |
---|
901 | |
---|
902 | <a name="method38"></a> |
---|
903 | <p/><strong>double ParticleData::mRun(int id, double mH) </strong> <br/> |
---|
904 | calculate the running mass of species <code>id</code> when probed at a |
---|
905 | hard mass scale of <code>mH</code>. Only applied to obtain the |
---|
906 | running quark masses; for all other particle the normal fixed mass |
---|
907 | is used. |
---|
908 | |
---|
909 | |
---|
910 | <a name="method39"></a> |
---|
911 | <p/><strong>bool ParticleData::canDecay(int id) </strong> <br/> |
---|
912 | true for a particle with at least one decay channel defined. |
---|
913 | |
---|
914 | |
---|
915 | <a name="method40"></a> |
---|
916 | <p/><strong>bool ParticleData::isLepton(int id) </strong> <br/> |
---|
917 | true for a lepton or an antilepton (including neutrinos). |
---|
918 | |
---|
919 | |
---|
920 | <a name="method41"></a> |
---|
921 | <p/><strong>bool ParticleData::isQuark(int id) </strong> <br/> |
---|
922 | true for a quark or an antiquark. |
---|
923 | |
---|
924 | |
---|
925 | <a name="method42"></a> |
---|
926 | <p/><strong>bool ParticleData::isGluon(int id) </strong> <br/> |
---|
927 | true for a gluon. |
---|
928 | |
---|
929 | |
---|
930 | <a name="method43"></a> |
---|
931 | <p/><strong>bool ParticleData::isDiquark(int id) </strong> <br/> |
---|
932 | true for a diquark or antidiquark. |
---|
933 | |
---|
934 | |
---|
935 | <a name="method44"></a> |
---|
936 | <p/><strong>bool ParticleData::isParton() </strong> <br/> |
---|
937 | true for a gluon, a quark or antiquark up to the b (but excluding top), |
---|
938 | and a diquark or antidiquark consisting of quarks up to the b. |
---|
939 | |
---|
940 | |
---|
941 | <a name="method45"></a> |
---|
942 | <p/><strong>bool ParticleData::isHadron(int id) </strong> <br/> |
---|
943 | true for a hadron (made up out of normal quarks and gluons, |
---|
944 | i.e. not for R-hadrons and other exotic states). |
---|
945 | |
---|
946 | |
---|
947 | <a name="method46"></a> |
---|
948 | <p/><strong>bool ParticleData::isMeson(int id) </strong> <br/> |
---|
949 | true for a meson. |
---|
950 | |
---|
951 | |
---|
952 | <a name="method47"></a> |
---|
953 | <p/><strong>bool ParticleData::isBaryon(int id) </strong> <br/> |
---|
954 | true for a baryon or antibaryon. |
---|
955 | |
---|
956 | |
---|
957 | <a name="method48"></a> |
---|
958 | <p/><strong>bool ParticleData::isOctetHadron(int id) </strong> <br/> |
---|
959 | true for an intermediate hadron-like state with a colour octet charge |
---|
960 | as used in the colour octet model for |
---|
961 | <a href="OniaProcesses.html" target="page">onia</a> production. |
---|
962 | |
---|
963 | |
---|
964 | <a name="method49"></a> |
---|
965 | <p/><strong>int ParticleData::heaviestQuark(int id) </strong> <br/> |
---|
966 | extracts the heaviest quark or antiquark, i.e. one with largest |
---|
967 | <code>id</code> number, for a hadron. |
---|
968 | |
---|
969 | |
---|
970 | <a name="method50"></a> |
---|
971 | <p/><strong>int ParticleData::baryonNumberType(int id) </strong> <br/> |
---|
972 | is 1 for a quark, 2 for a diquark, 3 for a baryon, the same with a |
---|
973 | minus sign for antiparticles, and else zero. |
---|
974 | |
---|
975 | |
---|
976 | <a name="method51"></a> |
---|
977 | <p/><strong>void ParticleData::rescaleBR(int id, double newSumBR = 1.) </strong> <br/> |
---|
978 | rescales all partial branching ratios by a common factor, such that |
---|
979 | the sum afterward becomes <code>newSumBR</code>. |
---|
980 | |
---|
981 | |
---|
982 | <a name="method52"></a> |
---|
983 | <p/><strong>void setResonancePtr(int id, ResonanceWidths* resonancePtr) </strong> <br/> |
---|
984 | set a pointer for a particle kind to a <code>ResonanceWidths</code> object. |
---|
985 | This is done, from inside <code>ParticleData::initWidths</code>, only for |
---|
986 | resonances, i.e. for particles such as <i>Z^0</i>, <i>W^+-</i>, top, |
---|
987 | Higgs, and new unstable states beyond the Standard Model. The presence |
---|
988 | of such an object will allow a more dynamic calculation of partial and |
---|
989 | total widths, as illustrated by the following methods. |
---|
990 | |
---|
991 | |
---|
992 | <a name="method53"></a> |
---|
993 | <p/><strong>void ParticleData::resInit(int id) </strong> <br/> |
---|
994 | initialize the treatment of a resonance. |
---|
995 | |
---|
996 | |
---|
997 | <a name="method54"></a> |
---|
998 | <p/><strong>double ParticleData::resWidth(int id, double mHat, int idInFlav = 0, bool openOnly = false, bool setBR = false) </strong> <br/> |
---|
999 | calculate the total with for a resonance of a given current mass, |
---|
1000 | optionally including coupling to incoming flavour state (consider |
---|
1001 | the <i>gamma*/Z^0</i> combination), optionally excluding decay |
---|
1002 | channels that have been closed by the user, and optionally storing |
---|
1003 | the results in the normal decay table. |
---|
1004 | |
---|
1005 | |
---|
1006 | <a name="method55"></a> |
---|
1007 | <p/><strong>double ParticleData::resWidthOpen(int id, double mHat, int idInFlav = 0) </strong> <br/> |
---|
1008 | special case of <code>resWidth</code>, where only open channels are |
---|
1009 | included, but results are not stored in the normal decay table. |
---|
1010 | |
---|
1011 | |
---|
1012 | <a name="method56"></a> |
---|
1013 | <p/><strong>double ParticleData::resWidthStore(int id, double mHat, int idInFlav = 0) </strong> <br/> |
---|
1014 | special case of <code>resWidth</code>, where only open channels are |
---|
1015 | included, and results are stored in the normal decay table. |
---|
1016 | |
---|
1017 | |
---|
1018 | <a name="method57"></a> |
---|
1019 | <p/><strong>double ParticleData::resOpenFrac(int id1, int id2 = 0, int id3 = 0) </strong> <br/> |
---|
1020 | calculate the fraction of the full branching ratio that is left |
---|
1021 | open by the user choice of allowed decay channels. Can be applied |
---|
1022 | to a final state with up to three resonances. Since the procedure |
---|
1023 | is multiplicative, it would be easy to generalize also to more. |
---|
1024 | |
---|
1025 | |
---|
1026 | <a name="method58"></a> |
---|
1027 | <p/><strong>double ParticleData::resWidthRescaleFactor(int id) </strong> <br/> |
---|
1028 | the factor used to rescale all partial widths in case the total |
---|
1029 | width is being forced to a specific value by the user. |
---|
1030 | |
---|
1031 | |
---|
1032 | <a name="method59"></a> |
---|
1033 | <p/><strong>double ParticleData::resWidthChan(int id,double mHat, int idAbs1 = 0, int idAbs2 = 0) </strong> <br/> |
---|
1034 | special case to calculate one final-state width; currently only used |
---|
1035 | for Higgs decay to <i>q qbar</i>, <i>g g</i> or |
---|
1036 | <i>gamma gamma</i>. |
---|
1037 | |
---|
1038 | |
---|
1039 | <a name="method60"></a> |
---|
1040 | <p/><strong>ParticleDataEntry* ParticleData::particleDataEntryPtr(int id) </strong> <br/> |
---|
1041 | returns a pointer to the <code>ParticleDataEntry</code> object. |
---|
1042 | The methods in the next section can then be used to manipulate |
---|
1043 | this object. |
---|
1044 | |
---|
1045 | |
---|
1046 | <h3>The ParticleDataEntry methods</h3> |
---|
1047 | |
---|
1048 | Most of the methods that can be applied to a single |
---|
1049 | <code>ParticleDataEntry</code> object are almost identical with |
---|
1050 | those used above for the <code>ParticleData</code>, except |
---|
1051 | that the <code>id</code> argument is no longer needed to find |
---|
1052 | the right entry in the table. By and large, this makes direct |
---|
1053 | access to the <code>ParticleDataEntry</code> methods superfluous. |
---|
1054 | There are a few methods that are unique to each class, however. |
---|
1055 | Furthermore, to avoid some naming ambiguities, many methods that |
---|
1056 | set values begin with <code>set</code>. |
---|
1057 | |
---|
1058 | <a name="method61"></a> |
---|
1059 | <p/><strong>ParticleDataEntry::ParticleDataEntry(int id = 0, string name = " ", int spinType = 0, int chargeType = 0, int colType = 0, double m0 = 0., double mWidth = 0., double mMin = 0., double mMax = 0., double tau0 = 0.) </strong> <br/> |
---|
1060 | |
---|
1061 | <strong>ParticleDataEntry::ParticleDataEntry(int id, string name, string antiName, int spinType = 0, int chargeType = 0, int colType = 0, double m0 = 0., double mWidth = 0., double mMin = 0., double mMax = 0., double tau0 = 0.) </strong> <br/> |
---|
1062 | there are two alternative constructors, that both expect the |
---|
1063 | properties of a particle as input. The first assumes that there |
---|
1064 | is only one particle, thet latter that there is a |
---|
1065 | particle-antiparticle pair (but if the antiparticle name is |
---|
1066 | <code>void</code> one reverts back to the particle-only case). |
---|
1067 | |
---|
1068 | |
---|
1069 | <a name="method62"></a> |
---|
1070 | <p/><strong>ParticleDataEntry::~ParticleDataEntry </strong> <br/> |
---|
1071 | the destructor is needed to delete any <code>ResonanceWidths</code> |
---|
1072 | objects that have been created and linked to the respective particle. |
---|
1073 | |
---|
1074 | |
---|
1075 | <a name="method63"></a> |
---|
1076 | <p/><strong>void ParticleDataEntry::setDefaults() </strong> <br/> |
---|
1077 | initialize some particle flags with default values, e.g. whether |
---|
1078 | a particle is a resonance, may decay, or is visible. Is called from the |
---|
1079 | constructors and from <code>setAll</code>. |
---|
1080 | |
---|
1081 | |
---|
1082 | <a name="method64"></a> |
---|
1083 | <p/><strong>void ParticleDataEntry::initPtr(ParticleData* particleDataPtrIn) </strong> <br/> |
---|
1084 | initialize pointer back to the whole database (so that masses of |
---|
1085 | decay products can be accessed, e.g.). |
---|
1086 | |
---|
1087 | |
---|
1088 | <a name="method65"></a> |
---|
1089 | <p/><strong>void ParticleDataEntry::setAll( string name, string antiName, int spinType = 0, int chargeType = 0, int colType = 0, double m0 = 0., double mWidth = 0., double mMin = 0., double mMax = 0.,double tau0 = 0.) </strong> <br/> |
---|
1090 | change all the properties of the particle associated with a given |
---|
1091 | identity code. |
---|
1092 | |
---|
1093 | |
---|
1094 | <a name="method66"></a> |
---|
1095 | <p/><strong>int ParticleDataEntry::id() </strong> <br/> |
---|
1096 | the PDG identity code. |
---|
1097 | |
---|
1098 | |
---|
1099 | <a name="method67"></a> |
---|
1100 | <p/><strong>bool ParticleDataEntry::hasAnti() </strong> <br/> |
---|
1101 | tell whether a separate antiparticle exists. |
---|
1102 | |
---|
1103 | |
---|
1104 | <a name="method68"></a> |
---|
1105 | <p/><strong>void ParticleDataEntry::setName(string name) </strong> <br/> |
---|
1106 | |
---|
1107 | <strong>void ParticleDataEntry::setAntiName(string antiName) </strong> <br/> |
---|
1108 | |
---|
1109 | <strong>void ParticleDataEntry::setNames(string name,string antiName) </strong> <br/> |
---|
1110 | |
---|
1111 | <strong>string ParticleDataEntry::name(int id = 1) </strong> <br/> |
---|
1112 | set or get the particle or antiparticle name. Only the sign of |
---|
1113 | <code>id</code> is needed to distinguish particle/antiparticle. |
---|
1114 | |
---|
1115 | |
---|
1116 | <a name="method69"></a> |
---|
1117 | <p/><strong>void ParticleDataEntry::setSpinType(int spinType) </strong> <br/> |
---|
1118 | |
---|
1119 | <strong>int ParticleDataEntry::spinType() </strong> <br/> |
---|
1120 | set or get the particle spin type, i.e. <i>2 s + 1</i>, or 0 in some |
---|
1121 | special cases. |
---|
1122 | |
---|
1123 | |
---|
1124 | <a name="method70"></a> |
---|
1125 | <p/><strong>void ParticleDataEntry::setChargeType(int chargeType) </strong> <br/> |
---|
1126 | |
---|
1127 | <strong>int ParticleDataEntry::chargeType(int id = 1) </strong> <br/> |
---|
1128 | |
---|
1129 | <strong>double ParticleDataEntry::charge(int id = 1) </strong> <br/> |
---|
1130 | set or get the particle charge type, i.e. three times the charge, |
---|
1131 | or the charge itself. Only the sign of <code>id</code> is needed |
---|
1132 | to distinguish particle/antiparticle. |
---|
1133 | |
---|
1134 | |
---|
1135 | <a name="method71"></a> |
---|
1136 | <p/><strong>void ParticleDataEntry::setColType(int colType) </strong> <br/> |
---|
1137 | |
---|
1138 | <strong>int ParticleDataEntry::colType(int id = 1) </strong> <br/> |
---|
1139 | set or get the particle colour type, 0 for singlet, 1 for triplet, |
---|
1140 | -1 for antitriplet, 2 for octet. Only the sign of <code>id</code> |
---|
1141 | is needed to distinguish particle/antiparticle. |
---|
1142 | |
---|
1143 | |
---|
1144 | <a name="method72"></a> |
---|
1145 | <p/><strong>void ParticleDataEntry::setM0(double m0) </strong> <br/> |
---|
1146 | |
---|
1147 | <strong>double ParticleDataEntry::m0() </strong> <br/> |
---|
1148 | the nominal mass <i>m_0</i> (in GeV). |
---|
1149 | |
---|
1150 | |
---|
1151 | <a name="method73"></a> |
---|
1152 | <p/><strong>void ParticleDataEntry::setMWidth(double mWidth) </strong> <br/> |
---|
1153 | |
---|
1154 | <strong>double ParticleDataEntry::mWidth() </strong> <br/> |
---|
1155 | the width <i>Gamma</i> of the Breit-Wigner distribution (in GeV). |
---|
1156 | |
---|
1157 | |
---|
1158 | <a name="method74"></a> |
---|
1159 | <p/><strong>void ParticleDataEntry::setMMin(double mMin) </strong> <br/> |
---|
1160 | |
---|
1161 | <strong>double ParticleDataEntry::mMin() </strong> <br/> |
---|
1162 | the lower limit of the allowed mass range generated by the Breit-Wigner |
---|
1163 | (in GeV). Has no meaning for particles without width, and would |
---|
1164 | typically be 0 there. |
---|
1165 | |
---|
1166 | |
---|
1167 | <a name="method75"></a> |
---|
1168 | <p/><strong>void ParticleDataEntry::setMMax(double mMax) </strong> <br/> |
---|
1169 | |
---|
1170 | <strong>double ParticleDataEntry::mMax() </strong> <br/> |
---|
1171 | the upper limit of the allowed mass range generated by the Breit-Wigner |
---|
1172 | (in GeV). If <i>mMax < mMin</i> then no upper limit is imposed. |
---|
1173 | Has no meaning for particles without width, and would typically |
---|
1174 | be 0 there. |
---|
1175 | |
---|
1176 | |
---|
1177 | <a name="method76"></a> |
---|
1178 | <p/><strong>double ParticleDataEntry::m0Min() </strong> <br/> |
---|
1179 | similar to <code>mMin()</code> above, except that for particles with |
---|
1180 | no width the <code>m0(id)</code> value is returned. |
---|
1181 | |
---|
1182 | |
---|
1183 | <a name="method77"></a> |
---|
1184 | <p/><strong>double ParticleDataEntry::m0Max() </strong> <br/> |
---|
1185 | similar to <code>mMax()</code> above, except that for particles with |
---|
1186 | no width the <code>m0(id)</code> value is returned. |
---|
1187 | |
---|
1188 | |
---|
1189 | <a name="method78"></a> |
---|
1190 | <p/><strong>void ParticleDataEntry::setTau0(double tau0) </strong> <br/> |
---|
1191 | |
---|
1192 | <strong>double ParticleDataEntry::tau0() </strong> <br/> |
---|
1193 | the nominal proper lifetime <i>tau_0</i> (in mm/c). |
---|
1194 | |
---|
1195 | |
---|
1196 | <a name="method79"></a> |
---|
1197 | <p/><strong>void ParticleDataEntry::setIsResonance(bool isResonance) </strong> <br/> |
---|
1198 | |
---|
1199 | <strong>bool ParticleDataEntry::isResonance() </strong> <br/> |
---|
1200 | a flag telling whether a particle species are considered as a resonance |
---|
1201 | or not. Here <a href="ResonanceDecays.html" target="page">"resonance"</a> |
---|
1202 | is used as shorthand for any massive particle |
---|
1203 | where the decay process should be counted as part of the hard process |
---|
1204 | itself, and thus be performed before showers and other event aspects |
---|
1205 | are added. Restrictions on allowed decay channels is also directly |
---|
1206 | reflected in the cross section of simulated processes, while those of |
---|
1207 | normal hadrons and other light particles are not. |
---|
1208 | In practice, it is reserved for states above the <i>b bbar</i> |
---|
1209 | bound systems in mass, i.e. for <i>W, Z, t</i>, Higgs states, |
---|
1210 | supersymmetric states and (most?) other states in any new theory. |
---|
1211 | All particles with <code>m0</code> above 20 GeV are by default |
---|
1212 | initialized to be considered as resonances. |
---|
1213 | |
---|
1214 | |
---|
1215 | <a name="method80"></a> |
---|
1216 | <p/><strong>void ParticleDataEntry::setMayDecay(bool mayDecay) </strong> <br/> |
---|
1217 | |
---|
1218 | <strong>bool ParticleDataEntry::mayDecay() </strong> <br/> |
---|
1219 | a flag telling whether a particle species may decay or not, offering |
---|
1220 | the main user switch. Whether a given particle of this kind then actually |
---|
1221 | will decay also depends on it having allowed decay channels, and on |
---|
1222 | other flags for <a href="ParticleDecays.html" target="page">particle decays</a>. |
---|
1223 | All particles with <code>tau0</code> below 1000 mm are |
---|
1224 | by default initialized to allow decays. |
---|
1225 | |
---|
1226 | |
---|
1227 | <a name="method81"></a> |
---|
1228 | <p/><strong>void ParticleDataEntry::setDoExternalDecays(bool doExternalDecays) </strong> <br/> |
---|
1229 | |
---|
1230 | <strong>bool ParticleDataEntry::doExternalDecay() </strong> <br/> |
---|
1231 | a flag telling whether a particle should be handled by an external |
---|
1232 | decay package or not, with the latter default. Can be manipulated as |
---|
1233 | described on this page, but should normally not be. Instead the |
---|
1234 | <code><a href="ExternalDecays.html" target="page">pythia.decayPtr</a></code> |
---|
1235 | method should be provided with the list of relevant particles. |
---|
1236 | |
---|
1237 | |
---|
1238 | <a name="method82"></a> |
---|
1239 | <p/><strong>void ParticleDataEntry::setIsVisible(bool isVisible) </strong> <br/> |
---|
1240 | |
---|
1241 | <strong>bool ParticleDataEntry::isVisible() </strong> <br/> |
---|
1242 | a flag telling whether a particle species is to be considered as |
---|
1243 | visible in a detector or not, as used e.g. in analysis routines. |
---|
1244 | By default this includes neutrinos and a few BSM particles |
---|
1245 | (gravitino, sneutrinos, neutralinos) that have neither strong nor |
---|
1246 | electromagnetic charge, and are not made up of constituents that |
---|
1247 | have it. The value of this flag is only relevant if a particle is |
---|
1248 | long-lived enough actually to make it to a detector. |
---|
1249 | |
---|
1250 | |
---|
1251 | <a name="method83"></a> |
---|
1252 | <p/><strong>void ParticleDataEntry::setDoForceWidth(bool doForceWidth) </strong> <br/> |
---|
1253 | |
---|
1254 | <strong>bool ParticleDataEntry::doForceWidth() </strong> <br/> |
---|
1255 | a flag valid only for resonances where PYTHIA contains code to |
---|
1256 | calculate the width of the resonance from encoded matrix-element |
---|
1257 | expressions, i.e. the <i>Z^0</i>, <i>W^+-</i>, <i>t</i>, |
---|
1258 | <i>h^0</i>, and a few more. The normal behaviour (<code>false</code>) |
---|
1259 | is then that the width is calculated from the mass, but it is |
---|
1260 | possible to <a href="ResonanceDecays.html" target="page">force</a> the resonance |
---|
1261 | to retain the nominal width. Branching ratios and the running of the |
---|
1262 | total width are unaffected. |
---|
1263 | |
---|
1264 | |
---|
1265 | <a name="method84"></a> |
---|
1266 | <p/><strong>void ParticleDataEntry::setHasChanged(bool hasChanged) </strong> <br/> |
---|
1267 | |
---|
1268 | <a name="method85"></a> |
---|
1269 | <p/><strong>void ParticleDataEntry::hasChanged(bool hasChanged) </strong> <br/> |
---|
1270 | keep track of whether the data for a particle has been changed |
---|
1271 | in any respect between initialization and the current status. |
---|
1272 | Is used e.g. by the <code>ParticleData::listChanged</code> method |
---|
1273 | to determine which particles to list. |
---|
1274 | |
---|
1275 | |
---|
1276 | <a name="method86"></a> |
---|
1277 | <p/><strong>void ParticleDataEntry::initBWmass() </strong> <br/> |
---|
1278 | Prepare the Breit-Wigner mass selection by precalculating |
---|
1279 | frequently-used expressions. |
---|
1280 | |
---|
1281 | |
---|
1282 | <a name="method87"></a> |
---|
1283 | <p/><strong>double ParticleDataEntry::constituentMass() </strong> <br/> |
---|
1284 | is the constituent mass for a quark, hardcoded as |
---|
1285 | <i>m_u = m_d = 0.325</i>, <i>m_s = 0.50</i>, <i>m_c = 1.60</i> |
---|
1286 | and <i>m_b = 5.0</i> GeV, for a diquark the sum of quark constituent |
---|
1287 | masses, and for everything else the same as the ordinary mass. |
---|
1288 | |
---|
1289 | |
---|
1290 | <a name="method88"></a> |
---|
1291 | <p/><strong>double ParticleDataEntry::mass() </strong> <br/> |
---|
1292 | give the mass of a particle, either at the nominal value |
---|
1293 | or picked according to a (linear or quadratic) Breit-Wigner. |
---|
1294 | |
---|
1295 | |
---|
1296 | <a name="method89"></a> |
---|
1297 | <p/><strong>double ParticleDataEntry::mRun(double mH) </strong> <br/> |
---|
1298 | calculate the running quark mass at a hard scale <code>mH</code>. |
---|
1299 | For other particles the on-shell mass is given. |
---|
1300 | |
---|
1301 | |
---|
1302 | <a name="method90"></a> |
---|
1303 | <p/><strong>bool ParticleDataEntry::useBreitWigner() </strong> <br/> |
---|
1304 | tells whether a particle will have a Breit-Wigner mass distribution or |
---|
1305 | not. Is determined by an internal logic based on the particle width and |
---|
1306 | on the value of the <code><a href="ParticleData.html" target="page"> |
---|
1307 | ParticleData:modeBreitWigner</a></code> switch. |
---|
1308 | |
---|
1309 | |
---|
1310 | <a name="method91"></a> |
---|
1311 | <p/><strong>bool ParticleDataEntry::canDecay(int id) </strong> <br/> |
---|
1312 | true for a particle with at least one decay channel defined. |
---|
1313 | |
---|
1314 | |
---|
1315 | <a name="method92"></a> |
---|
1316 | <p/><strong>bool ParticleDataEntry::isLepton() </strong> <br/> |
---|
1317 | true for a lepton or an antilepton (including neutrinos). |
---|
1318 | |
---|
1319 | |
---|
1320 | <a name="method93"></a> |
---|
1321 | <p/><strong>bool ParticleDataEntry::isQuark() </strong> <br/> |
---|
1322 | true for a quark or an antiquark. |
---|
1323 | |
---|
1324 | |
---|
1325 | <a name="method94"></a> |
---|
1326 | <p/><strong>bool ParticleDataEntry::isGluon() </strong> <br/> |
---|
1327 | true for a gluon. |
---|
1328 | |
---|
1329 | |
---|
1330 | <a name="method95"></a> |
---|
1331 | <p/><strong>bool ParticleDataEntry::isDiquark() </strong> <br/> |
---|
1332 | true for a diquark or antidiquark. |
---|
1333 | |
---|
1334 | |
---|
1335 | <a name="method96"></a> |
---|
1336 | <p/><strong>bool ParticleDataEntry::isParton() </strong> <br/> |
---|
1337 | true for a gluon, a quark or antiquark up to the b (but excluding top), |
---|
1338 | and a diquark or antidiquark consisting of quarks up to the b. |
---|
1339 | |
---|
1340 | |
---|
1341 | <a name="method97"></a> |
---|
1342 | <p/><strong>bool ParticleDataEntry::isHadron() </strong> <br/> |
---|
1343 | true for a hadron (made up out of normal quarks and gluons, |
---|
1344 | i.e. not for R-hadrons and other exotic states). |
---|
1345 | |
---|
1346 | |
---|
1347 | <a name="method98"></a> |
---|
1348 | <p/><strong>bool ParticleDataEntry::isMeson() </strong> <br/> |
---|
1349 | true for a meson. |
---|
1350 | |
---|
1351 | |
---|
1352 | <a name="method99"></a> |
---|
1353 | <p/><strong>bool ParticleDataEntry::isBaryon() </strong> <br/> |
---|
1354 | true for a baryon or antibaryon. |
---|
1355 | |
---|
1356 | |
---|
1357 | <a name="method100"></a> |
---|
1358 | <p/><strong>bool ParticleDataEntry::isOctetHadron() </strong> <br/> |
---|
1359 | true for an intermediate hadron-like state with a colour octet charge |
---|
1360 | as used in the colour octet model for |
---|
1361 | <a href="OniaProcesses.html" target="page">onia</a> production. |
---|
1362 | |
---|
1363 | |
---|
1364 | <a name="method101"></a> |
---|
1365 | <p/><strong>int ParticleDataEntry::heaviestQuark(int id) </strong> <br/> |
---|
1366 | extracts the heaviest quark or antiquark, i.e. one with largest |
---|
1367 | <code>id</code> number, for a hadron. Only the sign of the input |
---|
1368 | argument is relevant. |
---|
1369 | |
---|
1370 | |
---|
1371 | <a name="method102"></a> |
---|
1372 | <p/><strong>int ParticleDataEntry::baryonNumberType(int id) </strong> <br/> |
---|
1373 | is 1 for a quark, 2 for a diquark, 3 for a baryon, the same with a |
---|
1374 | minus sign for antiparticles, and else zero. Only the sign of the |
---|
1375 | input argument is relevant. |
---|
1376 | |
---|
1377 | |
---|
1378 | <a name="method103"></a> |
---|
1379 | <p/><strong>void ParticleDataEntry::clearChannels() </strong> <br/> |
---|
1380 | resets to an empty decay table. |
---|
1381 | |
---|
1382 | |
---|
1383 | <a name="method104"></a> |
---|
1384 | <p/><strong>void ParticleDataEntry::addChannel(int onMode = 0, double bRatio = 0., int meMode = 0, int prod0 = 0, int prod1 = 0,int prod2 = 0, int prod3 = 0, int prod4 = 0, int prod5 = 0, int prod6 = 0, int prod7 = 0,) </strong> <br/> |
---|
1385 | adds a decay channel with up to 8 products. |
---|
1386 | |
---|
1387 | |
---|
1388 | <a name="method105"></a> |
---|
1389 | <p/><strong>int ParticleDataEntry::sizeChannels() </strong> <br/> |
---|
1390 | returns the number of decay channels for a particle. |
---|
1391 | |
---|
1392 | |
---|
1393 | <a name="method106"></a> |
---|
1394 | <p/><strong>DecayChannel& ParticleDataEntry::channel(int i) </strong> <br/> |
---|
1395 | |
---|
1396 | <strong>const DecayChannel& ParticleDataEntry::channel(int i) </strong> <br/> |
---|
1397 | gain access to a specified channel in the decay table. |
---|
1398 | |
---|
1399 | |
---|
1400 | <a name="method107"></a> |
---|
1401 | <p/><strong>void ParticleDataEntry::rescaleBR(double newSumBR = 1.) </strong> <br/> |
---|
1402 | rescales all partial branching ratios by a common factor, such that |
---|
1403 | the sum afterward becomes <code>newSumBR</code>. |
---|
1404 | |
---|
1405 | |
---|
1406 | <a name="method108"></a> |
---|
1407 | <p/><strong>bool ParticleDataEntry::preparePick(int idSgn, double mHat = 0., int idInFlav = 0) </strong> <br/> |
---|
1408 | prepare to pick a decay channel. |
---|
1409 | |
---|
1410 | |
---|
1411 | <a name="method109"></a> |
---|
1412 | <p/><strong>DecayChannel& ParticleDataEntry::pickChannel() </strong> <br/> |
---|
1413 | pick a decay channel according to branching ratios from |
---|
1414 | <code>preparePick</code>. |
---|
1415 | |
---|
1416 | |
---|
1417 | <a name="method110"></a> |
---|
1418 | <p/><strong>void ParticleDataEntry::setResonancePtr(ResonanceWidths* resonancePtr) </strong> <br/> |
---|
1419 | |
---|
1420 | <strong>ResonanceWidths* ParticleDataEntry::getResonancePtr() </strong> <br/> |
---|
1421 | set or get a pointer to an object that can be used for dynamic calculation |
---|
1422 | of partial and total resonance widths. Here a resonance is a particle |
---|
1423 | such as top, <i>Z^0</i>, <i>W^+-</i>, Higgs, and new unstable states |
---|
1424 | beyond the Standard Model. |
---|
1425 | |
---|
1426 | |
---|
1427 | <a name="method111"></a> |
---|
1428 | <p/><strong>void ParticleDataEntry::resInit(Info* infoPtrIn, Settings* settingsPtrIn, ParticleData* particleDataPtrIn, CoupSM* coupSMPtrIn) </strong> <br/> |
---|
1429 | initialize the treatment of a resonance. |
---|
1430 | |
---|
1431 | |
---|
1432 | <a name="method112"></a> |
---|
1433 | <p/><strong>double ParticleDataEntry::resWidth(int idSgn,double mHat, int idInFlav = 0, bool openOnly = false, bool setBR = false) </strong> <br/> |
---|
1434 | calculate the total with for a resonance of a given current mass, |
---|
1435 | optionally including coupling to incoming flavour state (consider |
---|
1436 | the <i>gamma*/Z^0</i> combination), optionally excluding decay |
---|
1437 | channels that have been closed by the user, and optionally storing |
---|
1438 | the results in the normal decay table. For the first argument only |
---|
1439 | the sign is relevant. |
---|
1440 | |
---|
1441 | |
---|
1442 | <a name="method113"></a> |
---|
1443 | <p/><strong>double ParticleDataEntry::resWidthOpen(int idSgn,double mHat, int idInFlav = 0) </strong> <br/> |
---|
1444 | special case of <code>resWidth</code>, where only open channels are |
---|
1445 | included, but results are not stored in the normal decay table. |
---|
1446 | |
---|
1447 | |
---|
1448 | <a name="method114"></a> |
---|
1449 | <p/><strong>double ParticleDataEntry::resWidthStore(int idSgn,double mHat, int idInFlav = 0) </strong> <br/> |
---|
1450 | special case of <code>resWidth</code>, where only open channels are |
---|
1451 | included, and results are stored in the normal decay table. |
---|
1452 | |
---|
1453 | |
---|
1454 | <a name="method115"></a> |
---|
1455 | <p/><strong>double ParticleDataEntry::resOpenFrac(int idSgn) </strong> <br/> |
---|
1456 | calculate the fraction of the full branching ratio that is left |
---|
1457 | open by the user choice of allowed decay channels. |
---|
1458 | |
---|
1459 | |
---|
1460 | <a name="method116"></a> |
---|
1461 | <p/><strong>double ParticleDataEntry::resWidthRescaleFactor() </strong> <br/> |
---|
1462 | the factor used to rescale all partial widths in case the total |
---|
1463 | width is being forced to a specific value by the user. |
---|
1464 | |
---|
1465 | |
---|
1466 | <a name="method117"></a> |
---|
1467 | <p/><strong>double ParticleDataEntry::resWidthChan(double mHat, int idAbs1 = 0, int idAbs2 = 0) </strong> <br/> |
---|
1468 | special case to calculate one final-state width; currently only used |
---|
1469 | for Higgs decay to <i>q qbar</i>, <i>g g</i> or |
---|
1470 | <i>gamma gamma</i>. |
---|
1471 | |
---|
1472 | |
---|
1473 | <h3>The DecayChannel methods</h3> |
---|
1474 | |
---|
1475 | The properties stored in an individual decay channel can be set or get |
---|
1476 | by the methods in this section. |
---|
1477 | |
---|
1478 | <a name="method118"></a> |
---|
1479 | <p/><strong>DecayChannel::DecayChannel(int onMode = 0, double bRatio = 0., int meMode = 0, int prod0 = 0, int prod1 = 0, int prod2 = 0, int prod3 = 0, int prod4 = 0, int prod5 = 0, int prod6 = 0, int prod7 = 0) </strong> <br/> |
---|
1480 | the constructor for a decay channel. Internal. |
---|
1481 | |
---|
1482 | |
---|
1483 | <a name="method119"></a> |
---|
1484 | <p/><strong>void DecayChannel::onMode(int onMode) </strong> <br/> |
---|
1485 | |
---|
1486 | <strong>int DecayChannel::onMode() </strong> <br/> |
---|
1487 | set or get the <code>onMode</code> of a decay channel,<br/> |
---|
1488 | 0 if a channel is off,<br/> |
---|
1489 | 1 if on,<br/> |
---|
1490 | 2 if on for a particle but off for an antiparticle,<br/> |
---|
1491 | 3 if on for an antiparticle but off for a particle.<br/> |
---|
1492 | If a particle is its own antiparticle then 2 is on and 3 off |
---|
1493 | but, of course, for such particles it is much simpler and safer |
---|
1494 | to use only 1 and 0.<br/> |
---|
1495 | The 2 and 3 options can be used e.g. to encode CP violation in |
---|
1496 | B decays, or to let the <i>W</i>'s in a <i>q qbar -> W^+ W^-</i> |
---|
1497 | process decay in different channels. |
---|
1498 | |
---|
1499 | |
---|
1500 | <a name="method120"></a> |
---|
1501 | <p/><strong>void DecayChannel::bRatio(double bRatio, bool countAsChanged = true) </strong> <br/> |
---|
1502 | |
---|
1503 | <strong>double DecayChannel::bRatio() </strong> <br/> |
---|
1504 | set or get the branching ratio of the channel. Second argument only |
---|
1505 | for internal use. |
---|
1506 | |
---|
1507 | |
---|
1508 | <a name="method121"></a> |
---|
1509 | <p/><strong>void DecayChannel::rescaleBR(double fac) </strong> <br/> |
---|
1510 | multiply the current branching ratio by <code>fac</code>. |
---|
1511 | |
---|
1512 | |
---|
1513 | <a name="method122"></a> |
---|
1514 | <p/><strong>void DecayChannel::meMode(int meMode) </strong> <br/> |
---|
1515 | |
---|
1516 | <strong>int DecayChannel::meMode() </strong> <br/> |
---|
1517 | set or get the mode of processing this channel, possibly with matrix |
---|
1518 | elements (see the <a href="ParticleDecays.html" target="page">particle decays</a> |
---|
1519 | description). |
---|
1520 | |
---|
1521 | |
---|
1522 | <a name="method123"></a> |
---|
1523 | <p/><strong>void DecayChannel::multiplicity(int multiplicity) </strong> <br/> |
---|
1524 | |
---|
1525 | <strong>int DecayChannel::multiplicity() </strong> <br/> |
---|
1526 | set or get the number of decay products in a channel, at most 8. |
---|
1527 | (Is normally not to be set by hand, since it is automatically |
---|
1528 | updated whenever the products list is changed.) |
---|
1529 | |
---|
1530 | |
---|
1531 | <a name="method124"></a> |
---|
1532 | <p/><strong>void DecayChannel::product(int i, int product) </strong> <br/> |
---|
1533 | |
---|
1534 | <strong>int DecayChannel::product(int i) </strong> <br/> |
---|
1535 | set or get a list of the decay products, 8 products 0 <= i < 8, |
---|
1536 | with trailing unused ones set to 0. |
---|
1537 | |
---|
1538 | |
---|
1539 | <a name="method125"></a> |
---|
1540 | <p/><strong>void DecayChannel::setHasChanged(bool hasChanged) </strong> <br/> |
---|
1541 | |
---|
1542 | <strong>bool DecayChannel::hasChanged() </strong> <br/> |
---|
1543 | used for internal purposes, to know which decay modes have been changed. |
---|
1544 | |
---|
1545 | |
---|
1546 | <a name="method126"></a> |
---|
1547 | <p/><strong>bool DecayChannel::contains(int id1) </strong> <br/> |
---|
1548 | |
---|
1549 | <strong>bool DecayChannel::contains(int id1, int id2) </strong> <br/> |
---|
1550 | |
---|
1551 | <strong>bool DecayChannel::contains(int id1, int id2, int id3) </strong> <br/> |
---|
1552 | find if the decay product list contains the one, two or three particle |
---|
1553 | identities provided. If the same code is repeated then so must it be in |
---|
1554 | the products list. Matching also requires correct sign. |
---|
1555 | |
---|
1556 | |
---|
1557 | <a name="method127"></a> |
---|
1558 | <p/><strong>void DecayChannel::currentBR(double currentBR) </strong> <br/> |
---|
1559 | |
---|
1560 | <strong>double DecayChannel::currentBR() </strong> <br/> |
---|
1561 | set or get the current branching ratio, taking into account on/off |
---|
1562 | switches and dynamic width for resonances. For internal use. |
---|
1563 | |
---|
1564 | |
---|
1565 | <a name="method128"></a> |
---|
1566 | <p/><strong>void DecayChannel::onShellWidth(double onShellWidth) </strong> <br/> |
---|
1567 | |
---|
1568 | <strong>double DecayChannel::onShellWidth() </strong> <br/> |
---|
1569 | set or get the current partial width of the channel; intended for |
---|
1570 | resonances where the widhts are recalculated based on the current |
---|
1571 | resonance mass. For internal use. |
---|
1572 | |
---|
1573 | |
---|
1574 | <a name="method129"></a> |
---|
1575 | <p/><strong>void DecayChannel::onShellWidthFactor(double factor) </strong> <br/> |
---|
1576 | multiply the current partial width by <code>factor</code>. |
---|
1577 | |
---|
1578 | |
---|
1579 | <a name="method130"></a> |
---|
1580 | <p/><strong>void DecayChannel::openSec(int idSgn, double openSecIn) </strong> <br/> |
---|
1581 | |
---|
1582 | <strong>double DecayChannel::openSec(nt idSgn) </strong> <br/> |
---|
1583 | set or get the fraction of secondary open widths, separately for |
---|
1584 | positive and negative particles. For internal use. |
---|
1585 | |
---|
1586 | |
---|
1587 | </body> |
---|
1588 | </html> |
---|
1589 | |
---|
1590 | <!-- Copyright (C) 2012 Torbjorn Sjostrand --> |
---|