近藤先生のホームページから取ってきたファイルを使用します。荷電パイ中間子ビーム下流の130mに設置した、放出角度が2度から3度のスリットをすり抜けるニュートリノのエネルギー分布を調べる課題になっていたようである。ここでは20GeVの荷電パイオンの崩壊によって発生するニュートリノのエネルギだけ調べることにする。
コードは運動量20GeVのpionを発生させるところから始まる。崩壊のサブプログラムではpionからmuonとneutrinoを球対称に生成し、ローレンツ変換で実験室系での4元運動量を返している。メインプログラムでは標準出力にmuonとneutrinoのエネルギー100k個を出力する。作業は
g++ -o pimu_1 pimu_1.cxx ./pimu_1 > pimu_1.txt source /opt/heplib/ROOT/v6-24-00/bin/thisroot.sh root //rootが起動するので入力プロンプトから .x plot_pimu_1.C .q //rootを終了するコマンド
荷電パイ中間子の重心系から2体崩壊する運動学は、親の質量がma、崩壊粒子の質量がそれぞれmb,mcとして崩壊粒子の運動量pcmが計算される。重心系の運動量を求め、その向きが球対称になるように特殊な乱数技術(phase-space sampling)で変換する。更に2つの崩壊粒子を親粒子の持っていた速度でローレンツ変換する。
まずrootを入れないといけないが、本家ページを見ると最近はUbuntuではcondaで入れるらしい。今までの実習ファイルから課題を作り直す必要がある。anacondaは自分環境が一般的らしい。今までは共通環境だったのに。そのへんがどうも今風なのか?いまやサーバーでいろいろするのは古いのかな。とりあえずひらってきた計算機にソースを落としてコンパイルしてみる。一応成功。でも英語版20.04ではXROOTDがどうのこうので失敗。自分コンパイルのバイナリをコピーしたら動いた。
あとTgraph*をつけないと行けないころがroot6になって起きた。
初期設定のAtlasStyle.Cのマクロの自動設定のやり方がいまいち不明。実行ディレクトリに持ってきて、関数定義の順番を変えるなどして設定してみた。面倒。plotのマクロではstream.hの.hを取る。初期設定を手動でするには
root .x AtlasStyle.C SetAtlasStyle();
とすると、一応可能。なぜか自動設定できる場合もある。あれれ。家のv6-18-00。
コピペがWindowsのEdgeなどからできない。まずはxtermが必要。
sudo apt update sudo upgrade sudo apt install xterm xterm &
この中だと、真ん中ボタンがpasteになるので、ブラウザーからコピペが可能になる。18.04ならNews2018にそのころの履歴があるがrootの近辺を見て、
sudo apt install git build-essential x11-apps x11-utils ls /proc cat /proc/cpuinfo sudo apt install cmake sudo apt install libx11-dev libxpm-dev libxft-dev libxext-dev sudo apt install libssl-dev sudo apt install -y libglu1-mesa-dev sudo apt install -y libglew1.5-dev libftgl-dev sudo apt install python-dev sudo apt install libxml2-dev pwd mkdir work cd work which wget wget https://root.cern/download/root_v6.18.00.source.tar.gz sudo apt install libgsl0-dev sudo apt install libqt4-dev sudo apt install r-base python-numpy-dev tar zxvf root_v6.18.00.source.tar.gz mkdir rootBuild cd rootBuild cmake -DCMAKE_INSTALL_PREFIX=/opt/heplib/ROOT/root-6.18.00 ../root-6.18.00 make sudo make install sudo ln -s /opt/heplib/ROOT/root-6.18.00 /opt/heplib/ROOT/pro source /opt/heplib/ROOT/pro/bin/root.sh root //exit は .q
などとlinuxではしてみた。ー>WSLではエラーになる。結局バイナリを取ってきて展開する。
Windows Subsystem for Linuxで演習をやるとすると、使い勝手はいかに。aptに問題発生。vimは入ったみたいだったのに。
下のファイルもいまいちっぽい。port番号が入ってない。ネットで見て、/etc/apt/apt.confに以下を書いたらOKだった。
Acquire::http::Proxy "http://proxy.kyokyo-u.ac.jp:xxx" Acquire::https::Proxy "https://proxy.kyokyo-u.ac.jp:xxx"
2行目二番目のhttpをhttpsに勝手に変えてみた。
この人は、nと互いに素なaについてはwikiにあるのでスルーして、いわゆる中国の剰余定理を簡単に説明している。あと後ろのほうでpythonで計算してるので、ubuntuがあるとフォローできます。
https://qiita.com/YutaKase6/items/cd9e26d723809dc85928