Skip to main content

Tool for loading high-energy physics models in the UFO format and export them in flat JSON format.

Project description

UFO Model Loader

UFO Model Loader is a Python CLI and library to work with High-Energy Physics models in the UFO format.
It can:

  • Load UFO models or pre-exported JSON models
  • Apply restrictions from parameter cards
  • Evaluates all dependent parameters from input parameters using Symbolica
  • Simplify couplings and disable zero contributions
  • Export the result as a flat JSON model

Limitations:

  • Only tree-level information is being retained and exported
  • Current version only supports export of model expression in the Symbolica notation

Installation

From PyPI:

pip install ufo-model-loader

From GitHub:

pip install "git+https://github.com/alphal00p/ufo_model_loader.git"

Command Line Usage

ufo_model_loader --help

Example:

ufo_model_loader -i sm -r no_b_mass -o sm_flat.json

This will:

  1. Load the default UFO sm model shipped with this python module
  2. Apply restrictions from restrict_no_b_mass.dat
  3. Simplify the model by removing zero contributions and parameters set to zero.
  4. Write the model sm_flat.json and its corresponding parameter card sm_flat_param_card.json to the current directory.

Library Usage

When using UFO Model Loader as a library, you can import the main functions:

from ufo_model_loader.commands import load_model, export_model, JSONLook

loaded_sm_no_b_mass, input_param_card_no_b_mass = load_model(
    input_model_path = 'sm',
    restriction_name = 'no_b_mass',
    simplify_model = True,
)

exported_model_path = export_model(
    model = loaded_sm_no_b_mass,
    input_param_card = input_param_card_no_b_mass,
    output_model_path = 'sm_no_b_mass_simplified_flat.json'),
    json_look = JSONLook.VERBOSE,
    allow_overwrite = True
)

Built-in models

UFO Model Loader comes with the following built-in models: sm and scalars, which can be specified as input model directly from their names (the corresponding UFO directories are shipped with the python package).

The scalars model is a purely scalar toy model, with a number of scalars controlled by the environment variable UFO_SCALARS_MODEL_N_SCALARS, and all possible n-point interactions mixing these scalars, with n given by the environment variable UFO_SCALARS_MODEL_N_POINT_INTERACTIONS. By default, UFO_SCALARS_MODEL_N_SCALARS="3" and UFO_SCALARS_MODEL_N_POINT_INTERACTIONS="3,4,5,6,7,8,9,10".

For example, the following:

UFO_SCALARS_MODEL_N_SCALARS=7 UFO_SCALARS_MODEL_N_POINT_INTERACTIONS="3,4,5,6,7,8" ufo_model_loader -j compact -i scalars -o scalars_big_model.json; du -hc scalars_big_model.json

yields a pretty big model :)

[23:34:27] INFO    : Loading UFO model scalars from directory '[...]/ufo_model_loader/src/ufo_model_loader/data/models'
Loading UFO scalars model with 7 scalars
Loading UFO scalars model with n-point interactions, n=[3|4|5|6|7|8]
[23:34:28] INFO    : Applying default restriction to model scalars
[23:34:28] INFO    : The following 6 external parameters were forced to zero by the restriction card:
width_scalar_1, width_scalar_2, width_scalar_3, width_scalar_4, width_scalar_5, width_scalar_6
[23:34:28] INFO    : Model scalars successfully loaded (7 particles, 20 parameters, 6399 interactions, 1 couplings, 6 Lorentz structures)
[23:34:28] INFO    : Successfully exported model in compact JSON format to file 'scalars_big_model.json' and corresponding input parameter card to 'scalars_big_model_param_card.json'
1.5M	scalars_big_model.json
1.5M	total

Tests

Test your installation with

pytest --pyargs ufo_model_loader_tests

Main options

  • --input_model, -i
    UFO directory or JSON file path to load.

  • --restriction_name, -r
    Restriction to apply (restrict_<restriction_name>.dat in UFO or <model>_<restriction_name>.json).

  • --simplify / --no-simplify
    Remove zero contributions in the model given specified restriction. Default: enabled.

  • --wrap_indices_in_lorentz_structures Wrap indices in Lorentz structures when exporting. This is in particular useful for spin-2 models, mapping <1 or 2>00<p_id> conventions to idx(1 or 2, p_id).Default: disabled.

  • --output_model_path, -o
    Output path for the JSON model. Defaults to current directory.

  • --json_look, -j
    Output format: compact, pretty, or verbose. Default: verbose. Note: pretty requires the optional python package jsbeautifier.

  • --verbosity, -v
    Logging level: debug, info, critical.

  • --overwrite, -w
    Allow overwriting existing output files.


Development

Clone the repo and install in editable mode:

git clone https://github.com/alphal00p/ufo_model_loader.git
cd ufo_model_loader
pip install -e .[dev]
pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ufo_model_loader-0.1.5.tar.gz (89.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ufo_model_loader-0.1.5-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

Details for the file ufo_model_loader-0.1.5.tar.gz.

File metadata

  • Download URL: ufo_model_loader-0.1.5.tar.gz
  • Upload date:
  • Size: 89.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for ufo_model_loader-0.1.5.tar.gz
Algorithm Hash digest
SHA256 13be23703f9a9618ed5d6688449f03b7daae1a4f7d3b3972a7864a409af8cf3c
MD5 bc696ada84a59854ea79ba50e8a4b14a
BLAKE2b-256 a1a0068a8733803ff73e0f34977dad72e534e39637b670bd7747bebb2919b3ba

See more details on using hashes here.

File details

Details for the file ufo_model_loader-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for ufo_model_loader-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1995b626b5a3687dc286f010db13b533e9e27d3ce768976a74282fce1f3c0f8d
MD5 a992070830e45290207819951bb9b672
BLAKE2b-256 35024a01f0452b824ddea06dab9db99860f765945d2bfce40c925df7ad0fb3d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page