# Process definition and generation¶

## Process definition¶

`define_process_rcl` (npr,process,order) |
Defines a process via the process string `process` at order `order` and assigns the process id `npr` to it. |

## Coupling power selection¶

The orders associated to couplings for a given theory define a power-counting according to which amplitudes are ordered and computed. For theories with an SM-like gauge group the electric charge \(e\) and the strong coupling constant \(g_\mathrm{s}\) are identified as fundamental couplings. They define the fundamental order and the derived order for other couplings and counterterm parameters:

Coupling | Order |

\(g_\mathrm{s}\) | \(\mathrm{QCD}^1\) |

\(\alpha_\mathrm{s}\) | \(\mathrm{QCD}^2\) |

\(e\) | \(\mathrm{QED}^1\) |

\(\alpha\) | \(\mathrm{QED}^2\) |

… |

Processes can be defined requesting a particular *order* in fundamental
couplings. For SM-like gauge group it is enough to select specific powers of
\(g_\mathrm{s}\) and the corresponding valid orders in \(e\) are automaically
selected. The selections are applied using one of the following functions:

`select_all_gs_powers_BornAmpl_rcl` (npr) |
Selects all the contribution to the Born amplitude for the process with process number npr. |

`unselect_all_gs_powers_BornAmpl_rcl` (npr) |
Unselects all the contribution to the Born amplitude for the process with process number npr. |

`select_gs_power_BornAmpl_rcl` (npr,gspower) |
Selects the contribution to the Born amplitude with \(g_\mathrm{s}\) power `gspower` for the process with process number `npr` . |

`unselect_gs_power_BornAmpl_rcl` (npr,gspower) |
Unselects the contribution to the Born amplitude with \(g_\mathrm{s}\) power `gspower` for the process with process number `npr` . |

`select_all_gs_powers_LoopAmpl_rcl` (npr) |
Selects all the contribution to the Born amplitude for the process with process number `npr` . |

`unselect_all_gs_powers_LoopAmpl_rcl` (npr) |
Unselects all the contribution to the Born amplitude for the process with process number `npr` . |

`select_gs_power_LoopAmpl_rcl` (npr, gspower) |
Selects the contribution to the Loop amplitude with \(g_\mathrm{s}\) power `gspower` for the process with process number `npr` . |

`unselect_gs_power_LoopAmpl_rcl` (npr,gspower) |
Unselects the contribution to the Loop amplitude with \(g_\mathrm{s}\) power `gspower` for the process with process number `npr` . |

For theories with more than two fundamental orders or in EFT the following functions should be used:

`select_power_BornAmpl_rcl` (npr,cid,pow) |
Selects for the process with process number `npr` the contribution to the Born amplitude with power `pow` in the fundamental order `cid` . |

`unselect_power_BornAmpl_rcl` (npr,cid,pow) |
Selects the contributions to the Born amplitude with power power of the fundanmetal order cid for the process with identifier npr. |

`select_all_powers_BornAmpl_rcl` (npr) |
Selects all contributions to the Born amplitude with any power of orders. |

`unselect_all_powers_BornAmpl_rcl` (npr) |
Unselects all contributions to the Born amplitude with any power of orders. |

`select_power_LoopAmpl_rcl` (npr,cid,pow) |
Selects for the process with process number npr the contribution to the Loop amplitude with power power in the fundamental order cid. |

`unselect_power_LoopAmpl_rcl` () |
Selects all contributions to the Loop amplitude with any power of orders. |

`select_all_powers_LoopAmpl_rcl` (npr) |
Selects all contributions to the Loop amplitude with any power of orders. |

`unselect_all_powers_LoopAmpl_rcl` (npr) |
Unselects all contributions to the Loop amplitude with any power of orders. |

### Resonance selection¶

`set_resonant_squared_momentum_rcl` (npr,res,ps) |
Sets for the resonance with resonance number `res` for the process with process number `npr` the squared momentum of the denominator of the resonant propagator to `ps` . |

`set_resonant_particle_rcl` (pname) |
Tags the particle with name `pname` as resonant. |

`switchon_resonant_selfenergies_rcl` |
Sets the value of resSE to .true. |

`switchoff_resonant_selfenergies_rcl` |
Sets the value of resSE to .true. |

### Quark-flow selection¶

`set_quarkline_rcl` (npr,q1,q2) |
Enforces a quark-flow between two quarks `q1` and `q2` . |

## Process generation¶

`generate_processes_rcl` () |
Generates processes which were defined using `define_process_rcl()` . |

`process_exists_rcl` (npr) |
Returns whether a process with id `npr` exists after generation `generate_processes_rcl()` . |