{"id":18447972,"url":"https://github.com/restrepo/bsm-submodules","last_synced_at":"2025-10-25T21:49:01.768Z","repository":{"id":48153939,"uuid":"106605208","full_name":"restrepo/BSM-Submodules","owner":"restrepo","description":"SARAH toolbox with each tool as a submodule","archived":false,"fork":false,"pushed_at":"2024-04-01T17:53:58.000Z","size":10158,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-23T03:51:13.503Z","etag":null,"topics":["binder","jupyter","jupyter-notebook","madgraph","micromegas","sarah","sarah-toolbox","spheno"],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/restrepo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-10-11T20:21:57.000Z","updated_at":"2022-03-24T13:27:54.000Z","dependencies_parsed_at":"2024-04-01T18:54:17.800Z","dependency_job_id":"d6b6568c-6a68-4b09-af12-3e331fb4a970","html_url":"https://github.com/restrepo/BSM-Submodules","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restrepo%2FBSM-Submodules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restrepo%2FBSM-Submodules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restrepo%2FBSM-Submodules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restrepo%2FBSM-Submodules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/restrepo","download_url":"https://codeload.github.com/restrepo/BSM-Submodules/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247760397,"owners_count":20991485,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binder","jupyter","jupyter-notebook","madgraph","micromegas","sarah","sarah-toolbox","spheno"],"created_at":"2024-11-06T07:14:54.741Z","updated_at":"2025-10-25T21:48:56.736Z","avatar_url":"https://github.com/restrepo.png","language":"Jupyter Notebook","readme":"# Beyond the Standard Model Submodules\nRun SARAH models precompiled by the butler script of SARAH Toolbox.\n\nTUTORIAL: SARAH talk at IPP-UFRN-Natal (Sept. 2019): http://bit.ly/SARAHIIP\n\nWARNING! Clone with `--recursive` option in order to download the Toolbox submodles:\n```\ngit clone --recursive git@github.com:restrepo/BSM-Submodules.git\n```\n\nTo clone an specific model, check the associtated branch in the format: `CATEGORY+MODEL` (see below) and clone with\n```\ngit clone --recursive -b CATEGORY+MODEL git@github.com:restrepo/BSM-Submodules.git\ncd BSM-Submodules\n./install.sh #Fast butler\n```\n\nOr try directly here:\n\n\u003c!-- [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/restrepo/BSM-Submodules/SM?filepath=index.ipynb) --\u003e\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/restrepo/BSM-Submodules/master)\n\n\nDesign\n-----------------------------------------------------------------------------\nThe rules to implement the fermion/scalars multiplets are in the files:\n\n- `SARAH/Models/blocks.fermions.lha`\n- `SARAH/Models/blocks.scalars.lha`\n\nimplemented as LHA blocks.\n\nThe `master` branch only contains the standard SARAH-Toolbox distribution plus\nthe new generic files.\n\nEach new model MODEL is build inside a CATEGORY under the branch:\n\n `CATEGORY+MODEL`\n\nbased in the predefined blocks in the fermion/scalars multiplets files. __Explore the branches__!\n\nImplemened CATEGORY's:\n\n- SM: Explore SARAH feautures\n- SimplifiedDM: Simplified Dark Matter Models\n- radinert:  Models with radiative neutrino masses and dark matter candidates with SM + Z2-odd particles \n- B-L: $B-L$ models\n\nEach implemented model have a notebook in BSM dir:\n\n `BSM/CATEGORY-MODEL.ipynb`\n\nwith examples to run and scan the parameter space.\n\nThe module `hep` (in `BSM/hep.py`) used there, have the objects to _automatically_ run the model in a similar way to the SSP SARAH-toolbox package.\n\nSee [README_CREATES_NEW_MODEL.md](./README_CREATES_NEW_MODEL.md) to help with build new models. __Send the new models as a pull request__.\n\nSee [README_deploy_mybinder.md](./README_deploy_mybinder.md): To deploy a mybinder virtual machine:\n\n\nUpdating submodules\n------------------------------------------------------------------------\nExternal dependences are tried as git submodules. Each submodule, SBM, is update as follow\n```\nrm -rf SBM/*\nwget http://....SBM_vN.N.tar.gz\ntar -zxvf SBM_vN.N.tar.gz -C SBM --strip-components=1\ncd SBM\nfind . -type d -empty -not -path \"./.git/*\" -exec touch {}/.gitkeep \\;\ngit add .\ngit commit -am 'vN.N.N'\ngit push origin master\n```\nIn addtion a tagged release is created in the SBM repo, or locally for some commit_HASH:\n```bash\ngit tag -am \"SBM-N.N.N.tar.gz\" vN.N.N commit_HASH\ngit push origin vN.N.N\n```\nand saving the \"Draft\" in the releases of GitHub.\n\n### Switch to an specific tag\n\nOne specific tagged version, which is no necessarily a release,\ncan be used after [use](https://devconnected.com/how-to-checkout-git-tags/):\n```\ngit tag -l #list tags \ngit checkout tags/v4.12.3 -b v4.12.3_branch\n```\ninside the specific submodule.\n\n\nAfter some change in the official submodule repository at https://github.com/restrepo/sbm, \nto update all the submodules inside this repository (https://github.com/restrepo/BSM-Submodules), which add an specific tag each submodule,  use the following sequence of git commands:\n```\ngit pull --recurse-submodules\ngit submodule update --remote --recursive #Check changes in official sbm repo\ngit commit -am 'Updated Submodules tags'\ngit push origin master\n```\n\nFix submodule tag\n------------------------------------------------------------------------------\nTag is just an alias to an specific commit. We need to recover that commit, fix it creating a new branch,\ndeleting the old tag, and creating a new tag but pointing to a commit inside that new branch\n\nAfter clone a clean copy of the submodule, e.g. https://github.com/restrepo/SARAH,\ncheckout to the [specific tag](https://devconnected.com/how-to-checkout-git-tags/)\n```bash\ngit checkout tags/v4.12.3 -b v4.12.3_branch\n```\nMake all the necessary fixes and push the changes to the new remote `v4.12.3_branch` branch.\n\nNow, the old tag need to be deleted both locally an remotely and recreted with the last commit to that branch\n```\ngit push origin --delete v4.12.3\ngit tag -d v4.12.3\ngit tag -a v4.12.3 2f1e527b\ngit push origin v4.12.3\n```\n\n\n\nInstallation\n------------------------------------------------------------------------------\nEverything could be installed after the git clone. To choose an specific release version,\ne.g vN.N, of some submodule, go there and \n```\ngit checkout -b vN.N\n```\nFinally, be sure to execute `install.sh` to compile the SPHENO, calchep and micromegas submodules\n\n\nDebian 9 and related Linux distributions\n-------------------------------------------------------------\n#### Problems with the `ar` command\nIn Debian 9 there is bug which breaks backward compatibility of compilers. It is fixed by declaring a global variable for the `ar` command. For example, by adding to the `~/.bashrc` file:\n\n```bash\nexport ARFLAGS=rvU\n```\n#### Problems with C++ compiler\nIn the new version of the `g++` compilers such as the one in Debian 9:\n\n`g++ (Debian 6.3.0-18) 6.3.0 20170516`\n\nwe need to enforce the `c++98` standard in order to compile the `CalcOmega.cpp` file of `SARAH` models in `micrOMEGAS` without errors.\n\nIt is done for example by changing the following line in `./micromegas/include/modelMakefile`:\n\n```c\n$(DLSET) $(CXX) $(CXXFLAGS)  -o $(main:.cpp=) $(main)  $(SSS)  $(lDL)  -lm -lpthread\n```\nto\n\n```c\n$(DLSET) $(CXX) $(CXXFLAGS) -std=c++98 -o $(main:.cpp=) $(main)  $(SSS)  $(lDL)  -lm -lpthread\n```\n\nIn addition, `CalcOmega5.cpp` must be modified  for `micrOMEGAS` 5.0 which requires now a new argument in the `darkOmega` function.\n\n```c\n$ diff CalcOmega.cpp CalcOmega5.cpp\n14a15\n\u003e\t\tint* Err;\n25c26\n\u003c\t\t\tOmega = darkOmega(\u0026Xf,fast,Beps);\n---\n\u003e\t\t\tOmega = darkOmega(\u0026Xf,fast,Beps,Err);\n```\n\n\n\nOfficial README stars here\n-------------------------------------------------------------------------------\nThis README file describes the contents and usage of the SUSY toolbox package.\n\n1) Content\n-------------------------------------------------------------------------------\n\nAll file locations are relative to the package root.\n\n- configure\nThis is the compiled configuration script which is invoked by the user (see\nbelow).\n\n- butler.in\nThe input file which is translated into the butler script (see below) by\nconfigure.\n\n- Makefile.in\nTranslated into Makefile by configure.\n\n- m4/*\nFiles necessary for the automatic creation of aclocal.m4 via aclocal (NB: this\nis _not_ necessary for ordinary usage).\n\n- aclocal.m4\nAutoconf helper macros required to create configure from configure.ac via\nautoconf, automatically generated from the contents of m4 by aclocal (NB: _not_\nnecessary for ordinary usage).\n\n- configure.ac\nThe source which is translated into configure by autoconf (NB: _not_ required\nfor ordinary usage).\n\n-tarballs\nThe configure script will store any automatically fetched tarballs in this\ndirectory.\n\n2) Description\n-------------------------------------------------------------------------------\n\nThe package is built around a configure shell script which is implemented using\nautoconf for enhanced portability. Note that the script is shipped ready to use,\nneither installation nor invocation of autoconf is required by the user (unless\nhe/she wants to modify the script itself). The prerequisites to use the toolbox\nare\n\n- Mathematica: mandatory as SARAH is a Mathematica program. Versions \u003e= 5 will\n  work.\n- A FORTRAN compiler is required for Spheno, HiggsBounds, CalcHep, Micromegas\n  and WHIZARD. gfortran is recommended and works fine for all programs (note\n  that WHIZARD requires gfortran 4.5 or better).\n- A C compiler is required for CalcHep and Micromegas (the GNU C compiler works\n  fine).\n- O'Caml and latex is required by WHIZARD and checked for during the WHIZARD\n  configuration.\n- wget or curl are required for automatic downloading of the package tarballs by\n  configure.\n- Make\n\nIn order to use the script, first create a directory in which the toolbox shall\nbe set up. Change to this directory and invoke the configure script, e.g. via\n../configure. The script will now proceed to check the prerequisites and\ndownload any required packages from the Internet. For WHIZARD, the WHIZARD\nconfigure script is invoked automatically.\n\nIf the default configuration is not sufficient, command line options can be used\nto disable a subset of packages (e.g. --disable-micromegas) or to configure the\nnames and options of the compilers and the mathematica kernel (e.g.\nMATH=math_5.2). An exhaustive list of options can be obtained via the --help\noption.\n\nPlease note that the goal of this package is not to create modified forks of the\nvarious programs; therefore, the versions of the programs provided by the\nauthors on the web and their various build systems are used. Unfortunately, this\nimplies that the compiler settings don't automatically propagate to CalcHep and\nMicromegas which have rather convoluted build systems.  Thus, any changes to the\nsetup of those two packages have to be made by hand before running make.\n\nOn finalization, configure creates a Makefile and the butler script in the\ntoolbox directory. Invoking make triggers the compilation and installation of\nthe various packages by calling the respective build systems. Upon completion,\nthe compiled packages can be found in there respective directories, with an\nadditional unversioned symlink pointing to the versioned directory (e.g. SPHENO -\u003e\nSPHENO-3.1.5). The only exception is WHIZARD which is installed directly into a\ndirectory called whizard.\n\nFor simple use cases, the butler script can be used to completely automate the\nimplementation of a new model into the various packages, provided that the model\nis added to SARAH. The script is invoked using \"butler modelname\" and will first\ncreate the necessary model files using SARAH and then proceed to compile and add\nthe model to the various packages. A list of the supported command line options\ncan be obtained via \"--help\" or \"-h\" which includes options to disable\nindividual packages (however, no packages disabled during configure can be\nenabled this way).\n\n3) Troubleshooting\n-------------------------------------------------------------------------------\n\n- Configure complains about missing prerequisites.\n  Make sure that the corresponding programs are installed and working correctly.\n\n- Errors in the build process of individual packages.\n  Make sure that the necessary compilers are installed and working.\n  Unfortunately, there is a limit on the influence which the toolbox script has\n  over the build process of the individual packages, so it might be necessary to\n  build the packages manually (in the directories where configure has untarred\n  them) in order to solve uncommon build problems. After manual compilation, the\n  toolbox make should go through, and butler will work as intended.\n\n- Download and / or checksum failures.\n  Make sure that your Internet connection is working properly and the download\n  sites can be reached in a browser. If a checksum fails, the file might have\n  been damaged during download. In this case, remove the file from the tarballs\n  directory (see above) and retry. If this doesn't help (or if the download\n  location has moved), please contact one of the toolbox authors.\n\n===============================================================================\nAuthors:\n\nWerner Porod         porod@physik.uni-wuerzburg.de\nThorsten Ohl         ohl@physik.uni-wuerzburg.de\nChristian Speckner   Christian.Speckner@pysik.uni-freiburg.de\nFlorian Staub        fnstaub@physik.uni-wuerzburg.de\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frestrepo%2Fbsm-submodules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frestrepo%2Fbsm-submodules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frestrepo%2Fbsm-submodules/lists"}