| 1 | === How to add momentum dependent form factors? in UFO model=== |

| 2 | |

| 3 | === Compatible model. |

| 4 | |

| 5 | All UFO model are not ready to use form-factor (all recent one should be). |

| 6 | In order to see if your model is compatible, look in the file __init__.py |

| 7 | if you see the following lines: |

| 8 | {{{ |

| 9 | try: |

| 10 | import form_factors |

| 11 | except ImportError: |

| 12 | pass |

| 13 | else: |

| 14 | all_form_factor = form_factors.all_form_factors |

| 15 | }}} |

| 16 | |

| 17 | === Defining your form factor: |

| 18 | |

| 19 | create/edit the file form_factors.py |

| 20 | and add the following lines: |

| 21 | {{{ |

| 22 | from object_library import all_form_factors, FormFactor |

| 23 | |

| 24 | from function_library import complexconjugate, re, im, csc, sec, acsc, asec, HeavTheta |

3 | | === How to add momentum dependent form factors? === |

| 27 | |

| 28 | AAA = FormFactor(name = 'AAA', |

| 29 | type = 'real', |

| 30 | value = 'HeavTheta(MH - P(-1,1)*P(-1,3),-2*MH*,MH)') |

| 31 | }}} |

| 32 | |

| 33 | 1. HeavTheta is a special function for a IF statement. If the first argument is positive then the function is equal to the second argument otherwise the function is equal to the third argument. |

| 34 | 2. Any parameter of the model can be used inside the 'value' expression |

| 35 | 3. You can use any type of object define in the ALOHA syntax (see the [ALOHA paper http://arxiv.org/abs/arXiv:1108.2041] for the convention). This includes the momenta P(x,y). This first index is the lorentz index which should be contracted, while the second index refers to the particle ordering of the vertex. |

| 36 | 4. If you need to add an additional parameter in your model, you can do it in the parameters.py file. |

| 37 | |

| 38 | |

| 39 | === Add the vertex dependencies in your form factor: |

| 40 | |

| 41 | For later... |

| 42 | |

| 43 | |

| 44 | |

| 45 | === How to add momentum dependent form factors? in v4 model=== |