解析、操作和可视化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如何通过jamod读取控制器的输入状态?   java Back bean方法在使用两个h的单一表单时未调用:selectonemenus和command button   mockitojava中的单元测试Mock继承方法   java在不传递到构造函数的情况下,将一个类的实例使用到另一个类中的最佳方法是什么   java Spring MVC:如何通过API在Dozer的toplevel字段中允许空值?   java hibernate到MSSQL服务器的连接被拒绝:连接   java动态调用现有变量   在java中扩展多个类的泛型   java使用JNA Ptrace获取linux中外部进程的信息?   eclipse获取Java项目中所有构建错误的最快方法是什么?   java将动态数组拆分为多个数组   java安卓:将json保存到sqlite   java获取最近时间Android   java如何为多对多关联编写HQL查询?   java Docker compose for mysql和spring应用程序拒绝访问   java查找数组(如果它是另一个数组的子集)   java如何在另一个具有相同数据类型参数的泛型类(或接口)中使用泛型类(或接口),而无需强制转换   Apache POI java。lang.NoClassDefFoundError:org/apache/commons/compress/utils/InputStreamStatistics   java使用Jackson将JSON反序列化为异构元素列表   使用MapReduce实现java规范化