diff --git a/doc/sphinx/HEJ.rst b/doc/sphinx/HEJ.rst
index cc6171d..6ae67be 100644
--- a/doc/sphinx/HEJ.rst
+++ b/doc/sphinx/HEJ.rst
@@ -1,326 +1,359 @@
 .. _`Running HEJ 2`:
 
 Running HEJ 2
 =============
 
 Quick start
 -----------
 
 In order to run HEJ 2, you need a configuration file and a file
 containing fixed-order events. A sample configuration is given by the
 :file:`config.yml` file distributed together with HEJ 2. Events in the
 Les Houches Event File format can be generated with standard Monte Carlo
 generators like `MadGraph5_aMC@NLO <https://launchpad.net/mg5amcnlo>`_
 or `Sherpa <https://sherpa.hepforge.org/trac/wiki>`_. If HEJ 2 was
 compiled with `HDF5 <https://www.hdfgroup.org/>`_ support, it can also
 read event files in the format suggested in
 `arXiv:1905.05120 <https://arxiv.org/abs/1905.05120>`_.
 HEJ 2 assumes that the cross section is given by the sum of the event
 weights. Depending on the fixed-order generator it may be necessary to
 adjust the weights in the Les Houches Event File accordingly.
 
 The processes supported by HEJ 2 are
 
 - Pure multijet production
 - Production of a Higgs boson with jets
 - Production of a W boson with jets
 
 ..
    - *TODO* Production of a Z boson or photon with jets
 
 where at least two jets are required in each case. For the time being,
 only leading-order events are supported.
 
 After generating an event file :file:`events.lhe` adjust the parameters
 under the `fixed order jets`_ setting in :file:`config.yml` to the
 settings in the fixed-order generation. Resummation can then be added by
 running::
 
   HEJ config.yml events.lhe
 
 Using the default settings, this will produce an output event file
 :file:`HEJ.lhe` with events including high-energy resummation.
 
 When using the `Docker image <https://hub.docker.com/r/hejdock/hej>`_,
 HEJ can be run with
 
 .. code-block:: bash
 
   docker run -v $PWD:$PWD -w $PWD hejdock/hej HEJ config.yml events.lhe
 
 .. _`HEJ 2 settings`:
 
 Settings
 --------
 
 HEJ 2 configuration files follow the `YAML <http://yaml.org/>`_
 format. The following configuration parameters are supported:
 
 .. _`trials`:
 
 **trials**
   High-energy resummation is performed by generating a number of
   resummation phase space configurations corresponding to an input
   fixed-order event. This parameter specifies how many such
   configurations HEJ 2 should try to generate for each input
   event. Typical values vary between 10 and 100.
 
 .. _`min extparton pt`:
 
 **min extparton pt**
   Specifies the minimum transverse momentum in GeV of the most forward
   and the most backward parton. This setting is needed to regulate an
   otherwise uncancelled divergence. Its value should be slightly below
   the minimum transverse momentum of jets specified by `resummation
   jets: min pt`_. See also the `max ext soft pt fraction`_ setting.
 
 .. _`max ext soft pt fraction`:
 
 **max ext soft pt fraction**
   Specifies the maximum fraction that soft radiation can contribute to
   the transverse momentum of each the most forward and the most backward
   jet. Values between around 0.05 and 0.1 are recommended. See also the
   `min extparton pt`_ setting.
 
 .. _`fixed order jets`:
 
 **fixed order jets**
   This tag collects a number of settings specifying the jet definition
   in the event input. The settings should correspond to the ones used in
   the fixed-order Monte Carlo that generated the input events.
 
    .. _`fixed order jets: min pt`:
 
    **min pt**
       Minimum transverse momentum in GeV of fixed-order jets.
 
    .. _`fixed order jets: algorithm`:
 
    **algorithm**
       The algorithm used to define jets. Allowed settings are
       :code:`kt`, :code:`cambridge`, :code:`antikt`,
       :code:`cambridge for passive`. See the `FastJet
       <http://fastjet.fr/>`_ documentation for a description of these
       algorithms.
 
    .. _`fixed order jets: R`:
 
    **R**
       The R parameter used in the jet algorithm, roughly corresponding
       to the jet radius in the plane spanned by the rapidity and the
       azimuthal angle.
 
 .. _`resummation jets`:
 
 **resummation jets**
   This tag collects a number of settings specifying the jet definition
   in the observed, i.e. resummed events. These settings are optional, by
   default the same values as for the `fixed order jets`_ are assumed.
 
    .. _`resummation jets: min pt`:
 
    **min pt**
       Minimum transverse momentum in GeV of resummation jets. This
       should be between 25% and 50% larger than the minimum transverse
       momentum of fixed order jets set by `fixed order jets: min pt`_.
 
    .. _`resummation jets: algorithm`:
 
    **algorithm**
       The algorithm used to define jets. The HEJ 2 approach to
       resummation relies on properties of :code:`antikt` jets, so this
       value is strongly recommended. For a list of possible other
       values, see the `fixed order jets: algorithm`_ setting.
 
    .. _`resummation jets: R`:
 
    **R**
       The R parameter used in the jet algorithm.
 
 .. _`event treatment`:
 
 **event treatment**
   Specify how to treat different event types. The different event types
   contribute to different orders in the high-energy limit. The possible values
   are :code:`reweight` to enable resummation, :code:`keep` to keep the events as
   they are up to a possible change of renormalisation and factorisation scale,
   and :code:`discard` to discard these events.
 
   .. _`FKL`:
 
   **FKL**
      Specifies how to treat events respecting FKL rapidity ordering. These
      configurations are dominant in the high-energy limit.
 
   .. _`unordered`:
 
   **unordered**
      Specifies how to treat events with one emission that does not respect FKL
      ordering, e.g. :code:`u d => g u d`. In the high-energy limit, such
      configurations are logarithmically suppressed compared to FKL
      configurations.
 
   .. _`extremal qqx`:
 
   **extremal qqx**
      Specifies how to treat events with a quark-antiquark pair as extremal
      partons in rapidity, e.g. :code:`g d => u u_bar d`. In the high-energy
      limit, such configurations are logarithmically suppressed compared to FKL
      configurations. :code:`reweight` is currently only supported for W boson
      plus jets production.
 
   .. _`central qqx`:
 
   **central qqx**
      Specifies how to treat events with a quark-antiquark pair central in
      rapidity, e.g. :code:`g g => g u u_bar g`. In the high-energy limit, such
      configurations are logarithmically suppressed compared to FKL
      configurations. :code:`reweight` is currently only supported for W boson
      plus jets production.
 
   .. _`non-resummable`:
 
   **non-resummable**
      Specifies how to treat events where no resummation is possible. Only
      :code:`keep` or :code:`discard` are valid options, *not* :code:`reweight`
      for obvious reasons.
 
-  .. _`scales`:
+.. _`scales`:
 
 **scales**
    Specifies the renormalisation and factorisation scales for the output
    events. This can either be a single entry or a list :code:`[scale1,
    scale2, ...]`. For the case of a list the first entry defines the
    central scale. Possible values are fixed numbers to set the scale in
    GeV or the following:
 
    - :code:`H_T`: The sum of the scalar transverse momenta of all
      final-state particles
    - :code:`max jet pperp`: The maximum transverse momentum of all jets
    - :code:`jet invariant mass`: Sum of the invariant masses of all jets
    - :code:`m_j1j2`: Invariant mass between the two hardest jets.
 
    Scales can be multiplied or divided by overall factors, e.g. :code:`H_T/2`.
 
    It is also possible to import scales from an external library, see
    :ref:`Custom scales`
 
 .. _`scale factors`:
 
 **scale factors**
    A list of numeric factors by which each of the `scales`_ should be
    multiplied. Renormalisation and factorisation scales are varied
    independently. For example, a list with entries :code:`[0.5, 2]`
    would give the four scale choices (0.5μ\ :sub:`r`, 0.5μ\ :sub:`f`);
    (0.5μ\ :sub:`r`, 2μ\ :sub:`f`); (2μ\ :sub:`r`, 0.5μ\ :sub:`f`); (2μ\
    :sub:`r`, 2μ\ :sub:`f`) in this order. The ordering corresponds to
    the order of the final event weights.
 
 .. _`max scale ratio`:
 
 **max scale ratio**
    Specifies the maximum factor by which renormalisation and
    factorisation scales may difer. For a value of :code:`2` and the
    example given for the `scale factors`_ the scale choices
    (0.5μ\ :sub:`r`, 2μ\ :sub:`f`) and (2μ\ :sub:`r`, 0.5μ\ :sub:`f`)
    will be discarded.
 
 .. _`log correction`:
 
 **log correction**
    Whether to include corrections due to the evolution of the strong
    coupling constant in the virtual corrections. Allowed values are
    :code:`true` and :code:`false`.
 
 .. _`event output`:
 
 **event output**
    Specifies the name of a single event output file or a list of such
    files. The file format is either specified explicitly or derived from
    the suffix. For example, :code:`events.lhe` or, equivalently
    :code:`Les Houches: events.lhe` generates an output event file
    :code:`events.lhe` in the Les Houches format. The supported formats
    are
 
    - :code:`file.lhe` or :code:`Les Houches: file`: The Les Houches
      event file format.
    - :code:`file.hepmc2` or :code:`HepMC2: file`: HepMC format version 2.
    - :code:`file.hepmc3` or :code:`HepMC3: file`: HepMC format version 3.
    - :code:`file.hepmc` or :code:`HepMC: file`: The latest supported
      version of the HepMC format, currently version 3.
 
 .. _`random generator`:
 
 **random generator**
    Sets parameters for random number generation.
 
    .. _`random generator: name`:
 
    **name**
       Which random number generator to use. Currently, :code:`mixmax`
       and :code:`ranlux64` are supported. Mixmax is recommended. See
       the `CLHEP documentation
       <http://proj-clhep.web.cern.ch/proj-clhep/index.html#docu>`_ for
       details on the generators.
 
    .. _`random generator: seed`:
 
    **seed**
       The seed for random generation. This should be a single number for
       :code:`mixmax` and the name of a state file for :code:`ranlux64`.
 
 .. _`analysis`:
 
 **analysis**
    Name and Setting for the event analyses; either a custom
    analysis plugin or Rivet. For the first the :code:`plugin` sub-entry
    should be set to the analysis file path. All further entries are passed on
    to the analysis. To use Rivet a list of Rivet analyses have to be
    given in :code:`rivet` and prefix for the  yoda file has to be set
    through :code:`output`. See :ref:`Writing custom analyses` for details.
 
+.. _`vev`:
+
+**vev**
+   Higgs vacuum expectation value in GeV. All electro-weak constants are derived
+   from this together with the `particle properties`_.
+
+.. _`particle properties`:
+
+**particle properties**
+
+   Specifies various properties of the different particles (Higgs, W or Z). All
+   electro-weak constants are derived from these together with the :ref:`vacuum
+   expectation value<vev>`.
+
+.. _`particle properties: particle`:
+
+   **Higgs, W or Z**
+      The particle (Higgs, |W+| or |W-|, Z) for which the following properties
+      are defined.
+
+      .. |W+| replace:: W\ :sup:`+`
+      .. |W-| replace:: W\ :sup:`-`
+
+   .. _`particle properties: particle: mass`:
+
+      **mass**
+         The mass of the particle in GeV.
+
+   .. _`particle properties: particle: width`:
+
+      **width**
+         The total decay width of the particle in GeV.
+
 .. _`Higgs coupling`:
 
 **Higgs coupling**
    This collects a number of settings concerning the effective coupling
    of the Higgs boson to gluons. This is only relevant for the
    production process of a Higgs boson with jets and only supported if
    HEJ 2 was compiled with `QCDLoop
    <https://github.com/scarrazza/qcdloop>`_ support.
 
 .. _`Higgs coupling: use impact factors`:
 
    **use impact factors**
       Whether to use impact factors for the coupling to the most forward
       and most backward partons. Impact factors imply the infinite
       top-quark mass limit.
 
 .. _`Higgs coupling: mt`:
 
    **mt**
       The value of the top-quark mass in GeV. If this is not specified,
       the limit of an infinite mass is taken.
 
 .. _`Higgs coupling: include bottom`:
 
    **include bottom**
       Whether to include the Higgs coupling to bottom quarks.
 
 .. _`Higgs coupling: mb`:
 
    **mb**
       The value of the bottom-quark mass in GeV. Only used for the Higgs
       coupling, external bottom-quarks are always assumed to be massless.
 
 Advanced Settings
 ~~~~~~~~~~~~~~~~~
 
 All of the following settings are optional. Please **do not set** any of the
 following options, unless you know exactly what you are doing. The default
 behaviour gives the most reliable results for a wide range of observables.
 
 .. _`regulator parameter`:
 
 **regulator parameter**
     Slicing parameter to regularise the subtraction term, called :math:`\lambda`
     in `arxiv:1706.01002 <https://arxiv.org/abs/1706.01002>`_. Default is 0.2
diff --git a/doc/sphinx/HEJFOG.rst b/doc/sphinx/HEJFOG.rst
index 4a22e7d..7c33009 100644
--- a/doc/sphinx/HEJFOG.rst
+++ b/doc/sphinx/HEJFOG.rst
@@ -1,310 +1,295 @@
 The HEJ Fixed Order Generator
 =============================
 
 For high jet multiplicities event generation with standard fixed-order
 generators becomes increasingly cumbersome. For example, the
 leading-order production of a Higgs Boson with five or more jets is
 computationally prohibitively expensive.
 
 To this end, HEJ 2 provides the ``HEJFOG`` fixed-order generator
 that allows to generate events with high jet multiplicities. To
 facilitate the computation the limit of Multi-Regge Kinematics with
 large invariant masses between all outgoing particles is assumed in the
 matrix elements. The typical use of the ``HEJFOG`` is to supplement
 low-multiplicity events from standard generators with high-multiplicity
 events before using the HEJ 2 program to add high-energy
 resummation.
 
 Installation
 ------------
 
 The ``HEJFOG`` comes bundled together with HEJ 2 and the
 installation is very similar. After downloading HEJ 2 and
 installing the prerequisites as described in :ref:`Installation` the
 ``HEJFOG`` can be installed with::
 
   cmake /path/to/FixedOrderGen -DCMAKE_INSTALL_PREFIX=target/directory
   make install
 
 where :file:`/path/to/FixedOrderGen` refers to the :file:`FixedOrderGen`
 subdirectory in the HEJ 2 directory. If HEJ 2 was
 installed to a non-standard location, it may be necessary to specify the
 directory containing :file:`HEJ-config.cmake`. If the base installation
 directory is :file:`/path/to/HEJ`, :file:`HEJ-config.cmake` should be
 found in :file:`/path/to/HEJ/lib/cmake/HEJ` and the commands for
 installing the ``HEJFOG`` would read::
 
   cmake /path/to/FixedOrderGen -DHEJ_DIR=/path/to/HEJ/lib/cmake/HEJ -DCMAKE_INSTALL_PREFIX=target/directory
   make install
 
 The installation can be tested with::
 
   make test
 
 provided that the CT10nlo PDF set is installed.
 
 Running the fixed-order generator
 ---------------------------------
 
 After installing the ``HEJFOG`` you can modify the provided
 configuration file :file:`configFO.yml` and run the generator with::
 
   HEJFOG configFO.yml
 
 The resulting event file, by default named :file:`HEJFO.lhe`, can then be
 fed into HEJ 2 like any event file generated from a standard
 fixed-order generator, see :ref:`Running HEJ 2`.
 
 Settings
 --------
 
 Similar to HEJ 2, the ``HEJFOG`` uses a `YAML
 <http://yaml.org/>`_ configuration file. The settings are
 
 .. _`process`:
 
 **process**
    The scattering process for which events are being generated. The
    format is
 
    :code:`in1 in2 => out1 out2 ...`
 
    The incoming particles, :code:`in1`, :code:`in2` can be
 
    - quarks: :code:`u`, :code:`d`, :code:`u_bar`, and so on
    - gluons: :code:`g`
    - protons :code:`p` or antiprotons :code:`p_bar`
 
    The outgoing particles, can be
 
    - jets:    :code:`j`, multiple jets can be grouped together e.g. :code:`2j`
-   - bosons:  Any gauge boson, they require `particle properties`_
+   - bosons:  Any gauge boson, they might further :ref:`decay<decays>`
    - leptons: if they can be reconstructed to a :code:`W+` or :code:`W-`,
      e.g. :code:`e+ nu_e`
 
    At most one of the outgoing particles can be a boson, the rest has to be
    partonic. At the moment only Higgs :code:`h`, :code:`W+` and :code:`W-`
    bosons are supported. All other outgoing particles are jets. There have to be
    at least two jets. Instead of the leptons decays of the bosons can be added
-   through the :ref:`particle properties<particle properties: particle:
-   decays>`. The latter is required to decay a Higgs boson. So :code:`p p => Wp
-   j j` is the same as :code:`p p => e+ nu_e 2j`, if the decay :code:`Wp => e+
-   nu_e` is specified in `particle properties`_.
+   through the :ref:`decays<decays>`. The latter is required to decay a Higgs
+   boson. So :code:`p p => Wp j j` is the same as :code:`p p => e+ nu_e 2j`, if
+   the decay :code:`Wp => e+ nu_e` is specified in `decays`_.
 
 .. _`events`:
 
 **events**
    Specifies the number of events to generate.
 
 .. _`jets`:
 
 **jets**
    Defines the properties of the generated jets.
 
    .. _`jets: min pt`:
 
    **min pt**
       Minimum jet transverse momentum in GeV.
 
    .. _`jets: peak pt`:
 
    **peak pt**
       Optional setting to specify the dominant jet transverse momentum
       in GeV. If the generated events are used as input for HEJ
       resummation, this should be set to the minimum transverse momentum
       of the resummation jets. In all cases it has to be larger than
       :code:`min pt`. The effect is that only a small fraction of jets
       will be generated with a transverse momentum below the value of
       this setting.
 
    .. _`jets: algorithm`:
 
    **algorithm**
       The algorithm used to define jets. Allowed settings are
       :code:`kt`, :code:`cambridge`, :code:`antikt`,
       :code:`cambridge for passive`. See the `FastJet
       <http://fastjet.fr/>`_ documentation for a description of these
       algorithms.
 
    .. _`jets: R`:
 
    **R**
       The R parameter used in the jet algorithm.
 
    .. _`jets: max rapidity`:
 
    **max rapidity**
       Maximum absolute value of the jet rapidity.
 
 .. _`beam`:
 
 **beam**
    Defines various properties of the collider beam.
 
    .. _`beam: energy`:
 
    **energy**
       The beam energy in GeV. For example, the 13
       TeV LHC corresponds to a value of 6500.
 
    .. _`beam: particles`:
 
    **particles**
       A list :code:`[p1, p2]` of two beam particles. The only supported
       entries are protons :code:`p` and antiprotons :code:`p_bar`.
 
 .. _`pdf`:
 
 **pdf**
    The `LHAPDF number <https://lhapdf.hepforge.org/pdfsets>`_ of the PDF set.
    For example, 230000 corresponds to an NNPDF 2.3 NLO PDF set.
 
 .. _`subleading fraction`:
 
 **subleading fraction**
    This setting is related to the fraction of events that are not a FKL
    configuration. All possible subleading process are listed in
    :ref:`subleading channels<subleading channels>`. This value must be
    positive and not larger than 1. It should typically be chosen between
    0.01 and 0.1. Note that while this parameter influences the chance of
    generating subleading configurations, it generally does not
    correspond to the actual fraction of subleading events.
 
 .. _`subleading channels`:
 
 **subleading channels**
    Optional parameters to select a specific subleading process, multiple
    channels can be selected at once. If multiple subleading configurations
    are possible one will be selected at random for each event, thus each
    final state will include at most one subleading process, e.g. either
    :code:`unordered` or :code:`qqx`. Only has an effect if
    :code:`subleading fraction` is non-zero. The following values are allowed:
 
    - :code:`all`: All channels allowed. This is the default.
    - :code:`none`: No subleading contribution, only the leading (FKL)
      configurations are allowed.  This is equivalent to
      :code:`subleading fraction: 0`.
    - :code:`unordered`: Unordered emission allowed.
      Unordered emission are any rapidity ordering where exactly one gluon is
      emitted outside the rapidity ordering required in FKL events. More
      precisely, if at least one of the incoming particles is a quark or
      antiquark and there are more than two jets in the final state,
      :code:`subleading fraction` states the probability that the flavours
      of the outgoing particles are assigned in such a way that an unordered
      configuration arises.
    - :code:`qqx`: Production of a quark-antiquark pair.  In the leading
      (FKL) configurations all partons except for the most backward and
      forward ones are gluons. If the :code:`qqx` channel is allowed,
      :code:`subleading fraction` gives the probability of emitting a
      quark-antiquark pair in place of two gluons that are adjacent in
      rapidity. Quark-antiquark pairs are currently only implemented for
      W boson production.
 
 .. _`unweight`:
 
 **unweight**
    This setting defines the parameters for the partial unweighting of
    events. You can disable unweighting by removing this entry from the
    configuration file.
 
 .. _`unweight: sample size`:
 
    **sample size**
       The number of weighted events used to calibrate the unweighting.
       A good default is to set this to the number of target
       `events`_. If the number of `events`_ is large this can
       lead to significant memory consumption and a lower value should be
       chosen. Contrarily, for large multiplicities the unweighting
       efficiency becomes worse and the sample size should be increased.
 
 .. _`unweight: max deviation`:
 
    **max deviation**
      Controls the range of events to which unweighting is applied. A
      larger value means that a larger fraction of events are unweighted.
      Typical values are between -1 and 1.
 
-.. _`particle properties`:
+.. _`decays`:
 
-**particle properties**
-   Specifies various properties of the different particles (Higgs, W or Z).
-   This is only relevant if the chosen `process`_ is the production of the
-   corresponding particles with jets. E.g. for the `process`_
-   :code:`p p => h 2j` the :code:`mass`, :code:`width` and (optionally)
-   :code:`decays` of the :code:`Higgs` boson are required, while all other
-   particle properties will be ignored.
-
-.. _`particle properties: particle`:
-
-   **Higgs, W+, W- or Z**
-      The particle (Higgs, |W+|, |W-|, Z) for which the following
-      properties are defined.
-
-      .. |W+| replace:: W\ :sup:`+`
-      .. |W-| replace:: W\ :sup:`-`
-
-   .. _`particle properties: particle: mass`:
-
-      **mass**
-         The mass of the particle in GeV.
-
-   .. _`particle properties: particle: width`:
-
-      **width**
-         The total decay width of the particle in GeV.
+**decays**
+   Optional setting specifying the decays of the particle. Only the decay
+   into two particles is implemented. Each decay has the form
 
-   .. _`particle properties: particle: decays`:
+   :code:`boson: {into: [p1,p2], branching ratio: r}`
 
-      **decays**
-         Optional setting specifying the decays of the particle. Only the decay
-         into two particles is implemented. Each decay has the form
+   where :code:`boson` is the corresponding boson, :code:`p1` and :code:`p2` are
+   the particle names of the decay product (e.g. :code:`photon`) and :code:`r`
+   is the branching ratio. The branching ratio is optional (:code:`1` by
+   default).
 
-         :code:`{into: [p1,p2], branching ratio: r}`
+   Decays of a Higgs boson are treated as the production and subsequent
+   decay of an on-shell Higgs boson, so decays into e.g. Z bosons are not
+   supported. In contrast W bosons are decayed off-shell, thus the
+   branching ratio should not be specified or set to :code:`1`.
 
-         where :code:`p1` and :code:`p2` are the particle names of the
-         decay product (e.g. :code:`photon`) and :code:`r` is the branching
-         ratio. The branching ratio is optional (:code:`1` by default).
-
-         Decays of a Higgs boson are treated as the production and subsequent
-         decay of an on-shell Higgs boson, so decays into e.g. Z bosons are not
-         supported. In contrast W bosons are decayed off-shell, thus the
-         branching ratio should not be changed or set to :code:`1`.
-
-.. _`scales`:
+.. _`FOG scales`:
 
 **scales**
-   Specifies the renormalisation and factorisation scales for the output
-   events. For details, see the corresponding entry in the HEJ 2
-   :ref:`HEJ 2 settings`. Note that this should usually be a
-   single value, as the weights resulting from additional scale choices
-   will simply be ignored when adding high-energy resummation with HEJ 2.
+   Specifies the renormalisation and factorisation scales for the output events.
+   For details, see the corresponding entry in the HEJ 2
+   :ref:`settings<scales>`. Note that this should usually be a single value, as
+   the weights resulting from additional scale choices will simply be ignored
+   when adding high-energy resummation with HEJ 2.
 
-.. _`event output`:
+.. _`FOG event output`:
 
 **event output**
-   Specifies the name of a single event output file or a list of such
-   files. See the corresponding entry in the HEJ 2
-   :ref:`HEJ 2 settings` for details.
+   Specifies the name of a single event output file or a list of such files. See
+   the corresponding entry in the HEJ 2 :ref:`settings<event output>` for
+   details.
 
 .. _`RanLux init`:
 
-.. _`random generator`:
+.. _`FOG random generator`:
 
 **random generator**
    Sets parameters for random number generation. See the HEJ 2
-   :ref:`HEJ 2 settings` for details.
+   :ref:`settings<random generator>` for details.
 
-.. _`analysis`:
+.. _`FOG analysis`:
 
 **analysis**
    Specifies the name and settings for a custom analysis library. This
    can be useful to specify cuts at the fixed-order level. See the
-   corresponding entry in the HEJ 2 :ref:`HEJ 2 settings`
+   corresponding entry in the HEJ 2 :ref:`settings<analysis>`
    for details.
 
-.. _`Higgs coupling`:
+.. _`FOG vev`:
+
+**vev**
+   Higgs vacuum expectation value in GeV. All electro-weak constants are derived
+   from this together with the :ref:`particle properties <FOG particle
+   properties>`.
+
+.. _`FOG particle properties`:
+
+**particle properties**
+   Specifies various properties of the different particles (Higgs, W or Z).
+   These have to be specified for all bosons. See the corresponding entry in the
+   HEJ 2 :ref:`settings<particle properties>` for details.
+
+.. _`FOG Higgs coupling`:
 
 **Higgs coupling**
-   This collects a number of settings concerning the effective coupling
-   of the Higgs boson to gluons. See the corresponding entry in the
-   HEJ 2 :ref:`HEJ 2 settings` for details.
+   This collects a number of settings concerning the effective coupling of the
+   Higgs boson to gluons. See the corresponding entry in the HEJ 2
+   :ref:`settings<Higgs coupling>` for details.
diff --git a/include/HEJ/EWConstants.hh b/include/HEJ/EWConstants.hh
index b470f21..b055b34 100644
--- a/include/HEJ/EWConstants.hh
+++ b/include/HEJ/EWConstants.hh
@@ -1,86 +1,89 @@
 /** \file
  *  \brief Defines the electro weak parameters
  *
  *  \authors   The HEJ collaboration (see AUTHORS for details)
  *  \date      2019
  *  \copyright GPLv2 or later
  */
 #pragma once
 
 #include <cmath>
 
 #include "HEJ/exceptions.hh"
 #include "HEJ/PDG_codes.hh"
 
 namespace HEJ {
+  //! collection of basic particle properties
   struct ParticleProperties{
     double mass;
     double width;
   };
 
+  //! Collection of electro-weak constants
   class EWConstants {
   public:
     EWConstants() = default;
+    //! initialise by Vacuum expectation value & boson properties
     EWConstants(
-      double vev,
-      ParticleProperties const & Wprop,
-      ParticleProperties const & Zprop,
-      ParticleProperties const & Hprop):
-      set{true},vev_{vev}, Wprop_{Wprop}, Zprop_{Zprop}, Hprop_{Hprop} {}
-    //! initialise constants by Vacuum expectation value & boson properties
+      double vev, //!< vacuum expectation value
+      ParticleProperties const & Wprop, //!< W boson mass & width
+      ParticleProperties const & Zprop, //!< Z boson mass & width
+      ParticleProperties const & Hprop  //!< Higgs boson mass & width
+    ): set{true},vev_{vev}, Wprop_{Wprop}, Zprop_{Zprop}, Hprop_{Hprop} {}
+    //! set constants by Vacuum expectation value & boson properties
     void set_vevWZH(
-      double vev,
-      ParticleProperties const & Wprop,
-      ParticleProperties const & Zprop,
-      ParticleProperties const & Hprop
+      double vev, //!< vacuum expectation value
+      ParticleProperties const & Wprop, //!< W boson mass & width
+      ParticleProperties const & Zprop, //!< Z boson mass & width
+      ParticleProperties const & Hprop  //!< Higgs boson mass & width
     ){
       set = true; vev_= vev; Wprop_= Wprop; Zprop_= Zprop; Hprop_= Hprop;
     }
     //! vacuum expectation value
     double vev()     const {check_set(); return vev_;}
     //! Properties of the W boson
     ParticleProperties const & Wprop() const {check_set(); return Wprop_;}
     //! Properties of the Z boson
     ParticleProperties const & Zprop() const {check_set(); return Zprop_;}
     //! Properties of the Higgs boson
     ParticleProperties const & Hprop() const {check_set(); return Hprop_;}
     //! access Properties by boson id
     ParticleProperties const & prop(ParticleID const id) const {
       using namespace pid;
       switch(id){
       case Wp:
       case Wm:
         return Wprop();
       case Z:
         return Zprop();
       case h:
         return Hprop();
       default:
-        throw std::invalid_argument("No particle properties available for particle "+name(id));
+        throw std::invalid_argument("No properties available for particle "+name(id));
       }
     }
     //! cosine of Weinberg angle
     double cos_tw()   const {return Wprop().mass/Zprop().mass;}
     //! cosine square of Weinberg angle
     double cos2_tw()  const {return cos_tw()*cos_tw();}
     //! sinus Weinberg angle
     double sin_tw()   const {return sqrt(sin2_tw());}
     //! sinus square of Weinberg angle
     double sin2_tw()  const {return 1. - cos2_tw();}
     //! elector magnetic coupling
     double alpha_em() const {return e2()/4./M_PI;}
     //! weak coupling
     double alpha_w()  const {return gw2()/2.;}
   private:
     double gw2() const {return 4*Wprop().mass/vev()*Wprop().mass/vev();}
     double e2()  const {return gw2()*sin2_tw();}
     void check_set() const {
       if(!set) throw std::invalid_argument("EW constants not specified");
     }
     bool set{false};
     double vev_;
     ParticleProperties Wprop_;
     ParticleProperties Zprop_;
     ParticleProperties Hprop_;
   };
 }