# Process computation¶

Functions for process computation:

`compute_process_rcl` (npr,p,order) |
Computes the structure-dressed helicity amplitudes and the summed squared amplitude (unless polarizations specified, see `define_process_rcl()` ) for the process with process number `npr` . |

`compute_colour_correlation_rcl` (…) |
Computes the colour-correlated summed squared amplitude, between particle with leg number `i1` and particle with leg number `i2` , for the process with process number `npr` . |

`compute_spin_correlation_rcl` (npr,p,j,v,order=) |
Computes the spin-correlated summed squared amplitude, where the polarization vector of particle `j` , necessarily being a gluon or photon, is is substituted for the user-defined polarization vector `v` . |

`compute_spin_colour_correlation_rcl` (…) |
Computes the spin-colour-correlated summed squared amplitude, between particle with leg number `i1` and particle with leg number `i2` , for the process with process number `npr` . |

`compute_spin_correlation_matrix_rcl` (…) |
Computes the summed spin-correlated matrix squared amplitude \(B_j^{\mu\nu}\) (arXiv:1002.2581 Eq. |

`rescale_process_rcl` (npr,order) |
Adjusts the results calculated by `compute_process_rcl()` for a (new) value of \(\alpha_\mathrm{s}\), rescaling the structure-dressed helicity amplitudes and recomputing the summed squared amplitude for the process with process number `npr` . |

`rescale_colour_correlation_rcl` (npr,i1,i2,order=) |
Adjusts the results for a (new) value of \(\alpha_\mathrm{s}\), rescaling the structure-dressed helicity amplitudes and recomputing the colour-correlated summed squared amplitude for the process with process number `npr` . |

`rescale_all_colour_correlations_rcl` (npr) |
Adjusts the results for a (new) value of \(\alpha_\mathrm{s}\), rescaling the structure-dressed helicity amplitudes and recomputing the colour-correlated summed squared amplitude for the process with process number npr. |

`rescale_spin_colour_correlation_rcl` (…) |
Adjusts the results for a (new) value of \(\alpha_\mathrm{s}\), rescaling the structure-dressed helicity amplitudes and recomputing the spin-colour-correlated summed squared amplitude for the process with process number `npr` . |

`rescale_spin_correlation_rcl` (npr,j,v,order=) |
Adjusts the results for a (new) value of \(\alpha_\mathrm{s}\), rescaling the structure-dressed helicity amplitudes and recomputing the spin-correlated summed squared amplitude for the process with process number `npr` . |

`rescale_spin_correlation_matrix_rcl` (npr,order=) |
Adjusts the calculated results for a (new) value of \(\alpha_\mathrm{s}\), rescaling the structure-dressed helicity amplitudes and recomputes the spin-colour-correlated summed squared amplitude for the process with process number `npr` . |

`get_amplitude_rcl` (…) |
Extracts a specific contribution to the amplitude of the process with process number `npr` , according to the values of `pow` , `order` , `colour` and `hel` . |

`get_squared_amplitude_rcl` (…) |
Extracts the computed value of the summed squared amplitude with `pow` being order in the fundamental couplings at loop-order `order` for the process with process number `npr` . |

`get_polarized_squared_amplitude_rcl` (…) |
Extracts a specific contribution to the polarized squared amplitude of the process with process number `npr` , according to the values of `pow` (or `als` ), `order` , `colour` and `hel` . |

`get_spin_colour_correlation_rcl` (…) |
Extracts the computed value of the spin-colour-correlated summed squared amplitude. |

`get_spin_correlation_rcl` (…) |
Extracts the computed value of the spin-correlated summed squared amplitude. |

`get_spin_correlation_matrix_rcl` (…) |
Extracts the computed value of the spin-correlated matrix summed squared amplitude. |

## Efficient computation of squared amplitudes¶

In Recola the structure-dressed helicity amplitudes (sdha) are not cached for a
given phase-space point and calling any of the computation_* methods will
recompute them. In order to be efficient it is recommended to
compute the sdha only once via `compute_process_rcl()`

and to
obtain all other required bulding blocks by rescale_* methods which
only compute the (rescaled) squared amplitudes. For instance, the following
is good practice

```
# good, computes the `sdha` only once
set_alphas_rcl(0.1, 100., 5)
compute_process_rcl(1, psp, ...)
get_squared_amplitude_rcl(...)
rescale_colour_correlation_rcl(1,1,2)
get_colour_correlation_rcl(1,1,2,...)
rescale_colour_correlation_rcl(1,1,3)
get_colour_correlation_rcl(1,1,3,...)
set_alphas_rcl(0.09, 130., 5)
rescale_process_rcl(1,...)
get_squared_amplitude_rcl(...)
rescale_colour_correlation_rcl(1,1,2)
get_colour_correlation_rcl(1,1,2,...)
rescale_colour_correlation_rcl(1,1,3)
get_colour_correlation_rcl(1,1,3,...)
```

while

```
# bad, computes the `sdha` 6 times (code may be 6 times slower.)
set_alphas_rcl(0.1, 100., 5)
compute_process_rcl(1, psp) #compute
get_squared_amplitude_rcl(...)
compute_colour_correlation_rcl(1,1,2)
get_colour_correlation_rcl(1,1,2,...)
compute_colour_correlation_rcl(1,1,3)
get_colour_correlation_rcl(1,1,3,...)
set_alphas_rcl(0.09, 130., 5)
compute_process_rcl(1,...)
get_squared_amplitude_rcl(...)
compute_colour_correlation_rcl(1,1,2)
get_colour_correlation_rcl(1,1,2,...)
compute_colour_correlation_rcl(1,1,3)
get_colour_correlation_rcl(1,1,3,...)
```

is bad and inefficient.

## Conventions for momenta¶

The momenta passed to Recola are standard lorentz vectors. For a \(2\to n\) process the first two momenta are considered incoming and need to have positive energy while the other \(n\) are outgoing and, thus, have to fulfill the four momentum conservation:

For decay processes \(1\to n\) the four-momentum conservaion reads:

Recola2 provides a RAMBO module to generate random PSP for any beam initial and final state:

`set_outgoing_momenta_rcl` (npr,pIn) |
Random phase space generation given incoming momenta. |