MadGraph5_aMC教程
文章目录
理论物理高能唯象学的分析流程是一个繁锁的过程,但大体上分为理论的程序化、从理论中预言可观测量、数据分析并与实验数据对比。
本文主要立足从理论中预言可观测量部分,解说计算工具包:MadGraph5_aMC
安装
环境要求
- Ubuntu 系统(或者其他Linux发行版)
- 可连网
- 最好有界面(主要用于使用浏览器下载安装包)
下载安装
资源下载:MadGraph5_aMC@NLO in Launchpad.
点击页面右侧的绿色版本下载安装包( ubuntu默认下载到目录:~/Downloads/ )
然后运行下面的命令:
|
|
使用 Pythia 和 Delphes
MadGraph5_aMC 可实现除计算散射截面、产生事例之外更多的功能,通过使用内置的下载脚本下载插件实现。可下载用于实现强子化的工具 Pythia ,用于实现快速探测器模拟的工具 Delphes 或者 PGS , 用于事例分析的工具 MadAnalysis 等。
|
|
其他的选项可自行查阅 MG5 说明书。
TroubleShooting
在MG5_2.7.3版本中,直接调用上面安装 Delphes 的方式,会出现编译错误的情况。 解决方式就是选择手动编译安装,命令见下面代码块。
|
|
使用说明
此文章全篇默认当前目录为
MG5_aMC_vxxx/
MadGraph5_aMC 可用于实现指定模型下的任意过程计算,最终给出过程的散射截面,并且产生用于后期分析的事例文件。
初级操作
产生代码并运算代码
技巧:单击
Tab
键补全命令,双击Tab
键显示所有可选项
|
|
launch 命令可以不运行,只是生成代码,不运算。当要运算时,先进入代码目录(例:./process/pptt/),再执行 generate_events
命令开始计算。这种方式等价于直接运行 launch
命令,不同之处在于这样可以多次运算代码,产生多个事例文件。
|
|
运算代码前的设置(很重要)
强调:这部分很重要,可详细阅读界面内容。
当开始运算代码的之后,会出现如下图的交互界面:
这是让你设置是否使用 Pythia 和 Delphes 的,若使用 Pythia ,可以输入 1 ,点击Enter
键。可以详细阅读这部分内容,根据需要设置好之后,输入 0 ,点击Enter
键。
之后会出现一个类似的界面,用于编辑参数卡片。输入 1 ,可编辑 param_card.dat 文件。
所有卡片文件都存放在代码目录的 ./process/pptt/Cards/ 目录中,可以在运算代码之前更改相关卡片文件。
高级操作
这部分主要是想要说明使用 proc_card.dat 文件,来将上面的命令集成到一个批处理文件中。并没有什么高级的命令。
刚解压的 MG5 根目录中存在一个 proc_card.dat 文件例子,可以参照着将所有命令写在这个文件中,然后运行 MG5 时带上文件参数。
|
|
MG5_aMC 目录结构及意义
鉴于现在的程序学习过程操作大于意义的实际情况,我将详细的物理意义放在操作之后进行说明。
目录结构
.
├── bin
├── Delphes
├── HEPTools
├── input
├── INSTALL
├── madgraph
├── models
├── process
├── pythia-pgs
├── README
└── VERSION
一级目录 | 内容说明 |
---|---|
./ | 代表 MG5根目录 |
./bin/ | 目录中存在两个可执行脚本,其中 mg5 是一个过时的脚本,其代码指向另一个脚本 mg5_aMC 。也就是说两个脚本等价,保留前一个脚本只是为了兼容之前的版本,并给出一行过时提醒。mg5_aMC 脚本只是 MG5 程序包的入口,作用是检查一下环境设置,然后调用 ./madgraph/ 目录中的主程序。 |
./Delphes/ | 目录只有在 install Delphes 之后才会出现。插件程序包将逐渐移至 HEPTools/ 目录中。 |
./HEPTools/ | 目录存放着通过 install 命令安装的相关程序包及 install 命令本身。如果想更改默认的插件下载地址,可更改 ./HEPTools/HEPToolsInstallers/ 目录中的相应 python 脚本。 |
./input/ | 目录中存放着 MG5 的初始化参数,如 multiparticles 设置等。重点是 ./input/mg5_configurations.txt 文件中设置了 MG5 的关联程序包路径。 |
./madgraph/ | MG5 主程序 |
./models/ | 模型包文件 |
./process/ | 手动添加的目录,用于存储具体计算过程代码 |
./README ./INSTALL | 说明性文件,分别介绍用法和安装过程 |
事例目录中子目录的说明:
./ 指代事例目录,如:process/pptt
├── bin 存放可执行文件
├── Cards 存放卡片文件,可以运算代码之前修改
├── Events 存放事例文件
│ ├── run_01 每产生一次事例,则产生一个run_0x目录
│ └── run_02 存放着 HEP 和 root 格式事例文件
├── HTML HTML格式的报告
└── index.html 报告首页,可用浏览器打开
工作流程的意义
-
import model
命令从 ./models/ 目录中导入一个具体的模型,如标准模型为import model sm
-
generate
是产生一个具体的物理过程,学过费曼图的人应该都知道什么是物理过程的。如经典的正负电子到正负缪子的过程可写为generate e+ e- > mu+ mu-
。 -
display diagrams
用来查看过程的费曼图,通常是被省略的。 -
output ./process/
用来将代码导出到指定的目录,以便重复使用。
以上命令只是用来写出具体计算的代码。因为脚本语言运算的速度太慢,所以只是用脚本语言帮我们去写一个针对特定过程的 C++ 语言代码(即所谓的硬代码)。这种流程在任何事例产生器程序中都通用,FeynArts 是写成了 Fortran 代码,CalcHEP 也是写成了 C++ 代码。
对应到物理意义中,以上代码中已经将振幅写好,并已经取了 模平方 。执行代码只是用来作相空间积分,但是积分的过程又不能解析计算,所以只能采用 Monte Carlo 模拟的方式。这种方式就需要产生事例,用来模拟出来积分截面。 -
launch
命令是 MG5 中附带的一个脚本,用来执行./process/XXXX/bin/generate_events
命令。
这一步是开始执行以上代码,不过在做相空间积分,计算出数值结果之前,需要指定模型参数、对撞参数等,如粒子质量、对撞能量、PDF。这些参数分为存放在两个主要的卡片文件中:param_card.dat
和run_card.dat
中。