1 Theoretical input

1.1 CCFM evolution equation and transverse momentum dependent PDFs

QCD calculations of multiple-scale processes and complex final-states require in general transverse-momentum dependent (TMD), or unintegrated, parton density and parton decay functions [110]. TMD factorization has been proven recently [1] for inclusive and semi-inclusive deep-inelastic scattering (DIS). For special processes in hadron-hadron scattering, like heavy flavor or heavy boson (including Higgs) production, TMD factorization holds in the high-energy limit (small \(x\)) [1113].

In the framework of high-energy factorization [11, 14] the deep-inelastic scattering cross section can be written as a convolution in both longitudinal and transverse momenta of the TMD parton density function \(\mathcal{A}(x,k_t,\mu )\) with off-shell partonic matrix elements, as follows

$$\begin{aligned} \sigma _j ( x , Q^2 ) = \int _x^1 d z \int d^2k_t \ \hat{\sigma }_j( x , Q^2 , { z} , k_t ) \ \mathcal{A}( { z} ,k_t, p), \nonumber \\ \end{aligned}$$
(1)

with the DIS cross sections \(\sigma _j\) (\(j= 2 , L\)) related to the structure functions \(F_2\) and \(F_L\) by \(\sigma _j = 4 \pi ^2 F_j / Q^2\). The hard-scattering kernels \({\hat{\sigma }}_j\) of Eq. (1) are \(k_t\)-dependent and the evolution of the transverse momentum dependent gluon density \(\mathcal{A} \) is obtained by combining the resummation of small-\(x\) logarithmic contributions [1517] with medium-\(x\) and large-\(x\) contributions to parton splitting [1820] according to the CCFM evolution equation [2123].

The factorization formula (1) allows one to resum logarithmically enhanced \( x \rightarrow 0 \) contributions to all orders in perturbation theory, both in the hard scattering coefficients and in the parton evolution, taking fully into account the dependence on the factorization scale \(p\) and on the factorization scheme [24, 25].

The CCFM evolution equation [2123] is an exclusive equation for final state partons and includes finite-\(x\) contributions to parton splitting. It incorporates soft gluon coherence for any value of \(x\).

1.1.1 Gluon distribution

The evolution equation for the TMD gluon density \({\mathcal {A}}(x,k_t,p)\), depending on \(x\), \(k_t\) and the evolution variable \(p\), is

$$\begin{aligned}&\mathcal{A} ( x , k_t, p ) = \mathcal{A}_0 ( x , k_t, p ) + \int { \frac{dz}{z}} \int { \frac{ d q^2}{q^2}} \ \Theta (p - z q)\nonumber \\&\quad \times \Delta _s (p , z q) P ( z, q, k_t) \ \mathcal{A} \left( \frac{x}{z} , k_t\!+\! (1\!-\!z) q, q \right) , \end{aligned}$$
(2)

where \(z\) is the longitudinal momentum fraction, \(q\) is the angular variable and the \(\Theta \) function specifies the ordering condition of the evolution [26].

The first term in the right hand side of Eq. (2) is the contribution of the non-resolvable branchings between the starting scale \(q_0\) and the evolution scale \(p\), and is given by

$$\begin{aligned} \mathcal{A}_0 ( x , k_t, p ) = \mathcal{A}_0 ( x , k_t, q_0 ) \ \Delta _s (p , q_0), \end{aligned}$$
(3)

where \(\Delta _s\) is the Sudakov form factor, and \(\mathcal{A}_0 ( x , k_t, q_0 )\) is the starting distribution at scale \(q_0\). The integral term in the right hand side of Eq. (2) gives the \(k_t\)-dependent branchings in terms of the Sudakov form factor \(\Delta _s\) and unintegrated splitting function \(P\).

The Sudakov form factor \(\Delta _s\) is given by

$$\begin{aligned} \Delta _s(p,q_0) \!=\!\exp {\left( \! -\! \int _{q_0^2} ^{p^2} \frac{d q^{2}}{q^{2}} \int _0^{1-q_0/q} dz \ \frac{\bar{\alpha }_s(q^2(1\!-\!z)^2)}{1\!-\!z} \right) } , \end{aligned}$$
(4)

with \({\overline{\alpha }}_s= C_A \alpha _s / \pi =3 \alpha _s / \pi \).

For application in Monte Carlo event generators, like Cascade [27, 28], it is of advantage to write the CCFM evolution equation in differential form:

$$\begin{aligned}&p^2\frac{d\; }{d p^2} \frac{x {\mathcal {A}}(x,k_t,p)}{\Delta _s(p,q_0)}\nonumber \\&\quad = \int dz \ \frac{d\phi }{2\pi }\, \frac{{P} (z,p/z,k_t)}{\Delta _s(p,q_0)}\, x'{\mathcal {A}}(x',k_t',p/z) , \end{aligned}$$
(5)

where the splitting variable \(x'\) is given by \(x'=x/z\), \({k_t}' = q_t (1-z)/z + {k_t}\), and \(\phi \) is the azimuthal angle of \(q_t\).

For the evolution of the parton densities, however, a forward evolution approach, starting from the low scale \(q_0\) towards the hard scale \(p\), is used.

The splitting function \(P_{gg}(z_i,q_i,k_{ti})\) for branching \(i\) is given by [29] (set by Ipgg=1, ns=1 in uPDFevolv)

$$\begin{aligned}&P_{gg} (z_i,q_i,k_{ti}) \!=\! \bar{\alpha }_s(q^2_{i}(1\!-\!z_i)^2) \ \left( \frac{ 1 }{1\!-\!z_i} \!-\! 1 \!+\! \frac{ z_i (1 \!-\! z_i) }{2 } \right) \nonumber \\&\quad \!+\! \bar{\alpha }_s(k^2_{ti}) \ \left( \frac{1}{ z_i} \!-\! 1 \!+\! \frac{ z_i (1 \!-\! z_i) }{ 2 } \right) \Delta _{ns}(z_i,q^2_{i},k^2_{ti}) \end{aligned}$$
(6)

where \(\Delta _{ns}\) is the non-Sudakov form factor defined by

$$\begin{aligned} \log \Delta _{ns}&= -\bar{\alpha }_s(k^2_{ti}) \int _0^1 dz' \left( \frac{1}{ z'} - 1 + \frac{ z'(1 - z') }{ 2 } \right) \nonumber \\&\times \int \frac{d q^2}{q^2} \Theta (k_{ti}-q)\Theta (q-z'q_{ti}). \end{aligned}$$
(7)

In addition to the full splitting function, simplified versions are useful in applications and are made available. One uses only the singular parts of the splitting function (set by Ipgg=0, ns=0 in uPDFevolv):

$$\begin{aligned} P_{gg}(z,q,k_t)&= \frac{\bar{\alpha }_s(q^2)}{1-z} + \frac{\bar{\alpha }_s(k_t^2)}{z} \Delta _{ns}(z,q^2,k_t) \end{aligned}$$
(8)

with

$$\begin{aligned} \log \Delta _{ns} = -\bar{\alpha }_s(k^2_{ti}) \int _0^1 \frac{dz'}{ z'} \int \frac{d q^2}{q^2} \Theta (k_{ti}-q)\Theta (q-z'q_{ti}). \end{aligned}$$
(9)

Another uses \(\alpha _s(q^2)\) also for the small \(z\) part (set by Ipgg=2, ns=2 in uPDFevolv):

$$\begin{aligned} P_{gg}(z,q,k_t)&= \frac{\bar{\alpha }_s(q^2)}{1-z} + \frac{\bar{\alpha }_s(q^2)}{z} \Delta _{ns}(z,q^2,k_t) \end{aligned}$$
(10)

with

$$\begin{aligned} \log \Delta _{ns} = - \int _0^1 \frac{dz'}{ z'} \int \frac{d q^2}{q^2} \bar{\alpha }_s(q^2) \Theta (k_{ti}-q)\Theta (q-z'q_{ti}). \end{aligned}$$
(11)

In general a four-momentum a can be written in light-cone variables as a = \((a^+, a^-, a_T)\) with \(a^+ \) and \(a^-\) being the light-cone components and \(a_T\) being the transverse component. The CCFM (as well as the BFKL) evolution depends only on one of the light-cone components. Assuming that the other one can be neglected, this leads to the condition that the virtuality of the parton propagator \(a^2 = 2 a^+ a^- -a_T^2\) should be dominated by the transverse component, while the contribution from the longitudinal components is required to be small. The condition that \(a^+a^- = 0\) leads to the so-called consistency constraint (see Fig. 1), which has been implemented in different forms (set by Ikincut=1,2,3 in uPDFevolv)

$$\begin{aligned} q_t^2&< \frac{k_t^2}{z} \ \text{ LDC } [21, 30]\end{aligned}$$
(12)
$$\begin{aligned} q_t^2&< \frac{(1-z) k_t^2}{ z} \ [31]\end{aligned}$$
(13)
$$\begin{aligned} k_t^{'\,2}&< \frac{k_t^2}{z} \ \text{ BFKL } [31] \end{aligned}$$
(14)
Fig. 1
figure 1

Gluon branching

1.1.2 Valence quarks

Using the method of [32, 33] valence quarks are included in the branching evolution at the transverse-momentum dependent level according to

$$\begin{aligned}&x{ Q_v} (x,k_t,p ) = x{ Q_v}_0 (x,k_t,p ) + \int \frac{dz }{z} \int \frac{d q^2}{ q^{2}} \Theta (p - zq)\nonumber \\&\quad \times \Delta _s ( p , zq) P_{qq} (z, q , k_t) \ x{Q_v}\left( \frac{x}{z},k_t \!+\! (1\!-\!z) q , q \right) , \end{aligned}$$
(15)

where \(p\) is the evolution scale. The quark splitting function \(P_{qq}\) is given by

$$\begin{aligned} P_{qq} (z, q , k_t)=\frac{C_F}{2\pi } \alpha _s (q^2 (1-z)^2) \frac{1+z^2}{1-z}. \end{aligned}$$
(16)

In Eqs. (15), (16) the non-Sudakov form factor is not included, unlike the CCFM kernel given in the appendix B of [22], because we only associate this factor with \(1/z\) terms. The term \(x{ Q_v}_0\) in Eq. (15) is the contribution of the non-resolvable branchings between starting scale \(q_0\) and evolution scale \(p\), given by

$$\begin{aligned} x{ Q_v}_0 (x,k_t,p ) = x{ Q_v}_0 (x,k_t,q_0 ) \Delta _s ( p , q_0), \end{aligned}$$
(17)

where \( \Delta _s\) is the Sudakov form factor.

1.1.3 Sea quarks

For a complete description of the final states also the contribution from sea-quarks needs to be included. We include splitting functions \(P_{ab}\) according to

$$\begin{aligned} P_{gg}(z)&= \bar{\alpha }_s\left( { 1 \over {1-z_i}} - 1 + { { z_i (1 - z_i) } \over 2 } \right) \nonumber \\&+ \bar{\alpha }_s\ \left( { 1 \over z_i} - 1 + { { z_i (1 - z_i) } \over 2 } \right) \Delta _{ns} \end{aligned}$$
(18)
$$\begin{aligned} P_{qg}(z)&= \bar{\alpha }_s\frac{1}{4 C_A} ( z^2 + (1-z)^2) \end{aligned}$$
(19)
$$\begin{aligned} P_{gq}(z)&= \bar{\alpha }_s\frac{C_F}{2C_A} \left( \frac{1 + (1-z)^2}{z}\right) \end{aligned}$$
(20)
$$\begin{aligned} P_{qq}(z)&= \bar{\alpha }_s\frac{C_F}{2C_A} \left( \frac{1+z^2}{1-z}\right) \end{aligned}$$
(21)

with \(\bar{\alpha }_s=C_A \alpha _s / \pi \), \(C_A=3\) and \(C_F=4/3\).

The \(g\rightarrow q\bar{q}\) splitting has been calculated in a \(k_t\)- factorized form in [24],

$$\begin{aligned} P_{qg}( z, {\tilde{q}}, k_t)&= \bar{\alpha }_s\frac{1}{4 C_A} \left[ \frac{{\tilde{q}}^2}{{\tilde{q}}^2 + z(1-z)\ k_t^2}\right] ^2\nonumber \\&\times \left( z^2 + (1-z)^2 + 4 z^2 (1-z)^2 \ \frac{k_t^2}{{\tilde{q} }^2} \right) \end{aligned}$$
(22)

with \({\tilde{q}} = q - zk_t\), and \(q (k_t)\) being the transverse momentum of the quark (gluon).

The evolution equation for the TMD sea-quark density \(\mathcal{S}(x,k_t,p)\), depending on \(x\), \(k_t\) and the evolution variable \(p\) is (we allow a general \(k_t\) dependence of the splitting functions, as proposed in appendix B of [22], even if it is not included in Eqs. (18)–(21)),

$$\begin{aligned}&\mathcal{S} ( x , k_t, p ) = \mathcal{S}_0 ( x , k_t, p ) \nonumber \\&\quad + \int { {dz} \over z} \int { { d q^2} \over q^2} \ \Theta (p - z q) \ \Delta _s (p , z q) P_{qg} ( z, q, k_t)\nonumber \\&\quad \times \mathcal{A} \left( { x \over z} , k_t+ (1-z) q, q \right) \nonumber \\&\quad + \int { {dz} \over z} \int { { d q^2} \over q^2} \ \Theta (p - z q) \Delta _s (p , z q) P_{qq} ( z, q, k_t) \nonumber \\&\quad \times \mathcal{S} \left( { x \over z} , k_t+ (1-z) q, q \right) , \end{aligned}$$
(23)

where \( \mathcal{S}_0 ( x , k_t, p )\) is the non-resolvable branching probability similar to Eqs. (3), (17).

The evolution of the TMD gluon density including the contribution from quarks is given by

$$\begin{aligned}&\mathcal{A} ( x , k_t, p ) = \mathcal{A}_0 ( x , k_t, p ) \nonumber \\&\quad + \int { {dz} \over z} \int { { d q^2} \over q^2} \Theta (p - z q) \Delta _s (p , z q) P_{gg} ( z, q, k_t) \nonumber \\&\quad \times \mathcal{A} \left( { x \over z} , k_t+ (1-z) q, q \right) \nonumber \\&\quad + \int { {dz} \over z} \int { { d q^2} \over q^2} \Theta (p - z q) \Delta _s (p , z q) P_{gq} ( z, q, k_t)\nonumber \\&\quad \times \mathcal{S} \left( { x \over z} , k_t+ (1-z) q, q \right) . \end{aligned}$$
(24)

1.1.4 Monte Carlo solution of the CCFM evolution equations

The evolution equations (23), (24) are integral equations of the Fredholm type

$$\begin{aligned} f(x) = f_0(x) + \lambda \int _a^b K(x,y) f(y) dy \end{aligned}$$

and can be solved by iteration as a Neumann series

$$\begin{aligned} f_1(x)&= f_0(x) + \lambda \int _a^b K(x,y) f_0(y) dy \nonumber \\ f_2(x)&= f_0(x) + \lambda \int _a^b K(x,y_1) f_0(y_1) dy_1\nonumber \\&+ \lambda ^2 \int _a^b \int _a^b K(x,y_1) K(y_1,y_2)f_0(y_2) dy_2 dy_1\nonumber \\&\cdots \end{aligned}$$
(25)

using the kernel \(K(x,y)\), with the solution

$$\begin{aligned} f(x)=\lim _{n\rightarrow \infty } \sum _{i=0}^n f_i(x). \end{aligned}$$
(26)

Applying this to the evolution equations Eqs. (23), (24), we identify \(f_0\) with the first term in Eq. (24), where we use for simplicity here and in the following \(\Delta _s(p)=\Delta _s(p,q_0)\):

$$\begin{aligned} \mathcal{A}_0(x,k_t,p)&= \mathcal{A}_0 ( x , k_t) \Delta _s(p) . \end{aligned}$$
(27)

The first iteration involves one branching:

$$\begin{aligned} \mathcal{A}_1(x,k_t,p)&= \mathcal{A}_0 ( x , k_t) \Delta _s(p) \nonumber \\&+ \int _x^1 \frac{dz'}{z'} \int _{q_0}^p \frac{dq'^{2}}{q'^{2}} { \Theta (p - z' q')} \nonumber \\&\times \frac{\Delta _s(p)}{\Delta _s(zq')} \tilde{P}(z') { \mathcal{A}_0(x/z',k_t',q')}. \end{aligned}$$
(28)

The second iteration involves two branchings,

$$\begin{aligned}&\mathcal{A}_2(x,k_t,p) = \mathcal{A}_0 ( x , k_t) \Delta (p) \nonumber \\&\qquad + \int _x^1 \frac{dz'}{z'} \int _{q_0}^p \frac{dq'^{2}}{q'^{2}} \Theta (p - z' q') \nonumber \\&\qquad \times \frac{\Delta (p)}{\Delta (q')} \tilde{P}(z') { \mathcal{A}_1(x/z',k_t',q') } \nonumber \\&\quad = \mathcal{A}_0 ( x , k_t) \Delta (p) + \frac{\alpha _{\mathrm {s}}}{2\pi } \int _x^1 \frac{dz'}{z'} \int _{q_0}^p \frac{dq'^2}{q'^2} \nonumber \\&\qquad \times \Theta (p - z' q') \frac{\Delta _s(p)}{\Delta _s(zq')} \tilde{P}(z') { \mathcal{A}_0(x/z',k_t',q') } \nonumber \\&\qquad + \left( \frac{\alpha _{\mathrm {s}}}{2\pi }\right) ^2 \int _x^1 \frac{dz'}{z'} \int _{q_0}^p \frac{dq'^2}{q'^2} \Theta (p - z' q') \nonumber \\&\qquad \times \frac{\Delta _s(p)}{\Delta _s(z'q')} \tilde{P}(z') \times \int _x^1 \frac{dz''}{z''} \int _{q_0}^p \frac{dq''}{q''} \nonumber \\&\qquad \times \Theta (p - z'' q'') \frac{\Delta _s(p)}{\Delta _s(z''q'')} \tilde{P}(z'') { \mathcal{A}_0(z''/z',k_t'',q'') } , \\&\mathcal{A}_3(x,k_t,p) = \cdots \nonumber \\&\qquad \qquad \qquad \vdots \nonumber \end{aligned}$$
(29)

In a Monte Carlo (MC) solution [34, 35] we evolve from \(q_0\) to a value \(q'\) obtained from the Sudakov factor \(\Delta _s(q',q_0)\) (for a schematic visualisation of the evolution see Fig. 2). Note that the Sudakov factor \(\Delta _s(q',q_0)\) gives the probability for evolving from \(q_0\) to \(q'\) without resolvable branching. The value \(q'\) is obtained from solving for \(q'\):

$$\begin{aligned} R = \Delta _s(q',q_0), \end{aligned}$$
(30)

for a random number \(R\) in \([0,1]\).

Fig. 2
figure 2

Evolution by iteration

If \(q' > p\) then the scale \(p\) is reached and the evolution is stopped, and we are left with just the first term without any resolvable branching. If \(q'<p\) then we generate a branching at \(q'\) according to the splitting function \(\tilde{P}(z') \), as described below, and continue the evolution using the Sudakov factor \(\Delta _s(q'',q')\). If \(q'' > p\) the evolution is stopped and we are left with just one resolvable branching at \(q'\). If \(q''<p\) we continue the evolution as described above. This procedure is repeated until we generate \(q>p\). By this procedure we sum all kinematically allowed contributions in the series \(\sum f_i(x,p)\) and obtain an MC estimate of the parton distribution function.

With the Sudakov factor \(\Delta _s\) and using

$$\begin{aligned} \frac{\partial }{\partial q'^2}\Delta _s(p,zq')&= \frac{\partial }{\partial q'^2} \frac{\Delta _s(p)}{\Delta _s(zq')}\nonumber \\&= \frac{\Delta _s(p)}{\Delta _s(zq')} \left[ \frac{1}{q'^2}\right] \int ^{z_{max}} d z \tilde{P}(z) , \end{aligned}$$

we can write the first iteration of the evolution equation as

$$\begin{aligned} \mathcal{A}_1(x,k_t,p)&= \mathcal{A}_0 ( x , k_t, p ) \nonumber \\&+ \int _x^1 \frac{dz'}{z'} \int _{q_0}^p d\Delta _s(p,z'q') \tilde{P}(z') \nonumber \\&\times {\mathcal{A}_0(x/z',k_t',q') } \left[ {\int ^{z_{max}} d z \tilde{P}(z) } \right] ^{-1}.\nonumber \\ \end{aligned}$$
(31)

The integrals can be solved by a Monte Carlo method [36]: \(z\) is generated from

$$\begin{aligned} \int _{z_{min}}^z dz'\tilde{P}(z')&= R_1 \int _{z_{min}}^{z_{max}} dz' \tilde{P}(z') , \end{aligned}$$
(32)

with \(R_1\) being a random number in \([0,1]\), and \(q'\) is generated from

$$\begin{aligned} R_2&= \int _{-\infty }^x f(x')dx' = F(x) \nonumber \\&= \int _{zq}^p \frac{\partial }{\partial q'^2} \left( \frac{\Delta _s(p)}{\Delta _s(zq')} \right) dq'^2 \nonumber \\&= \Delta _s(p,zq') \end{aligned}$$
(33)

solving for \(q'\), using \(z\) from above and another random number \(R_2\) in [0,1].

This completes the calculation on the first splitting. This procedure is repeated until \(q'>p\) and the evolution is stopped.

With \(z'\) and \(q'\) selected according to the above the first iteration of the evolution equation yields

(34)

with \(x'_i=x/z_i\).

1.1.5 Normalisation of gluon and quark distributions

The valence quark densities are normalised so that they fulfil for every \(p\) the flavor sum rule.

The gluon and sea quark densities are normalised so that for every \(p\)

$$\begin{aligned} \int _0^1 \!dx\! \int _0^\infty d k_t^2 x\mathcal{A}(x,k_t,q_0) \!&= \! \int _0^1 dx \int _0^\infty d k_t^2 ( x\mathcal{A}(x,k_t,p) \nonumber \\&+x\mathcal{S}(x,k_t,p)). \end{aligned}$$
(35)

1.2 Computational techniques: CCFM grid

When using the CCFM evolution in a fit program to determine the starting distribution \(\mathcal{A}_0 (x)\), a full MC solution [34, 35] is no longer suitable, since it is time consuming and suffers from numerical fluctuations. Instead a convolution method introduced in [37, 38] is used. The kernel \( \tilde{\mathcal{A}}(x'',k_t,p) \) is determined once from the Monte Carlo solution of the CCFM evolution equation, and then folded with the non-perturbative starting distribution \(\mathcal{A}_0 (x)\),

$$\begin{aligned}&x \mathcal{A}(x,k_t,p) = x\int dx' \int dx'' \mathcal{A}_0 (x') \tilde{\mathcal{A}}(x'',k_t,p) \delta (x' x'' - x) \nonumber \\&\quad = \int dx' {\mathcal{A}_0 (x') } \cdot \frac{x}{x'} \ { \tilde{\mathcal{A}}\left( \frac{x}{x'},k_t,p\right) } . \end{aligned}$$
(36)

The kernel \(\tilde{\mathcal{A}}\) incorporates all of the dynamics of the evolution, including Sudakov form factors and splitting functions. It is determined on a grid of \(50\otimes 50\otimes 50\) bins in \( x, k_t, p\). The binning in the grid is logarithmic, except for the longitudinal variable \(x\) where we use 40 bins in logarithmic spacing below 0.1, and 10 bins in linear spacing above 0.1.

Using this method, the complete coupled evolution of gluon and sea quarks is more complicated, since it is no longer a simple convolution of the kernel with the starting distribution. To simplify the approach, here we allow only for one species of partons at the starting scale, either gluons or sea-quarks. During evolution the other species will be generated. This approach, while convenient for QCD fits, has the feature that sea-quarks, in the case of gluons only at \(q_0\), are generated with perturbative transverse momenta (\(k_t> k_{t\ cut}\)), without contribution from the soft (non-perturbative) region.

1.3 Functional forms for starting distribution

1.3.1 Standard parametrisation

For the starting distribution \(\mathcal{A}_0\), at the starting scale \(q_0\), the following form is used:

$$\begin{aligned} x\mathcal{A}_0(x,k_t,q_{0})&= A_1 x^{-A_2} \cdot (1 -x)^{A_3} ( 1 -A_4 x \nonumber \\&+A_5 \sqrt{x} +A_6 x^2) \exp [ - k_t^2 / \sigma ^2], \end{aligned}$$
(37)

with \( \sigma ^2 = q_{0}^2 / 2 \) and free parameters \(A_1, \ldots , A_6 \).

Valence quarks are treated using the method of [32, 33, 38] with starting distributions at scale \(q_{0}\) parameterized using standard collinear pdfs (set by Ipdf in uPDFevolv) as

$$\begin{aligned} x{ Q_v}_0 (x,k_t,q_{0} ) = x{ Q_v}_\mathrm{{coll. pdf}} (x,q_{0} ) \ \exp [ - k_t^2 / \sigma ^2 ]. \end{aligned}$$
(38)

with \( \sigma ^2 = q_{0}^2 / 2 \). At every scale \(p\) the flavor sum rule is fulfilled for valence quarks.

1.3.2 Saturation ansatz

A saturation ansatz for the starting distribution \(\mathcal{A}_0\) at scale \(q_0\) is available, following the parameterisation of the saturation model by Eq. (18) of [39],

$$\begin{aligned} x \mathcal{A}_{sat} = \frac{1}{\alpha _s} \frac{3 \sigma _0}{4 \pi ^2} R_0^2(x)k_t^2 \exp {(-R_0^2(x) k_t^2)}, \end{aligned}$$
(39)

with \(R_0^2(x) = (x/x_0)^\lambda \). The free parameters are \(\sigma _0 = A_2\), \(\lambda = A_3\), \(x_0 = A_4\) and \(\alpha _s=A_5\). In order to be able to use this type of parameterisation over the full \(x\) range, an additional factor of \((1-x)^{A_6}\) (see [40]) is applied.

1.4 Plotting TMDs

A simple plot program is included in the package. For a graphical web interface use TMDplotter [41].

1.5 Application

The evolution of the TMD gluon density has been used to perform fits to the DIS precision data [42, 43], as described in detail in [38].

2 Description of the program components

2.1 Program history

figure a

2.2 Subroutines and functions

The source code of uPDFevolv and this manual can be found under: https://updfevolv.hepforge.org/

\(\mathtt sminit\) :

to initialise

\(\mathtt sminfn\) :

to generate starting distributions in \(x\) and \(k_t\)

\(\mathtt smbran\) :

to simulate perturbative branchings

\(\mathtt splittgg\) :

to generate \(g\rightarrow g g\) splitting via \(P_{gg}\)

\(\mathtt splittgq\) :

to generate \(q \rightarrow g q\) splitting via \(P_{gq}\)

\(\mathtt splittqg\) :

to generate \(g \rightarrow q\bar{q} \) splitting via \(P_{qg}\)

\(\mathtt splittqq\) :

to generate \(q \rightarrow q g \) splitting via \(P_{qq}\)

\(\mathtt szvalnew\) :

to calculate \(z\) values for \(g\rightarrow gg\) splitting

\(\mathtt smqtem\) :

to generate \(t\) from the corresponding Sudakov factor

\(\mathtt updfgrid\) :

to build, fill and normalise the updf grid.

\(\mathtt asbmy(kt)\) :

to calculate \(\frac{ C_A }{ \pi }\alpha _s(k_t)\)

Utility routines:

\(\mathtt evolve tmd\) :

main routine to perform CCFM evolution

\(\mathtt updfread\) :

example program to read and plot the results

\(\mathtt gadap\) :

1-dimensional Gauss integration routine

\(\mathtt gadap2\) :

2-dimensional Gauss integration routine

\(\mathtt divdif\) :

linear interpolation routine (CERNLIB)

\(\mathtt ranlux\) :

Random number generator RANLUX (CERNLIB)

2.3 Parameter in steering files

\(\mathtt 'updf-grid.dat'\) :

name of the grid file

\(\mathtt oneLoop = 0\) :

to select all loop CCFM or one loop DGLAP type evolution

\(\mathtt saturation = 0\) :

to select standard or saturated initial condition

\(\mathtt Ipdf = 60500\) :

LHApdf set name for collinear valence quark starting distribution

\(\mathtt Itarget = 2212\) :

hadron target ID (2212 = proton)

\(\mathtt Iglu = 1\) :

for gluon only evolution

\(\mathtt Ipgg = 1\) :

parameter for \(P_{gg}\) splitting function

\(\mathtt ns = 1\) :

parameter for treatment of non-sudakov form factor

\(\mathtt ikincut = 2\) :

flag for consistency constraint

\(\mathtt Qg = 2.2\) :

starting value \(q_0\) for perturbative evolution

\(\mathtt QCDlam = 0.20\) :

value for \(\Lambda _{qcd}\)

\(\mathtt A1,..., A6\) :

values for starting distribution; meaning depends on whether standard or saturation ansatz is used.

3 Example program

figure b
figure c

4 Program installation

uPDFevolv follows the standard AUTOMAKE convention. To install the program, do the following

figure d
figure e