gammaloop


Namegammaloop JSON
Version 0.2.0 PyPI version JSON
download
home_pageNone
SummaryGammaloop computes differential cross-sections using Local Unitarity
upload_time2024-10-08 21:15:58
maintainerNone
docs_urlNone
authorValentin Hirschi <valentin.hirschi@gmail.com>
requires_pythonNone
licenseNone
keywords physics collider cross-section perturbative loop
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # gammaLoop
![tests status](https://github.com/alphal00p/gammaloop/actions/workflows/gamma_loop_tests.yml/badge.svg?event=push)

*Computation of differential cross-sections using Local Unitarity.*

See [www.alphaloop.ch](www.alphaloop.ch) for details on the theoretical framework and related literature.

See the [wiki](https://wiki.alphaloop.ch/) for more information on the project.

## TL;DR: I want to be running γLoop already!

We salute the eagerness of our users.

If you want to jump right in, run the following to immediately start integrating the scalar three-loop mercedes diagram,

```
git clone https://github.com/alphal00p/gammaloop.git && cd gammaloop
./bin/compile.sh
./bin/gammaloop example/cards/scalar_mercedes.gL
```

or a one-loop hexagon diagram from the scattering process $\gamma \gamma \rightarrow \gamma \gamma \gamma \gamma$ (through a top-quark loop) with:

```
./bin/gammaloop examples/cards/physical_1L_AA_AAAA.gL
```

## Installation

### > Requirements

* `Rust`: v1.77+ You can easily install Rust with this [one-liner](https://www.rust-lang.org/tools/install)

* `Python3`: v3.11+ (equipped with `pip`, and the `python-devel` dependency)

* `GNU gcc`: v10+ (*not* `clang`!)

* `git`

*Note*: The project has been tested on Linux and MacOS. However, on MacOS, the default `clang` compiler is not supported due to lack of `libquadmath` support, and `GNU gcc` must be installed and setup as default compiler.

Windows users are encouraged to use [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/).

### > Installation using `pip`
```
pip install gammaloop
gammaloop --build_dependencies
```

### > Installation from sources
```
git clone https://github.com/alphal00p/gammaloop.git
cd gammaloop
./bin/compile.sh --release
```
The relevant binaries will then be in `./bin/` and the gammaloop python module is located at `./python/gammaloop`.

*Note:* Alternatively, the dependencies can be built within a python virtual environment as follows:

```
./bin/build_dependencies.sh clean
./bin/build_dependencies.sh with_venv
# From within a `bash` shell, use the command below
source `./bin/gammaloop -venv`
# From within a `fish` shell, use the command below
. (./bin/gammaloop -venv).fish
```

## Tests

### > Testing an installation from `pip`

From within the installation directory of the gammaloop module, which you can `cd` into with e.g.:
```
bash -c 'cd `python -c "import os; import gammaloop; print(os.path.dirname(gammaloop.__file__))"`; pwd'
```

You can test your `gammaLoop` installation by running (incl. only tests with a maximum runtime of 15 seconds):
```
python -m pytest --max-runtime 15.0
```

### > Testing an installation from sources

From within the installation directory, run:
```
/bin/run_tests.sh python
/bin/run_tests.sh rust
```

## Usage

There are three entry points to the `GammaLoop` functionalities:

1. Preferred method is through the Python command-line interface `gammaloop`.

2. Alternatively, the same functionalities can be accessed programmatically, e.g. in a Jupyter notebook, through the Python API, by importing the `gammaloop` library.

3. Finally, expert users may also find it useful to steer some of functionalities directly from the rust binary `gammaloop_rust_cli`.

Both executables `gammaloop` and `gammaloop_rust_cli` are made available as scripts in the `bin` directory.
The `gammaloop` Python module is also exposed after installation and ready to be imported by custom Python scripts.

### 1. Usage from the Python command-line interface: ./gammaloop

`GammaLoop` is typically used through the python command-line interface `gammaloop`.
Place your list of commands in a file named e.g. `cmd.gL`, for instance:

```
# Content of file 'cmd.gL'
import_model sm --format ufo
export_model ./sm.yaml --format yaml
```
and run it with:
```
./bin/gammaloop cmd.gL
```
You can find more information on the syntax of the available commands in the [wiki](https://wiki.alphaloop.ch/) and by running:
```
./bin/gammaloop --help
```
to get an overview of available commands and:
```
./bin/gammaloop -c "help import_model"
```
to get help on any specific command.

You can find example of command files in the `<MODULE_PATH>/data/run_cards/` directory.

### 2. Usage from within a Jupyter notebook: the Python API

Follow the example jupyter notebook given in example to get started with the Python API.
```
cd <GAMMALOOP_INSTALLATION_DIRECTORY>/examples/jupyter
jupyter notebook steer_gammaloop.ipynb
``` 

### 3. Usage from the rust binary executable: ./gammaloop_rust_cli

All typical usecases of `GammaLoop` are available through the Python command-line interface mentioned earlier.
However, expert users might want to steer the Monte-Carlo integration directly using the `gammaloop_rust_cli` binary.
This is possible throught the `gammaloop_rust_cli` binary, which can be used as follows:
```
./bin/gammaloop_rust_cli --config <MODULE_PATH>/gammaloop/data/run_cards/rust_run_config.yaml
```
*Note*: You have to manually define your desired external momenta in this default `rust_run_config.yaml` file.

You will find more information on the content of the run configuration file and steering options in the [wiki](https://wiki.alphaloop.ch/) and by running:
```
./bin/gammaloop_rust_cli --help
```


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "gammaloop",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "physics, collider, cross-section, perturbative, loop",
    "author": "Valentin Hirschi <valentin.hirschi@gmail.com>",
    "author_email": "Valentin Hirschi <valentin.hirschi@gmail.com>, Mathijs Fraaije <mathijsfraaije@gmail.com>, Lucien Huber <mail@lcnbr.ch>",
    "download_url": "https://files.pythonhosted.org/packages/d5/80/445af1dc0d3c443b4b427fc8e1e83e19b6d4261f3f045f79f36fd27982fb/gammaloop-0.2.0.tar.gz",
    "platform": null,
    "description": "# gammaLoop\n![tests status](https://github.com/alphal00p/gammaloop/actions/workflows/gamma_loop_tests.yml/badge.svg?event=push)\n\n*Computation of differential cross-sections using Local Unitarity.*\n\nSee [www.alphaloop.ch](www.alphaloop.ch) for details on the theoretical framework and related literature.\n\nSee the [wiki](https://wiki.alphaloop.ch/) for more information on the project.\n\n## TL;DR: I want to be running \u03b3Loop already!\n\nWe salute the eagerness of our users.\n\nIf you want to jump right in, run the following to immediately start integrating the scalar three-loop mercedes diagram,\n\n```\ngit clone https://github.com/alphal00p/gammaloop.git && cd gammaloop\n./bin/compile.sh\n./bin/gammaloop example/cards/scalar_mercedes.gL\n```\n\nor a one-loop hexagon diagram from the scattering process $\\gamma \\gamma \\rightarrow \\gamma \\gamma \\gamma \\gamma$ (through a top-quark loop) with:\n\n```\n./bin/gammaloop examples/cards/physical_1L_AA_AAAA.gL\n```\n\n## Installation\n\n### > Requirements\n\n* `Rust`: v1.77+ You can easily install Rust with this [one-liner](https://www.rust-lang.org/tools/install)\n\n* `Python3`: v3.11+ (equipped with `pip`, and the `python-devel` dependency)\n\n* `GNU gcc`: v10+ (*not* `clang`!)\n\n* `git`\n\n*Note*: The project has been tested on Linux and MacOS. However, on MacOS, the default `clang` compiler is not supported due to lack of `libquadmath` support, and `GNU gcc` must be installed and setup as default compiler.\n\nWindows users are encouraged to use [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/).\n\n### > Installation using `pip`\n```\npip install gammaloop\ngammaloop --build_dependencies\n```\n\n### > Installation from sources\n```\ngit clone https://github.com/alphal00p/gammaloop.git\ncd gammaloop\n./bin/compile.sh --release\n```\nThe relevant binaries will then be in `./bin/` and the gammaloop python module is located at `./python/gammaloop`.\n\n*Note:* Alternatively, the dependencies can be built within a python virtual environment as follows:\n\n```\n./bin/build_dependencies.sh clean\n./bin/build_dependencies.sh with_venv\n# From within a `bash` shell, use the command below\nsource `./bin/gammaloop -venv`\n# From within a `fish` shell, use the command below\n. (./bin/gammaloop -venv).fish\n```\n\n## Tests\n\n### > Testing an installation from `pip`\n\nFrom within the installation directory of the gammaloop module, which you can `cd` into with e.g.:\n```\nbash -c 'cd `python -c \"import os; import gammaloop; print(os.path.dirname(gammaloop.__file__))\"`; pwd'\n```\n\nYou can test your `gammaLoop` installation by running (incl. only tests with a maximum runtime of 15 seconds):\n```\npython -m pytest --max-runtime 15.0\n```\n\n### > Testing an installation from sources\n\nFrom within the installation directory, run:\n```\n/bin/run_tests.sh python\n/bin/run_tests.sh rust\n```\n\n## Usage\n\nThere are three entry points to the `GammaLoop` functionalities:\n\n1. Preferred method is through the Python command-line interface `gammaloop`.\n\n2. Alternatively, the same functionalities can be accessed programmatically, e.g. in a Jupyter notebook, through the Python API, by importing the `gammaloop` library.\n\n3. Finally, expert users may also find it useful to steer some of functionalities directly from the rust binary `gammaloop_rust_cli`.\n\nBoth executables `gammaloop` and `gammaloop_rust_cli` are made available as scripts in the `bin` directory.\nThe `gammaloop` Python module is also exposed after installation and ready to be imported by custom Python scripts.\n\n### 1. Usage from the Python command-line interface: ./gammaloop\n\n`GammaLoop` is typically used through the python command-line interface `gammaloop`.\nPlace your list of commands in a file named e.g. `cmd.gL`, for instance:\n\n```\n# Content of file 'cmd.gL'\nimport_model sm --format ufo\nexport_model ./sm.yaml --format yaml\n```\nand run it with:\n```\n./bin/gammaloop cmd.gL\n```\nYou can find more information on the syntax of the available commands in the [wiki](https://wiki.alphaloop.ch/) and by running:\n```\n./bin/gammaloop --help\n```\nto get an overview of available commands and:\n```\n./bin/gammaloop -c \"help import_model\"\n```\nto get help on any specific command.\n\nYou can find example of command files in the `<MODULE_PATH>/data/run_cards/` directory.\n\n### 2. Usage from within a Jupyter notebook: the Python API\n\nFollow the example jupyter notebook given in example to get started with the Python API.\n```\ncd <GAMMALOOP_INSTALLATION_DIRECTORY>/examples/jupyter\njupyter notebook steer_gammaloop.ipynb\n``` \n\n### 3. Usage from the rust binary executable: ./gammaloop_rust_cli\n\nAll typical usecases of `GammaLoop` are available through the Python command-line interface mentioned earlier.\nHowever, expert users might want to steer the Monte-Carlo integration directly using the `gammaloop_rust_cli` binary.\nThis is possible throught the `gammaloop_rust_cli` binary, which can be used as follows:\n```\n./bin/gammaloop_rust_cli --config <MODULE_PATH>/gammaloop/data/run_cards/rust_run_config.yaml\n```\n*Note*: You have to manually define your desired external momenta in this default `rust_run_config.yaml` file.\n\nYou will find more information on the content of the run configuration file and steering options in the [wiki](https://wiki.alphaloop.ch/) and by running:\n```\n./bin/gammaloop_rust_cli --help\n```\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Gammaloop computes differential cross-sections using Local Unitarity",
    "version": "0.2.0",
    "project_urls": {
        "homepage": "https://alphaloop.ch",
        "repository": "https://github.com/alphal00p/gammaloop"
    },
    "split_keywords": [
        "physics",
        " collider",
        " cross-section",
        " perturbative",
        " loop"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c7cacbb935965d9a7ae8864d041caf69e61be4e070d595d727712fa6add71f8f",
                "md5": "d6bb1333228f95d2fae87a5303acfd01",
                "sha256": "00b1a92abbff8b8922e833b6c0f5a5bbfcf272b9728992d10b857c215d3bceba"
            },
            "downloads": -1,
            "filename": "gammaloop-0.2.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d6bb1333228f95d2fae87a5303acfd01",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 10310298,
            "upload_time": "2024-10-08T21:30:34",
            "upload_time_iso_8601": "2024-10-08T21:30:34.474688Z",
            "url": "https://files.pythonhosted.org/packages/c7/ca/cbb935965d9a7ae8864d041caf69e61be4e070d595d727712fa6add71f8f/gammaloop-0.2.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ebe5414ccf6678ccb3ca10d2843f6c88bc28ee9673e164d51f75ba4ff44038e9",
                "md5": "13661029b4154ec0dd6f5c76eccbffbe",
                "sha256": "537bb3c15497e5a86cd16535de7286ac3afcb0d3753e28b5b851248c117daff6"
            },
            "downloads": -1,
            "filename": "gammaloop-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "13661029b4154ec0dd6f5c76eccbffbe",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 8703597,
            "upload_time": "2024-10-08T21:15:55",
            "upload_time_iso_8601": "2024-10-08T21:15:55.486856Z",
            "url": "https://files.pythonhosted.org/packages/eb/e5/414ccf6678ccb3ca10d2843f6c88bc28ee9673e164d51f75ba4ff44038e9/gammaloop-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d580445af1dc0d3c443b4b427fc8e1e83e19b6d4261f3f045f79f36fd27982fb",
                "md5": "b03f5415b76ea20b0a24ea9cce89ace2",
                "sha256": "aaa17dfd443f13893f16c4b811a3c7fb0292e773960692170ec891eaabddb24f"
            },
            "downloads": -1,
            "filename": "gammaloop-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b03f5415b76ea20b0a24ea9cce89ace2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 1440453,
            "upload_time": "2024-10-08T21:15:58",
            "upload_time_iso_8601": "2024-10-08T21:15:58.741290Z",
            "url": "https://files.pythonhosted.org/packages/d5/80/445af1dc0d3c443b4b427fc8e1e83e19b6d4261f3f045f79f36fd27982fb/gammaloop-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-08 21:15:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "alphal00p",
    "github_project": "gammaloop",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "gammaloop"
}
        
Elapsed time: 0.70418s