[Home] / 教授でもできる... / <Anaconda Python] ROOT
高エネルギーの分野などで解析に使うROOT、それをPythonから使えるようにするPyROOTの設定、 さらにPythonらしくROOTを扱うためのrootpyのインストールの仕方です。
ROOTを走らせるためには、C++のコンパイラーなどが走る必要があり、そのためには command line toolsが必要なのですが、 それだけでは不十分で、Xcodeが入っていないとROOTを走らせたときにエラーが出ます。もしまだXcodeを入れてない場合は、それを入れます。
次に、ROOTを入れます。
$ cd ~/local/root $ rm pro $ ln -s root_v6.08.06 proこれにより、proからsymbolic linkが張られるので、 以降、~/local/root/pro をROOTのdirectoryとして参照することにします。 こうしておけば、新たなversionのROOTを入れたときにそれを試したり元に戻したりが簡単にできます。 (岩井君のお勧め)
. ~/local/root/pro/bin/thisroot.sh (初めのピリオドを忘れぬよう)
$ root root [1] TF1 *f1 = new TF1("f1", "sin(x)/x", -5, 5) root [2] f1->Draw() root [3] TH1F *h1 = new TH1F("h1", "h1 title", 100, -3, 3) root [4] h1->FillRandom("gaus", 10000) root [5] h1->Draw() root [6] .q
上の1 の3のようにして環境変数(PYTHONPATH)を設定してあれば、 python の中からも、ROOTを使う事ができます。 (Enthought PythonやAnaconda Pythonだと、次のように文句を言われます。
≥ import ROOT as rt Fatal Python error: PyThreadState_Get: no current thread Abort trap: 6
そこで、Mac OS Xに標準で付いてくるPython (/usr/bin/python) を使います。例えば:
$ /usr/bin/python >>> import ROOT as rt >>> In [2]: f1 = rt.TF1('f1', 'sin(x)/x', -5, 5) >>> In [3]: f1.Draw() >>> In [4]: h1 = rt.TH1F('h1', 'h1 title', 100, -3, 3) >>> In [5]: h1.FillRandom('gaus', 10000) >>> In [6]: h1.Draw('hist') >>> In [7]: ctrl/d
Pythonだと、作られた変数にその型の情報もついてくるので、新たな変数の型を指定したり、new とかをつけて 作成する必要はありません。
より詳しくは、マニュアルを参照のこと。
2017-06-30 Taku Yamanaka