# Anomalous Z’ model¶

The model of hep-ph/0501154 contains a $$Z'$$ boson with couplings to the Standard Model fermions and an anomalous coupling to the photon and Z. It therefore provides a model with a minimal additional particles, the $$Z'$$, and vertices, the coupling of the $$Z'$$ to the Standard Model fermions and the anomalous $$Z'$$ -Z-photon vertex, from the Standard Model and is therefore a good example of implementing a new model in Herwig++. As this is an advanced example of writing your own code to work with Herwig++ and therefore it assumes you are familiar with creating your own classes, creating the initialization and termination routines, parameters and switches using the emacs macros supplied with ThePEG.

To implement this model requires a number of features. A full implementation can be found in the contrib/RadiativeZPrime directory in the Herwig++ release. Here’s a brief description of the steps involved

1. An implementation of the coupling of the $$Z'$$ to the Standard Model fermions which can be implemented in a class inheriting from Helicity::FFVVertex. This is relatively simple and can be based on the StandardModelFFZVertex class of Herwig++ which implements the same interaction for the Z boson. This is implemented in the FFZPrimeVertex class in the example implementation.

2. An implementation of the coupling of the $$Z'$$ to the Z and photon. This is more complicated as the interaction occurs via a Lorentz structure which is not implemented in the code, i.e. $$e_{mnab}e^m_{\gamma}e^n_{Z'}e^a_{Z}p^b_{\gamma},$$ where $$e_{mnab}$$ is the totally antisymmetric tensor, $$e_{X}$$ is the polarization vector of X and $$p_{X}$$ is the momentum of X. This requires

1. a base class inheriting from Helicity::AbstractVVVVertex which implements the calculation of the matrix element or off-shell wavefunctions for the Lorentz structure. In practice in this case only the evaluate member for the matrix element is needed, although the others have to be supplied as they purely virtual in the base class. This is implemented in the AnomalousVVVVertex class in the example implementation.
2. an inheriting class which implements the interaction for this model by implementing the setCoupling member, in the example implementation this is the GammaZPrimeZVertex class.
3. A model class which inherits from the Herwig++ StandardModel class and implements the calculation of the new couplings in the model, in this case of the Z’ to the Standard Model fermions and Z-photon, and the storage of the new vertices. In the example implementation this is the RadiativeZPrimeModel class.

4. In order to use the new model a RadiativeZPrimeModel object must be created and used to replace the default Model object used by Herwig++ which is of course an instances of the Herwig++ StandardModel class. This requires:

1. the new particles, in this case the Z’ are created;
2. an instance of the new model class, in this case RadiativeZPrimeModel is created;
3. the running electromagnetic and strong couplings, running mass and CKM objects are assigned to the new model;
4. the new vertices are created and these, together with the Standard Model vertices assigned to the new model;
5. the model model objects is assigned to the StandardModelParameters interface of the EventGenerator to replace the StandardModel object.

This is done in the RadiativeZPrime.model file in the example implementation.

The model is now ready to be used with Herwig++. It can be used with the standard internal Herwig++ machinary to generate hard processes and decays. In this case a number of other options are available in the implementation.

1. The MEqq2ZPrime2ff class implements the matrix element for $$q\bar{q} \to f\bar{f}$$ including the Standard Model contributions, based heavily on the MEqq2gZ2ff matrix element in Herwig++.
2. The MEqq2ZPrime2ZGamma class implements the matrix element for $$q \bar{q} \to Z' \to Z \gamma$$.
3. The MEqq2ZPrime2ZGamma2ffGamma class implements $$q \bar{q} \to Z' \to Z gamma$$ including the decay of the Z boson as a $$2\to3$$ process to provide an example of doing this.

The LHC-RadiativeZPrime.in file includes examples of using both the default mechanism for new physics processes and thewse additional matrix elements. The SimpleZPrimeAnalysis class provides some simple analysis of the events. The results results] for the $$2\to3$$ matrix element (black), dedicated