とある原子核実験のブログ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
久しぶりに書いてみる。
最近3年間使ったLet's noteがやたら調子が悪いのでMACBOOK Proに乗り換えた。
まだまだ使いこなせてないが、UnixベースなのでLinuxとの相性がいい。
プログラミング環境が簡単に手に入るのも魅力。
後、なんかやたらstylishだ。これが一番のポイント。
これから研究用のマシンとして作り上げてみる訳だが、とりあえずrootを入れてみる。環境はMac OSX leopard
まずはcernのrootのダウンロードページに行く。
http://root.cern.ch/drupal/content/production-version-524
最近はバイナリでMAC用のrootが配布されている。
ソースからコンパイルもめんどくさいのでそれを利用する。
binaryの欄にMAC OSXって書いているはず。
ダウンロードしたものを展開する。
tar xvfz ~
ターミナルを起動し(アプリケーション/ユーティリティ/ターミナル.app)
適当なディレクトリにコピーする。
ちなみに僕のおすすめは
/usr/local/cern/root
次に環境変数の設定
ホームディレクトリに.bashrcファイルを作成し(デフォルトではないはず)
source /usr/local/cern/root/bin/thisroot.sh
と一行付け加える。
後は新しくターミナルを開いてみて
printenv | grep ROOTとかたたいてみたり、rootを起動してニュルりっとした女の人の絵が出てくるかを確かめる。
次に、せっかくなんでMAC特有の機能をインストールしてみる。
まず
ftp://root.cern.ch/root/ROOTQL.tgz
にいってファイルをダウンロード。
tar xvfz ROOTQL.tgz
で展開。
Finderで作成されたROOTQLフォルダに移動し、ROOTQL.qlgeneratorをドラッグして/ライブラリ/QuickLookにコピー
ターミナルに移動して、
/usr/bin/qlmanage -r
をたたく。
これでおしまい。非常に簡単。
スペースをポンと押すとファイルの中身が表示される。
そのうちcern libraryとgeantの入れ方も書きます。
こいつらはFinkを使えば一発なんだけど。
最近3年間使ったLet's noteがやたら調子が悪いのでMACBOOK Proに乗り換えた。
まだまだ使いこなせてないが、UnixベースなのでLinuxとの相性がいい。
プログラミング環境が簡単に手に入るのも魅力。
後、なんかやたらstylishだ。これが一番のポイント。
これから研究用のマシンとして作り上げてみる訳だが、とりあえずrootを入れてみる。環境はMac OSX leopard
まずはcernのrootのダウンロードページに行く。
http://root.cern.ch/drupal/content/production-version-524
最近はバイナリでMAC用のrootが配布されている。
ソースからコンパイルもめんどくさいのでそれを利用する。
binaryの欄にMAC OSXって書いているはず。
ダウンロードしたものを展開する。
tar xvfz ~
ターミナルを起動し(アプリケーション/ユーティリティ/ターミナル.app)
適当なディレクトリにコピーする。
ちなみに僕のおすすめは
/usr/local/cern/root
次に環境変数の設定
ホームディレクトリに.bashrcファイルを作成し(デフォルトではないはず)
source /usr/local/cern/root/bin/thisroot.sh
と一行付け加える。
後は新しくターミナルを開いてみて
printenv | grep ROOTとかたたいてみたり、rootを起動してニュルりっとした女の人の絵が出てくるかを確かめる。
次に、せっかくなんでMAC特有の機能をインストールしてみる。
まず
ftp://root.cern.ch/root/ROOTQL.tgz
にいってファイルをダウンロード。
tar xvfz ROOTQL.tgz
で展開。
Finderで作成されたROOTQLフォルダに移動し、ROOTQL.qlgeneratorをドラッグして/ライブラリ/QuickLookにコピー
ターミナルに移動して、
/usr/bin/qlmanage -r
をたたく。
これでおしまい。非常に簡単。
スペースをポンと押すとファイルの中身が表示される。
そのうちcern libraryとgeantの入れ方も書きます。
こいつらはFinkを使えば一発なんだけど。
PR
データの圧縮率を考えて実験のデータはバイナリ形式で保存することが多い。
データを開いて解析するときバイナリデータをデコードする必要がある。例えば
od -x data.dat } less
というコマンドを打って
0x00102312
という4byteのデータを得たとしよう。
その際データ構造が
0:15 実際のデータ
16:18 ch
19:
こうなればrootなりpawなりでいじり放題。
ちなみにファイルを開く際C言語ならFILE ポインタでファイルのディスクリプタを取得しそれに対してfread,C++ならifstreamでファイルオブジェクトを作成し、バイナリモードでファイルを開く。その後readメソッドを読みだすということをする。
ファイルの最後まで読みだす時、
ifstream::eof()メソッドをもちいることができる。
しかしそれは最後のデータを読んだときに1になる。
すなわち
while(fin.eof()){
}
という用い方をすると1回余分にループが回ってしまう。
これを回避するためには
while(1){
if(fin.eof()) break;
}
とか
while(fin.read<>){
}
とかすればよい。
実際に用いるデータはヘッダとしてevの情報、データのサイズなどが書かれていることが多い。
その際は下の方法を用いると楽である。
データを開いて解析するときバイナリデータをデコードする必要がある。例えば
od -x data.dat } less
というコマンドを打って
0x00102312
という4byteのデータを得たとしよう。
その際データ構造が
0:15 実際のデータ
16:18 ch
19:
こうなればrootなりpawなりでいじり放題。
ちなみにファイルを開く際C言語ならFILE ポインタでファイルのディスクリプタを取得しそれに対してfread,C++ならifstreamでファイルオブジェクトを作成し、バイナリモードでファイルを開く。その後readメソッドを読みだすということをする。
ファイルの最後まで読みだす時、
ifstream::eof()メソッドをもちいることができる。
しかしそれは最後のデータを読んだときに1になる。
すなわち
while(fin.eof()){
}
という用い方をすると1回余分にループが回ってしまう。
これを回避するためには
while(1){
if(fin.eof()) break;
}
とか
while(fin.read<>){
}
とかすればよい。
実際に用いるデータはヘッダとしてevの情報、データのサイズなどが書かれていることが多い。
その際は下の方法を用いると楽である。