EventGenerator2020
目次
はじめに
MadGraph5_MC@NLOを使って素粒子の散乱事象を生成してデータ解析の手法を検討する。
ソフトウェアの準備
MG5がpython3.7以上を必要とするため、まずこれが必要である。CentOS7のパッケージにはpython3.6を使っているためソースコードからコンパイルするには以下の設定でできる。Madgraph5はMG5_aMC_v2.8.0を使用する。これは基本的にpythonコードなのでhttps://launchpad.net/mg5amcnloからダウンロードしてきてどこかに展開してインストールしておく。ここでは、MadGraph5を使った解析作業をmg2020という名前のディレクトリで行うことにして、例えばmg2020/sw/MG_aMC_v2.8.0に展開しておく。
MadGraphの中でPythia8とかを使うこともできるが、これをやると出力が.hepmcというテキストファイルで保存されて膨大になるのでMadgraph5ではLHEファイルまで作って、その後Pythia8やジェット・アルゴリズムは別に走らせて出力をROOTファイルに保存するようにする。 そのために以下のソフトウェアもインストールする。今回使用するバージョンも下の表に記載してある。
ソフトウェア |
バージョン |
説明 |
LHAPDF |
6.5.4 |
パートン分関数(PDF)のデータ |
HepMC3 |
3.2.6 |
事象データを扱うためのデータフォーマット(システムにインストール済み) |
Pythia8 |
8.3.10 |
パートンシャワー・ハドロン化 |
FastJet |
3.4.2 |
ジェット・アルゴリズム |
fjcontrib |
1.052 |
FastJet用と一緒に使うツール類 |
labpp |
master |
事象データをROOTで扱うためのクラス等 |
1個ずつインストールしてもよいが、これらをインストールするためのスクリプトがlabpp/ExPythia/scripts/install_sw.shにあるので、それを取ってきて実行する方法を示す。作業はdev/ディレクトリで行うものとする。
git clone https://github.com/tkono17/labpp.git
でパッケージを取ってきた後で、labpp/ExPythia/scripts/install_sw.shを自分の作業用ディレクトリにコピーしてこのファイルの上の方にあるsw_dir, dev_dir, devsrc_dirを、自分の環境に合わせて変更してから実行する。
変数名 |
ディレクトリの用途 |
例 |
SWDIR |
ソフトウェアのインストール先 |
mg2020/sw |
dev_dir |
ソースコードの開発やコンパイル場所 |
mg2020/dev |
devsrc_dir |
外から取ってきたソフトウェアのソースコード |
mg2020/dev/sources |
予め、これらのディレクトリをつくり、さらにROOTの環境設定を終えてから
install_sw.sh
を実行する。
fjcontribのインストール
このパッケージは、ジェットの解析のためにFastJetの結果に対して適用するために、いろいろな開発者が作ったサブ・パッケージを集めたものである。ここではエネルギー相関を用いたsubjet変数D2を計算するためにEnergyCorrelatorサブ・パッケージを使う。デフォルトでは、これらのパッケージは静的ライブラリとしてコンパイルされるので、ダイナミック・ライブラリとしてリンクするために!EnergyCorrelator/Makefileを修正して
CXXFLAGS = ... -fPIC
のようにCXXFLAGSに"-fPIC"を追加する。
labppのインストール
MG5やPythia8等の外部のソフトウェアをインストールしたら、Pythia8のmainプログラムやその他のデータ構造を定義したlabpp自体をインストールする必要がある。既に上でgit cloneは終えているはずなので、これがdev/labppにあるとして
cd dev mkdir build cd build cmake3 ../labpp make install
これで、sw/binにrunPythiaJet.exe等のプログラムがインストールされていれば成功である。
OSに必要なパッケージ
Pythiaで.lhe.gz形式の圧縮ファイルを直接読めるように--with-gzipオプションを付ける場合、yum install zlib-develが必要である。
その他のソフトウェア
Python 3.8.5のインストール
Python3.8.5をインストールする前にCentOS7に以下のパッケージをインストールした。
yum install readline-devel ncurses-devel
./configure --prefix=$PREFIX --enable-shared --with-ssl-default-suites=openssl make sudo make install
これをやると何故かlibpython3.8.aが$PREFIX/libにコピーされないので、手動でコピーした。
プログラムの実行
粒子散乱のシミュレーションは
プログラム |
内容 |
mg5_aMC |
散乱断面積の計算と、その確率分布に基づいてクォーク/レプトンのレベルで事象を生成する。 |
runPythiaJet.exe |
散乱後に生成したクォークやグルーオンを使って、摂動の高次の寄与を近似するパートンシャワーとハドロン化をする。ハドロン化した後のクォーク/グルーオンを元のクォークに関連付けるために同じ方向に生成されたクォーク/パートンをジェットに束ねる。 |
これらを実行するために必要な引数等をスクリプト(ExPythia/scripts/run_mgpj.sh)にまとめてある。
データ解析