wiki:WhizardInterface

Version 13 (modified by ChristianSpeckner, 10 years ago) (diff)

--

The WHIZARD / O'Mega interface (C. Speckner) --- UNDER CONSTRUCTION

Overview

The WHIZARD / O'Mega interface generates the model files necessary for the inclusion of a FeynRules model into the WHIZARD / O'Mega framework. All versions of WHIZARD / O'Mega >= 1.92 are supported.

Usage: all versions

As all other interfaces, the WO interface is invoked by calling WriteWOOuput. Three syntax variants are admissible:

  1. WriteWOOutput[Lagrangian, Options]
  1. WriteWOOutput[{LagrangianList}, Options]
  1. WriteWOOutput[Null, WOVertexList->{VertexList}, Options]

Version 1. operates on a single Lagrangian, while 2. operates on a list of Lagrangians and 3. takes a list of FeynmanRules? as an argument. The following options are available:

  • WOVertexList: If =!= Null, this is interpreted as a list of Feynman rules and overrides any Lagrangian (or -list) specified (in this case, Null is accepted as first argument). Default: Null
  • WOModelName: The name by which the model will be identified in WO. Note that all models for W1.9x have to start with "fr" (e.g. WOModelName->"fr_sm") if they are to be picked up by WO1.9x without user intervention (no such restriction exists for W2). Beware that the interface my modify this name if it doesn't fit into the WO naming schemes --- double check the generated messages to be sure. Default: derived from the FR model name
  • WOMaxNcf: Upper limit on the number of generated color flows which the generated code will be able to handle (essentially n_8 - n_3 / 2, where n_8 is the maximum number of external octets and n_3 that of external triplets). Irrelevant for W2; also, the technically experienced user can change this after generation in f90_modellname_Col.ml. Default: 4
  • WOGauge: The following gauges are available:
    • WOUnitarity: Unitarity gauge (default)
    • WOFeynman: Feynman gauge
    • WORxi: Rxi gauges. In this case, you must define a parameter taking the role of \xi and pass it to the interface via WOGaugeParameter (see below).
  • WOGaugeParameters: The parameter which takes the role of \xi in the Rxi gauges, can be either a string or a symbol. Default: "Rxi"
  • WOWhizardVersion: Select the WO version for which you want to generate code. Possible choices:
    • "1.92": WO 1.92
    • "1.93": WO 1.93 - 1.95
    • "2.0" : WO 2.0 (default)
  • WOVerbose: Verbose output. At the moment, this gives detailed information on skipped vertices. Default: False
  • WOAutoGauge: Automagically assign goldstone boson masses.. Default: True
  • WOMaxCouplingsPerFile: The maximum number of couplings written into a single FORTRAN file. Reduce this number if you run into trouble compiling the generated code. Default: 500
  • WORunParameters: A list of all parameters which are recalculated when \alpha_s changes. Without effect for WO1.9x output. Default: {G, aS}
  • WOFast: Set this to False to enable more time consuming checks for known lorentz structures if you have trouble with skipped couplings. Default: True
  • Output: The output directory which will contain the generated model files. Default: derived from the FR model name

It is wise to check the messages the interface generates while it runs; i these will inform you about any unidentified vertices that have been skipped as well as of most other noteworthy caveats concerning the generated code.

Usage: WO 1.9x

In order to use the interface with WO 1.9x, the build system of WHIZARD must be patched and the model files copied to the proper locations in the tree. This is taken care of by the script called inject which is created by the interface in the output directory. The basic usage is (from within the output directory):

./inject [options] path_to_whizard

Running ./inject --help will give a full overview over the supported options. After "injecting", the model is available in WHIZARD and will behave like the stock ones. However, some caveats exist for the unwary, so pay attention to the scripts output messages and be sure to read through this list carefully:

  • The inject script has been designed to avoid any accidental change of existing data. Therefore, if a FeynRules model of the same name already exists, it will not be overwritten by default (the script will inform you if a file is being skipped though). To enforce overwriting of existing files, use the --force option.
  • If the number of distinct couplings changes significantly, the number of generated FORTRAN files may change. This can lead to problems with spurious files from a previous run being present in the WHIZARD tree, potentially wreaking havoc on the WHIZARD compilation. The script will inform you of such conflicts, and you can then rerun it with the --cleanup option to remove the conflicting files automatically.
  • Be sure to reconfigure WHIZARD (rerun the configure script) after injecting a model. Also, if the compilation fails, a make clean or make realclean in the WHIZARD tree can help to put a borked tree into a sane state again (take care as those remove your input files, so make copies before).
  • In order for the model to be picked up by WHIZARD, the WO mode name must start with "fr". This is taken care of automatically if the interface assigns it, but if you reset it via WOModelName, it is your responsibility to pick a proper name.
  • Writing multiple models to one output directory is possible and supported.

Usage: WO 2.0

WO 2.0 and above natively support the addition of new models without recompiling WHIZARD. More specifically, WHIZARD looks for any model specific files first in the uses local installation tree ${HOME}/.whizard and the in the global installation tree ${PREFIX}. Therefore, in order to use an external model with WO2, the O'Mega binaries and FORTRAN libraries must be compiled and installed in the proper directory together with the WHIZARD model definition. To the end, the WO interface creates a standard autotoolized (don't worry if you don't know what this means) ./configure; make install type build system in the output directory. To use it, you must perform three steps (in the output directory):

1) Run

./configure WO_CONFIG=path_to_the_wo_binaries --prefix=installation_prefix

Both options are optional. WO_CONFIG can be used to specify the path to the WHIZARD binaries (otherwise, they are searched for in ${PATH}), And --prefix sets the installation prefix for the model files.