<chapter name="Hadron Vertex Information"> 
 
<h2>Hadron Vertex Information</h2> 
 
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 
<ei>q</ei> and <ei>qbar</ei> endpoints <ref>And83</ref>. 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 
<ref>Sjo84</ref>. The space-time picture introduced here 
<ref>Fer18</ref> inherits all these problems, and thus many of the 
same prescriptions, but also require a few further simplifications 
and assumptions. 
 
<p/> 
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 <code>event[i].vProd()</code> 
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 <code>FM2MM</code> <ei>= 10^12</ei> and <code>MM2FM</code> 
<ei>= 10^-12</ei> are defined inside the <code>Pythia8</code> namespace, 
available in user programs that include <code>Pythia8/Pythia.h</code>. 
 
<p/> 
By default all partons start out from the origin and the strings are 
expandong accordingly. For a more realistic picture, the 
<aloc href="PartonVertexInformation">Parton Vertex Information</aloc> 
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 <ei>t = z = 0</ei>. The transverse displacements 
are then inherited by the final hadrons. An interpolation is applied 
in case of strings stretched between partons from different vertices. 
 
<p/> 
In the context of the 
<aloc href="HadronicRescattering">Hadronic Rescattering</aloc> 
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. 
 
<p/> 
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 
<ei>rho</ei> mesons, then are not considered. When the machinery in this 
section is switched on, also such displacements are considered, see 
further <code>HadronVertex:rapidDecays</code> below. Do note that the factor 
<ei>10^12</ei> 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 <ei>pp</ei> collision vertices from 
the profile of the incoming bunches. 
 
<flag name="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. 
</flag> 
 
<modepick name="HadronVertex:mode" default="0" min="-1" max="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 <ei>i</ei> 
produced between two string vertices <ei>i</ei> and <ei>i+1</ei>. 
<option value="0">A hadron production point is defined as the middle 
point between the two breakup vertices, 
<ei>v<sup>h</sup><sub>i</sub> = (v<sub>i</sub> + v<sub>i+1</sub>)/2</ei>. 
</option> 
<option value="-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 <ei>p<sup>h</sup></ei> and the string tension <ei>kappa</ei>, 
this vertex would be 
<ei>v<sup>h</sup><sub>i</sub> = (v<sub>i</sub> + v<sub>i+1</sub>)/2 
- p<sup>h</sup><sub>i</sub> / (2 kappa)</ei>. With this prescription is 
is possible to obtain a negative squared proper time, since the 
<ei>p<sup>h</sup></ei> 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> 
<option value="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, 
<ei>v<sup>h</sup><sub>i</sub> = (v<sub>i</sub> + v<sub>i+1</sub>)/2 
+ p<sup>h</sup><sub>i</sub> / (2 kappa)</ei>, 
and there is no problem with negative squared proper times. 
</option> 
</modepick> 
 
<parm name="HadronVertex:kappa" default="1." min="0.5" max="10."> 
The string tension <ei>kappa</ei> in units of GeV/fm, i.e. how much 
energy is stored in a string per unit length. 
</parm> 
 
<flag name="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. 
</flag> 
 
<parm name="HadronVertex:xySmear" default="0.5" min="0." max="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 <ei>xySmear</ei> parameter is picked such that a breakup vertex 
should have a smearing <ei>&lt;x^2 + y^2&gt; = xySmear^2</ei> for a 
simple string along the <ei>z</ei> direction. The initial default 
value of 0.7 was picked roughly like <ei>sqrt(2/3)</ei> of the proton 
radius, to represent two out of three spatial directions. For a hadron 
this is then averaged, as described above in <ei>v<sup>h</sup><sub>i</sub> 
= (v<sub>i</sub> + v<sub>i+1</sub>)/2 </ei> 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> 
 
<parm name="HadronVertex:maxSmear" default="0.2" min="0." max="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  <ei>xySmear</ei> 
parameter.) 
</parm> 
 
<flag name="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 <ei>tau</ei> 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. 
</flag> 
 
<parm name="HadronVertex:maxTau" default="20." min="1." max="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). 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. 
</parm> 
 
<flag name="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 <code>NARROWMASS</code> = 
<ei>10^-6 GeV</ei>.) 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 <code>HadronLevel:Rescatter</code> is on, this 
setting is ignored and decay vertices will always be set. 
</flag> 
 
<parm name="HadronVertex:intermediateTau0" default="1e-9" min="1e-12" 
max="1e-3"> 
Average lifetime <ei>c * tau_0</ei>, expressed in mm, assigned to particle 
species which are unstable, but have neither been assigned a nonvanishing 
lifetime nor a non-negligible (above <code>NARROWMASS</code>) 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 
<ei>10^-9 mm = 1000 fm</ei> 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. 
</parm> 
 
</chapter> 
 
<!-- Copyright (C) 2020 Torbjorn Sjostrand --> 
