F.A.S.T. 数据卡创建包
项目描述
fast-datacard
免费软件:Apache软件许可协议2.0
概述
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_name、version 和 dataset 仅用于版本控制。
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 块中列出的系统误差可以有三个类型:lnN、lnU 和 shape。前两种是归一化不确定性,应提供一个值,该值对应于 1 + X,其中 X 是一个标准差水平的百分比不确定性(见示例配置文件)。对于 shape 类型,不需要值,因为形状本身编码了不确定性水平。不需要在不确定性名称中指定 Up/Down,因为这将从输入数据框中推导出来(见下文)。
系统误差可以仅应用于一组特定的信号和/或背景,在这种情况下,应指定过程的名称(与数据框中的名称相同)。如果系统误差适用于所有背景,可以使用 backgrounds 而不是列出所有背景过程(对于 signals 也是如此)。
运行配置也部分来源于输入数据框,因此其格式应遵循一些规则
列应命名为
process region category systematic variable variable_low variable_high content error
其中
process 是物理过程的名称,例如 VBF、Ewk 等。
region 是区域的名称,例如 Signal、ControlRegion1 等。
category 是事件类别的名称,例如 2jet、highMass 等。每个唯一名称将被视为一个不同的类别。
systematic 是应用于获得本行 内容 的系统形状变异的名称。例如,如果一个过程有两个形状系统误差不确定性名为 syst1 和 syst2,则数据框应包含 5 个变异:nominal、syst1_Up、syst1_Down、syst2_Up、syst2_Down,每个存在此过程的bin都应包含这些变异。
variable 是输出直方图中定义 x 值的变量的名称。它不被代码使用,主要是为了跟踪不同类别中的拟合变量。
variable_low 和 variable_high 定义了用于拟合的输出直方图中沿 x 轴的划分。每个唯一的 (variable_low, variable_high) 组合将被视为一个唯一的划分。
content 是针对这个特定 (process、region、category、systematic、variable、variable_low、variable_high) 划分的产量。
error 是分配给产量的误差(请注意,它不是误差的平方!因此,对于泊松实验,它应该是 sqrt(N))。
在某种意义上,使用 region 或 category 是可选的,因为一个分析可能只有一个区域和一个类别;在这种情况下,需要为所有行填充同一列的值。
即使在 content 为 0 的情况下,也应该在所有类别和区域中定义信号(s)过程。换句话说,如果您正在寻找名为 bananas 的奇异信号,代码假定它将在分析的每个划分中找到 bananas 的 content(即代码永远不会假设信号不能存在于控制区域)。
即使在 content 为 0 的情况下,也应该在所有类别和区域中定义数据。如果某个地方没有定义数据,那么类别/区域甚至不应该存在于分析中。
该软件包将生成两组输出
文本数据卡,总结了物理过程、产量和关于分析的其他元信息。
ROOT 数据卡,包含描述将用于拟合的形状的直方图。
两者都可作为 HiggsCombine 工具 的输入。
致谢
此软件包是用 Cookiecutter 和 audreyr/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。