粒子相空间分析工具包

p2sat的Python项目详细描述


粒子相空间分析工具包

p2sat是一个开源的、面向对象的python包,用于简化粒子相空间分析。

该软件包的核心功能是:

  • 从相空间信息自动计算粒子的动能、发散角和γ因子
  • 直方图制作(1d、2d、3d)和数据拟合(1d)
  • 使用自动规格化和图例绘制(1D到3D直方图、散点图和等高线图)
  • 具有给定属性的粒子过滤(例如,选择给定位置的所有粒子)
  • 统计工具(标准差、协方差等)
  • 从模拟文件导入数据(smilei、geant4、文本文件…)
  • 低内存负载

这允许以非常简洁和清晰的方式处理复杂的操作,如示例所示。

有关详细信息,请参见对象文档。

注释:

  • 这个包是为我个人使用,然后只包含几个方法从代码结果中导入数据,但您可以轻松地添加自己的(请共享!)并使用它来执行数据分析。有关详细信息,请参见子对象_Extract
  • 此工具可用于在单元或蒙特卡罗代码中处理粒子的物理学家

安装

安装p2sat最简单的方法是使用pip(https://pypi.org/project/p2sat/

pip install p2sat

否则,您还可以从github下载源代码并键入以下命令

cd p2sat
python setup.py install

如果不起作用,可以在脚本开头添加以下行

p2sat_path="/path/to/p2sat/"importsysifp2sat_pathnotinsys.path:sys.path.append(p2sat_path)importp2sat

示例

下面是p2sat使用的一个快速示例,其中包含我的geant4应用程序结果(有关更多信息,请参见examples/)。

从模拟文件导入结果

eps=p2sat.PhaseSpace(particle="electron")eps.extract.txt("example.csv",sep=",")

1d直方图

时间选择在700到900 fs(仓宽0.1 mev)之间的所有电子的光谱(数/mev)

ekin,spectrum=eps.hist.h1('ekin',bwidth=0.1,select={'t':[700.0,900.0]})

1d直方图绘制和拟合

电子光谱和能量指数拟合>;0.511 mev(仓宽0.1 mev,对数刻度)

eps.plot.h1('ekin',log=True,bwidth=0.1)eps.plot.f1('ekin',func_name="exp",log=True,bwidth=0.1,select={'ekin':[0.511,None]})

二维直方图

x=300μm时的横向粒子色散(y,z),对于动能大于0.511 mev的电子(对数色阶,每格宽5μm,每格宽在-300和300μm之间)

eps.plot.h2('y','z',log=True,bwidth1=5.0,bwidth2=5.0,brange1=[-300.,300.],brange2=[-300.,300.],select={'x':300,'ekin':[0.511,None]})

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

推荐PyPI第三方库


热门话题
java ZK我们可以保存Windows组件状态吗?   java中的xpath比较路径   将字符串解析为长字符串时出现java数字格式异常   Apache CXF中获取异常中的服务器stacktrace的java问题   java我正在用j2me编程,我需要用丰富的格式编写文本以获得帮助屏幕   Android Room数据库中id字段的java名称字段约定   对于API9,java ArrayList<HashMap<String,String>>无法正确转换为JSONArray   api是最初的Java理想死了吗?   opencv java中的python掩码图像   java为什么在实现克隆方法时返回super。克隆()不是此克隆()   java HttpUrlConnection是否存在并发惩罚?   有没有办法将java arraylist对象复制到codemodel生成的源代码中?