## Rope Hadronization

In collisions of protons, there are often tens of multiparton interactions, all producing Lund strings occupying the same area in transverse space of ~1 fm^2. The Rope Hadronization framework describes the interactions between such overlapping strings, by (a) allowing nearby strings to shove each other with an interaction potential derived from the colour superconductor analogy [Bie16b], [Bie17] and (b) at hadronization time, colour charges at string endpoints and in gluon "kinks" can act together coherently to form a "rope", which is hadronized with a larger, effective string tension [Bie14]. The latter has noticeable effects on the flavour composition of the hadronic final state [Bie15], and this effect is denoted "flavour ropes" below.

Since both models deal with string overlaps in transverse space, it is necessary to provide such information, as it is not present in the Pythia MPI model. The information is provided through the Parton Vertex methods. The string shoving mechanism is exemplified in the `main441.cc` example, and the flavour ropes in `main442.cc`. A simpler version of flavour composition ropes exist [Bie16c], which do not require vertex information. This can be enabled by a switch.

### Main settings

The main settings are common for both the string shoving and the flavour rope models.

`flag` Ropewalk:RopeHadronization (`default = off`)
Master switch for all aspects of rope hadronization. The Rope Hadronization framework is intended to work seamlessly with the rest of Pythia 8. It is, however, still a new model, and no Pythia tunes with ropes enabled exists yet. Therefore Rope Hadronization must be explicitly switched on, and it is up to the user to provide a sensible tune.

`flag` Ropewalk:doShoving (`default = off`)
Enable the string shoving mechanism. In addition to this, the above `Ropewalk:RopeHadronization` flag must also be switched on.

`flag` Ropewalk:doFlavour (`default = off`)
Enable the flavour ropes mechanism. In addition to this, the above `Ropewalk:RopeHadronization` flag must also be switched on.

`parm` Ropewalk:r0 (`default = 0.5`; `minimum = 0.`; `maximum = 10.`)
The transverse radius of a string, in units of fm. This can be viewed as an overall strength parameter of the Rope Hadronization framework, as all effects scale with increasing string overlap. Notice that the value for the string radius must be seen compared to the parameters which determines string placement in the transverse plane, as described in Parton Vertex Information.

`parm` Ropewalk:m0 (`default = 0.2`; `minimum = 0.01`; `maximum = 5.0`)
Imposed lower mass cutoff to allow for calculation of rapidities of dipoles composed of massless gluons.

### String shoving

The string shoving mechanism allows strings to push each other, before hadronization, as described in [Bie16b].

String shoving divides the event up in many small rapidity slices (in the lab frame), and all string pieces in all slices are allowed to push each other with a force:
f(d_\perp) = \frac{g_A \kappa d_\perp}{R^2} \exp\left(-\frac{d^2_\perp }{4R^2}\right),
where d_\perp is the distance in transverse space between two string pieces, calculated dynamically using Vertex Information. Model parameters are g_A, the amplitude of the shoving force, R, the string radius, and g_E, a parameter dividing the equilibrium string radius to account for the effect of strings starting out with a vanishing string radius.

The model should be used with some caution. Simply switching it on, one will not retain full description of single particle observables in minimum bias pp collisions, as the excitation gluons will increase multiplicity. Besides normal tuning, one can use the parameter `FragmentationSystems:mJoin` to join the excitation gluons together, in order to recover single particle observables.

`parm` Ropewalk:rCutOff (`default = 6.0`; `minimum = 0.`; `maximum = 100.`)
This parameter gives the maximum cut-off radius, at which strings stops interacting. The purpose of the parameter is to decrease computation time by not calculating arbitrarily small pushes. In pp collisions at LHC energies, no significant variation in the results is observed by increasing this value above the default.

`parm` Ropewalk:gAmplitude (`default = 5.0`; `minimum = 0.`; `maximum = 100.`)
The amplitude of the shoving force. Note that many traditional Min Bias/UE observables, such as multiplicity and p_\perp, as well as transverse quantities, are sensitive to this parameter. As such, a change of this, in principle warrants a full retuning of the MPI framework.

`parm` Ropewalk:gExponent (`default = 1.0`; `minimum = 0.`; `maximum = 100.`)
This value multiplies the string radius in the shoving force, allowing for a variation between string radius in the flavour rope treatment and the shoving treatment, if one wishes to run both simultaneously.

`parm` Ropewalk:deltay (`default = 0.2`; `minimum = 0.01`; `maximum = 10.`)
This value gives the width of the rapidity slices in which the event is split before shoving.

`parm` Ropewalk:tShove (`default = 1.0`; `minimum = 0.`; `maximum = 100.`)
The total shoving time in units of fm/c.

`parm` Ropewalk:deltat (`default = 0.1`; `minimum = 0.01`; `maximum = 100.0`)
The size of the steps taken in time during shoving. Since the whole event needs to be retraced after every time step, this should not be too small.

`parm` Ropewalk:tInit (`default = 1.5`; `minimum = 0.`; `maximum = 100.`)
The strings are allowed to propagate for some time, given in fm/c by this parameter, before shoving takes place. This accounts for the fact that the strings are created with a vanishing transverse size, and only shove each other when their transverse size is large enough for interaction. Furthermore, the physical value of this parameter is largely connected to the values set for Parton Vertex Information.

`flag` Ropewalk:shoveGluonLoops (`default = on`)
Allow for shoving of strings which form a gluon loop. This is mainly a technical setting, and should be kept switched on, unless the user has a specific intention of switching it off.

`flag` Ropewalk:shoveJunctionStrings (`default = on`)
Allow for shoving of strings that includes a junction topology from eg. beam remnants. This is mainly a technical setting, and should be kept switched on, unless the user has a specific intention of switching it off.

`flag` Ropewalk:shoveMiniStrings (`default = on`)
Allow for shoving of ministrings. This is mainly a technical setting, and should be kept switched on, unless the user has a specific intention of switching it off.

`flag` Ropewalk:limitMom (`default = on`)
It is possible to switch off shoving for dipoles with a p_\perp above a given value. This is intended as a cut-off to disallow string segments moving so fast that they would anyway escape shoving from soft strings to have gluonic excitations added to them.

`parm` Ropewalk:pTcut (`default = 2.0`; `minimum = 0.`; `maximum = 1000.`)
The value of p_\perp at which shoving is turned off, if the flag `Ropewalk:limitMom` is on.

### Flavour Ropes

The Flavour Ropes mechanism allows strings situated close in impact parameter space to interact coherently, forming a rope, which hadronizes with a larger, effective string tension. The model is described in ref. [Bie14], building on an older idea by Biro et al. [Bir84].

In the flavour rope formalism, a rope is described as an SU(3) multiplet, characterized uniquely by two quantum numbers p and q. The quantum numbers are calculated, following ref. [Bir84], by a random walk procedure in colour space, taking m, n steps, where m and n signify the number of overlapping strings which are respectively parallel or anti-parallel to the hadronizing string.

When the rope quantum numbers have been determined, the effective string tension is calculated per individual breaking, using a lattice QCD determination of the string tension [Bal00]. The effective string tension is then used to rescale the hadronization parameters described in the section on String Fragmentation. One point to note regarding the rescaling is the fragmentation parameter `StringFlav:probQQtoQ`, describing baryon relative to meson production. Baryon production is, as suggested by eg. the popcorn hadronization model [Ede97], more complicated than meson production. The current modelling of this in the flavour ropes framework is limited, but intended to be extended in the future.

`parm` Ropewalk:beta (`default = 0.2`; `minimum = 0.`; `maximum = 1.0`)
In the current implementation of the rope model, the theoretical ignorance about baryon production has been parameterized, assuming that the parameter `StringFlav:probQQtoQ` will factorize into two parts, one which will scale with effective string tension, one which will not. This parameter controls how large a fraction of the parameter will scale with string tension.

`flag` Ropewalk:alwaysHighest (`default = off`)
Setting this flag on will skip the random walk procedure for flavour ropes, and assume that one always ends up in the highest possible SU(3) multiplet. This would be adequate for situations where all lower multiplets are assumed handled by colour reconnection and junction formation.

`flag` Ropewalk:doBuffon (`default = off`)
Setting this flag on, enables a simpler treatment of flavour ropes. This is not reliant on vertex information, but string-string overlaps are decided randomly á la Buffon's needle [Bie16c]: All strings are thrown randomly into a circular area in transverse space to estimate overlaps.

`parm` Ropewalk:stringProtonRatio (`default = 0.2`; `minimum = 0.`; `maximum = 10.0`)
Only used if `Ropewalk:buffonRope` is enabled. The ratio of the string transverse area to a proton transverse area. Determines the amount of overlap in collisions.

`parm` Ropewalk:rapiditySpan (`default = 0.5`; `minimum = 0.`; `maximum = 10.0`)
Only used if `Ropewalk:buffonRope` is enabled. Determines how far in rapidity from a string break overlaps are counted.

`flag` Ropewalk:setFixedKappa (`default = off`)
Setting this flag gives the user the possibility to ignore the generator space-time information altogether, using only a provided string tension. This could be useful for (toy) studies of hadronization in very dense environments, such as central heavy ion collisions.

`parm` Ropewalk:presetKappa (`default = 0.`; `minimum = 0.`; `maximum = 100.0`)
The effective string tension is normally calculated dynamically using overlaps of strings, based on Parton Vertex information. By setting `Ropewalk:setFixedKappa`, this information is ignored, and a preset value provided in the `presetKappa` variable is used.

`parm` StringFlav:kappa (`default = 0.2`; `minimum = 0.0`; `maximum = 10.`)
A base value of the string tension can be added, and modified along with other parameters, to allow for studies of exotic quark production in the Rope model.