## QCD Processes

This section is subdivided into soft and hard QCD processes, with open charm and bottom production set aside as a special part of the latter, and three-jet topologies as a special subset. Kindly note that there is a considerable amount of overlap between the soft and hard process classes, so that you are likely to doublecount if you include both in a run.

### Soft QCD processes

As a rule, the processes in this class should not be mixed with the simulation of other processes. All by themselves, they are intended to represent the total cross section of hadron collisions, with the exception of the "rare processes" that one wishes to study separately. In particular, jet physics at all scales occurs as part of the minimum-bias description.

We here use the "minimum bias" expression as a shorthand for inelastic, nondiffractive events. Strictly speaking, "minimum bias" represents an experimental procedure of accepting "everything", with some non-universal cuts to exclude elastic and diffractive topologies. In practice, the experimental mimimum-bias sample may then contain some contamination of what is in PYTHIA classified as diffractive, especially (high-mass) double diffractive.

Some options to modify these cross sections are found on the Total Cross Sections page.

`flag` SoftQCD:all (`default = off`)
Common switch for the group of all soft QCD processes, as listed separately in the following.

`flag` SoftQCD:minBias (`default = off`)
Minimum-bias events, based on an eikonalized description of all the hard QCD processes, so includes them in combinationation with low-pT events. Code 101.
Since the current description is handled by the multiparton-interactions machinery as part of the parton-level processing, no hard process at all is defined at the process-level part of the event generation. Fortunately, in this case a special `codeSub()` method provides information on the first, i.e. hardest, subprocess selected by the multiparton-interactions machinery.

`flag` SoftQCD:elastic (`default = off`)
Elastic scattering A B -> A B. Code 102. It is possible to include Coulomb corrections, but by default this is off.

`flag` SoftQCD:singleDiffractive (`default = off`)
Single diffractive scattering A B -> X B and A B -> A X. See page on Diffraction for details. Codes 103 and 104.

`flag` SoftQCD:doubleDiffractive (`default = off`)
Double diffractive scattering A B -> X_1 X_2. See page on Diffraction for details. Code 105.

`flag` SoftQCD:centralDiffractive (`default = off`)
Central diffractive scattering A B -> A X B (a.k.a. double-Pomeron exchange, DPE). See page on Diffraction for details. Code 106.

### Hard QCD processes

This group contains the processes for QCD jet production above some minimum pT threshold. The pT_min cut cannot be put too low, or else unreasonably large jet cross sections will be obtained. This is because the divergent perturbative QCD cross section is used in this process group, without any regularization modifications. An eikonalized description, intended to be valid at all pT, is instead included as part of the multiparton-interactions framework, specifically in `SoftQCD:minBias` above.
Warning 1: you must remember to set the `PhaseSpace:pTHatMin` value if you use any of these processes; there is no sensible default.
Warning 2: you must not mix processes from the `SoftQCD` and `HardQCD` process groups, since this is likely to lead to doublecounting.

`flag` HardQCD:all (`default = off`)
Common switch for the group of all hard QCD processes, as listed separately in the following.

`flag` HardQCD:gg2gg (`default = off`)
Scatterings g g -> g g. Code 111.

`flag` HardQCD:gg2qqbar (`default = off`)
Scatterings g g -> q qbar, where q by default is a light quark (u, d, s) (see below). Code 112.

`flag` HardQCD:qg2qg (`default = off`)
Scatterings q g -> q g and qbar g -> qbar g. Code 113.

`flag` HardQCD:qq2qq (`default = off`)
Scatterings q q' -> q q', q qbar' -> q qbar', qbar qbar' -> qbar qbar', where q' and q may agree, but the outgoing flavours equals the incoming ones Code 114.

`flag` HardQCD:qqbar2gg (`default = off`)
Scatterings q qbar -> g g. Code 115.

`flag` HardQCD:qqbar2qqbarNew (`default = off`)
Scatterings q qbar -> q' qbar', where q' by default is a light quark (u, d, s) (see below). Code 116.

`mode` HardQCD:nQuarkNew (`default = 3`; `minimum = 0`; `maximum = 5`)
Number of allowed outgoing new quark flavours in the above g g -> q qbar and q qbar -> q' qbar' processes, where quarks are treated as massless in the matrix-element expressions (but correctly in the phase space). It is thus assumed that c cbar and b bbar are added separately with masses taken into account, using the processes below. A change to 4 would also include c cbar in the massless approximation, etc. In order to avoid doublecounting the processes below should then not be used simultaneously.

### Hard QCD processes: heavy-flavour subset

These processes form a natural part of the above class, but can also be generated separately. Formally the heavy-quark mass makes these matrix elements finite in the pT -> 0 limit, but at high energies one may still question the validity of the expressions at low pT values, like for the other hard-QCD processes. Also as above, an eikonalized description, intended to be valid at all pT, is included as part of the multiparton-interactions framework.
Note that the processes below only represent the "tip of the iceberg" of charm and bottom production at high energies, where flavour excitation and shower branchings provide major additional sources. All these sources come together in the descriptions offered by `SoftQCD:minBias` and `HardQCD:all`.

`flag` HardQCD:gg2ccbar (`default = off`)
Scatterings g g -> c cbar. Code 121.

`flag` HardQCD:qqbar2ccbar (`default = off`)
Scatterings q qbar -> c cbar. Code 122.

`flag` HardQCD:gg2bbbar (`default = off`)
Scatterings g g -> b bbar. Code 123.

`flag` HardQCD:qqbar2bbbar (`default = off`)
Scatterings q qbar -> b bbar. Code 124.

### Hard QCD three-parton processes

Three-parton final states are generated by showers off two-parton processes. Topologies then cannot be specified beforehand, beyond what is provided by the two-parton hard process. For some checks it may be convenient to have access to the dedicated three-parton final states, which is what this set of processes allows. Cross sections have been taken from [Ber81].
Note that the processes in this section are not affected by the `HardQCD:all` switch. In fact, it would be doublecounting to include both the `HardQCD:all` and the `HardQCD:3parton` processes in a run or study.
Warning: this section is still incomplete, e.g. the selection of colour flow is very simple, and so it should only be used with caution.

`flag` HardQCD:3parton (`default = off`)
Common switch for the group of all hard QCD processes with three partons in the final state, as listed separately in the following.

`flag` HardQCD:gg2ggg (`default = off`)
Scatterings g g -> g g g. Code 131.

`flag` HardQCD:qqbar2ggg (`default = off`)
Scatterings q qbar -> g g g. Code 132.

`flag` HardQCD:qg2qgg (`default = off`)
Scatterings q g -> q g g and qbar g -> qbar g g. Code 133.

`flag` HardQCD:qq2qqgDiff (`default = off`)
Scatterings q q' -> q q' g, q qbar' -> q qbar' g, and qbar qbar' -> qbar qbar' g. Code 134.

`flag` HardQCD:qq2qqgSame (`default = off`)
Scatterings q q -> q q g and qbar qbar -> qbar qbar g (q qbar -> q qbar g scatterings are considered separately below, see `HardQCD:qqbar2qqbargSame`). Code 135.

`flag` HardQCD:qqbar2qqbargDiff (`default = off`)
Scatterings q qbar -> q' qbar' g, where q' by default is a light quark (u, d, s) (see `HardQCD:nQuarkNew` above). Code 136.

`flag` HardQCD:qqbar2qqbargSame (`default = off`)
Scatterings q qbar -> q qbar g. Code 137.

`flag` HardQCD:gg2qqbarg (`default = off`)
Scatterings g g -> q qbar g, where q by default is a light quark (u, d, s) (see `HardQCD:nQuarkNew` above). Code 138.

`flag` HardQCD:qg2qqqbarDiff (`default = off`)
Scatterings q g -> q q' qbar' and qbar g -> qbar qbar' q', where q' by default is a light quark (u, d, s) (see `HardQCD:nQuarkNew` above). Code 139.

`flag` HardQCD:qg2qqqbarSame (`default = off`)
Scatterings q g -> q q qbar and qbar g -> qbar qbar q. Code 140.