MicrOmegas
Inhaltsverzeichnis
About MicrOmegas
MicrOmegas is a tool which not only calculates the relic density for one or more dark matter candidates, but it also gives cross sections for direct and indirect DM searches. To enable these calculations, MicrOmegas needs in general three inputs
 The model files to implement a new model
 A steering file to coordinate the different calculations
 Numerical values for all parameters
Implementing new models in MicrOmegas
The calculation of the cross section and all necessary decay widths are done by CalcHep which comes together with MicrOmegas. Thus, a new model in MicrOmegasis implemented by providing the corresponding CalcHepmodel files. That means, one can use the SARAH output for CalcHep to work with MicrOmegas:
Mass spectrum
By using SLHAinput > True
the model files are written in a way that CalcHep respectively MicrOmegas expect all input parameters to be provided in a spectrum file which is called SPheno.spc.BLSSM
. CalcHep and MicrOmegas are going to read this file and extract all important information using the SLHA+
functionality from it. With the other options MicrOmegas/CalcHep expect either all masses and rotation matrices given in the file vars.mdl
(SLHAinput > False, CalculateMasses > False
), or it expects all fundamental parameters (softterms, couplings and VEVs) as input and diagonalizes the mass matrices internally (SLHAinput > False, CalculateMasses > True
).
Dark Matter candidates
One can work either with one or two dark matter candidates in MicrOmegas. The first DM candidate is the lightest particle of all states having a particular charge under a discrete symmetry. To define the symmetry and the charge, the option DMcandidate1>Value
is used. There are two possibilities for Value
:
 when set to
Default
, the DM candidate is the lightest odd particle odd under the first[math]Z_2[/math] defined as global symmetry#  for any other choice, one can give first the name of the global symmetry and then the quantum number with respect to that symmetry
GlobalSymmetry == Charge
.
Examples
 One dark matter candidate
MakeCHep[DMcandidate1 > RParity == 1];
is equivalent to
MakeCHep[]
If RParity
is the first or only discrete symmetry.
 Two dark matter candidates
MakeCHep[DMcandidate1 > RParity == 1, DMcandidate2 > ExtraZ2 == 1];
would work for a model with two[math]Z_2[/math] symmetries called RParity
and ExtraZ2
.
Output and compilation
When SARAHis finished with MakeCHep
, the CalcHep model files are located in the directory
$PATH/SARAH/Output/BLSSM/EWSB/CHep/
To implement the model in MicrOmegas, a new project has to be created and the files have to be copied in the working directory of this project:
$ cd $PATH/MICROMEGAS $ ./newProject BLSSM $ cd BLSSM $ cp $PATH/SARAH/Output/BLSSM/EWSB/CHep/* work/models
Setting up the DM calculations
To use the model with MicrOmegas a steering or ’main’ file has to be provided either in Fortran
or C
language, and must be compiled. Examples for these files are delivered with MicrOmegasand called main.F
and main.c
. SARAHwrites also two examples which can be used for the following calculations:

CalcOmega.cpp
: this file calculates only the DM relic density[math]\Omega h^2[/math] and prints the result at the screen and into a file calledomg.out

CalcOmega_with_DDetection.cpp
: this file calculates the DM relic density[math]\Omega h^2[/math] and in addition some direct detection rates:
 Relic density[math]\Omega h^2[/math]
 Spin independent cross section with proton in pb
 Spin dependent cross section with proton in pb
 Spin independent cross section with neutron in pb
 Spin dependent cross section with neutron in pb
 Recoil at[math]{}^{73}[/math]Ge: number of events in 10  50 keV region
 Recoil at[math]{}^{131}[/math]Xe: number of events in 10  50 keV region
 Recoil at[math]{}^{23}[/math]Na: number of events in 10  50 keV region
 Recoil at[math]{}^{127}[/math]I: number of events in 10  50 keV region
There are even more calculations MicrOmegas can do like indirect detection rates. Those can be added as well to the main file provided by SARAH or the user can write an own file. For this purpose, it might be helpful to take a look at main.F
or main.c
which show the different options to turn on specific calculations and outputs.
The steering files written by SARAH were copied together with all model files into the working directory of the current project. One can move it to the main project directory and compile it, e.g.
$ mv work/models/CalcOmega_with_DDetection.cpp . $ make main=CalcOmega_with_DDetection.cpp
A new binary CalcOmega_with_DDetection
is now available. The only missing piece are the input parameters.
Running MicrOmegas with SPheno spectrum files
Providing the numerical parameters is pretty easy because MicrOmegas/CalcHepcan read the SPhenospectrum file. However, the user must make sure that no complex rotation matrices show up in the spectrum file: in the case of Majorana matrices and no CP violation, there are two equivalent outputs:
 all Majorana masses are positive, but some entries of the corresponding rotation matrices are complex
 all mixing matrices are real, but some masses are negative.
CalcHep can just handle the second case with real matrices. Hence, one has to use the flag
[style=file,numbers=none,title=\hspace{12cm}LesHouches.in.BLSSM] Block SPhenoInput # SPheno specific input ... 50 0 # Majorana phases: use only positive masses
to get the spectrum according to that convention. Afterwards, the spectrum file just has to be moved to the same directory as CalcOmega_with_DDetection
. In order to do that one has copy it there and start the calculation:
$ cp $PATH/SPHENO/SPheno.spc.BLSSM . $ ./CalcOmega_with_DDetection
The first run can take some time, even up to several hours depending on the computer power: MicrOmegas has to compile all necessary annihilation channels of the DM candidate for that particular parameter point. All further evaluations of similar points are done in a second or less. However, as soon as new channels are needed, MicrOmegas has to compile new amplitudes and the computation slows down extremely again. This can happen for instance, if the DM candidate changes or if the second lightest state becomes close in mass and coannihilation has to be included.