This file is indexed.

/usr/share/doc/pythia8-doc/html/FlavourSelection.html is in pythia8-doc-html 8.1.86-1.2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
<html>
<head>
<title>Flavour Selection</title>
<link rel="stylesheet" type="text/css" href="pythia.css"/>
<link rel="shortcut icon" href="pythia32.gif"/>
</head>
<body>
 
<h2>Flavour Selection</h2> 
 
The <code>StringFlav</code> class handles the choice of a new flavour 
in the fragmentation process, and the production of a new hadron 
from a set of input flavours. It is mainly used by the string 
fragmentation machinery (including ministrings), but also e.g. 
in some particle decays and for some beam-remnant cases. The basic 
concepts are in agreement with [<a href="Bibliography.html" target="page">And83</a>]. The baryon-sector 
implementation is based on the <code>MSTJ(12)=3</code> option of 
PYTHIA 6, i.e. new SU(6) weights scheme with at most one popcorn meson. 
 
<p/> 
The relative production rates of different particle species is 
influenced by the parameters below. Some have only an impact on 
one specific quantity, but most directly or indirectly have 
consequences for many observables. Therefore the values to use have 
to be viewed in the context of a complete <a href="Tunes.html" target="page">tune</a>. 
 
<h3>New flavours</h3> 
 
The main parameters of the selection of a new flavour are 
 
<p/><code>parm&nbsp; </code><strong> StringFlav:probStoUD &nbsp;</strong> 
 (<code>default = <strong>0.19</strong></code>; <code>minimum = 0.0</code>; <code>maximum = 1.0</code>)<br/>
the suppression of <i>s</i> quark production relative to ordinary 
<i>u</i> or <i>d</i> one. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:probQQtoQ &nbsp;</strong> 
 (<code>default = <strong>0.09</strong></code>; <code>minimum = 0.0</code>; <code>maximum = 1.0</code>)<br/>
the suppression of diquark production relative to quark production, 
i.e. of baryon relative to meson production. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:probSQtoQQ &nbsp;</strong> 
 (<code>default = <strong>1.00</strong></code>; <code>minimum = 0.0</code>; <code>maximum = 1.0</code>)<br/>
the suppression of strange diquark production relative to light 
diquark production, over and above the one already given by 
<code>probStoU</code>. 
   
  
<p/><code>parm&nbsp; </code><strong> StringFlav:probQQ1toQQ0 &nbsp;</strong> 
 (<code>default = <strong>0.027</strong></code>; <code>minimum = 0.0</code>; <code>maximum = 1.0</code>)<br/>
the suppression of spin 1 diquark production relative to spin 0 one, 
apart from the factor of 3 enhancement of spin 1 from counting the 
number of states. 
   

<p/><code>pvec&nbsp; </code><strong> StringFlav:probQQ1toQQ0join &nbsp;</strong> 
 (<code>default = <strong>0.5,0.7,0.9,1.0</strong></code>; <code>minimum = 0.0</code>; <code>maximum = 1.0</code>)<br/>
when two already produced quarks are to be combined to a diquark,
e.g. in the junction framework, these numbers give the suppression 
of spin 1 diquark production relative to spin 0 one, apart from the 
factor of 3 enhancement of spin 1 from counting the number of states.
The four components give the suppression when the heaviest quark is
<i>u/d</i>, <i>s</i>, <i>c</i> or <i>b</i>, respectively.
These parameters are seldom used and currently not constrained by any 
data, so very much a guesswork.
   
 
<h3>Standard-meson production</h3> 
 
The bulk of the particle production corresponds to the lowest-lying 
pseudoscalar and vector multiplets. Their production rates are 
determined by the parameters in this section. 
 
<p/> 
For a given set of flavours, produced according to the probabilities 
outlined above, the ratio of vector-to-pseudocalar meson production 
is described by the parameters below. 
The maximum allowed rate for each case has been set according to 
spin-counting rules, but we expect the real rates to be lower, 
especially for lighter mesons, owing to the vector-pseudoscalar 
mass splitting. 
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonUDvector &nbsp;</strong> 
 (<code>default = <strong>0.62</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative production ratio vector/pseudoscalar for light 
(<i>u</i>, <i>d</i>) mesons. 
   
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonSvector &nbsp;</strong> 
 (<code>default = <strong>0.725</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative production ratio vector/pseudoscalar for strange mesons. 
   
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonCvector &nbsp;</strong> 
 (<code>default = <strong>1.06</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative production ratio vector/pseudoscalar for charm mesons. 
   
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonBvector &nbsp;</strong> 
 (<code>default = <strong>3.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative production ratio vector/pseudoscalar for bottom mesons. 
   
 
<p/> 
Inside each light-quark meson nonet, an octet-singlet mixing angle 
describes the mixing of the two flavour-diagonal isoscalar = 0 states. 
(For terminology and details see [<a href="Bibliography.html" target="page">Yao06</a>], chapter 14 on the 
quark model.) 
This angle is needed to specify the probability for such a <i>q qbar</i> 
state to project onto a specific meson. More transparent formulae are 
obtained by introducing the angle <i>alpha = theta + 54.7</i> degrees: 
<br/><i> 
   f  = (uubar + ddbar)/sqrt(2) * sin(alpha) + ssbar * cos(alpha)<br/> 
   f' = (uubar + ddbar)/sqrt(2) * cos(alpha) - ssbar * sin(alpha) 
</i><br/> 
 
<p/><code>parm&nbsp; </code><strong> StringFlav:thetaPS &nbsp;</strong> 
 (<code>default = <strong>-15.</strong></code>; <code>minimum = -90.</code>; <code>maximum = 90.</code>)<br/>
gives the mixing angle <i>theta_PS</i> in the pseudoscalar meson sector 
(which is rather poorly determined), expressed in degrees. 
Here <i>f</i> is associated with <i>eta'</i> and <i>f'</i> with 
<i>eta</i>. (This standard but counterintuitive choice is fixed up 
in the code by replacing <i>alpha &rarr; 90^0 - alpha</i> so that 
<i>eta &harr; eta'</i>; relative signs do not matter since we are 
interested in probabilities only.) 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:thetaV &nbsp;</strong> 
 (<code>default = <strong>36.</strong></code>; <code>minimum = -90.</code>; <code>maximum = 90.</code>)<br/>
gives the mixing angle <i>theta_V</i> in the vector meson sector 
(which is somewhat better determined), expressed in degrees. 
Here <i>f</i> is associated with <i>omega</i> and <i>f'</i> 
with <i>phi</i>. 
   
 
<p/> 
Further, the simple model overestimates the production of <i>eta</i> 
and, in particular, <i>eta'</i> mesons, which can be rectified by 
 
<p/><code>parm&nbsp; </code><strong> StringFlav:etaSup &nbsp;</strong> 
 (<code>default = <strong>0.63</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.</code>)<br/>
the additional suppression of <i>eta</i> production, multiplying the 
normal production probability. Thus 0 means no <i>eta</i> at all 
are produced, while 1 means full rate. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:etaPrimeSup &nbsp;</strong> 
 (<code>default = <strong>0.12</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.</code>)<br/>
the additional suppression of <i>eta'</i> production, multiplying the 
normal production probability. Thus 0 means no <i>eta'</i> at all 
are produced, while 1 means full rate. 
   
 
<h3>Excited-meson production</h3> 
 
Several excited mesons, ie. with radial or orbital excitations, have been 
observed at non-negligible production rates. Extrapolated to all states 
a fair fraction of all particle production might proceed through such 
states. There are big uncertainties, however, since these excited 
mesons in many cases are extremely poorly known. This also means that 
the modeling of their production and decay is very primitive, and 
even that the inclusion of the production of such states may lead to a 
degraded agreement with data. Currently the default is that all such 
production is switched off. 
 
<p/> 
Parameters are provided to switch them on. By demand, this machinery 
has been made more flexible than in the past. Therefore one parameter is 
provided for each combination of heaviest flavour 
(<i>u/d</i>, <i>s</i>, <i>c</i> or <i>b</i>) and 
multiplet produced. In each case the production rate is normalized to 
that of the lowest-lying pseudoscalar of the same flavour content, as for 
the vector-meson rates introduced above. The multiplets available are the 
four obtained for one unit of orbital angular momentum, in the 
nonrelativistic classification. Using <i>J</i> to denote the sum of 
quark spin <i>S</i> and orbital angular momentum <i>L</i>, i.e. what 
would normally be called the spin of the meson, one has: 
<ul> 
<li>a pseudovector multiplet with <i>L=1, S=0, J=1</i>;</li> 
<li>a scalar multiplet with <i>L=1, S=1, J=0</i>;</li> 
<li>a pseudovector multiplet with <i>L=1, S=1, J=1</i>;</li> 
<li>a tensor multiplet with <i>L=1, S=1, J=2</i>.</li> 
</ul> 
 
The maximum allowed rate for each case has been set according to 
spin-counting rules, but we expect the real rates to be significantly 
lower, owing to mass suppression. 
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonUDL1S0J1 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative pseudovector production ratio 
<i>(L=1,S=0,J=1)</i>/pseudoscalar 
for light (<i>u</i>, <i>d</i>) mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonUDL1S1J0 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.</code>)<br/>
the relative scalar production ratio 
<i>(L=1,S=1,J=0)</i>/pseudoscalar 
for light (<i>u</i>, <i>d</i>) mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonUDL1S1J1 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative pseudovector production ratio 
<i>(L=1,S=1,J=1)</i>/pseudoscalar 
for light (<i>u</i>, <i>d</i>) mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonUDL1S1J2 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 5.</code>)<br/>
the relative tensor production ratio 
<i>(L=1,S=1,J=2)</i>/pseudoscalar 
for light (<i>u</i>, <i>d</i>) mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonSL1S0J1 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative pseudovector production ratio 
<i>(L=1,S=0,J=1)</i>/pseudoscalar 
for strange mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonSL1S1J0 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.</code>)<br/>
the relative scalar production ratio 
<i>(L=1,S=1,J=0)</i>/pseudoscalar 
for strange mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonSL1S1J1 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative pseudovector production ratio 
<i>(L=1,S=1,J=1)</i>/pseudoscalar 
for strange mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonSL1S1J2 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 5.</code>)<br/>
the relative tensor production ratio 
<i>(L=1,S=1,J=2)</i>/pseudoscalar 
for strange mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonCL1S0J1 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative pseudovector production ratio 
<i>(L=1,S=0,J=1)</i>/pseudoscalar 
for charm mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonCL1S1J0 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.</code>)<br/>
the relative scalar production ratio 
<i>(L=1,S=1,J=0)</i>/pseudoscalar 
for charm mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonCL1S1J1 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative pseudovector production ratio 
<i>(L=1,S=1,J=1)</i>/pseudoscalar 
for charm mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonCL1S1J2 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 5.</code>)<br/>
the relative tensor production ratio 
<i>(L=1,S=1,J=2)</i>/pseudoscalar 
for charm mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonBL1S0J1 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative pseudovector production ratio 
<i>(L=1,S=0,J=1)</i>/pseudoscalar 
for bottom mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonBL1S1J0 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.</code>)<br/>
the relative scalar production ratio 
<i>(L=1,S=1,J=0)</i>/pseudoscalar 
for bottom mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonBL1S1J1 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 3.</code>)<br/>
the relative pseudovector production ratio 
<i>(L=1,S=1,J=1)</i>/pseudoscalar 
for bottom mesons. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:mesonBL1S1J2 &nbsp;</strong> 
 (<code>default = <strong>0.0</strong></code>; <code>minimum = 0.</code>; <code>maximum = 5.</code>)<br/>
the relative tensor production ratio 
<i>(L=1,S=1,J=2)</i>/pseudoscalar 
for bottom mesons. 
   
 
<p/> 
In addition, an octet-singlet mixing angle is needed for each multiplet, 
as for the pseudoscalar and vector multiplets above. Only for the 
tensor multiplet does any determination exist; for the other multiplets 
default has been chose so that <i>ssbar</i> does not mix with the light 
quarks, and so that the <i>ssbar</i> state is the heavier of the two. 
 
<p/><code>parm&nbsp; </code><strong> StringFlav:thetaL1S0J1 &nbsp;</strong> 
 (<code>default = <strong>35.3</strong></code>; <code>minimum = -90.</code>; <code>maximum = 90.</code>)<br/>
gives the mixing angle <i>theta</i> in the <i>(L=1,S=0,J=1)</i> 
pseudovector meson sector, expressed in degrees. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:thetaL1S1J0 &nbsp;</strong> 
 (<code>default = <strong>35.3</strong></code>; <code>minimum = -90.</code>; <code>maximum = 90.</code>)<br/>
gives the mixing angle <i>theta</i> in the <i>(L=1,S=1,J=0)</i> 
scalar meson sector, expressed in degrees. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:thetaL1S1J1 &nbsp;</strong> 
 (<code>default = <strong>35.3</strong></code>; <code>minimum = -90.</code>; <code>maximum = 90.</code>)<br/>
gives the mixing angle <i>theta</i> in the <i>(L=1,S=1,J=1)</i> 
pseudovector meson sector, expressed in degrees. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:thetaL1S1J2 &nbsp;</strong> 
 (<code>default = <strong>28.0</strong></code>; <code>minimum = -90.</code>; <code>maximum = 90.</code>)<br/>
gives the mixing angle <i>theta</i> in the <i>(L=1,S=1,J=2)</i> 
tensor meson sector, expressed in degrees. 
   
 
<h3>Baryon production</h3> 
 
The relative rate of baryon production is mainly given by the quark 
and diquark production parameters above, plus SU(6) Clebsch-Gordans. 
The one modifiable parameter related to these coefficients is 
 
<p/><code>parm&nbsp; </code><strong> StringFlav:decupletSup &nbsp;</strong> 
 (<code>default = <strong>1.0</strong></code>; <code>minimum = 0.0</code>; <code>maximum = 1.0</code>)<br/>
the suppression, relative to default SU(6) factors, of decuplet 
baryon production. Default corresponds to no suppression, while 0 
corresponds to no decuplet production at all. 
   
 
<p/> 
In addition, if popcorn production is allowed, wherein a set of mesons 
(<i>M</i>) may be produced in between the baryon (<i>B</i>) and 
the antibaryon (<i>Bbar</i>), a set of further parameters is introduced. 
Currently only the simplest scenario is implemented, wherein at most 
one intermediate meson may be produced. 
 
<p/><code>parm&nbsp; </code><strong> StringFlav:popcornRate &nbsp;</strong> 
 (<code>default = <strong>0.5</strong></code>; <code>minimum = 0.</code>; <code>maximum = 2.0</code>)<br/>
gives the relative rates of <i>B Bbar</i> and <i>B M Bbar</i> 
production, roughly as 
<br/><i> 
Prob(B M Bbar) / (Prob(B Bbar) + Prob(B M Bbar)) = 
popcornRate / (0.5 + popcornRate) 
</i><br/> 
(the complete expression depends on all the quark and diquark production 
parameters and is therefore not so useful). 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:popcornSpair &nbsp;</strong> 
 (<code>default = <strong>0.5</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.0</code>)<br/>
extra suppression for having an <i>s sbar</i> pair shared between 
the <i>B</i> and <i>Bbar</i> in a <i>B M Bbar</i> configuration. 
   
 
<p/><code>parm&nbsp; </code><strong> StringFlav:popcornSmeson &nbsp;</strong> 
 (<code>default = <strong>0.5</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.0</code>)<br/>
extra suppression for having a strange meson <i>M</i> in a 
<i>B M Bbar</i> configuration. 
   
 
<p/> 
Finally, there are some indications that leading-baryon production 
may be further suppressed. A proper description should probably be 
based on a suppression of early production times [<a href="Bibliography.html" target="page">Ede97</a>], 
but we here only implement a simpler version where production near 
the end of a string, as defined by rank, is suppressed. The more 
detailed studies suggest that leading <i>c</i> and <i>b</i> baryon 
production will be less suppressed, so we leave it open to set 
light- and heavy-baryon suppression separately. 
 
<p/><code>flag&nbsp; </code><strong> StringFlav:suppressLeadingB &nbsp;</strong> 
 (<code>default = <strong>off</strong></code>)<br/>
Suppress leading-baryon production. 
<br/><code>option </code><strong> off</strong> : No suppression.   
<br/><code>option </code><strong> on</strong> : Suppress the production of a diquark in the string 
breaking closest to a quark end of a string, by either of the factors 
below. This suppresses the production of first-rank baryons by the same 
amount. Indirectly also the second-rank and, if popcorn production is 
switched on, third-rank (anti)baryon production is affected.    
   
  
<p/><code>parm&nbsp; </code><strong> StringFlav:lightLeadingBSup &nbsp;</strong> 
 (<code>default = <strong>0.5</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.0</code>)<br/>
extra suppression of leading-baryon production for a light-quark 
jet, i.e. <i>d</i>, <i>u</i> or <i>s</i>, when 
<code>suppressLeadingB = on</code>. Thus 0 means no leading-baryon 
production at all, while 1 means full rate. 
   
  
<p/><code>parm&nbsp; </code><strong> StringFlav:heavyLeadingBSup &nbsp;</strong> 
 (<code>default = <strong>0.9</strong></code>; <code>minimum = 0.</code>; <code>maximum = 1.0</code>)<br/>
extra suppression of leading-baryon production for a heavy-quark 
jet, i.e. <i>c</i> or <i>b</i>, when 
<code>suppressLeadingB = on</code>. Thus 0 means no leading-baryon 
production at all, while 1 means full rate. 
   
   
</body>
</html>
 
<!-- Copyright (C) 2014 Torbjorn Sjostrand -->