z Selection
- The fragmentation function for light quark flavours
- Fragmentation functions for massive quarks and exotics
The StringZ
class handles the choice of longitudinal
lightcone fraction z.
- For light quark flavours, only the Lund Symmetric Fragmentation
Function (or Lund FF for short) is available in PYTHIA, with several
different options for parameterization and parameter values. See the
section on light quark flavours below.
- For massive quarks (and exotic coloured particles), the Bowler
modification to the Lund FF is the default choice, but the
Peterson/SLAC fragmentation function is also available as an
alternative. See the section on massive quark
flavours below.
The fragmentation function for light quark flavours
The Lund symmetric fragmentation function [And83] is the only
option for light quark (and diquark) flavours and is of the form
f(z) = (1/z) * (1-z)^a * exp(-b m_T^2 / z)
with the two main free parameters a and b to be
tuned to data. They are set with the following two parameters.
parm
StringZ:aLund
(default = 0.68
; minimum = 0.0
; maximum = 2.0
)
The a parameter of the Lund symmetric fragmentation function.
parm
StringZ:bLund
(default = 0.98
; minimum = 0.2
; maximum = 2.0
)
The b parameter of the Lund symmetric fragmentation function.
In principle, each flavour can have a different a. Then,
for going from an old flavour i to a new j one
the shape is
f(z) = (1/z) * z^{a_i} * ((1-z)/z)^{a_j} * exp(-b * m_T^2 / z)
This is only implemented for s quarks and diquarks relative to normal quarks:
parm
StringZ:aExtraSQuark
(default = 0.0
; minimum = -1.0
; maximum = 2.0
)
allows a different a for s quarks, with total
a = aLund + aExtraSQuark. For negative values,
note that the resulting a for strange quarks is not allowed
to be smaller than zero.
parm
StringZ:aExtraDiquark
(default = 0.97
; minimum = 0.0
; maximum = 2.0
)
allows a larger a for diquarks, with total
a = aLund + aExtraDiquark.
An important bug fix
flag
StringZ:useOldAExtra
(default = off
)
flag which, when on, reproduces an old incorrect behavior of updating
aExtra
. This bug was introduced in the transition from
Pythia 6 to Pythia 8, and fixed in Pythia 8.315, when also this flag
was introduced. Inadvertently, the type of the old and new strange quark
or diquark was flipped in the (1-z)^a factor when updating
aExtra
between string breaks. This flag has now been
set to on
for all past tunes distributed with Pythia,
to ensure that these tunes still are valid, since they were tuned
with this old behavior. All future tunes should be made with
this flag set to off
(the default value).
Note: If you are using an old custom tune file with
Pythia 8.315 or beyond, you should include
StringZ:useOldAExtra = on
to ensure that such a tune
remains valid. Conversely, if you are using an old tune but want to
study how it would be impacted by a correct z selection,
you need to set StringZ:useOldAExtra = off
to
annul the change from the default off
to on
when the tune is read.
An alternative way to set a and b
In the context of fits to experimental data, the a
and b parameters typically exhibit a very high degree of
correlation. An option for choosing alternative parameterizations of
the Lund FF is therefore provided, whereby the user can specify a
desired mean of the fragmentation function instead of the
b parameter. Optionally, the a
parameter can also be derived, from a user-specified root-mean-square
(RMS) width of the FF. And, finally, the
aExtraDiquark and aExtraSQuark parameters can also
be recast in terms of multiplicative (rather than additive)
parameters. These options can be enabled via the following switch:
mode
StringZ:deriveLundPars
(default = 0
; minimum = 0
; maximum = 4
)
option
0 : The standard parameterization of the Lund FF is
used, in terms of aLund
, bLund
,
aExtraDiquark
, and aExtraSQuark
.
option
1 : The avgZLund
parameter below is
used. The bLund
parameter is treated as a derived
quantity which is determined during program initialization.
option
2 : The avgZLund
and
rmsZLund
parameters below are used. Both
aLund
and bLund
are treated
as derived quantities which are determined during program initialization.
option
3 : As for option 2
but also the
facALundDiquark
parameter below is used instead of
aExtraDiquark
.
option
4 : As for option 3
but also the
facALundSQuark
parameter below is used instead of
aExtraSQuark
.
with parameters:
parm
StringZ:avgZLund
(default = 0.550
; minimum = 0.375
; maximum = 0.615
)
For StringZ:deriveLundPars >= 1
, this parameter specifies
the average of the fragmentation function for primary rho mesons,
evaluated at mT^2 = mRho^2 + 2StringPT:sigma
^2.
The appropriate b-parameter value is computed automatically
during initialization and the StringZ:bLund
parameter is
updated accordingly. Note that the derived value is allowed to exceed
the nominal limits given for bLund
above. This is
intended to allow fits to see the functional behaviour even outside
the nominal limits.
parm
StringZ:rmsZLund
(default = 0.197
; minimum = 0.165
; maximum = 0.225
)
For StringZ:deriveLundPars >= 2
, this parameter specifies
the width of the fragmentation function for primary rho mesons, in
terms of the root-mean-square deviation (RMSD), rmsZ = sqrt(
<z^2> - <z>^2 ), of the fragmentation function for
primary rho mesons. The appropriate a-parameter value is
computed automatically during initialization and the
StringZ:aLund
parameter is updated accordingly. Note that
the derived value is allowed to exceed the nominal limits given for
aLund
above. This is intended to allow fits to see the
functional behaviour even outside the nominal limits. Note however
that the initialization step will produce an error if a value for
aLund
less than zero would be required for the requested
combination of avgZLund
and rmsZLund
. The
The min
and max
values for the
avgZLund
and rmsZLund
parameters have been
chosen such that this should not happen when these parameters are
chosen inside their nominal ranges.
parm
StringZ:facALundDiquark
(default = 2.430
; minimum = 1.000
; maximum = 4.000
)
For StringZ:deriveLundPars >= 3
, this parameter specifies
the ratio of the Lund a parameter for diquarks to that for
quarks. The appropriate aExtraDiquark-parameter value is
computed automatically during initialization and the
StringZ:aExtraDiquark
parameter is updated
accordingly. Note that the derived value is allowed to exceed the
nominal limits given for aExtraDiquark
above. This is
intended to allow fits to see the functional behaviour even outside
the nominal limits.
parm
StringZ:facALundSQuark
(default = 1.0
; minimum = 0.0
; maximum = 2.0
)
For StringZ:deriveLundPars = 4
, this parameter specifies
the ratio of the Lund a parameter for strange quarks to that
for up and down quarks. The appropriate
aExtraSQuark-parameter value is computed automatically during
initialization and the StringZ:aExtraSQuark
parameter is
updated accordingly. Note that the derived value is allowed to exceed
the nominal limits given for aExtraSQuark
above. This is
intended to allow fits to see the functional behaviour even outside
the nominal limits.
Fragmentation functions for massive quarks and exotics
The Lund-Bowler FF for massive quark flavours
The Bowler modification [Bow81] introduces an extra
factor
1/z^{r_Q * b * m_Q^2}
on the Lund FF for heavy quarks (and/or exotic coloured particles).
To keep some flexibility, a multiplicative factor r_Q is
introduced, which ought to be unity (provided that quark masses were
uniquely defined) but can be set in
parm
StringZ:rFactC
(default = 1.32
; minimum = 0.0
; maximum = 2.0
)
r_c, i.e. the above parameter for c quarks.
parm
StringZ:rFactB
(default = 0.855
; minimum = 0.0
; maximum = 2.0
)
r_b, i.e. the above parameter for b quarks.
parm
StringZ:rFactH
(default = 1.0
; minimum = 0.0
; maximum = 2.0
)
r_h, i.e. the above parameter for heavier hypothetical quarks,
or in general any new coloured particle long-lived enough to hadronize.
Options for non-universal bLund parameters for massive quark flavours
Within the string framework, the b parameter is universal,
i.e. common for all flavours. Nevertheless, for fits to experimental
data, better agreement can be obtained if both a_Q and
b_Q can be set freely in a general expression
f(z) = 1/z^{1 + r_Q * b_Q * m_Q^2} * (1-z)^a_Q * exp(-b_Q m_T^2 / z)
The below switches and values can be used to achieve this. They should
be used with caution and constitute clear deviations from the Lund
philosophy.
flag
StringZ:useNonstandardC
(default = off
)
use the above nonstandard Lund ansatz for c quarks.
flag
StringZ:useNonstandardB
(default = off
)
use the above nonstandard Lund ansatz for b quarks.
flag
StringZ:useNonstandardH
(default = off
)
use the above nonstandard Lund ansatz for hypothetical heavier
coloured particles.
parm
StringZ:aNonstandardC
(default = 0.3
; minimum = 0.0
; maximum = 2.0
)
The a parameter in the nonstandard Lund ansatz for
c quarks.
parm
StringZ:aNonstandardB
(default = 0.3
; minimum = 0.0
; maximum = 2.0
)
The a parameter in the nonstandard Lund ansatz for
b quarks.
parm
StringZ:aNonstandardH
(default = 0.3
; minimum = 0.0
; maximum = 2.0
)
The a parameter in the nonstandard Lund ansatz for
hypothetical heavier coloured particles.
parm
StringZ:bNonstandardC
(default = 0.8
; minimum = 0.2
; maximum = 2.0
)
The b parameter in the nonstandard Lund ansatz for
c quarks.
parm
StringZ:bNonstandardB
(default = 0.8
; minimum = 0.2
; maximum = 2.0
)
The b parameter in the nonstandard Lund ansatz for
b quarks.
parm
StringZ:bNonstandardH
(default = 0.8
; minimum = 0.2
; maximum = 2.0
)
The b parameter in the nonstandard Lund ansatz for
hypothetical heavier coloured particles.
The Peterson/SLAC FF for massive quark flavours
As another nonstandard alternative, it is possible to switch over to the
Peterson/SLAC formula [Pet83]
f(z) = 1 / ( z * (1 - 1/z - epsilon/(1-z))^2 )
for charm, bottom and heavier (defined as above) by the three flags
flag
StringZ:usePetersonC
(default = off
)
use Peterson for c quarks.
flag
StringZ:usePetersonB
(default = off
)
use Peterson for b quarks.
flag
StringZ:usePetersonH
(default = off
)
use Peterson for hypothetical heavier coloured particles.
When switched on, the corresponding epsilon values are chosen to be
parm
StringZ:epsilonC
(default = 0.05
; minimum = 0.01
; maximum = 0.25
)
epsilon_c, i.e. the above parameter for c quarks.
parm
StringZ:epsilonB
(default = 0.005
; minimum = 0.001
; maximum = 0.025
)
epsilon_b, i.e. the above parameter for b quarks.
parm
StringZ:epsilonH
(default = 0.005
; minimum = 0.0001
; maximum = 0.25
)
epsilon_h, i.e. the above parameter for hypothetical heavier
(and exotic) flavours, normalized to the case where m_h =
m_b. The actually used parameter is then epsilon = epsilon_h
* (m_b^2 / m_h^2). This allows a sensible scaling to a particle
with an unknown higher mass without the need for a user intervention.