## Total Cross Sections

The `SigmaTotal` class returns the total, elastic, diffractive and nondiffractive cross sections in hadronic collisions, and also the slopes of the d(sigma)/dt distributions. The parametrizations used are from [Sch94, Sch97] which borrows some of the total cross sections from [Don92].

There are strong indications that the currently implemented diffractive cross section parametrizations, which should be in reasonable agreement with data at lower energies, overestimate the diffractive rate at larger values. If you wish to explore this (or other) aspect, it is possible to override the cross section values in two different ways. The first offers (almost) complete freedom, but needs to be defined separately for each CM energy, while the second introduces a simpler parametrized damping. The two cannot be combined. Furthermore the Coulomb term for elastic scattering, which by default is off, can be switched on.

The allowed combinations of incoming particles are p + p, pbar + p, pi+ + p, pi- + p, pi0/rho0 + p, phi + p, J/psi + p, rho + rho, rho + phi, rho + J/psi, phi + phi, phi + J/psi, J/psi + J/psi. The strong emphasis on vector mesons is related to the description of gamma + p and gamma + gamma interactions in a Vector Dominance Model framework (which will not be available for some time to come, so this is a bit of overkill). Nevertheless, the sections below, with allowed variations, are mainly intended to make sense for p + p.

### Set cross sections

`flag` SigmaTotal:setOwn (`default = off`)
Allow a user to set own cross sections by hand; on/off = true/false.

When `SigmaTotal:setOwn = on`, the user is expected to set values for the corresponding cross sections:

`parm` SigmaTotal:sigmaTot (`default = 80.`; `minimum = 0.`)
Total cross section in mb.

`parm` SigmaTotal:sigmaEl (`default = 20.`; `minimum = 0.`)
Elastic cross section in mb.

`parm` SigmaTotal:sigmaXB (`default = 8.`; `minimum = 0.`)
Single Diffractive cross section A + B -> X + B in mb.

`parm` SigmaTotal:sigmaAX (`default = 8.`; `minimum = 0.`)
Single Diffractive cross section A + B -> A + X in mb.

`parm` SigmaTotal:sigmaXX (`default = 4.`; `minimum = 0.`)
Double Diffractive cross section A + B -> X_1 + X_2 in mb.

`parm` SigmaTotal:sigmaAXB (`default = 0.`; `minimum = 0.`)
Central Diffractive cross section A + B -> A + X + B in mb.

Note that the total cross section subtracted by the elastic and various diffractive ones gives the inelastic nondiffractive cross section, which therefore is not set separately. If this cross section evaluates to be negative the internal parametrizations are used instead of the ones here. However, since the nondiffractive inelastic cross section is what makes up the minimum-bias event class, and plays a major role in the description of multiparton interactions, it is important that a consistent set is used.

### Dampen diffractive cross sections

`flag` SigmaDiffractive:dampen (`default = no`)
Allow a user to dampen diffractive cross sections; on/off = true/false.

When `SigmaDiffractive:dampen = on`, the three diffractive cross sections are damped so that they never can exceed the respective values below. Specifically, if the standard parametrization gives the cross section sigma_old(s) and a fixed sigma_max is set, the actual cross section becomes sigma_new(s) = sigma_old(s) * sigma_max / (sigma_old(s) + sigma_max). This reduces to sigma_old(s) at low energies and to sigma_max at high ones. Note that the asymptotic value is approached quite slowly, however.

`parm` SigmaDiffractive:maxXB (`default = 15.`; `minimum = 0.`)
The above sigma_max for A + B -> X + B in mb.

`parm` SigmaDiffractive:maxAX (`default = 15.`; `minimum = 0.`)
The above sigma_max for A + B -> X + B in mb.

`parm` SigmaDiffractive:maxXX (`default = 15.`; `minimum = 0.`)
The above sigma_max for A + B -> X + B in mb.

As above, a reduced diffractive cross section automatically translates into an increased nondiffractive one, such that the total (and elastic) cross section remains fixed.

### Set elastic cross section

In the above option the t slopes are based on the internal parametrizations. In addition there is no Coulomb-term contribution to the elastic (or total) cross section, which of course becomes infinite if this contribution is included. If you have switched on `SigmaTotal:setOwn` you can further switch on a machinery to include the Coulomb term, including interference with the conventional strong-interaction Pomeron one [Ber87]. Then the elastic cross section is no longer taken from `SigmaTotal:sigmaEl` but derived from the parameters below and `SigmaTotal:sigmaTot`, using the optical theorem. The machinery is only intended to be used for p p and pbar p collisions. The description of diffractive events, and especially their slopes, remains unchanged.

`flag` SigmaElastic:setOwn (`default = no`)
Allow a user to set parameters for the normalization and shape of the elastic cross section the by hand; yes/no = true/false.

`parm` SigmaElastic:bSlope (`default = 18.`; `minimum = 0.`)
the slope b of the strong-interaction term exp(bt), in units of GeV^-2.

`parm` SigmaElastic:rho (`default = 0.13`; `minimum = -1.`; `maximum = 1.`)
the ratio of the real to the imaginary parts of the nuclear scattering amplitude.

`parm` SigmaElastic:lambda (`default = 0.71`; `minimum = 0.1`; `maximum = 2.`)
the main parameter of the electric form factor G(t) = lambda^2 / (lambda + |t|)^2, in units of GeV^2.

`parm` SigmaElastic:tAbsMin (`default = 5e-5`; `minimum = 1e-10`)
since the Coulomb contribution is infinite a lower limit on |t| must be set to regularize the divergence, in units of GeV^2.

`parm` SigmaElastic:phaseConst (`default = 0.577`)
The Coulomb term is taken to contain a phase factor exp(+- i alpha phi(t)), with + for p p and - for pbar p, where phi(t) = - phaseConst - ln(-B t/2). This constant is model dependent [Cah82].