「部門/ROOT/hadd」の編集履歴(バックアップ)一覧はこちら
部門/ROOT/hadd - (2011/10/05 (水) 23:47:14) の最新版との変更点
追加された行は緑色になります。
削除された行は赤色になります。
複数のROOTファイルを結合するコマンドは、hadd。
ROOTを立ち上げる必要がなく、コマンドラインから実行できるので簡単だし、シェルスクリプトも書きやすい。
>hadd out.root 1.root 2.root
とか。
*参考リンク
-http://root.cern.ch/drupal/content/how-merge-histogram-files (公式情報)
複数のROOTファイルを結合するコマンドは、hadd。
ROOTを立ち上げる必要がなく、コマンドラインから実行できるので簡単だし、シェルスクリプトも書きやすい。
>hadd out.root 1.root 2.root
とか。
*オプション
-'-f' : 上で言うout.rootが存在した場合に上書きする。
-'-k': ワイルドカードを使って hadd out.root ?.rootとかしたときに、たとえば3.rootがゾンビとかだったりしたときはスキップして処理を続ける。
*シェルスクリプト(Bash)書いてみた。 -> [[ver.2>http://www47.atwiki.jp/cscd/pages/107.html]]
K本研以外の人にはあんまり関係ないと思われる。ELE_AnalyzerというのはELEGANTという検出器に使われてたもの(?)
生データをHBKに変換するときにあるサイズ以上だと分割されてしまうので、それぞれをROOTに変換してからhaddで結合する。
#highlight(){{#!/bin/bash
./ELE_Analyzer $1
declare -i i #iは整数とする
i=1
while [ -f $1_00$i.hbk ]; #ファイルが存在する番号までループを回す
do
h2root $1_00$i.hbk
rm $1_00$i.hbk #つくったHBKファイルを消す
source="$source $1_00$i.root" #ROOTファイルを結合するときの元となるファイルを集めた文字列
i=$i+1
done
hadd $1.root $source
rm $source #つくったROOTファイルを消す}}
なお、このシェルスクリプトを動かすには、K本研に伝わるプログラムであるELE_Analyzerと、Debianでsudo apt-get install cernlibしたときに同時にインストールされるもろもろのパッケイジが必要です(これはh2rootするときなのだけど、criticalに何が必要なのかはよくわからん)。
引数には生データのファイル名をとって、
>./makingroot.sh 22na-20111001.001
のように実行してください。
*参考リンク
-http://root.cern.ch/drupal/content/how-merge-histogram-files (公式情報)