Colour basis for tree-level amplitudesBesides calculating squared matrix elements, OpenLoops also provides tree-level amplitudes with full colour information. This section describes how to retrieve the colour basis used for a process and the amplitude as a vector in the colour space which is spanned by these basis elements. The colour basisThe colour basis elements are encoded as integer arrays and must be retrieved once for each process. First one must get the following information. In Fortran
subroutine tree_colbasis_dim(id, ncolb, colelemsz, nheltot) In C void ol_tree_colbasis_dim(int id, int* ncolb, int* colelemsz, int* nheltot); In the next step the actual basis is retrieved. In Fortran
subroutine tree_colbasis(id, basis, needed) In C
// int basis[ncolb][colelemsz], needed[ncolb][ncolb]; Here,
This means that in order to know if a sequence corresponds to a chain or a trace one needs to know which kind of colour charge the external particles carry. E.g. {a1,a2,a3} is a trace if the particles at positions a2 and a3 are gluons and it is a chain if they are a quark and an anti-quark. Different chains/traces are separated by a zero and the array is padded with zeroes if it is longer than required for the considered basis element. The amplitudeThe amplitude of a process for a given phase space point can be calculated by In Fortran
subroutine evaluate_tree_colvect(id, psp, amp, nhel)
In C
// double amp[nheltot][2*ncolb];
The conventions to pass the process id and the phase space point are the same as in the interface for squared matrix elements (see Fortran, C). |