Skip to content

BSMPT - Beyond the Standard Model Phase Transitions : A C++ package for the computation of the EWPT in BSM models

License

Notifications You must be signed in to change notification settings

JonasMueller1991/BSMPT

 
 

Repository files navigation

Program: BSMPT version 2.0

Released by: Philipp Basler and Margarete Mühlleitner and Jonas Müller

Manual: version 2.0

BSMPT - Beyond the Standard Model Phase Transitions: The C++ program package BSMPT calculates for models with extended Higgs sectors the loop-corrected effective potential at finite temperature including the daisy resummation of the bosonic masses. The program computes the vacuum expectation value (VEV) \f$ v \f$ of the potential as a function of the temperature, and in particular the critical VEV \f$v_c\f$ at the temperature \f$T_c\f$ where the phase transition takes place. In addition, the loop-corrected trilinear Higgs self-couplings are provided. We apply an 'on-shell' renormalization scheme in the sense that the loop-corrected masses and mixing angles are required to be equal to their tree-level input values. This allows for efficient scans in the parameter space of the models. The models implemented so far are the CP-conserving and the CP-violating 2-Higgs-Doublet Models (2HDM) and the Next-to-Minimal 2HDM (N2HDM). The program structure is such that the user can easily implement further models.

The program package can be downloaded at: https://github.com/phbasler/BSMPT

A short documentation is given at: https://phbasler.github.io/BSMPT/

Sample input and output files are provided in the directory 'example'.

Modifications and corrected bugs are reported in the file 'Changelog.md'.

For additional information, comments, complaints or suggestions please e-mail to: [email protected] or create a corresponding Issue.


Citation:

If you use this program for your work, please cite 1803.02846 and 2007.01725

##Installation:

Dependencies

  1. GSL library: The code assume GSL is installed in PATH

  2. Eigen3: If eigen3 is not found automatically, you need to give the path to your eigen3 installation. To install eigen3 you go to your downloaded eigen3 folder and install it through

     mkdir build && cd build  
     cmake -DCMAKE_INSTALL_PREFIX=/path/to/installedEigen  ..  
     make install  
    

After that you can use -DEigen3_Dir=/path/to/installedEigen/share/eigen3/cmake to link Eigen3

  1. libcmaes: Additionally to GSL you should either use libcmaes or NLopt. For libcmaes you have to set

    -DCMAES_ROOT=/path/to/cmaes

    If cmaes is not in this path, then it will be installed there. If you have troubles with the installation, please have a look at libcmaes for the dependencies. If you don't want to install or use it, you can set -DUseLibCMAES=OFF

  2. NLopt: If NLopt is installed through your packet manager cmake will find it automatically. Otherwise, with -DNLopt_DIR=/path/to/installedNLopt/lib/cmake/nlopt you can tell where NLopt is installed. If you do not want to use NLopt, you can set -DUseNLopt=OFF

  3. Boost : It should be found automatically, if not you can use -DBOOST_ROOT=/path/to/boost

build

With the dependencies and options you can build the programm with

    mkdir build && cd build  
    cmake (OPTIONS from Dependencies) ..  
    make  
    make doc

The make doc will use doxygen to create the online help in build/html which can be opened locally.

Note to Mac Users: You have to use the g++ compiler as clang does not support OpenMP. If you get the error "missing libcmaes_config.h" during the compilation, please check if the file is in build/libcmaes-0.9.5. If so, copy it to /path/to/libcmaes/include/libcmaes


##How to add a new model (for further details, also see the manual):

To add a new model you have to modify/create five files

  1. Go to include/BSMPT/models and copy ClassTemplate.h to YourModel.h. Adjust the Class_Template name to your new model. For step 5 I will assume that your class is named Class_YourModel.

  2. Go to src/models and copy ClassTemplate.cpp to YourModel.cpp, and change the Class_Template class name in the file to your model name. Also follow the instructions in here and in the manual to set up your new model.

  3. For your model to compile you have to open src/models/CMakeLists.txt and add ${header_path}/YourModel.h in the set(header enviroment as well as YourModel.cpp in the set(src enviroment)

  4. In include/BSMPT/models/IncludeAllModels.h you need to add a new entry in the ModelIDs enum above the stop entry which is different from the ones already in the enum, e.g. YourModel. Additionally, you have to create a new entry in the const std::unordered_map<std::string,ModelIDs> ModelNames map in the same file and add a new line with {"YourModelName",ModelIDs::YourModel} , the matching will be done automatically. Then you can call your model with ./binary YourModelName ... .

  5. In src/models/IncludeAllModels.cpp you have to add #include <BSMPT/models/YourModel.h> to the include list. Also to actually call your model you have to extend the FChoose function. For this you add a new case to the switch statement, which reads

     case ModelIDs::YourModel: return std::make_unique<Class_YourModel>(); break;
    

You can use the Test executable to detect possible errors in your implementation. If the Test executable does not show you an error, but something is still wrong, contact us at [email protected]

Also contact us if you have a custom model for BSMPT v1.x and you have trouble converting it to the new notation.

About

BSMPT - Beyond the Standard Model Phase Transitions : A C++ package for the computation of the EWPT in BSM models

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 100.0%