解析、操作和可视化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.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
为Java排序一个好的排序列表   java如何识别最后一行,然后单击Add按钮。。根据人们给出的建议,点击第二行想要点击最后一行任何潜在客户吗   收集器(.stream()。独特的()。collect(Collectors.toList());)在java中从eclipse成功运行并从命令提示符运行?   java致命异常:安卓的后台任务。数据库sqlite。SQLiteException:没有这样的表   java如何创建生成随机特殊字符的方法   java SQL只插入到特定列中   java Hibernate 5.2混合本机和JPA API   在Android应用程序中使用Java获取特定的XML标记文本   java之间的通道差异。addPeer()和channel。joinPeer()   java关闭对serialVersionUID的检查   java如何在不设置Id的情况下处理新的实体对象?   用于afterJob(JobExecution JobExecution)的java Spring批处理将参数从编写器传递到侦听器   java如何通过OSGi声明性服务声明hasa依赖关系?   java Android捕获在警报对话框中启动的OnFocusChange或Recents   Java刽子手游戏(主要关注输出)   java消息在OpenMQ中超时后丢失   Java方法在父级中的占位符用于子级   Java AWT列表框   来自http get请求的java“格式错误的JSON”