Hadron Vertex Information
 
 
It is not trivial to define where in space-time that the primary 
hadrons are produced by the string fragmentation machinery. 
The basic strategy is well-defined in a 1+1-dimensional picture, 
as represented by a single straight string stretched between massless 
q and qbar endpoints [And83]. Even so there 
is no unique definition of the production vertex of the hadron 
straddling two adjacent breakup vertices, and the transverse width 
of the string adds a further smearing. Some of that ambiguity is 
reflected in the options below. The major step in complexity comes 
with the introduction of more convoluted string topologies, however. 
Here the momentum-space description contains a number of ambiguities, 
notably for those hadrons that straddle two or more different string 
regions, that were only overcome by a set of reasonable simplifications 
[Sjo84]. The space-time picture introduced here 
[Fer18] inherits all these problems, and thus many of the 
same prescriptions, but also require a few further simplifications 
and assumptions. 
 
 
Below the main switches and parameters of this picture are described. 
When on, the machinery assigns space-time production vertices to all 
primary hadrons, i.e. those that are produced directly from the string 
breakups. These vertices can be read out by the event[i].vProd() 
method. Note that the length unit is mm, and mm/s for time. To study 
the hadronization process it is natural to cnvert to fm. The conversion 
constants FM2MM = 10^12 and MM2FM 
= 10^-12 are defined inside the Pythia8 namespace, 
available in user programs that include Pythia8/Pythia.h. 
 
 
By default all partons start out from the origin and the strings are 
expandong accordingly. For a more realistic picture, the 
Parton Vertex Information 
allows MPI production vertices to be spread across the transverse 
area of the collision. All of these separate vertices are still 
assumed to occur at t = z = 0. The transverse displacements 
are then inherited by the final hadrons. An interpolation is applied 
in case of strings stretched between partons from different vertices. 
 
 
In the context of the 
Hadronic Rescattering 
framework, the secondary collision vertices can be the starting points 
for new outgoing partonic systems. Since such lower-energy collisions 
are handled without invoking MPIs there is (currently) no corresponding 
initial transverse spread as there is for the primary collision. 
 
 
Secondary vertices are set in decays, but by default only for scales 
of the order of mm or above. That is, decays on the fm scale, like for 
rho mesons, then are not considered. When the machinery in this 
section is switched on, also such displacements are considered, see 
further HadronVertex:rapidDecays below. Do note that the factor 
10^12 separation between fm and mm scales means that the two do 
not mix well, i.e. any contribution of the latter kind would leave 
little trace of the former when stored in double-precision real numbers. 
For this reason it is also not meaningful to combine studies of hadron 
production vertices with displaced pp collision vertices from 
the profile of the incoming bunches. 
 
flag   Fragmentation:setVertices   
 (default = off)
Normally primary hadron production vertices are not set, but if 
on they are. In the latter case the further switches and parameters 
below provide more detailed choices. 
   
 
mode   HadronVertex:mode   
 (default = 0; minimum = -1; maximum = 1)
The definition of hadron production points is not unique, and here 
three alternatives are considered: one early, one late and one in the 
middle. Further expressions below are written for a hadron i 
produced between two string vertices i and i+1. 
option  0 : A hadron production point is defined as the middle 
point between the two breakup vertices, 
vhi = (vi + vi+1)/2. 
   
option  -1 : An "early" hadron production, counted backwards to the 
point where a fictitious string oscillation could have begun that would 
have reached the two string breakup vertices above. Given the hadronic 
four-momentum ph and the string tension kappa, 
this vertex would be 
vhi = (vi + vi+1)/2 
- phi / (2 kappa). With this prescription is 
is possible to obtain a negative squared proper time, since the 
ph contains a transverse-momentum smearing that 
does not quite match up with longitudinal-momentum string picture. 
In such cases the negative term is scaled down to give a vanishing 
proper time. 
   
option  1 : A "late" hadron production, defined as the point 
where the two partons that form the hadron cross for the first time. 
The hadron momentum contribution then shifts sign relative to the previous 
option, 
vhi = (vi + vi+1)/2 
+ phi / (2 kappa), 
and there is no problem with negative squared proper times. 
   
   
 
parm   HadronVertex:kappa   
 (default = 1.; minimum = 0.5; maximum = 10.)
The string tension kappa in units of GeV/fm, i.e. how much 
energy is stored in a string per unit length. 
   
 
flag   HadronVertex:smearOn   
 (default = on)
When on, the space--time location of breakp points is smear in transverse 
space accordingly to the value of xySmear given. 
   
 
parm   HadronVertex:xySmear   
 (default = 0.5; minimum = 0.; maximum = 2.)
Transverse smearing of the hadron production vertices in units of fm. 
This is initially assigned as a Gaussian smearing of the string breakup 
vertices in the plane perpendicular to the string direction. 
The xySmear parameter is picked such that a breakup vertex 
should have a smearing <x^2 + y^2> = xySmear^2 for a 
simple string along the z direction. The initial default 
value of 0.7 was picked roughly like sqrt(2/3) of the proton 
radius, to represent two out of three spatial directions. For a hadron 
this is then averaged, as described above in vhi 
= (vi + vi+1)/2  and its variants, giving a 
width reduction of 1/sqrt(2). When now a transverse spread of MPI 
vertices has been introduced, partly to cover the same aspects, 
the default value has been reduced somewhat. 
   
 
parm   HadronVertex:maxSmear   
 (default = 0.2; minimum = 0.; maximum = 10.)
Limit the smearing defined above from giving large shifts of vertices, 
by reducing the net shift to be this fraction of the original value. 
(Technically the quantity studied is a quadratic combination of space 
and time shifts, additionally in quadrature with the  xySmear 
parameter.) 
   
 
flag   HadronVertex:constantTau   
 (default = off)
The transverse smearing can change either the time coordinate or 
the invariant time of the breakup points with respect to the origin. 
Normally, the time coordinate is kept constant and the invariant time 
is modified by the smearing. If on, the tau is kept constant 
and the time coordinate is recalculated to compensate the effect of 
the smearing. Empirically, the former prescription gives fewer problems 
on the hadron level. 
   
 
parm   HadronVertex:maxTau   
 (default = 40.; minimum = 1.; maximum = 100.)
In cases of complicated string topologies the reconstruction of a 
string breakup vertex can fail occasionally. Usually this translates 
into a large (positive or negative) production invariant (squared) 
time for the adjacent hadrons (using the middle definition), here 
expressed in units of fm. This cut rejects fragmented systems where 
such a large tau is found, and a new try to hadronize is made. If this 
variable is set too low then also many correct vertices will be rejected. 
Notably this would happen in heavy-ion collisions, where the collision 
region at t = 0 can be spread transversely up to order 20 fm. 
   
 
flag   HadronVertex:rapidDecays   
 (default = on)
The decay products of particles with short lifetimes, such as rho, should be 
displaced from the production point of the mother particle. When on, the 
corresponding displacement is included in the space--time location of the 
daughter production points. More specifically, the width stored for these 
particles are inverted to give the respective lifetimes. (Even more 
specifically, the width must be above NARROWMASS = 
10^-6 GeV.) Particles that by default already have a nonvanishing 
lifetime (in the database or set by the user) are always given a displaced 
vertex based on that value, so for them this flag makes no difference. 
See below for unstable particles that have neither a known width nor a 
known lifetime. Note that, if HadronLevel:Rescatter is on, this 
setting is ignored and decay vertices will always be set. 
   
 
parm   HadronVertex:intermediateTau0   
 (default = 1e-9; minimum = 1e-12; maximum = 1e-3)
Average lifetime c * tau_0, expressed in mm, assigned to particle 
species which are unstable, but have neither been assigned a nonvanishing 
lifetime nor a non-negligible (above NARROWMASS) width. 
For such cases an intermediate scale is chosen, such that the decays happen 
well separated from the primary vertex, and yet not as far away as to give 
rise to an experimentally discernible secondary vertex. The default 
10^-9 mm = 1000 fm meets this requirement, and is additionally 
a reasonable value for the particles that mainly decay electromagnetically. 
The value is also used for a few rare particles that probably have a 
non-negligible width, but are so poorly known that no width is listed 
in the Review of Particle Physics.