解析、操作和可视化susy les houghes accord数据
pyslha的Python项目详细描述
一个简单但灵活的SUSEY里雾诗协议(SLHA)数据格式的处理程序。
pyslha是一个用于粒子物理的解析器/编写器模块susy les houches accord (SLHA)超对称谱/衰变文件,以及 使用接口,例如,用于转换到传统isawig格式,或 绘制质谱和衰变链。
当前版本支持slha版本1,据我所知 与slha2完全兼容:读取和访问块结构 一般来说。如果您有任何问题,请提供一个示例输入文件和 我很乐意调查。SLHA3尚未得到支持(或标准化),但在 最新发布的新结构不会使解析器崩溃。支持将是 格式标准化后添加(并响应需求!)
打印脚本通过latex和tikz提供pdf、eps和png格式的输出 图形包,以及直接嵌入到文档或 用户调整生成的输出。
版本2.x的用户应该注意,在 版本3.x:现在有一些通用的read()/write()函数 现在可以对文件名或文件对象以及所有I/O函数进行操作 返回/接受单个doc对象,而不是块的元组,衰减, 等等,口述。slha文档的这个单一对象接口允许 数据的一致处理,以及对未来更好的健壮性 格式的更改和对文档注释的计划支持。
API示例
>>> import pyslha >>> # generic read from file: >>> d = pyslha.read('spcfiles/sps1a.spc') >>> d <PySLHA Doc: 22 blocks, 35 decays, 0 xsections> >>> # or, to ignore blocks known to be e.g. badly formatted: >>> d = pyslha.read('spcfiles/sps1a.spc', ignoreblocks=['DCINFO']) >>> d <PySLHA Doc: 21 blocks, 35 decays, 0 xsections> >>> d.blocks Blocks SPINFO { 1 : SOFTSUSY; 2 : 2.0.5 } MODSEL { 1,1 : sugra } SMINPUTS { 1 : 1.27934000e+02; 2 : 1.16637000e-05; ... ... >>> d.blocks.has_key('MODSEL') True >>> d.blocks['MODSEL'] MODSEL { 1,1 : sugra } >>> d.blocks['MODSEL'][1,1] 'sugra' >>> d.blocks['MODSEL'][1,2] = 'foo' >>> d.blocks['MODSEL'] MODSEL { 1,1 : sugra; 1,2 : foo }
块
block接口还提供dict like has_key()、keys()和items() 方法,以及更专业的value(),set_value()和is_single_value() 用于改进对alpha和任何其他未索引块的访问的方法。
衰变
衰变系统的接口与 访问粒子衰变通道信息:
>>> d.decays.keys() [23, 24, 6, 25, 35, 36, 37, 1000021, 1000006, 2000006, 1000005, 2000005, ... >>> d.decays[1000021] 1000021 : mass = 6.07713704e+02 GeV : total width = 5.50675438e+00 GeV 1.05840237e-01 [1000005, -5] 1.05840237e-01 [-1000005, 5] ...
slha文件中的衰退块实际上被映射到粒子对象中,每个 包含多个衰减对象。查看python文档中的doc, 块、粒子和衰变,以及用于I/O的Pyslha模块自由函数。
横截面
横截面信息(参见新的X截面块类型)可通过 第X节。至于decades,api结构与文本有点不同 format:xsections是进程对象的dict,每个对象都包含 X给定(排序的)初始状态粒子+最终状态粒子列表的节线 身份证。这与单个进程包含的文本格式不同 多质心能量的截面,如xsec物体 (平方英里)。例如:
>>> print d.xsections [(2212, 2212, 1000001, 1000003), (2212, 2212, -1000002, 2000002), ...] >>> myproc = d.xsections[2212,2212,1000001,1000003]
过程接口提供了一种方便的方法来过滤 包含任何定义属性的xsec,包括scale scheme、qcd 和EW顺序、乘法比例因子、PDF ID代码和 发电机/积分器。
>>> myproc.get_xsecs(sqrts=13000., kappa_r=2., code='Prospino')
引文
如果使用pyslha进行模型数据处理或频谱可视化, 请引用论文:http://arxiv.org/abs/1305.4194
待办事项:
- For 3.2.x:
- In set_value, if first item is non-int, treat as None-indexed.
- Refine value string heuristic for strings with ints in them?
- For 3.3.0:
- Use Doc to handle document-level header comments.
- Use _dict to handle block and decay summary comments.
- Preserve _inline_ comments from read -> write (needs full-line/inline comment separation). Can use separate comment dicts in Block, Decay, etc. and attach a multiline .comment attr to the returned/written dicts.
- Later, maybe:
- Identify HERWIG decay matrix element to use in ISAWIG.
- Handle RPV SUSY in ISAWIG.