跳转到主要内容

一个通用的校正库

项目描述

correctionlib

Actions Status Documentation Status Code style: black

conda version PyPI version PyPI platforms

GitHub Discussion

介绍

此库的目的是提供一种结构良好的JSON数据格式,用于描述在典型的高能物理分析中遇到的多种临时校正因子,以及适用于C++和Python程序的配套评估工具。在此,我们将校正因子的定义限制为具有标量输入并产生标量输出的函数类。

在Python中,函数签名是

def f(*args: str | int | float) -> float:
    return ...

在C++中,评估器目前实现为

double Correction::evaluate(const std::vector<std::variant<int, double, std::string>>& values) const;

支持的函数类包括

  • 多维分箱查找;
  • 指向具有受限制数学函数集(如expsqrt等)的多参数公式的分箱查找;
  • 分类(字符串或整数枚举)映射;
  • 输入转换(在原地更新一个输入值);以及
  • 上述组合。

每个函数类型由调用图中的“节点”表示,并将所有参数存储在JSON结构中,由JSON模式描述。可能的未来扩展节点可能包括加权的和(与其他组合可以表示BDT)以及简单的MLP。

该工具应提供

  • 标准化的、带版本的JSON模式
  • 向前端口工具(用于迁移旧模式版本中编写的数据);以及
  • 优化的C++评估器和Python绑定(具有numpy向量化支持)。

此工具肯定不会提供

  • 支持 TLorentzVector 或其他对象类型输入(此类工具应作为基于该库的高级工具编写,而该库作为低级工具)

公式支持目前包括ROOT库TFormula类的几乎所有子集,并以线程安全的方式独立实现。解析语法正式定义,并通过仅包含头文件的PEG解析库进行解析。支持的功能与CMSSW的reco::formulaEvaluator相似,并且除TMath::命名空间外,完全通过了该工具的测试套件。不过,由于更正的树状结构,Python绑定可能能够调用numexpr,但在其他级别上利用向量化可能比较困难。

有关安装和使用此软件包的详细说明,请参阅文档

创建新的更正

功能演示/教程可在文档中找到,也可在binder上交互式访问

correctionlib.schemav2模块提供了一个有用的框架来定义更正对象,而correctionlib.convert包含了常见类型的选转函数。可以使用parse_obj类方法在构建时检查节点类型,或者通过直接使用关键字参数来构建它们。

开发

请参阅CONTRIBUTING.md

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

correctionlib-2.6.4.tar.gz (3.9 MB 查看哈希值)

上传时间

构建分布

correctionlib-2.6.4-cp312-cp312-win_amd64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

correctionlib-2.6.4-cp312-cp312-win32.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86

correctionlib-2.6.4-cp312-cp312-musllinux_1_2_x86_64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ x86-64

correctionlib-2.6.4-cp312-cp312-musllinux_1_2_i686.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ i686

correctionlib-2.6.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.0 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

correctionlib-2.6.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (484.5 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ i686

correctionlib-2.6.4-cp312-cp312-macosx_11_0_arm64.whl (345.7 kB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

correctionlib-2.6.4-cp311-cp311-win_amd64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

correctionlib-2.6.4-cp311-cp311-win32.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86

correctionlib-2.6.4-cp311-cp311-musllinux_1_2_x86_64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.2+ x86-64

correctionlib-2.6.4-cp311-cp311-musllinux_1_2_i686.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.2+ i686

correctionlib-2.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (467.5 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

correctionlib-2.6.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (486.1 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686

correctionlib-2.6.4-cp311-cp311-macosx_11_0_arm64.whl (346.0 kB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

correctionlib-2.6.4-cp310-cp310-win_amd64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

correctionlib-2.6.4-cp310-cp310-win32.whl (1.2 MB 查看哈希值)

上传于 CPython 3.10 Windows x86

correctionlib-2.6.4-cp310-cp310-musllinux_1_2_x86_64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ x86-64

correctionlib-2.6.4-cp310-cp310-musllinux_1_2_i686.whl (1.5 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ i686

correctionlib-2.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.2 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

correctionlib-2.6.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (485.5 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686

correctionlib-2.6.4-cp310-cp310-macosx_11_0_arm64.whl (344.6 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

correctionlib-2.6.4-cp39-cp39-win_amd64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

correctionlib-2.6.4-cp39-cp39-win32.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 Windows x86

correctionlib-2.6.4-cp39-cp39-musllinux_1_2_x86_64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.2+ x86-64

correctionlib-2.6.4-cp39-cp39-musllinux_1_2_i686.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.2+ i686

correctionlib-2.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.4 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

correctionlib-2.6.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (485.6 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ i686

correctionlib-2.6.4-cp39-cp39-macosx_11_0_arm64.whl (344.8 kB 查看哈希值)

上传时间 CPython 3.9 macOS 11.0+ ARM64

correctionlib-2.6.4-cp38-cp38-win_amd64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

correctionlib-2.6.4-cp38-cp38-win32.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.8 Windows x86

correctionlib-2.6.4-cp38-cp38-musllinux_1_2_x86_64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.2+ x86-64

correctionlib-2.6.4-cp38-cp38-musllinux_1_2_i686.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.2+ i686

correctionlib-2.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.6 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

correctionlib-2.6.4-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (484.9 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686

correctionlib-2.6.4-cp38-cp38-macosx_11_0_arm64.whl (344.6 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

correctionlib-2.6.4-cp37-cp37m-win_amd64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

correctionlib-2.6.4-cp37-cp37m-win32.whl (1.2 MB 查看哈希值)

上传于 CPython 3.7m Windows x86

correctionlib-2.6.4-cp37-cp37m-musllinux_1_2_x86_64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.2+ x86-64

correctionlib-2.6.4-cp37-cp37m-musllinux_1_2_i686.whl (1.5 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.2+ i686

correctionlib-2.6.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.5 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

correctionlib-2.6.4-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (485.6 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ i686

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面