粒子相空间分析工具包
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]})