HEP社区使用的BumpHunter算法的Python实现。
项目描述
pyBumpHunter
这是BumpHunter算法的Python版本,由G. Choudalakis在arXiv:1101.0390中提出,旨在寻找1D或2D分布中的局部事件过剩(或不足)。
BumpHunter主函数将使用可变窗口大小扫描数据分布,并计算每个窗口中数据与给定背景分布的p值。所有窗口中获得的最小p值是局部p值。为了应对“其他地方看”效应,通过仅进行背景伪实验来计算全局p值。
BumpHunter算法还可以执行信号注入测试,在玩具数据中注入越来越多的信号,直到达到给定的信号显著性(全局)(2D中尚不支持信号注入)。
内容
- pyBumpHunter : pyBumpHunter软件包
- 示例 : 包含一组示例脚本和笔记本的文件夹
- example/results : 包含示例脚本输出的文件夹
- 测试:包含测试脚本的文件夹(基于pytest)
- data/data.root:示例和测试中使用的玩具数据
- data/gen_data.C:使用ROOT生成玩具数据的代码
依赖项
需要python >= 3.6 py
BumpHunter依赖于以下Python库
- numpy
- scipy
- matplotlib
pyBumpHunter wiki
示例
提供的example.py和test.ipynb示例需要uproot包来读取ROOT软件文件中的数据。
示例中提供的数据包含三个直方图:在[0,20] x轴范围内的急剧下降的'背景'分布,一个以5.5为中心的'信号'高斯形状,以及从背景和信号分布中采样的'data'分布,信号占比为0.15%。数据文件是通过在ROOT中运行gen_data.C生成的。
要运行示例脚本,只需在终端中输入python3 example.py
。
您还可以使用jupyter或binder打开示例笔记本。
- 峰寻
- 层析扫描
- 测试统计量和全局p值
有关pyBumpHunter提供的所有功能的详细概述,请参阅wiki。
待办事项
- 在2D直方图上运行BH
作者和贡献者
Louis Vaslin(主要开发者),Julien Donini
感谢Samuel Calvet在交叉检查和验证pyBumpHunter与ATLAS合作组开发的(内部)C++版本BumpHunter的过程中提供的帮助。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。