跳转到主要内容

F.A.S.T. 数据卡创建包

项目描述

fast-datacard

https://img.shields.io/pypi/v/fast-datacard.svg Documentation Status

概述

fast-datacard是Faster Analysis Software Taskforce (FAST) 协作内部开发的一个Python打包程序。此包的主要目的是从数据帧中创建与HiggsCombine工具兼容的数据卡。该包将接受分类数据帧,例如由alphatwirl包创建的数据帧,并创建必要的ROOT和数据卡输出。

特性

  • 将分类数据帧(见 examples/data/*.csv)转换为可用于HiggsCombine工具的有效数据。

用法

用法如下:

fast_datacard <yaml_config_file>

一个示例 yaml 配置文件可用: examples/datacards_config.yaml。配置文件列出了所有输入事件类别、区域、物理过程、数据帧等。以下几点需要注意

  • 必须存在 通用区域信号背景系统误差 块。

  • analysis_nameversiondataset 仅用于版本控制。

  • luminosity 的值(浮点数,单位为 fb-1)用于将信号和背景 内容误差 加权到预期的亮度。

  • 对于每个名为 X 的信号和背景过程,在 path_to_dfs 目录中应该有一个名为 X.csv 的文件(空格分隔的 Pandas 数据框)。

  • data_names_df 应等于数据框中使用的 process 名称(例如示例配置文件中的 Data),同时也应该是 path_to_dfs.csv 数据框的名称。data_names_dc 将是输出数据直方图名称,应等于由 HiggsCombine 工具 强制的 data_obs

  • 必须至少有一个信号和一个背景。

  • 背景(但不是信号,见下文)只能存在于特定区域(见示例配置文件)。

  • systematics 块中列出的系统误差可以有三个类型:lnNlnUshape。前两种是归一化不确定性,应提供一个值,该值对应于 1 + X,其中 X 是一个标准差水平的百分比不确定性(见示例配置文件)。对于 shape 类型,不需要值,因为形状本身编码了不确定性水平。不需要在不确定性名称中指定 Up/Down,因为这将从输入数据框中推导出来(见下文)。

  • 系统误差可以仅应用于一组特定的信号和/或背景,在这种情况下,应指定过程的名称(与数据框中的名称相同)。如果系统误差适用于所有背景,可以使用 backgrounds 而不是列出所有背景过程(对于 signals 也是如此)。

运行配置也部分来源于输入数据框,因此其格式应遵循一些规则

  1. 列应命名为

    process region category systematic variable variable_low variable_high content error

其中

  • process 是物理过程的名称,例如 VBFEwk 等。

  • region 是区域的名称,例如 SignalControlRegion1 等。

  • category 是事件类别的名称,例如 2jethighMass 等。每个唯一名称将被视为一个不同的类别。

  • systematic 是应用于获得本行 内容 的系统形状变异的名称。例如,如果一个过程有两个形状系统误差不确定性名为 syst1syst2,则数据框应包含 5 个变异:nominalsyst1_Upsyst1_Downsyst2_Upsyst2_Down,每个存在此过程的bin都应包含这些变异。

  • variable 是输出直方图中定义 x 值的变量的名称。它不被代码使用,主要是为了跟踪不同类别中的拟合变量。

  • variable_lowvariable_high 定义了用于拟合的输出直方图中沿 x 轴的划分。每个唯一的 (variable_low, variable_high) 组合将被视为一个唯一的划分。

  • content 是针对这个特定 (processregioncategorysystematicvariablevariable_lowvariable_high) 划分的产量。

  • error 是分配给产量的误差(请注意,它不是误差的平方!因此,对于泊松实验,它应该是 sqrt(N))。

在某种意义上,使用 regioncategory 是可选的,因为一个分析可能只有一个区域和一个类别;在这种情况下,需要为所有行填充同一列的值。

  1. 即使在 content 为 0 的情况下,也应该在所有类别和区域中定义信号(s)过程。换句话说,如果您正在寻找名为 bananas 的奇异信号,代码假定它将在分析的每个划分中找到 bananascontent(即代码永远不会假设信号不能存在于控制区域)。

  2. 即使在 content 为 0 的情况下,也应该在所有类别和区域中定义数据。如果某个地方没有定义数据,那么类别/区域甚至不应该存在于分析中。

该软件包将生成两组输出

  • 文本数据卡,总结了物理过程、产量和关于分析的其他元信息。

  • ROOT 数据卡,包含描述将用于拟合的形状的直方图。

两者都可作为 HiggsCombine 工具 的输入。

致谢

此软件包是用 Cookiecutteraudreyr/cookiecutter-pypackage 项目模板创建的。

历史记录

0.1.5 (2018-04-29)

  • 修复拼写错误

0.1.4 (2018-04-29)

  • 添加错误消息以解释崩溃

0.1.3 (2018-04-05)

  • 更容易处理 dataframe 文件

0.1.2 (2018-04-04)

  • 更新可执行文件名称和文档

0.1.1 (2018-10-01)

  • 添加初始文档

0.1.0 (2018-08-21)

  • 首次发布于 PyPI。

项目详情


下载文件

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

源分布

fast-datacard-0.1.5.tar.gz (17.3 kB 查看哈希值)

上传时间

构建分布

fast_datacard-0.1.5-py2.py3-none-any.whl (12.2 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

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