= 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)にまとめてある。 == データ解析 == == いくつかの結果 ==