z Selection

  1. The fragmentation function for light quark flavours
  2. Fragmentation functions for massive quarks and exotics
The StringZ class handles the choice of longitudinal lightcone fraction z.

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.