# 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,...)


## 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:

$p_1^\mu + p_2^\mu = \sum_{k=3}^{n+2} p_k^\mu$

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

$p_1^\mu = \sum_{k=2}^{n+1} p_k^\mu$

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.