This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

minimal-lagrangians: Generating and studying dark matter model Lagrangians with just the particle content

Simon May [email protected] [ Max-Planck-Institut für Astrophysik, Karl-Schwarzschild-Straße 1, 85741 Garching, Germany
Abstract

minimal-lagrangians is a Python program which allows one to specify the field content of an extension of the Standard Model of particle physics and, using this information, to generate the most general renormalizable Lagrangian that describes such a model. As the program was originally created for the study of minimal dark matter models with radiative neutrino masses, it can handle additional scalar or Weyl fermion fields which are SU(3)\operatorfontC\operatorname{SU}(3)_{{\operatorfont C}} singlets, SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}} singlets, doublets or triplets, and can have arbitrary U(1)\operatorfontY\operatorname{U}(1)_{{\operatorfont Y}} hypercharge. It is also possible to enforce an arbitrary number of global U(1)\operatorname{U}(1) symmetries (with 2\mathbb{Z}_{2} as a special case) so that the new fields can additionally carry such global charges. In addition to human-readable and output, the program can generate SARAH model files containing the computed Lagrangian, as well as information about the fields after electroweak symmetry breaking (EWSB), such as vacuum expectation values (VEVs) and mixing matrices. This capability allows further detailed investigation of the model in question, with minimal-lagrangians as the first component in a tool chain for rapid phenomenological studies of “minimal” dark matter models requiring little effort and no unnecessary input from the user.

keywords:
Quantum field theory , Lagrangians , Model building , Beyond the Standard Model , Dark matter , Neutrino masses , SARAH
journal: Computer Physics Communications
\DTMsetstyle

en-GB

url]https://www.mpa-garching.mpg.de/ smay/

PROGRAM SUMMARY

Program Title: minimal-lagrangians
Licensing provisions: GPLv3
Programming language: Python

Nature of problem:
Given a quantum field theory’s gauge group, it is sufficient to specify the particle (field) content in order to identify the full renormalizable theory, up to the parameters in its Lagrangian. However, the process of determining the Lagrangian manually is not only tedious and error-prone, but also involves additional complications such as redundant terms or the question of whether the theory is anomaly-free.
Solution method:
minimal-lagrangians generates the complete renormalizable Lagrangian for a given model with the Standard Model gauge group SU(3)\operatorfontC×SU(2)\operatorfontL×U(1)\operatorfontY\operatorname{SU}(3)_{{\operatorfont C}}\times\operatorname{SU}(2)_{{\operatorfont L}}\times\operatorname{U}(1)_{{\operatorfont Y}}, including interaction terms. Redundant terms in the Lagrangian are eliminated in order to avoid duplicated parameters. The particle content is also checked for gauge anomalies, including the Witten SU(2)\operatorname{SU}(2) anomaly [1]. The model will automatically be modified to make fermions vector-like if necessary. The generated Lagrangian can be output in SARAH [2, 3] model file format so that the model is immediately available for detailed phenomenological study using the capabilities of SARAH.
Additional comments including restrictions and unusual features:
Instead of manually determining the details of a model, the only input to the program minimal-lagrangians is the particle content. Using the output to SARAH, minimal-lagrangians thus forms the first step in a tool chain which enables the complete implementation and study of a new model with minimal effort and no “boilerplate” user input. The focus is on “minimal” dark matter models, i. e. those with the Standard Model gauge group (no additional gauge fields), where the new fields are color singlets and at most triplets under SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}}.

References

  • [1] E. Witten, An SU(2)\operatorname{SU}(2) Anomaly, Phys. Lett. B117 (1982) 324–328. doi: 10.1016/0370-2693(82)90728-6.
  • [2] F. Staub, SARAH 4: A tool for (not only SUSY) model builders, Comput. Phys. Commun. 185 (2014) 1773–1790. arXiv:1309.7223, doi:10.1016/j.cpc.2014.02.018.
  • [3] F. Staub, Exploring new models in all detail with SARAH, Adv. High Energy Phys. 2015 (2015) 840780. arXiv:1503.04200, doi:10.1155/2015/840780.

1 Introduction

The program minimal-lagrangians is able to generate the most general renormalizable Lagrangian describing certain classes of extensions of the Standard Model (SM) of particle physics in a fully automatic fashion, with several different output formats, requiring only the model’s field content to do so. As the program was originally written for the study of minimal dark matter models with radiative neutrino masses [1], it can handle fields beyond the Standard Model (BSM) with the following properties:

  • 1.

    scalar or fermion fields111Fermions are always defined in terms of Weyl spinors, cf. A.

  • 2.

    SU(3)\operatorname{SU}(3) singlets

  • 3.

    SU(2)\operatorname{SU}(2) singlets, doublets or triplets

  • 4.

    arbitrary U(1)\operatorname{U}(1) hypercharge

  • 5.

    charged under an arbitrary number of global U(1)\operatorname{U}(1) symmetries (with 2\mathbb{Z}_{2} as a special case)

minimal-lagrangians originated as an effort to study the minimal dark matter models with radiative neutrino masses introduced in [2] in a general way. A missing piece in [2] are the Lagrangians for the individual models, which are only specified via the field content for each model.

While it is a manageable task for someone experienced in building particle physics models to construct the Lagrangian for such a model manually, this process can be error-prone and time-consuming – not only because all possible terms must be enumerated without omissions, but especially when taking into account gauge anomalies and various identities for the possible terms (cf. C). Moreover, since the symmetry groups and the kinds of representations used in these models are limited and fixed, it is quite feasible to exhaustively list all the terms that could potentially appear in such a Lagrangian in full generality in an automated fashion. The models are thus checked for gauge anomalies, including the Witten SU(2)\operatorname{SU}(2) anomaly [3], which are avoided by introducing vector-like fermions if necessary. Redundant terms are omitted using the identities in C. Even for manually-constructed Lagrangians, minimal-lagrangians can still serve as a useful cross-check in order to verify that there are neither too few (forgotten) nor too many (redundant) terms.

In addition, model files for SARAH [4, 5] can be constructed automatically from the specified field content, which can be tedious if done manually. Thus, minimal-lagrangians enables rapid phenomenological studies using SARAH and, successively, further tools like SPheno [6, 7] and micrOMEGAs [8, 9].

For a typical number of fields, which is small in most models (<10<10), the program’s execution time should be of the order of one second or less on any hardware in current use.

2 Download and installation

minimal-lagrangians is available on the Python Package Index (PyPI) at https://pypi.org/project/minimal-lagrangians. Therefore, the simplest method to obtain and install the program files is to use the pip package manager. Provided that pip is set up on the machine, running

pip install minimal-lagrangians

on the command line should be all that is necessary to install minimal-lagrangians.

Further development of the program is tracked using the git version control system. The most recent development snapshot is available at https://gitlab.com/Socob/minimal-lagrangians. Bugs or other issues should be reported there as well.

The program is written using the Python 3 programming language and should run using Python versions  3.4\geq 3.4. It can be run on any system which Python is available for. Apart from that, there are no external dependencies.

3 Use of the program

3.1 Command-line interface

Information on how to run the program on the command line can be obtained by running minimal-lagrangians -h:

usage: minimal-lagrangians [-h] [--format {LaTeX,SARAH,plain}]
[--model-file [path/to/file.py]] [--omit-equivalent-scalars]
[--omit-self-interaction] [--list-discarded-terms]
[--sarah-no-scalar-cpv] [--version]
model [parameter \textalpha]
A Python program to generate the Lagrangians for dark matter models
positional arguments:
model name of the model whose Lagrangian is to be generated (specify
list in order to list all available models)
parameter \textalpha value of the model parameter \textalpha (determines hypercharges of the
fields)
optional arguments:
-h, --help show this help message and exit
--format {LaTeX,SARAH,plain}
output format for the generated Lagrangian (default: plain)
--model-file [path/to/file.py]
file containing user-defined models; a file is only read if this
option is present (default: ./models.py)
--omit-equivalent-scalars
keep only scalar fields from the model which have unique quantum
numbers and absolute hypercharge values (omit duplicates)
--omit-self-interaction
omit pure self-interactions of the new fields in the Lagrangian,
that is, output only interaction terms which involve both SM and
new fields (default: output all terms)
--list-discarded-terms
list redundant terms which were discarded from the Lagrangian
due to identities
--sarah-no-scalar-cpv
assume that there is no CP violation causing mixing between
scalar and pseudoscalar fields for SARAH output
--version show programs version number and exit

As shown in the output listing, the general syntax used to generate a model’s Lagrangian is minimal-lagrangians <model_name>. The names of all available models can be listed using minimal-lagrangians list. Models can have an additional hypercharge offset parameter (called α\alpha in [2]); if the model in question does not use such a parameter, it should be omitted on the command line. New models can be defined in a user-supplied file, which can be specified using the option --model-file [path]. The details and syntax of defining new models are laid out in section 3.2.

The output format can be selected using the --format option; the different formats are detailed in section 4. In general, minimal-lagrangians will write its output to the standard output stream. The exception is the SARAH output format, which requires multiple files with specific names and will thus additionally write to a new directory within the current working directory.

As mentioned before, minimal-lagrangians makes use of the identities in C to remove redundant terms from the Lagrangian. The command line flag --list-discarded-terms causes valid terms which were omitted for this reason to be printed in the output, allowing for cross-checks and comparisons between different sources which may have chosen different parametrizations of the same Lagrangian.

Two additional flags can be used to obtain a simplified version of the output. --omit-equivalent-scalars can be useful for models with a hypercharge parameter (e. g. [2]; see also section 3.2 for more details on the definition of such models). Depending on the value of α\alpha, several scalar multiplets can end up as adjoints of each other (opposite quantum numbers, ϕ1=ϕ2\phi_{1}^{\dagger}=\phi_{2}) and thus effectively form nothing but multiple generations of the same scalar field. An example is the model T3-B for α=1\alpha=-1 [2], which is the so-called scotogenic model [10] for a single scalar doublet. In this case, the flag reduces the field content to only unique scalar fields, allowing for the study of the most minimal version of the model without having to define each special case separately. --omit-self-interaction simply omits all terms which do not involve any SM fields for cases where such self-interactions are not of interest.

3.2 Model definition

minimal-lagrangians comes with a number of built-in model definitions, among them all the models listed in [2]. The program file data.py contains these definitions and can thus be inspected for examples of the model definition syntax.

Additional new models can be defined in a user-supplied file using the --model-file [path] command line option. The default path for the user model file is a file models.py in the current working directory, which will be used if no path is specified: minimal-lagrangians --model-file.

The user model file must contain a list of model definitions with valid Python syntax. Models can be added as entries to the list in the following form:

1[
2 BSMModel('<model_name>', (
3 # list of fields
4 # (type, name, SU(2) rep., U(1)_Y, global sym.)
5 # for a scalar, e.g. a Z2-odd scalar doublet
6 # with hypercharge 1:
7 ScalarField ('S', 2, Y=1, z2=-1),
8 # for a fermion, e.g. a Z2-even fermion singlet
9 # with hypercharge 0:
10 FermionField('F', 1, Y=0, z2=1),
11 #
12 ),
13 # optional: parameter values for different hypercharge
14 # assignments (offsets), e.g.
15 (0, 2, )
16 ),
17 #
18]

The program uses the convention where the hypercharge YY is normalized such that the electric charge QQ is

Q=T3+Y2Q=T_{3}+\frac{Y}{2} (1)

where T3T_{3} is the third component of the weak isospin. It should be noted that minimal-lagrangians automatically treats neutral scalars (i. e. uncharged under all – even global – charges) as real for simplicity.222In the case of a scalar which is neutral with respect to all charges, a complex scalar is equivalent to two real scalars (and must be specified as such in the model file).

In a bit more detail, the user model file must contain a list333Generally, whenever a “list” is mentioned, any Python iterable is allowed. of BSMModel objects. These objects can be constructed using the BSMModel() constructor which takes two mandatory and one optional arguments, BSMModel(name, fields, param_values):

name

The first argument is simply a name for the model as a string. The name is arbitrary and used as an identifier for the model. This is the name that is used to refer to the model on the command line.

fields

The second argument is a list of fields and represents the model’s field content. Scalar (spin 0) or fermion (spin 1/2\nicefrac{{1}}{{2}}) fields are denoted using ScalarField() or FermionField(), respectively. It should be noted that all fermions are defined in terms of (two-component) left-handed Weyl spinors (see A). Fields are defined in a similar manner to the model itself, with arguments Field(symbol, su2_multiplicity, Y, z2=-1, u1=[]):

symbol

A name for the field, which will appear in the resulting Lagrangian.

su2_multiplicity

The value nn corresponding to the representation of SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}} which the nn-plet field is in (singlet, doublet or triplet).

Y

The U(1)\operatorfontY\operatorname{U}(1)_{{\operatorfont Y}} hypercharge.

z2

The global 2\mathbb{Z}_{2} “parity” ±1\pm 1 for the field. If omitted, the default is z2=-1. SM fields have z2=1.

u1 (optional)

A list of an arbitrary number NN of global U(1)\operatorname{U}(1) charges for the field. NN must be consistent across all fields. SM fields are assumed to be neutral under all global U(1)\operatorname{U}(1) charges.

param_values (optional)

The third argument can be used to define several models at once which have the same field content except for a constant shift in the hypercharge of all fields, as in [2]. In most cases, this argument can be omitted.

For example, the model T1-3-B, which is studied for α=0\alpha=0 in [11], is defined as

1BSMModel('T1-3-B', (
2 FermionField("\textPsi", 1, Y= 0),
3 FermionField("\textpsi'", 2, Y= 1),
4 ScalarField ("\straightphi", 3, Y= 0),
5 FermionField("\textpsi", 2, Y=-1),
6), (0, 2)), # \textalpha = -2 is equivalent to \textalpha = 2

As mentioned before, minimal-lagrangians will automatically make some fermions vector-like if necessary in order to cancel gauge anomalies when processing a model. In this case, a warning will be emitted to the user. If this automatic modification is not desired, the model should explicitly be defined (with additional fermion fields) in such a way that there are no gauge anomalies.

3.3 Use as a Python package

Once minimal-lagrangians has been installed as described in section 2, its component Python modules are in principle available for import in other Python scripts. All modules are contained within the min_lag package and can be imported as demonstrated in minimal-lagrangians.py, the main executable file. In this way, the data structures used and returned by the code can be inspected and used directly and dynamically if desired. Note, however, that there are currently no plans to provide a stable programming interface (e. g. class names and attributes, function or method names, or the number and names of their parameters) for use of the package in this manner.

4 Program output and examples

The program only prints the potential involving at least one new (i. e. non-SM) field, that is, the Standard Model Lagrangian \operatorfontSM\mathcal{L}_{{\operatorfont SM}} and the kinetic terms \operatorfontkin\mathcal{L}_{{\operatorfont kin}} (which always have the same form) are omitted. Explicitly, given a Lagrangian \mathcal{L} of the form

=\operatorfontSM+\operatorfontkin+V\operatorfontBSM\mathcal{L}=\mathcal{L}_{{\operatorfont SM}}+\mathcal{L}_{{\operatorfont kin}}+V_{{\operatorfont BSM}} (2)

minimal-lagrangians will output the most general renormalizable BSM potential V\operatorfontBSMV_{{\operatorfont BSM}}. The mathematical notation in the program’s output is explained in A and B. As indicated in the program’s help message, the Lagrangian can be output in three different formats, which are described in the following.

Two models will be illustrated as examples in the following subsections: the model T1-1-A with α=0\alpha=0 from [2] (also studied in [12]), and the singlet–triplet scalar model (“model C”) from [13].444As mentioned before, minimal-lagrangians makes use of a number of identities (C) in order to eliminate redundant parameters from the Lagrangian. Since it has to make a particular and consistent choice about which terms to eliminate, some of the examples shown in this section do not exactly match the form given in the corresponding references. However, it can easily be verified that the generated Lagrangians are completely equivalent. They are defined as follows:

1 # arXiv:1308.3655 model T1-1-A
2 BSMModel('T1-1-A', (
3 ScalarField ("\textphi", 1, Y= 0),
4 ScalarField ("\straightphi'", 2, Y=-1),
5 FermionField("\textpsi", 1, Y= 0),
6 ScalarField ("\straightphi", 2, Y= 1),
7 ), (0, 2)), # \textalpha = -2 is equivalent to \textalpha = 2
8 # arXiv:1311.5896 model C: singlet-triplet scalar
9 BSMModel('STS', (
10 ScalarField ('S', 1, Y= 0),
11 ScalarField ('T', 3, Y= 0),
12 )),

4.1 Plain text

By default, the program will output the Lagrangian in plain text to the command-line terminal for a clearer and more compact presentation which does not require a processor. This output format makes heavy use of Unicode [14] for optimal readability. For example, minimal-lagrangians --omit-equivalent-scalars T1-1-A 0 prints the Lagrangian for the model T1-1-A with α=0\alpha=0 in the following form:555For α=0\alpha=0, the model T1-1-A can be defined using only three new multiplets (instead of four) because the scalar doublets are conjugates of each other [2]. The option --omit-equivalent-scalars is used in the examples to use the minimal case of three new multiplets. This is also the version of the model studied in [12].

- M_\straightphi'2 \straightphi'^\mathtt{\dagger} \straightphi' - 𝟷/𝟸\nicefrac{{\mathtt{1}}}{{\mathtt{2}}} M_\textphi2 \textphi2
- (\textlambda1 (H \straightphi') \textphi + H.c.)
- \textlambda2 (H^\mathtt{\dagger} H) (\straightphi'^\mathtt{\dagger} \straightphi') - \textlambda3 (H^\mathtt{\dagger} \straightphi') (\straightphi'^\mathtt{\dagger} H) - \textlambda4 (\straightphi'^\mathtt{\dagger} \straightphi')2 - \textlambda5 (H^\mathtt{\dagger} H) \textphi2 - \textlambda6 (\straightphi'^\mathtt{\dagger} \straightphi') \textphi2 - (\textlambda7 (H \straightphi')2 + H.c.) - \textlambda8 \textphi4
- (𝟷/𝟸\nicefrac{{\mathtt{1}}}{{\mathtt{2}}} M_\textpsi \textpsi \textpsi + H.c.)
- (y1 (\straightphi'^\mathtt{\dagger} L) \textpsi + H.c.)

As another example, running the command minimal-lagrangians STS prints the Lagrangian for the singlet–triplet scalar model:

- 𝟷/𝟸\nicefrac{{\mathtt{1}}}{{\mathtt{2}}} M_T2 Tr(T2) - 𝟷/𝟸\nicefrac{{\mathtt{1}}}{{\mathtt{2}}} M_S2 S2
- \textlambda1 H^\mathtt{\dagger} T2 H - \textlambda2 (H^\mathtt{\dagger} T H) S - \textlambda3 (H^\mathtt{\dagger} H) S2 - \textlambda4 Tr(T2)2 - \textlambda5 Tr(T2) S2 - \textlambda6 S4

4.2

Simple text is not the only implemented output format. Instead of (Unicode) plain text, minimal-lagrangians can also output commands to typeset the generated Lagrangians. Using the same examples as before, minimal-lagrangians --omit-equivalent-scalars --format LaTeX T1-1-A 0 results in

Mϕ2ϕϕ12Mφ2φ2\displaystyle-M_{\phi^{\prime}}^{2}{\phi^{\prime}}^{\dagger}\phi^{\prime}-\frac{1}{2}M_{\varphi}^{2}{\varphi}^{2}
(λ1(Hϕ)φ+H. c.)λ2(HH)(ϕϕ)λ3(Hϕ)(ϕH)\displaystyle-\left(\lambda_{1}\left(H\phi^{\prime}\right)\varphi+\text{H.\,c.}\right)-\lambda_{2}\left({H}^{\dagger}H\right)\left({\phi^{\prime}}^{\dagger}\phi^{\prime}\right)-\lambda_{3}\left({H}^{\dagger}\phi^{\prime}\right)\left({\phi^{\prime}}^{\dagger}H\right)
λ4(ϕϕ)2λ5(HH)φ2λ6(ϕϕ)φ2(λ7(Hϕ)2+H. c.)\displaystyle\qquad-\lambda_{4}\left({\phi^{\prime}}^{\dagger}\phi^{\prime}\right)^{2}-\lambda_{5}\left({H}^{\dagger}H\right){\varphi}^{2}-\lambda_{6}\left({\phi^{\prime}}^{\dagger}\phi^{\prime}\right){\varphi}^{2}-\left(\lambda_{7}\left(H\phi^{\prime}\right)^{2}+\text{H.\,c.}\right)
λ8φ4\displaystyle\qquad-\lambda_{8}{\varphi}^{4}
(12Mψψψ+H. c.)(y1(ϕL)ψ+H. c.)\displaystyle-\left(\frac{1}{2}M_{\psi}\psi\psi+\text{H.\,c.}\right)-\left(y_{1}\left({\phi^{\prime}}^{\dagger}L\right)\psi+\text{H.\,c.}\right) (3)

and minimal-lagrangians --format LaTeX STS yields

12MT2Tr(T2)12MS2S2\displaystyle-\frac{1}{2}M_{T}^{2}\operatorname{Tr}\left({T}^{2}\right)-\frac{1}{2}M_{S}^{2}{S}^{2}
λ1HT2Hλ2(HTH)Sλ3(HH)S2λ4Tr(T2)2\displaystyle-\lambda_{1}{H}^{\dagger}{T}^{2}H-\lambda_{2}\left({H}^{\dagger}TH\right)S-\lambda_{3}\left({H}^{\dagger}H\right){S}^{2}-\lambda_{4}\operatorname{Tr}\left({T}^{2}\right)^{2}
λ5Tr(T2)S2λ6S4\displaystyle\qquad-\lambda_{5}\operatorname{Tr}\left({T}^{2}\right){S}^{2}-\lambda_{6}{S}^{4} (4)

(some line breaks added manually).666One method to automatically add line breaks to long equations is provided by the package breqn.

4.3 SARAH model files

Finally, the third output format supported by minimal-lagrangians allows one to generate model files for the tool SARAH [4, 5], which can then be used to study the model in detail and subsequently generate code and model files for a large number of particle physics tools, such as SPheno [6, 7] and micrOMEGAs [8, 9]. In SARAH, one of the main tasks in implementing a model is specifying the Lagrangian, along with explicitly defining the components of all fields and every used parameter, all of which has to be done manually. minimal-lagrangians eliminates these steps by generating the most general renormalizable Lagrangian automatically and creating all the files needed by SARAH. Together, these programs form a tool chain which, after specifying a model’s field content, largely automates the programmatic implementation of the model’s details and rapidly yields executable code to calculate physical observables (see section 6). An example making use of this tool chain is the analysis of the model T1-3-B (α=0\alpha=0) performed in [11].

In particular, the generated SARAH model files also contain all information about vacuum expectation values (VEVs) potentially acquired by scalar fields and mixing of fields to new mass eigenstates after electroweak symmetry breaking (EWSB). While EWSB does not affect the Lagrangian itself, the treatment of mixing is necessary when SARAH is used to compute physical observables using SARAH or its supported tools (like SPheno and micrOMEGAs).

For the example of the model T1-1-A (α=0\alpha=0) used in the previous sections 4.1 and 4.2, the relevant portions of the SARAH model files generated by minimal-lagrangians, which can be created using

minimal-lagrangians --omit-equivalent-scalars --sarah-no-scalar-cpv --format SARAH T1-1-A 0

are shown in D.777The option --sarah-no-scalar-cpv is included to enforce separate mixing matrices for neutral scalar and pseudoscalar components. Only defining a single mixing for all neutral scalars can cause issues in SARAH’s output routines. Unfortunately, depending on the names chosen for the fields, some characters must be replaced by minimal-lagrangians (e. g. psi in place of ψ\psi) to conform to SARAH’s syntax rules.

In the main model file, all fields used in the input for minimal-lagrangians are defined as required by SARAH, including their SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}} components:

1FermionFields[[6]] = {psi, 1, psi0, 0, 1, 1, -1};
2ScalarFields[[2]] = {varphi, 1, varphi0, 0, 1, 1, -1};
3ScalarFields[[3]] = {phiq, 1, {phiq0, phiqm}, -1/2, 2, 1, -1};
4RealScalars = {varphi};

In addition to the Lagrangian, information about the mixing of fields and their mixing matrices must now also be given in this main model file, and is written by minimal-lagrangians as follows:

1DEFINITION[EWSB][MatterSector] = {
2 (* Standard Model mixing *)
3 {{{uL}, {conj[uR]}}, {{UL, Vu}, {UR, Uu}}},
4 {{{dL}, {conj[dR]}}, {{DL, Vd}, {DR, Ud}}},
5 {{{eL}, {conj[eR]}}, {{EL, Ve}, {ER, Ue}}},
6 {{vL}, {VL, Uneu}},
7 (* mixing of new fields *)
8 {{varphi0, phiq0Re}, {smx0, ZZs1}}
9};

Any mixing involving the quarks, i. e. the Cabibbo–Kobayashi–Maskawa (CKM) matrix, is unaffected by the new fields in minimal-lagrangians (which must be color-neutral) and is thus identical to the Standard Model in the SARAH model files (as indicated using comment syntax). In the case of this example (model T1-1-A with α=0\alpha=0), there are no new fields which mix with the neutrinos, so their mixing is also unaffected at tree level. However, the new neutral scalar singlet φ\varphi and the (real part of the) neutral component of the scalar doublet ϕ\phi^{\prime} both have the same quantum numbers after EWSB and thus mix to a new neutral scalar state with a mixing matrix (called smx0 and ZZs1, respectively, in the generated SARAH model file). Note once again that all these details are determined automatically by minimal-lagrangians using the simple definition

1 BSMModel('T1-1-A', (
2 ScalarField ("\textphi", 1, Y= 0),
3 ScalarField ("\straightphi'", 2, Y=-1),
4 FermionField("\textpsi", 1, Y= 0),
5 ScalarField ("\straightphi", 2, Y= 1),
6 ), (0, 2)),

and do not need to be specified by the user.

5 Summary of the implementation

The way in which fields, terms and the Lagrangian as a whole are represented internally in minimal-lagrangians is very straightforward and simplistic. Fields are objects whose properties are their mathematical symbol and their quantum numbers:

  • 1.

    type: scalar or fermion;

  • 2.

    su2_multiplicity: the dimension of their representation under the gauge group SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}} – the values 11, 22 and 33 (singlets, doublets and triplets) are supported;

  • 3.

    hypercharge: the charge under the gauge group U(1)\operatorfontY\operatorname{U}(1)_{{\operatorfont Y}};

  • 4.

    z2: the parity (±1\pm 1) under the global 2\mathbb{Z}_{2} symmetry;

  • 5.

    (optional) u1: the list of charges under the NN global U(1)\operatorname{U}(1) symmetries.

Terms are then essentially lists of such field objects, with code in place to ensure a consistent order and grouping of fields within a term. A Lagrangian is then an (ordered) set of such terms.

An alternative to this very basic approach could have been to adapt a symbolic computation package with some additional rules for equivalence of terms, ordering and output formatting. However, for the Lagrangian of a minimal model, the only required operations are multiplication of fields and addition of terms, where the latter is even not really needed because none of the terms of the final Lagrangian can be simplified by addition. Consequently, a symbolic computation package would not have made the implementation much easier beyond providing the commutative property ϕ1ϕ2=ϕ2ϕ1\phi_{1}\phi_{2}=\phi_{2}\phi_{1} in a product. On the other hand, adapting an existing library for a purpose such as this, which it was not designed for, would take a significant amount of effort.

In a sense, minimal-lagrangians works at a higher level of abstraction – it does not think in terms of individual variables in a product, but really only cares about the terms as a whole. No operations are performed on these terms and the desired concept of “equality” of terms is not a precise one down to each constant factor, because these just affect the arbitrary definition of each term’s coupling parameter. Such details are of no interest for the program’s purpose, rather complicating the decision of whether two terms should be treated as equal. Only if integration with other symbolic computation tools is desired would it be useful to investigate whether employing such a package as a lower-level component is worthwhile.

The main component implementing the generation of all possible gauge- and Lorentz-invariant terms is the method BSMModel.lagrangian, along with the methods is_valid, generate_terms and filter_terms_identities of the Model class, which it uses to construct the Lagrangian. The method BSMModel.lagrangian works as follows: First, a list containing all of the model’s fields and their adjoints is created. Then, all the possibilities of combining nn of these fields (2n42\leq n\leq 4) are enumerated. For example, given two real fields ϕ1\phi_{1} and ϕ2\phi_{2}, this list would contain the combinations (ϕ1ϕ1ϕ1,ϕ1ϕ1ϕ2,ϕ1ϕ2ϕ2,ϕ2ϕ2ϕ2)(\phi_{1}\phi_{1}\phi_{1},\phi_{1}\phi_{1}\phi_{2},\phi_{1}\phi_{2}\phi_{2},\phi_{2}\phi_{2}\phi_{2}) for n=3n=3. Note that the order of the fields does not matter. However, only those combinations which can be used to form invariant terms at all are kept as candidates.

The check whether such a combination of fields can yield invariant terms is done by Model.is_valid. Making use of formalisms for Weyl spinors and SU(2)\operatorname{SU}(2) multiplets (see B), it is simple to determine whether this is the case: Every lowered index must appear in a sum with a raised index of the same kind. Since fermion fields have mass dimension 𝖬3/2\mathsf{M}^{\nicefrac{{3}}{{2}}}, there can be at most two of them in a renormalizable term in any case, so this reduces to a check that they are both either left-handed or conjugate left-handed (i. e. right-handed) spinors. In general, though, the number of indices must be even for each kind of index. For SU(2)\operatorname{SU}(2), an nn-plet has n1n-1 indices, so the sum i(ni1)\sum_{i}(n_{i}-1) must be an even number. For the abelian groups (U(1)\operatorname{U}(1), 2\mathbb{Z}_{2}), the sum of each kind of charge must be zero: iqi=0\sum_{i}q_{i}=0. Alternatively, since the value of the “parity group” 2\mathbb{Z}_{2} is usually given as pi=eiqi=±1p_{i}=e^{iq_{i}}=\pm 1 (“even/odd”), the product of all 2\mathbb{Z}_{2} values must be one: ipi=1\prod_{i}p_{i}=1.

Table 1: Types of terms which are allowed in the interaction potential of a renormalizable theory for a set of bosons {ϕi}\{\phi_{i}\} and fermions {ψi}\{\psi_{i}\}.
Term Type (N\operatorfonts,N\operatorfontf)(N_{{\operatorfont s}},N_{{\operatorfont f}}) Mass dimension Description
ϕiϕj\phi_{i}\phi_{j} (2,0)(2,0) 𝖬2\mathsf{M}^{2} bosonic mass term
ψiψj\psi_{i}\psi_{j} (0,2)(0,2) 𝖬3\mathsf{M}^{3} fermionic mass term
ϕiϕjϕk\phi_{i}\phi_{j}\phi_{k} (3,0)(3,0) 𝖬3\mathsf{M}^{3} cubic interaction
ϕiϕjϕkϕm\phi_{i}\phi_{j}\phi_{k}\phi_{m} (4,0)(4,0) 𝖬4\mathsf{M}^{4} quartic interaction
ϕiψjψk\phi_{i}\psi_{j}\psi_{k} (2,1)(2,1) 𝖬4\mathsf{M}^{4} Yukawa interaction

All the combinations of fields which are identified as potentially valid are then given to Model.generate_terms. This method contains the algorithm to determine, given an arbitrary collection of fields, what terms involving this specific combination must be added to the Lagrangian. As mentioned before, Lorentz invariance is easy to obtain since the combination of fields will either contain no or two Weyl spinors, and in both cases there is only one way to match up the spinor indices. For gauge and global invariance, SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}}, as the only non-abelian group, is the only one which could couple the fields in non-trivial ways. Invariance under the abelian groups is automatically ensured because the charges were checked in the previous step. In any case, a term is either not or automatically invariant under abelian groups – there is only one way to couple the fields. Finally, Model.filter_terms_identities determines if a term can be omitted due to the identities in C.

To recap, only three different representations of SU(2)\operatorname{SU}(2) are used in the considered models (singlets, doublets and triplets). Furthermore, the restriction to renormalizable Lagrangians limits the Lorentz structure of terms to the possibilities listed in table 1. Together, these assumptions ensure that there is only a finite number of different types of terms, so that the easiest way to enumerate all the possible terms for a given set of fields is to simply go through all the different cases.

6 Numerical analysis tool chain

As mentioned before, minimal-lagrangians adds another piece to a tool chain formed from existing particle physics code, allowing one to automate most of the model implementation starting just with a model’s field content.

\pgfmathresultptDefinition of the field content (data.py or models.py)minimal-lagrangiansSARAH model files<model>.m, particles.m, parameters.m, SPheno.mSARAHSPheno codemicrOMEGAsmodel files(*.mdl)SPhenoSLHA input fileLesHouches.in.<model>_lowSLHA spectrum fileSPheno.spc.<model>micrOMEGAs
Figure 1: Flowchart illustrating the procedure to implement a model and run the numerical code within the computational tool chain started by minimal-lagrangians. Boxes with rounded corners and thick borders represent programs, while the others represent files. The box with double-line borders indicates files which require user input.

An illustration of how a model is implemented and analyzed using these tools is shown in fig. 1. At the beginning, the model’s field content is defined in data.py (or the user-supplied model file), as explained in section 3.2. minimal-lagrangians can then be used to generate model files for SARAH containing the most general renormalizable Lagrangian, as well as the definitions for potential VEVs or mixing of the fields after electroweak symmetry breaking. Since SARAH has a great number of features, it can sometimes be necessary or desirable to make some changes or additions to the generated model files. With this potentially modified set of model files, SARAH can be used to generate both the SPheno code and model files for micrOMEGAs.

At this point, the implementation of the model is already complete. The generated code can be compiled and used to perform numerical calculations. SPheno takes a file in the SUSY Les Houches Accord (SLHA) format [15, 16] as input. In this file, the input parameters are provided and a number of settings (for example, which file formats are output, whether some calculations should be disabled and what conventions are used) can be customized. SARAH provides a template for this input file. Running SPheno then produces a spectrum file, also in SLHA format. It contains the mass spectrum (including the mixing matrices) for the specified parameter point as well as lepton and quark flavor violation observables, some observables like g2g-2 and (if enabled) branching ratios for particle decays. In turn, this spectrum file can be used as an input to micrOMEGAs, which extracts the mass spectrum and uses it to perform the calculation of dark matter observables.

7 Verification and test suite

minimal-lagrangians contains a comprehensive test suite, which can be run using the test.py file contained within the program package. Among other checks, this tests whether the program produces the correct Lagrangian for the following models, which have been compared with the literature:

  • 1.

    T1-3-B with α = 0\alpha = 0, which is studied in [11].

  • 2.

    T1-1-A with α = 0\alpha = 0, as given in [12] (which presents an implementation of this model).

  • 3.

    The simplified dark matter models given in [13]:

    • (a)

      the singlet–doublet fermion model (SDF, “model A”);

    • (b)

      the singlet–doublet scalar model (SDS, “model B”);

    • (c)

      the singlet–triplet scalar model (STS, “model C”).

  • 4.

    The seesaw mechanism type II, also called the Higgs triplet model (see e. g. [17]).

Additionally, it has been verified manually that the generated output is correct for a variety of different models, in particular for the seesaw mechanisms of types I and III, and the model T1-2-A (α=0\alpha=0) studied in [18].

8 Outlook

minimal-lagrangians will hopefully prove to be a useful tool both in accelerating phenomenological model building studies and providing automated, computer-assisted verification. There are currently some restrictions to specific cases which could be generalized in the future. The main limitation is the size of the SU(2)\operatorname{SU}(2) representation, which cannot be larger than triplets. The generalization to arbitrary representations would require a change in approach from a static list of conditions. Moreover, the code currently only handles the Standard Model gauge group, so it is not possible to use models with new gauge fields. The ultimate generalization would then be to not only handle representations of SU(2)\operatorname{SU}(2), but of arbitrary SU(N)\operatorname{SU}(N) gauge groups. This would additionally require a general condition for the cancellation of gauge anomalies.

Acknowledgments

This program resulted from work as part of the author’s master’s thesis at the Institute of Theoretical Physics at WWU Münster under the supervision of Michael Klasen. My thanks extend to Michael Klasen for his guidance and valuable input on the manuscript as well as program features, and Karol Kovařík and Sonja Esch for many enlightening discussions during that time.

Appendix A Conventions and notation

In this work, all physical quantities are given in natural units, i. e. velocities are expressed in units of the speed of light in vacuum cc and actions or angular momenta are given in units of the reduced Planck constant \hbar. The notation employed is then

c=1=1c=1\qquad\hbar=1 (5)

with the physical dimension implicit in the seemingly dimensionless expressions on the right-hand side.

The Einstein summation convention is employed unless noted otherwise, with a sum over any two matching indices. The position of the index does not, a priori, have any numerical meaning.

The normalization for the hypercharge YY, i. e. the charge corresponding to the U(1)\operatorfontY\operatorname{U}(1)_{{\operatorfont Y}} subgroup of the Standard Model gauge group SU(3)\operatorfontC×SU(2)\operatorfontL×U(1)\operatorfontY\operatorname{SU}(3)_{{\operatorfont C}}\times\operatorname{SU}(2)_{{\operatorfont L}}\times\operatorname{U}(1)_{{\operatorfont Y}}, was chosen such that

Q=T3+Y2Q=T_{3}+\frac{Y}{2} (6)

(cf. eq. 1) where QQ is the electric charge and T3T_{3} is an eigenvalue of the third SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}} generator (“weak isospin”).

All fermion fields are left-handed Weyl spinors, i. e. (1/2,0)(\nicefrac{{1}}{{2}},0) representations of SL(2,)\operatorname{SL}(2,\mathbb{C}) (the covering group of the Lorentz group SO(1,3)+\operatorname{SO}(1,3)^{+}). A four-component Dirac spinor can be constructed from a pair of two of such two-component spinors. For illustration, this is the definition of the Standard Model’s field content in minimal-lagrangians:888Technically, this only includes the first generation of the SM matter fields, since minimal-lagrangians currently has no real concept of generation indices. However, the SM fermions are either singlets or doublets and can only appear in BSM Yukawa terms. There are no redundant term identities which are affected by different numbers of generations in this case, so one can simply add generation indices to minimal-lagrangians’s “one-generation” output in these cases. Again, the SM fields are assumed to be neutral under any global U(1)\operatorname{U}(1) charges.

1STANDARD_MODEL = Model('Standard Model', (
2 ScalarField ('H', 2, Y= 1, z2=1),
3 FermionField('L', 2, Y=-1, z2=1),
4 FermionField('Q', 2, Y=Fraction(' 1/3'), z2=1),
5 FermionField('e_R^c', 1, Y= 2, z2=1),
6 FermionField('u_R^c', 1, Y=Fraction('-4/3'), z2=1),
7 FermionField('d_R^c', 1, Y=Fraction(' 2/3'), z2=1),
8))

Note that this does not include the SM gauge fields. The fermion fields, split into their SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}} representation components,999As demonstrated in section 4.3, the handling of the SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}} multiplet components shown in eq. 7 is completely automated and does not require any user input. For example, by specifying FermionField('L', 2, Y=-1, z2=1) as in the example for the Standard Model, minimal-lagrangians determines that L has two SU(2)\operatorfontL\operatorname{SU}(2)_{{\operatorfont L}} components, whose electric charges are 0 and 1-1, and will use this information to determine which fields mix after electroweak symmetry breaking. are

L=(ν\operatorfontLe\operatorfontL),Q=(u\operatorfontLd\operatorfontL),e\operatorfontR\operatorfontc,u\operatorfontR\operatorfontc,d\operatorfontR\operatorfontcL=\begin{pmatrix}\nu_{{\operatorfont L}}\\ e_{{\operatorfont L}}\end{pmatrix},\quad Q=\begin{pmatrix}u_{{\operatorfont L}}\\ d_{{\operatorfont L}}\end{pmatrix},\quad e_{{\operatorfont R}}^{{\operatorfont c}},\quad u_{{\operatorfont R}}^{{\operatorfont c}},\quad d_{{\operatorfont R}}^{{\operatorfont c}} (7)

where, once again, all fields are two-component (1/2,0)(\nicefrac{{1}}{{2}},0) spinors. The Standard Model Dirac fermions, i. e. the leptons and quarks, would thus take the form

e=(e\operatorfontLe\operatorfontR=iσ2(e\operatorfontR\operatorfontc)),u=(u\operatorfontLu\operatorfontR=iσ2(u\operatorfontR\operatorfontc)),d=(d\operatorfontLd\operatorfontR=iσ2(d\operatorfontR\operatorfontc))e=\begin{pmatrix}e_{{\operatorfont L}}\\ e_{{\operatorfont R}}=i\sigma_{2}\left(e_{{\operatorfont R}}^{{\operatorfont c}}\right)^{*}\end{pmatrix},\quad u=\begin{pmatrix}u_{{\operatorfont L}}\\ u_{{\operatorfont R}}=i\sigma_{2}\left(u_{{\operatorfont R}}^{{\operatorfont c}}\right)^{*}\end{pmatrix},\quad d=\begin{pmatrix}d_{{\operatorfont L}}\\ d_{{\operatorfont R}}=i\sigma_{2}\left(d_{{\operatorfont R}}^{{\operatorfont c}}\right)^{*}\end{pmatrix} (8)

with the second Pauli matrix σ2\sigma_{2}. The neutrinos ν\nu remain massless Weyl fermions in the Standard Model.

Appendix B Spinor formalism

For two-component Weyl spinors, the formalism described in [19] (van der Waerden notation) is assumed. In particular, an SL(2,)\operatorname{SL}(2,\mathbb{C})-invariant product of two left-handed Weyl spinors ψ\psi and χ\chi is defined as

ψχ=ψaχa=εabψbχa\psi\chi=\psi^{a}\chi_{a}=\varepsilon^{ab}\psi_{b}\chi_{a} (9)

with the “spinor metric” ε\varepsilon, the two-dimensional Levi-Civita symbol

ε\displaystyle\varepsilon =(εab)=iσ2=(0110)\displaystyle=(\varepsilon^{ab})=i\sigma_{2}=\begin{pmatrix}0&1\\ -1&0\end{pmatrix} (10)
ε1\displaystyle\varepsilon^{-1} =(εab)=iσ2=(0110)\displaystyle=(\varepsilon_{ab})=-i\sigma_{2}=\begin{pmatrix}0&-1\\ 1&0\end{pmatrix} (11)

and the second Pauli matrix σ2\sigma_{2}.

A completely analogous formalism can be constructed for representations of SU(2)\operatorname{SU}(2) instead of SL(2,)\operatorname{SL}(2,\mathbb{C}). The main difference is that only one “kind” of index is necessary, so there are no “dotted” indices. This is because the Lie algebra 𝔰𝔩(2,)\mathfrak{sl}(2,\mathbb{C}) of SL(2,)\operatorname{SL}(2,\mathbb{C}) is simply the complexification of the Lie algebra 𝔰𝔲(2)\mathfrak{su}(2) of SU(2)\operatorname{SU}(2). Consequently, 𝔰𝔩(2,)\mathfrak{sl}(2,\mathbb{C}), with its two inequivalent fundamental representations, essentially consists of two copies of 𝔰𝔲(2)\mathfrak{su}(2), which thus only requires a single kind of index. The value of such a formalism is, as usual, that it becomes trivial to determine whether a given expression is invariant (in this case under SU(2)\operatorname{SU}(2) gauge transformations). This is the case when every index is paired with a counterpart.

Correspondingly, the SU(2)\operatorname{SU}(2)-invariant product of two SU(2)\operatorname{SU}(2) doublets DD and EE is defined as

DE=DaEa=εabDbEa=(iσ2D)EDE=D^{a}E_{a}=\varepsilon^{ab}D_{b}E_{a}=(i\sigma_{2}D)\cdot E (12)

using the same “spinor metric” as in eq. 10, where the doublets “naturally” have lower indices. \cdot denotes the ordinary scalar product. An important distinction has to be made when adjoints DD^{\dagger} of doublets are involved. These already have the correct transformation behavior (upper indices) and do not require the application of ε\varepsilon when combined with “ordinary” doublets:

DE\displaystyle D^{\dagger}E =(D)aEa\displaystyle=(D^{\dagger})^{a}E_{a} (13)
DE\displaystyle D^{\dagger}E^{\dagger} =(D)a(E)a=εab(D)a(E)b=D(iσ2E)\displaystyle=(D^{\dagger})^{a}(E^{\dagger})_{a}=\varepsilon_{ab}(D^{\dagger})^{a}(E^{\dagger})^{b}=D^{\dagger}(-i\sigma_{2}E^{*}) (14)

It should be kept in mind that both the convention for products of SU(2)\operatorname{SU}(2) multiplets and for products of two-component (Weyl) spinors are in effect simultaneously. For instance, the SM Yukawa terms involving the up quarks would be written as

HQi(u\operatorfontR\operatorfontc)j=εabεαβHb(Qi)aβ((u\operatorfontR\operatorfontc)j)αHQ_{i}(u_{{\operatorfont R}}^{{\operatorfont c}})_{j}=\varepsilon^{ab}\varepsilon^{\alpha\beta}H_{b}(Q_{i})_{a\beta}((u_{{\operatorfont R}}^{{\operatorfont c}})_{j})_{\alpha} (15)

with the Higgs doublet HH, the quark doublets QiQ_{i}, the up-quark singlets (u\operatorfontR\operatorfontc)i(u_{{\operatorfont R}}^{{\operatorfont c}})_{i} and where a,ba,b are SU(2)\operatorname{SU}(2) component indices and α,β\alpha,\beta are (Lorentz) spinor indices.

SU(2)\operatorname{SU}(2) triplets are analogous to Lorentz vectors. They can be constructed from a tensor product of two doublets (𝟐𝟐=𝟑𝟏\mathbf{2}\otimes\mathbf{2}=\mathbf{3}\oplus\mathbf{1}), SU(2)\operatorname{SU}(2)’s fundamental representation, similar to the construction of a Lorentz vector from a tensor product of two Weyl spinors ((1/2,1/2)=(1/2,0)(0,1/2)(\nicefrac{{1}}{{2}},\nicefrac{{1}}{{2}})=(\nicefrac{{1}}{{2}},0)\otimes(0,\nicefrac{{1}}{{2}})). An SU(2)\operatorname{SU}(2) triplet Δ\Delta can thus be viewed as a tensor with two indices (or a 2×22\times 2 matrix) for the purposes of defining an invariant product:

(Δ1Δ2Δ3)=(ΔY/2+1ΔY/2ΔY/21)12Δiσi=(12ΔY/2ΔY/2+1ΔY/2112ΔY/2)\begin{pmatrix}\Delta_{1}\\ \Delta_{2}\\ \Delta_{3}\end{pmatrix}=\begin{pmatrix}\Delta^{\nicefrac{{Y}}{{2}}+1}\\ \Delta^{\nicefrac{{Y}}{{2}}}\\ \Delta^{\nicefrac{{Y}}{{2}}-1}\end{pmatrix}\rightarrow\frac{1}{\sqrt{2}}\Delta^{i}\sigma_{i}=\begin{pmatrix}\frac{1}{\sqrt{2}}\Delta^{\nicefrac{{Y}}{{2}}}&\Delta^{\nicefrac{{Y}}{{2}}+1}\\ \Delta^{\nicefrac{{Y}}{{2}}-1}&-\frac{1}{\sqrt{2}}\Delta^{\nicefrac{{Y}}{{2}}}\end{pmatrix} (16)

where the superscripts indicate the values of the component fields’ electric charges given the hypercharge YY.

Since the triplets correspond to SU(2)\operatorname{SU}(2)’s adjoint representation, it is simple to determine the transformation behavior of the order-2 tensors. Products between doublets and triplets should then be treated as ordinary matrix multiplications, with the requirement that a doublet multiplying from the left must have an upper index (iσ2Di\sigma_{2}D or DD^{\dagger}) and one multiplying from the right must have a lower index (DD or iσ2D-i\sigma_{2}D^{\dagger}). To summarize, for two SU(2)\operatorname{SU}(2) doublets DD and EE and a triplet Δ=Δiσi\Delta=\Delta^{i}\sigma_{i}:

DΔE\displaystyle D\Delta E =Da\tensorΔEbab=(iσ2D)Δ\displaystyle=D^{a}\tensor{\Delta}{{}_{a}^{b}}E_{b}=(i\sigma_{2}D)\cdot\Delta
DΔE\displaystyle D^{\dagger}\Delta E =(D)a\tensorΔEbab=DΔE\displaystyle=(D^{\dagger})^{a}\tensor{\Delta}{{}_{a}^{b}}E_{b}=D^{\dagger}\Delta E (17)
DΔE\displaystyle D\Delta E^{\dagger} =Da\tensorΔ(E)bab=(iσ2D)Δ(iσ2E)\displaystyle=D^{a}\tensor{\Delta}{{}_{a}^{b}}(E^{\dagger})_{b}=(i\sigma_{2}D)\cdot\Delta(-i\sigma_{2}E^{*}) (18)
DΔE\displaystyle D^{\dagger}\Delta E^{\dagger} =(D)a\tensorΔEbab=DΔ(iσ2E)\displaystyle=(D^{\dagger})^{a}\tensor{\Delta}{{}_{a}^{b}}E_{b}=D^{\dagger}\Delta(-i\sigma_{2}E^{*}) (19)

There is no distinction between Δ\Delta and Δ\Delta^{\dagger} concerning the defined products.

Appendix C Identities for redundant terms

In the process of finding the most general renormalizable Lagrangian, it becomes apparent that simply writing down all possible terms which are allowed by gauge and Lorentz invariance does not necessarily yield a minimal set of parameters. If there exist identities linking different terms in the Lagrangian, it is possible to eliminate a term by expressing it through others via the identity and thus reduce the parameter space. To be specific, given a Lagrangian

=iλiAi+R\mathcal{L}=\sum_{i}\lambda_{i}A_{i}+R (20)

with parameters λi\lambda_{i}, products of fields AiA_{i} and remaining terms RR, if there is an identity of the form

iAi=0\sum_{i}A_{i}=0 (21)

then one of the terms λiAi\lambda_{i}A_{i} can be omitted from the Lagrangian (equivalently, one can set λi=0\lambda_{i}=0) without any loss of generality.

There is a number of such identities which is relevant to doublets and triplets of SU(2)\operatorname{SU}(2) and thus the program’s domain of operation. The following is a list of these identities, which are taken into account by minimal-lagrangians when constructing a Lagrangian. Except for identities 3 and 4, the discussion can be limited to scalar (or, in general, bosonic) fields because all quartic terms involving fermions are non-renormalizable.

C.1 Identities

Note that, as before, products between SU(2)\operatorname{SU}(2) multiplets are defined as in B. The identities are generally still valid when replacing any of the fields by their corresponding adjoint fields.

Identity 1.

For any bosonic SU(2)\operatorname{SU}(2) doublet DD:

DD=0DD=0 (22)
Identity 2.

For any two bosonic SU(2)\operatorname{SU}(2) doublets D1D_{1} and D2D_{2}:

|D1|2|D2|2=|D1D2|2+|D1D2|2|D_{1}|^{2}|D_{2}|^{2}=|D_{1}D_{2}|^{2}+|D_{1}^{\dagger}D_{2}|^{2} (23)

This implies that for D1D2D_{1}\neq D_{2}, only two of the three terms

  1. 1.

    |D1|2|D2|2|D_{1}|^{2}|D_{2}|^{2}

  2. 2.

    |D1D2|2|D_{1}D_{2}|^{2}

  3. 3.

    |D1D2|2|D_{1}^{\dagger}D_{2}|^{2}

are relevant to the parameter space. For D1=D2=DD_{1}=D_{2}=D, the second term is zero (identity 1), and thus |D|2|D|2=|DD|2=(DD)2|D|^{2}|D|^{2}=|D^{\dagger}D|^{2}=(D^{\dagger}D)^{2}, so there is only one relevant term in this case.

Identity 3.

For any two SU(2)\operatorname{SU}(2) doublets D1D_{1} and D2D_{2} and any triplet Δ=Δiσi\Delta=\Delta^{i}\sigma_{i}:

D1ΔD2={D2ΔD1if at most one of the factors is fermionicD2ΔD1elseD_{1}\Delta D_{2}=\begin{cases}D_{2}\Delta D_{1}&\text{if at most one of the factors is fermionic}\\ -D_{2}\Delta D_{1}&\text{else}\end{cases} (24)
Identity 4.

For any set of SU(2)\operatorname{SU}(2) triplets Δi=Δijσj\Delta_{i}=\Delta_{i}^{j}\sigma_{j} (i{1,2,3}=Ii\in\{1,2,3\}=I) and an arbitrary map of indices σ:II\sigma:I\to I,

Tr(Δσ(i)Δσ(j)Δσ(k))=±εσTr(ΔiΔjΔk)\operatorname{Tr}(\Delta_{\sigma(i)}\Delta_{\sigma(j)}\Delta_{\sigma(k)})=\pm\varepsilon_{\sigma}\operatorname{Tr}(\Delta_{i}\Delta_{j}\Delta_{k}) (25)

where the negative sign can only occur in some cases if at least two of the triplets are fermionic and

εσ={1if σ is an even (“cyclic”) permutation1if σ is an odd (“anti-cyclic”) permutation0else\varepsilon_{\sigma}=\begin{cases}1&\text{if $\sigma$ is an even (\leavevmode\ltxml@oqmark@open\textquotedblleft\penalty 10000\hskip-0.0002pt\hskip 0.0002ptcyclic\textquotedblright\ltxml@oqmark@close{}) permutation}\\ -1&\text{if $\sigma$ is an odd (\leavevmode\ltxml@oqmark@open\textquotedblleft\penalty 10000\hskip-0.0002pt\hskip 0.0002ptanti-cyclic\textquotedblright\ltxml@oqmark@close{}) permutation}\\ 0&\text{else}\end{cases}

This means that, with another potential (arbitrary) factor XX, only one of the terms Tr(ΔiΔjΔk)X\operatorname{Tr}(\Delta_{i}\Delta_{j}\Delta_{k})X with a certain permutation of i,j,ki,j,k can appear, and only if i,j,ki,j,k are pairwise different.

Identity 5.

For any set of SU(2)\operatorname{SU}(2) triplets Δi=Δijσj\Delta_{i}=\Delta_{i}^{j}\sigma_{j} (i{1,2,3,4}i\in\{1,2,3,4\}),

2Tr(Δ1Δ2Δ3Δ4)\displaystyle 2\operatorname{Tr}\left(\Delta_{1}\Delta_{2}\Delta_{3}\Delta_{4}\right)
=Tr(Δ1Δ2)Tr(Δ3Δ4)Tr(Δ1Δ3)Tr(Δ2Δ4)+Tr(Δ1Δ4)Tr(Δ2Δ3)\displaystyle\quad=\operatorname{Tr}\left(\Delta_{1}\Delta_{2}\right)\operatorname{Tr}\left(\Delta_{3}\Delta_{4}\right)-\operatorname{Tr}\left(\Delta_{1}\Delta_{3}\right)\operatorname{Tr}\left(\Delta_{2}\Delta_{4}\right)+\operatorname{Tr}\left(\Delta_{1}\Delta_{4}\right)\operatorname{Tr}\left(\Delta_{2}\Delta_{3}\right) (26)

As a consequence of identity 5, there is no need to include any traces of products of four triplets in the Lagrangian. In other words, only terms of the form Tr(ΔiΔj)Tr(ΔkΔm)\operatorname{Tr}(\Delta_{i}\Delta_{j})\operatorname{Tr}(\Delta_{k}\Delta_{m}) are relevant to the parameter space.

To give a simple example, for a single bosonic SU(2)\operatorname{SU}(2) triplet Δ\Delta, only two quartic terms must be included in a fully general Lagrangian, e. g.

  1. 1.

    Tr(ΔΔ)2\operatorname{Tr}\left(\Delta^{\dagger}\Delta\right)^{2} and

  2. 2.

    Tr(Δ)2Tr(Δ)2\operatorname{Tr}\left(\Delta^{\dagger}\right)^{2}\operatorname{Tr}\left(\Delta\right)^{2}.

If Δ\Delta is a real triplet (Δ=Δ\Delta^{\dagger}=\Delta), it holds that Tr(Δ2)2=2Tr(Δ4)\operatorname{Tr}(\Delta^{2})^{2}=2\operatorname{Tr}(\Delta^{4}), so only one term must be included in this case.

For any bosonic SU(2)\operatorname{SU}(2) doublets D1D_{1}, D2D_{2} and triplets Δ1=Δ1iσi\Delta_{1}=\Delta_{1}^{i}\sigma_{i}, Δ2=Δ2iσi\Delta_{2}=\Delta_{2}^{i}\sigma_{i}, the following identities hold:

Identity 6.
D1Δ1Δ2D2+D1Δ2Δ1D2=D1{Δ1,Δ2}D2=D1D2Tr(Δ1Δ2)D_{1}^{\dagger}\Delta_{1}\Delta_{2}D_{2}+D_{1}^{\dagger}\Delta_{2}\Delta_{1}D_{2}=D_{1}^{\dagger}\left\{\Delta_{1},\Delta_{2}\right\}D_{2}=D_{1}^{\dagger}D_{2}\operatorname{Tr}(\Delta_{1}\Delta_{2}) (27)
Identity 7.
D1Δ1Δ2D2=D2Δ2Δ1D1D_{1}^{\dagger}\Delta_{1}\Delta_{2}D_{2}=-D_{2}\Delta_{2}\Delta_{1}D_{1}^{\dagger} (28)

Identity 6 implies that, given appropriate hypercharges (otherwise, gauge invariance would be violated), only two of the three terms

  1. 1.

    D1Δ1Δ2D2+\operatorfontH.c.D_{1}^{\dagger}\Delta_{1}\Delta_{2}D_{2}+{\operatorfont H.\,c.}

  2. 2.

    D1Δ2Δ1D2+\operatorfontH.c.D_{1}^{\dagger}\Delta_{2}\Delta_{1}D_{2}+{\operatorfont H.\,c.}

  3. 3.

    D1D2Tr(Δ1Δ2)+\operatorfontH.c.D_{1}^{\dagger}D_{2}\operatorname{Tr}(\Delta_{1}\Delta_{2})+{\operatorfont H.\,c.}

are relevant to the parameter space. If Δ1=Δ2=Δ\Delta_{1}=\Delta_{2}=\Delta, it holds that D1Δ2D2=D1D2Tr(Δ2)D_{1}^{\dagger}\Delta^{2}D_{2}=D_{1}^{\dagger}D_{2}\operatorname{Tr}(\Delta^{2}), so there is only one relevant term in this case. Similarly, if D1=D2=DD_{1}^{\dagger}=D_{2}=D, then DDTr(Δ1Δ2)=0DD\operatorname{Tr}(\Delta_{1}\Delta_{2})=0, leaving one (non-zero) relevant term again. Identity 7 ensures that any terms where the doublets are swapped can be omitted.

C.2 Proofs

The commutation and anti-commutation relations of the Pauli matrices

[σi,σj]\displaystyle\left[\sigma_{i},\sigma_{j}\right] =2iεijkσk\displaystyle=2i\varepsilon_{ijk}\sigma_{k} (29)
{σi,σj}\displaystyle\left\{\sigma_{i},\sigma_{j}\right\} =2δij𝟙\displaystyle=2\delta_{ij}\mathbbm{1} (30)
σiσj\displaystyle\Rightarrow\quad\sigma_{i}\sigma_{j} =δij𝟙+iεijkσk\displaystyle=\delta_{ij}\mathbbm{1}+i\varepsilon_{ijk}\sigma_{k} (31)
as well as the following well-known trace identities
Tr(σi)\displaystyle\operatorname{Tr}(\sigma_{i}) =0\displaystyle=0 (32)
Tr(σiσj)\displaystyle\operatorname{Tr}(\sigma_{i}\sigma_{j}) =2δij\displaystyle=2\delta_{ij} (33)
Tr(σiσjσk)\displaystyle\operatorname{Tr}(\sigma_{i}\sigma_{j}\sigma_{k}) =2iεijk\displaystyle=2i\varepsilon_{ijk} (34)
Tr(σiσjσkσm)\displaystyle\operatorname{Tr}(\sigma_{i}\sigma_{j}\sigma_{k}\sigma_{m}) =2(δijδkmδikδjm+δimδjk)\displaystyle=2(\delta_{ij}\delta_{km}-\delta_{ik}\delta_{jm}+\delta_{im}\delta_{jk}) (35)
and the identity
σ2σiσ2\displaystyle\sigma_{2}\sigma_{i}\sigma_{2} =σi𝖳=σi\displaystyle=-\sigma_{i}^{\mathsf{T}}=-\sigma_{i}^{*} (36)

will be used here.

Proof of identity 1.
DD=DaDa=εabDbDa=εbaDaDb=DbDb=DDDD=D^{a}D_{a}=\varepsilon^{ab}D_{b}D_{a}=-\varepsilon^{ba}D_{a}D_{b}=-D^{b}D_{b}=-DD

Proof of identity 2.
|D1|2|D2|2\displaystyle|D_{1}|^{2}|D_{2}|^{2} =(|D11|2+|D12|2)(|D21|2+|D22|2)\displaystyle=(|D_{11}|^{2}+|D_{12}|^{2})(|D_{21}|^{2}+|D_{22}|^{2})
=|D11|2|D21|2+|D12|2|D21|2+|D11|2|D22|2+|D12|2|D22|2\displaystyle=|D_{11}|^{2}|D_{21}|^{2}+|D_{12}|^{2}|D_{21}|^{2}+|D_{11}|^{2}|D_{22}|^{2}+|D_{12}|^{2}|D_{22}|^{2}
|D1𝖳iσ2D2|2\displaystyle|D_{1}^{\mathsf{T}}i\sigma_{2}D_{2}|^{2} =|D12D21D11D22|2\displaystyle=|D_{12}D_{21}-D_{11}D_{22}|^{2}
=|D12D21|2+|D11D22|2D12D21D11D22D11D22D12D21\displaystyle=|D_{12}D_{21}|^{2}+|D_{11}D_{22}|^{2}-D_{12}^{\dagger}D_{21}^{\dagger}D_{11}D_{22}-D_{11}^{\dagger}D_{22}^{\dagger}D_{12}D_{21}
|D1D2|2\displaystyle|D_{1}^{\dagger}D_{2}|^{2} =|D11D21+D12D22|2\displaystyle=|D_{11}^{\dagger}D_{21}+D_{12}^{\dagger}D_{22}|^{2}
=|D11|2|D21|2+|D12|2|D21|2+D12D21D11D22+D11D22D12D21\displaystyle=|D_{11}|^{2}|D_{21}|^{2}+|D_{12}|^{2}|D_{21}|^{2}+D_{12}^{\dagger}D_{21}^{\dagger}D_{11}D_{22}+D_{11}^{\dagger}D_{22}^{\dagger}D_{12}D_{21}

Proof of identity 3.
D1ΔD2\displaystyle D_{1}\Delta D_{2} =(D1)a\tensorΔ(D2)bab\displaystyle=(D_{1})^{a}\tensor{\Delta}{{}_{a}^{b}}(D_{2})_{b}
=εac(D1)cΔi\tensor(σi)εbdab(D2)d\displaystyle=\varepsilon^{ac}(D_{1})_{c}\Delta^{i}\tensor{(\sigma_{i})}{{}_{a}^{b}}\varepsilon_{bd}(D_{2})^{d}
=(D1)cΔi(D2)d(εca\tensor(σi)εbdab)\displaystyle=(D_{1})_{c}\Delta^{i}(D_{2})^{d}(-\varepsilon^{ca}\tensor{(\sigma_{i})}{{}_{a}^{b}}\varepsilon_{bd})
=(D1)cΔi(D2)d\tensor(εσiε1)dc\displaystyle=(D_{1})_{c}\Delta^{i}(D_{2})^{d}\tensor{(-\varepsilon\sigma_{i}\varepsilon^{-1})}{{}^{c}_{d}}
=(D1)cΔi(D2)d\tensor(σ2σiσ2)dc\displaystyle=(D_{1})_{c}\Delta^{i}(D_{2})^{d}\tensor{(-\sigma_{2}\sigma_{i}\sigma_{2})}{{}^{c}_{d}}
=(36)(D1)cΔi(D2)d\tensor(σi𝖳)dc\displaystyle\stackrel{{\scriptstyle\mathclap{\text{\eqref{eq:identity_sigma2i2}}}}}{{=}}\;(D_{1})_{c}\Delta^{i}(D_{2})^{d}\tensor{(\sigma_{i}^{\mathsf{T}})}{{}^{c}_{d}}
The sign resulting from commuting (D2)d(D_{2})^{d}, Δi\Delta^{i} and (D1)c(D_{1})_{c} depends on the number of fermions:
=±(D2)dΔi(D1)c\tensor(σi)dc\displaystyle=\pm(D_{2})^{d}\Delta^{i}(D_{1})_{c}\tensor{(\sigma_{i})}{{}_{d}^{c}}
=±(D2)d\tensorΔ(D1)cdc\displaystyle=\pm(D_{2})^{d}\tensor{\Delta}{{}_{d}^{c}}(D_{1})_{c}
=±D2ΔD1\displaystyle=\pm D_{2}\Delta D_{1}

Proof of identity 4.
Tr(Δσ(i)Δσ(j)Δσ(k))\displaystyle\operatorname{Tr}(\Delta_{\sigma(i)}\Delta_{\sigma(j)}\Delta_{\sigma(k)}) =Δσ(i)lΔσ(j)mΔσ(k)nTr(σlσmσn)\displaystyle=\Delta_{\sigma(i)}^{l}\Delta_{\sigma(j)}^{m}\Delta_{\sigma(k)}^{n}\operatorname{Tr}(\sigma_{l}\sigma_{m}\sigma_{n})
=(34) 2iΔσ(i)lΔσ(j)mΔσ(k)nεlmn\displaystyle\stackrel{{\scriptstyle\mathclap{\text{\eqref{eq:pauli_trace3}}}}}{{=}}\;2i\Delta_{\sigma(i)}^{l}\Delta_{\sigma(j)}^{m}\Delta_{\sigma(k)}^{n}\varepsilon_{lmn}
The indices l,m,nl,m,n can be renamed in such a way that this takes the form ΔilΔjmΔknεσ(lmn)\Delta_{i}^{l^{\prime}}\Delta_{j}^{m^{\prime}}\Delta_{k}^{n^{\prime}}\varepsilon_{\sigma(l^{\prime}m^{\prime}n^{\prime})}, where the order of indices on ε\varepsilon is determined by σ\sigma. If some of the triplets are fermionic, this can introduce an additional negative sign depending on which factors have to be commuted:
=±2iΔilΔjmΔknεσ(lmn)\displaystyle=\pm 2i\Delta_{i}^{l^{\prime}}\Delta_{j}^{m^{\prime}}\Delta_{k}^{n^{\prime}}\varepsilon_{\sigma(l^{\prime}m^{\prime}n^{\prime})}
=±2iΔilΔjmΔknεσεlmn\displaystyle=\pm 2i\Delta_{i}^{l^{\prime}}\Delta_{j}^{m^{\prime}}\Delta_{k}^{n^{\prime}}\varepsilon_{\sigma}\varepsilon_{l^{\prime}m^{\prime}n^{\prime}}
=±εσTr(ΔiΔjΔk)\displaystyle=\pm\varepsilon_{\sigma}\operatorname{Tr}(\Delta_{i}\Delta_{j}\Delta_{k})

Proof of identity 5.
Tr(ΔaΔb)Tr(ΔcΔd)\displaystyle\operatorname{Tr}\left(\Delta_{a}\Delta_{b}\right)\operatorname{Tr}\left(\Delta_{c}\Delta_{d}\right) =Tr(ΔaiΔbjσiσj)Tr(ΔckΔdmσkσm)\displaystyle=\operatorname{Tr}\left(\Delta_{a}^{i}\Delta_{b}^{j}\sigma_{i}\sigma_{j}\right)\operatorname{Tr}\left(\Delta_{c}^{k}\Delta_{d}^{m}\sigma_{k}\sigma_{m}\right)
=ΔaiΔbjΔckΔdmTr(σiσj)Tr(σkσm)\displaystyle=\Delta_{a}^{i}\Delta_{b}^{j}\Delta_{c}^{k}\Delta_{d}^{m}\operatorname{Tr}\left(\sigma_{i}\sigma_{j}\right)\operatorname{Tr}\left(\sigma_{k}\sigma_{m}\right)
=(33) 4ΔaiΔbjΔckΔdmδijδkm\displaystyle\stackrel{{\scriptstyle\mathclap{\text{\eqref{eq:pauli_trace2}}}}}{{=}}\;4\Delta_{a}^{i}\Delta_{b}^{j}\Delta_{c}^{k}\Delta_{d}^{m}\delta_{ij}\delta_{km}
=4(ΔaiΔbi)(ΔcjΔdj)\displaystyle=4\left(\Delta_{a}^{i}{\Delta_{b}}_{i}\right)\left(\Delta_{c}^{j}{\Delta_{d}}_{j}\right)
Tr(Δ1Δ2Δ3Δ4)\displaystyle\operatorname{Tr}\left(\Delta_{1}\Delta_{2}\Delta_{3}\Delta_{4}\right) =Tr(Δ1iΔ2jΔ3kΔ4mσiσjσkσm)\displaystyle=\operatorname{Tr}\left(\Delta_{1}^{i}\Delta_{2}^{j}\Delta_{3}^{k}\Delta_{4}^{m}\sigma_{i}\sigma_{j}\sigma_{k}\sigma_{m}\right)
=Δ1iΔ2jΔ3kΔ4mTr(σiσjσkσm)\displaystyle=\Delta_{1}^{i}\Delta_{2}^{j}\Delta_{3}^{k}\Delta_{4}^{m}\operatorname{Tr}\left(\sigma_{i}\sigma_{j}\sigma_{k}\sigma_{m}\right)
=(35) 2Δ1iΔ2jΔ3kΔ4m(δijδkmδikδjm+δimδjk)\displaystyle\stackrel{{\scriptstyle\mathclap{\text{\eqref{eq:pauli_trace4}}}}}{{=}}\;2\Delta_{1}^{i}\Delta_{2}^{j}\Delta_{3}^{k}\Delta_{4}^{m}(\delta_{ij}\delta_{km}-\delta_{ik}\delta_{jm}+\delta_{im}\delta_{jk})
=2((Δ1iΔ2i)(Δ3jΔ4j)\displaystyle=2\Big{(}\left(\Delta_{1}^{i}{\Delta_{2}}_{i}\right)\left(\Delta_{3}^{j}{\Delta_{4}}_{j}\right)
(Δ1iΔ3i)(Δ2jΔ4j)+(Δ1iΔ4i)(Δ2jΔ3j))\displaystyle\qquad-\left(\Delta_{1}^{i}{\Delta_{3}}_{i}\right)\left(\Delta_{2}^{j}{\Delta_{4}}_{j}\right)+\left(\Delta_{1}^{i}{\Delta_{4}}_{i}\right)\left(\Delta_{2}^{j}{\Delta_{3}}_{j}\right)\Big{)}

Proof of identity 6.
D1{Δ1,Δ2}D2\displaystyle D_{1}^{\dagger}\left\{\Delta_{1},\Delta_{2}\right\}D_{2} =D1Δ1iΔ2j{σi,σj}D2\displaystyle=D_{1}^{\dagger}\Delta_{1}^{i}\Delta_{2}^{j}\left\{\sigma_{i},\sigma_{j}\right\}D_{2}
=(30) 2D1Δ1iΔ2jδij𝟙D2\displaystyle\stackrel{{\scriptstyle\mathclap{\text{\eqref{eq:pauli_anticommutator}}}}}{{=}}\;2D_{1}^{\dagger}\Delta_{1}^{i}\Delta_{2}^{j}\delta_{ij}\mathbbm{1}D_{2}
=(33)D1Δ1iΔ2jTr(σiσj)D2\displaystyle\stackrel{{\scriptstyle\mathclap{\text{\eqref{eq:pauli_trace2}}}}}{{=}}\;D_{1}^{\dagger}\Delta_{1}^{i}\Delta_{2}^{j}\operatorname{Tr}(\sigma_{i}\sigma_{j})D_{2}
=D1Tr(Δ1Δ2)D2\displaystyle=D_{1}^{\dagger}\operatorname{Tr}(\Delta_{1}\Delta_{2})D_{2}
=D1D2Tr(Δ1Δ2)\displaystyle=D_{1}^{\dagger}D_{2}\operatorname{Tr}(\Delta_{1}\Delta_{2})

Proof of identity 7.
D1Δ1Δ2D2\displaystyle D_{1}^{\dagger}\Delta_{1}\Delta_{2}D_{2} =(D1)a\tensor(Δ1)\tensorab(Δ2)(D2)cbc\displaystyle=(D_{1}^{\dagger})^{a}\tensor{(\Delta_{1})}{{}_{a}^{b}}\tensor{(\Delta_{2})}{{}_{b}^{c}}(D_{2})_{c}
=εam(D1)mΔ1i\tensor(σi)Δ2jab\tensor(σj)εcnbc(D2)n\displaystyle=\varepsilon^{am}(D_{1}^{\dagger})_{m}\Delta_{1}^{i}\tensor{(\sigma_{i})}{{}_{a}^{b}}\Delta_{2}^{j}\tensor{(\sigma_{j})}{{}_{b}^{c}}\varepsilon_{cn}(D_{2})^{n}
=(D2)nΔ2jΔ1i(D1)mεam\tensor(σi)\tensorab(σj)εcnbc\displaystyle=(D_{2})^{n}\Delta_{2}^{j}\Delta_{1}^{i}(D_{1}^{\dagger})_{m}\varepsilon^{am}\tensor{(\sigma_{i})}{{}_{a}^{b}}\tensor{(\sigma_{j})}{{}_{b}^{c}}\varepsilon_{cn}
=(D2)nΔ2jΔ1i(D1)m\tensor(σ2σiσjσ2)nm\displaystyle=-(D_{2})^{n}\Delta_{2}^{j}\Delta_{1}^{i}(D_{1}^{\dagger})_{m}\tensor{(\sigma_{2}\sigma_{i}\sigma_{j}\sigma_{2})}{{}^{m}_{n}}

Considering the factor σ2σiσjσ2\sigma_{2}\sigma_{i}\sigma_{j}\sigma_{2}:

σ2σiσjσ2\displaystyle\sigma_{2}\sigma_{i}\sigma_{j}\sigma_{2} =(31)σ2(δij𝟙+εijkσk)σ2\displaystyle\stackrel{{\scriptstyle\mathclap{\text{\eqref{eq:pauli_product}}}}}{{=}}\;\sigma_{2}(\delta_{ij}\mathbbm{1}+\varepsilon_{ijk}\sigma_{k})\sigma_{2}
=δijσ22+iεijkσ2σkσ2\displaystyle=\delta_{ij}\sigma_{2}^{2}+i\varepsilon_{ijk}\sigma_{2}\sigma_{k}\sigma_{2}
=(36)δij𝟙iεijkσk\displaystyle\stackrel{{\scriptstyle\mathclap{\text{\eqref{eq:identity_sigma2i2}}}}}{{=}}\;\delta_{ij}\mathbbm{1}-i\varepsilon_{ijk}\sigma_{k}^{*}
=(σiσj)\displaystyle=(\sigma_{i}\sigma_{j})^{*}
=(σjσi)𝖳\displaystyle=(\sigma_{j}\sigma_{i})^{\mathsf{T}}

Inserting this into the expression for DΔ1Δ2DD^{\dagger}\Delta_{1}\Delta_{2}D:

D1Δ1Δ2D2\displaystyle D_{1}^{\dagger}\Delta_{1}\Delta_{2}D_{2} =(D2)nΔ2jΔ1i(D1)m\tensor((σjσi)𝖳)nm\displaystyle=-(D_{2})^{n}\Delta_{2}^{j}\Delta_{1}^{i}(D_{1}^{\dagger})_{m}\tensor{\left((\sigma_{j}\sigma_{i})^{\mathsf{T}}\right)}{{}^{m}_{n}}
=(D2)nΔ2jΔ1i(D1)m\tensor(σjσi)nm\displaystyle=-(D_{2})^{n}\Delta_{2}^{j}\Delta_{1}^{i}(D_{1}^{\dagger})_{m}\tensor{(\sigma_{j}\sigma_{i})}{{}_{n}^{m}}
=(D2)nΔ2j\tensor(σj)Δ1ina\tensor(σi)(D1)mam\displaystyle=-(D_{2})^{n}\Delta_{2}^{j}\tensor{(\sigma_{j})}{{}_{n}^{a}}\Delta_{1}^{i}\tensor{(\sigma_{i})}{{}_{a}^{m}}(D_{1}^{\dagger})_{m}
=(D2)n\tensor(Δ2)\tensorna(Δ1)(D1)mam\displaystyle=-(D_{2})^{n}\tensor{(\Delta_{2})}{{}_{n}^{a}}\tensor{(\Delta_{1})}{{}_{a}^{m}}(D_{1}^{\dagger})_{m}
=D2Δ2Δ1D1\displaystyle=-D_{2}\Delta_{2}\Delta_{1}D_{1}^{\dagger}

Appendix D Example SARAH output

T1_1_A_alpha_0.m
1(* This file has been automatically generated by minimal-lagrangians *)
2Off[General::spell];
3
4Model`Name = "T1_1_A_alpha_0";
5Model`NameLaTeX = "T1-1-A (\\alpha = 0)";
6Model`Authors = "minimal-lagrangians (automatically generated)";
7Model`Date = "2020-10-06";
8
9(*-------------------------------------------*)
10(* particle content *)
11(*-------------------------------------------*)
12
13(* global symmetries *)
14(* discrete \mathbb{Z}2 symmetry *)
15Global[[1]] = {Z[2], Z2};
16
17
18(* gauge groups *)
19Gauge[[1]] = {B, U[1], hypercharge, g1, False, 1};
20Gauge[[2]] = {WB, SU[2], left, g2, True, 1};
21Gauge[[3]] = {G, SU[3], color, g3, False, 1};
22
23(* matter fields *)
24(* {name, gens, components, Y/2, SU(2), SU(3), global} *)
25(* Standard Model *)
26FermionFields[[1]] = {q, 3, {uL, dL}, 1/6, 2, 3, 1};
27FermionFields[[2]] = {l, 3, {vL, eL}, -1/2, 2, 1, 1};
28FermionFields[[3]] = {u, 3, conj[uR], -2/3, 1, -3, 1};
29FermionFields[[4]] = {d, 3, conj[dR], 1/3, 1, -3, 1};
30FermionFields[[5]] = {e, 3, conj[eR], 1, 1, 1, 1};
31
32ScalarFields[[1]] = {H, 1, {Hp, H0}, 1/2, 2, 1, 1};
33
34(* new fields *)
35FermionFields[[6]] = {psi, 1, psi0, 0, 1, 1, -1};
36ScalarFields[[2]] = {varphi, 1, varphi0, 0, 1, 1, -1};
37ScalarFields[[3]] = {phiq, 1, {phiq0, phiqm}, -1/2, 2, 1, -1};
38RealScalars = {varphi};
39
40
41(*----------------------------------------------*)
42(* DEFINITION *)
43(*----------------------------------------------*)
44NameOfStates = {GaugeES, EWSB};
45
46(* ----- before EWSB ----- *)
47DEFINITION[GaugeES][LagrangianInput] = {
48 (* Standard Model Lagrangian *)
49 {LagNoHC, {AddHC -> False}},
50 {LagHC, {AddHC -> True }},
51 (* Lagrangian involving the new fields *)
52 {LagBSMNoHC, {AddHC -> False}},
53 {LagBSMHC, {AddHC -> True }}
54};
55
56(* Standard Model Lagrangian *)
57LagNoHC = mu2 conj[H].H - 1/2 \textlambda conj[H].H.conj[H].H;
58LagHC = -Yu u.q.H - Yd conj[H].d.q - Ye conj[H].e.l;
59
60(* Lagrangian involving the new fields *)
61LagBSMNoHC = - Mphiq2 conj[phiq].phiq - 1/2 Mvarphi2 varphi.varphi \
62 - lambda2 conj[H].H.conj[phiq].phiq - lambda3 conj[H].phiq.conj[phiq].H - lambda4 conj[phiq].phiq.conj[phiq].phiq - lambda5 conj[H].H.varphi.varphi - lambda6 conj[phiq].phiq.varphi.varphi - lambda8 varphi.varphi.varphi.varphi;
63LagBSMHC = - lambda1 H.phiq.varphi \
64 - lambda7 H.phiq.H.phiq \
65 - 1/2 Mpsi psi.psi \
66 - y1 conj[phiq].l.psi;
67
68(* ----- after EWSB ----- *)
69(* gauge sector mixing *)
70DEFINITION[EWSB][GaugeSector] = {
71 {{VB, VWB[3]}, {VP, VZ}, ZZ},
72 {{VWB[1], VWB[2]}, {VWp, conj[VWp]}, ZW}
73};
74
75(* VEVs *)
76DEFINITION[EWSB][VEVs] = {
77 (* Standard Model Higgs VEV *)
78 {H0,
79 {v, 1/Sqrt[2]},
80 {Ah, \[ImaginaryI]/Sqrt[2]},
81 {hh, 1/Sqrt[2]}
82 },
83 (* BSM VEVs and splitting neutral scalars into real and imaginary parts *)
84 {phiq0,
85 {0, 1/Sqrt[2]},
86 {phiq0Im, \[ImaginaryI]/Sqrt[2]},
87 {phiq0Re, 1/Sqrt[2]}
88 }
89};
90
91(* mixing *)
92DEFINITION[EWSB][MatterSector] = {
93 (* Standard Model mixing *)
94 {{{uL}, {conj[uR]}}, {{UL, Vu}, {UR, Uu}}},
95 {{{dL}, {conj[dR]}}, {{DL, Vd}, {DR, Ud}}},
96 {{{eL}, {conj[eR]}}, {{EL, Ve}, {ER, Ue}}},
97 {{vL}, {VL, Uneu}},
98 (* mixing of new fields *)
99 {{varphi0, phiq0Re}, {smx0, ZZs1}}
100};
101
102(* Dirac spinors *)
103DEFINITION[EWSB][DiracSpinors] = {
104 (* Standard Model Dirac spinors *)
105 Fu -> {UL, conj[UR]},
106 Fd -> {DL, conj[DR]},
107 Fe -> {EL, conj[ER]},
108 Fv -> {VL, conj[VL]},
109 (* new Dirac spinors *)
110 Fpsi0 -> {psi0, conj[psi0]}
111};
particles.m
1ParticleDefinitions[GaugeES] = {
2 (* new fields *)
3 {varphi0, {Description -> "BSM field \textphi0",
4 OutputName -> "varphi0",
5 ElectricCharge -> 0,
6 LaTeX -> "{\\varphi^0}"
7 }
8 },
9 {phiq0, {Description -> "BSM field \straightphi'0",
10 OutputName -> "phiq0",
11 ElectricCharge -> 0,
12 LaTeX -> "{\\phi'^0}"
13 }
14 },
15 {phiqm, {Description -> "BSM field \straightphi'-",
16 OutputName -> "phiqm",
17 ElectricCharge -> -1,
18 LaTeX -> "{\\phi'^-}"
19 }
20 },
21 {psi0, {Description -> "BSM field \textpsi0",
22 OutputName -> "psi0",
23 ElectricCharge -> 0,
24 LaTeX -> "{\\psi^0}"
25 }
26 },
27 ...
28};
29
30ParticleDefinitions[EWSB] = {
31 (* new fields *)
32 {phiqm, {Description -> "BSM field \straightphi'- (EWSB)",
33 OutputName -> "phiqm",
34 PDG -> {900},
35 FeynArtsNr -> 900,
36 ElectricCharge -> -1,
37 LaTeX -> "{\\phi'^-}"
38 }
39 },
40 {phiq0Im, {Description -> "BSM field \straightphi'0Im (EWSB)",
41 OutputName -> "phiq0Im",
42 PDG -> {901},
43 FeynArtsNr -> 901,
44 ElectricCharge -> 0,
45 LaTeX -> "{\\phi'^0}Im"
46 }
47 },
48 {smx0, {Description -> "BSM field smx0 (EWSB)",
49 OutputName -> "smx0",
50 PDG -> {902, 903},
51 FeynArtsNr -> 902,
52 ElectricCharge -> 0,
53 LaTeX -> "{smx^0}"
54 }
55 },
56 {Fpsi0, {Description -> "BSM field F\textpsi0 (EWSB)",
57 OutputName -> "Fpsi0",
58 PDG -> {904},
59 FeynArtsNr -> 904,
60 ElectricCharge -> 0,
61 LaTeX -> "{F\\psi^0}"
62 }
63 },
64
65 (* Neutrinos *)
66 {Fv, {Description -> "Neutrinos",
67 Mass -> LesHouches
68 }
69 },
70 ...
71};
parameters.m
1ParameterDefinitions = {
2 (* new parameters *)
3 (* BSM parameters in the Lagrangian *)
4 {Mphiq2, {Description -> "BSM parameter M_\straightphi'2",
5 OutputName -> "Mphiq2",
6 Real -> True,
7 LesHouches -> {"T11AALPHA0", 10},
8 LaTeX -> "M_{\\phi'}^{2}"
9 }
10 },
11 {Mvarphi2, {Description -> "BSM parameter M_\textphi2",
12 OutputName -> "Mvarphi2",
13 Real -> True,
14 LesHouches -> {"T11AALPHA0", 11},
15 LaTeX -> "M_{\\varphi}^{2}"
16 }
17 },
18 {lambda2, {Description -> "BSM parameter \textlambda2",
19 OutputName -> "lam2",
20 Real -> True,
21 LesHouches -> {"T11AALPHA0", 12},
22 LaTeX -> "\\lambda_{2}"
23 }
24 },
25 {lambda3, {Description -> "BSM parameter \textlambda3",
26 OutputName -> "lam3",
27 Real -> True,
28 LesHouches -> {"T11AALPHA0", 13},
29 LaTeX -> "\\lambda_{3}"
30 }
31 },
32 {lambda4, {Description -> "BSM parameter \textlambda4",
33 OutputName -> "lam4",
34 Real -> True,
35 LesHouches -> {"T11AALPHA0", 14},
36 LaTeX -> "\\lambda_{4}"
37 }
38 },
39 {lambda5, {Description -> "BSM parameter \textlambda5",
40 OutputName -> "lam5",
41 Real -> True,
42 LesHouches -> {"T11AALPHA0", 15},
43 LaTeX -> "\\lambda_{5}"
44 }
45 },
46 {lambda6, {Description -> "BSM parameter \textlambda6",
47 OutputName -> "lam6",
48 Real -> True,
49 LesHouches -> {"T11AALPHA0", 16},
50 LaTeX -> "\\lambda_{6}"
51 }
52 },
53 {lambda8, {Description -> "BSM parameter \textlambda8",
54 OutputName -> "lam8",
55 Real -> True,
56 LesHouches -> {"T11AALPHA0", 17},
57 LaTeX -> "\\lambda_{8}"
58 }
59 },
60 {lambda1, {Description -> "BSM parameter \textlambda1",
61 OutputName -> "lam1",
62 LesHouches -> {"T11AALPHA0", 18},
63 LaTeX -> "\\lambda_{1}"
64 }
65 },
66 {lambda7, {Description -> "BSM parameter \textlambda7",
67 OutputName -> "lam7",
68 LesHouches -> {"T11AALPHA0", 19},
69 LaTeX -> "\\lambda_{7}"
70 }
71 },
72 {Mpsi, {Description -> "BSM parameter M_\textpsi",
73 OutputName -> "Mpsi",
74 LesHouches -> {"T11AALPHA0", 20},
75 LaTeX -> "M_{\\psi}"
76 }
77 },
78 {y1, {Description -> "BSM parameter y1",
79 OutputName -> "y1",
80 LesHouches -> {"T11AALPHA0", 21},
81 LaTeX -> "y_{1}"
82 }
83 },
84
85
86 (* BSM mixing matrices *)
87 {Uneu, {Description -> "BSM mixing matrix Uneu",
88 OutputName -> "Uneu",
89 LesHouches -> "UNEU",
90 LaTeX -> "Uneu"
91 }
92 },
93 {ZZs1, {Description -> "BSM mixing matrix ZZs1",
94 OutputName -> "ZZs1",
95 LesHouches -> "ZZS1",
96 LaTeX -> "ZZs1"
97 }
98 },
99 ...
100}
SPheno.m
1(* This file has been automatically generated by minimal-lagrangians *)
2
3OnlyLowEnergySPheno = True;
4
5MINPAR = {
6 {1, lambdaInput},
7 {10, Mphiq2Input},
8 {11, Mvarphi2Input},
9 {12, lambda2Input},
10 {13, lambda3Input},
11 {14, lambda4Input},
12 {15, lambda5Input},
13 {16, lambda6Input},
14 {17, lambda8Input},
15 {18, lambda1Input},
16 {19, lambda7Input},
17 {20, MpsiInput},
18 {21, y1Input}
19};
20
21BoundaryLowScaleInput = {
22 (* Standard Model *)
23 {\textlambda, lambdaInput},
24 (* BSM *)
25 {Mphiq2, Mphiq2Input},
26 {Mvarphi2, Mvarphi2Input},
27 {lambda2, lambda2Input},
28 {lambda3, lambda3Input},
29 {lambda4, lambda4Input},
30 {lambda5, lambda5Input},
31 {lambda6, lambda6Input},
32 {lambda8, lambda8Input},
33 {lambda1, lambda1Input},
34 {lambda7, lambda7Input},
35 {Mpsi, MpsiInput},
36 {y1, y1Input}
37};
38
39(* NOTE: DEFINITION[MatchingConditions] and ParametersToSolveTadpoles should be
40 adjusted manually if there are BSM fields which acquire a VEV *)
41DEFINITION[MatchingConditions] = {
42 {Yu, YuSM},
43 {Yd, YdSM},
44 {Ye, YeSM},
45 {g1, g1SM},
46 {g2, g2SM},
47 {g3, g3SM},
48 {v, vSM}
49};
50
51ParametersToSolveTadpoles = {mu2};
52
53ListDecayParticles = {Fu, Fd, Fe, Hp, hh, Fpsi0, phiq0Im, phiqm, smx0};
54ListDecayParticles3B = {{Fu, "Fu.f90"}, {Fd, "Fd.f90"}, {Fe, "Fe.f90"}};

References