ROOTのユーザー設定をしたい(.rootrc)
# system.rootrc のパスを確認
$ root-config --prefix
/opt/homebrew/Cellar/root/6.36.04_1
# デフォルト設定ファイルをホームディレクトリにコピー
$ cp $(root-config --prefix)/etc/root/system.rootrc ~/.rootrc
# エディタで編集
$ nano ~/.rootrc
.rootrcファイルでROOTのユーザーグローバル設定ができます。
ホームディレクトリに配置されたファイルは、ROOTの起動時に自動的に読み込まれます。
.rootrc 設定ファイルを理解したい
.rootrcはROOTのグローバル設定ファイルです。
設定ファイルの場所
ファイル |
説明 |
優先度 |
|---|---|---|
|
ユーザー設定(ホームディレクトリ) |
最優先 |
|
システム共通設定 |
次点 |
|
システム全体設定 |
最後 |
後から読み込まれたファイルが同じ設定キーを含む場合、その値で上書きされます。
設定ファイルの探し方
# ROOTをインストールしたパスを確認
$ root-config --prefix
/opt/homebrew/Cellar/root/6.36.04_1
# system.rootrc の場所を検索
$ find $(root-config --prefix) -name "system.rootrc"
/opt/homebrew/Cellar/root/6.36.04_1/etc/root/system.rootrc
.rootrc を設定したい
ファイルのセットアップ
# デフォルト設定をコピー
$ cp $(root-config --prefix)/etc/root/system.rootrc ~/.rootrc
# 所有者と権限を確認
$ ls -la ~/.rootrc
-rw-r--r-- 1 user user 12345 Nov 14 10:30 /home/user/.rootrc
既存のsystem.rootrcをコピーしてから編集するのが推奨です。
すべてのデフォルト設定を確認できます。
基本的な設定例
1# キャンバスのデフォルトスタイル
2Canvas.Style Modern
3
4# 保存形式のデフォルト
5Canvas.SaveAsDefaultType pdf
6
7# ヒストグラムのビニング(1次元)
8Hist.Binning.1D.x 100
9
10# ヒストグラムのビニング(2次元)
11Hist.Binning.2D.x 40
12Hist.Binning.2D.y 40
13
14# ヒストグラムの精度
15Hist.Precision.1D float
16Hist.Precision.2D float
17
18# ROOT対話モードの履歴
19Rint.History $(HOME)/.root_hist
20
21# ROOT対話モードのウェルカムメッセージ
22Rint.WelcomeLite no
実用的な設定例
論文作成用
1# グラフィックススタイル
2Canvas.Style Plain
3
4# 保存形式
5Canvas.SaveAsDefaultType pdf
6
7# ヒストグラム設定
8Hist.Binning.1D.x 100
9Hist.Binning.2D.x 50
10Hist.Binning.2D.y 50
11Hist.Precision.1D double
12Hist.Precision.2D double
13
14# 統計情報の表示
15Stat 111110
16Fit 1111
論文投稿用には高精度の設定が推奨されます。
プレゼンテーション用
1# グラフィックススタイル(見やすい)
2Canvas.Style Modern
3
4# 大きめのデフォルトキャンバス
5Canvas.DefW 1000
6Canvas.DefH 750
7
8# 保存形式
9Canvas.SaveAsDefaultType png
10
11# ヒストグラム設定
12Hist.Binning.1D.x 100
13Hist.Binning.2D.x 40
14Hist.Binning.2D.y 40
15Hist.Precision.1D float
16Hist.Precision.2D float
17
18# 統計情報非表示
19Stat 0
スクリーン表示用には見やすさを重視した設定です。
データ分析用
1# グラフィックススタイル
2Canvas.Style Plain
3
4# キャンバスサイズ
5Canvas.DefW 800
6Canvas.DefH 600
7
8# 高精度ヒストグラム
9Hist.Binning.1D.x 200
10Hist.Binning.2D.x 100
11Hist.Binning.2D.y 100
12Hist.Binning.3D.x 50
13Hist.Binning.3D.y 50
14Hist.Binning.3D.z 50
15Hist.Precision.1D double
16Hist.Precision.2D double
17Hist.Precision.3D double
18
19# 詳細な統計情報
20Stat 1111111
21Fit 1111111
詳細な解析用には高精度ビニングが有効です。
対話型使用
1# グラフィックススタイル
2Canvas.Style Modern
3
4# 履歴ファイル
5Rint.History $(HOME)/.root_hist
6
7# ウェルカムメッセージ
8Rint.WelcomeLite no
9
10# コマンドラインエディタ
11Rint.Editor nano
12
13# プロンプト
14Rint.Prompt "root [%d] "
ROOT対話モードでの快適性を向上させます。
よく使う設定オプション
Canvas(キャンバス)設定
オプション |
説明 |
例 |
|---|---|---|
|
デフォルトスタイル |
Plain, Modern, ATLAS, CMS |
|
デフォルト幅(ピクセル) |
700 |
|
デフォルト高さ(ピクセル) |
500 |
|
デフォルトX座標 |
10 |
|
デフォルトY座標 |
10 |
|
保存形式 |
pdf, png, jpg, eps |
Hist(ヒストグラム)設定
オプション |
説明 |
例 |
|---|---|---|
|
1D ビニング数 |
100 |
|
2D X ビニング数 |
40 |
|
2D Y ビニング数 |
40 |
|
3D X ビニング数 |
20 |
|
1D 精度 |
float, double |
|
2D 精度 |
float, double |
|
3D 精度 |
float, double |
Rint(対話モード)設定
オプション |
説明 |
例 |
|---|---|---|
|
履歴ファイル |
$(HOME)/.root_hist |
|
ウェルカムメッセージ |
yes, no |
|
コマンドラインエディター |
nano, vim, emacs |
|
コマンドプロンプト |
"root [%d] " |
プロジェクト単位の設定(rootlogon.C)
プロジェクトごとの設定は、ディレクトリ直下のrootlogon.Cファイルで管理できます。
rootlogon.C の基本例
1// ~/.rootlogon.C
2// ROOTの起動時に自動実行されるスクリプト
3
4void rootlogon() {
5 // グラフィックススタイル設定
6 gROOT->SetStyle("Plain");
7 gROOT->ForceStyle();
8
9 // 統計情報表示設定
10 gStyle->SetOptStat(111110);
11 gStyle->SetOptFit(1111);
12
13 // グリッドライン表示
14 gStyle->SetPadGridy(1);
15
16 // ウェルカムメッセージ
17 cout << "\n=== ROOT initialized ===" << endl;
18 cout << "Version: " << gROOT->GetVersion() << endl;
19 cout << "==========================\n" << endl;
20}
rootlogon.CはROOT起動時に自動的に実行されます。
プロジェクト固有の設定
1// プロジェクトディレクトリ直下の rootlogon.C
2void rootlogon() {
3 // プロジェクト共通設定
4 gROOT->SetStyle("Plain");
5
6 // 解析用ライブラリを読み込み
7 gSystem->Load("./lib/MyAnalysis.so");
8
9 // 解析マクロディレクトリをパスに追加
10 gROOT->ProcessLine(".include ./include");
11
12 // プロジェクト固有のマクロを読み込み
13 gROOT->ProcessLine(".L ./macros/Utils.C");
14
15 cout << "Project initialized" << endl;
16}
各プロジェクトディレクトリにrootlogon.Cを配置することで、
そのディレクトリでROOTを起動した時のみ実行されます。
設定ファイルの読み込み順序
ROOTの起動時に以下の順序で設定ファイルが読み込まれます:
システム設定:
$ROOTSYS/etc/root/system.rootrcユーザー設定:
~/.rootrc(この値で上書き)対話スクリプト:
~/.rootlogon.C(存在する場合)プロジェクト設定:
./rootlogon.C(存在する場合)
後から読み込まれたファイルが同じ設定キーを含む場合は、 新しい値で上書きされます。
注意事項
ファイルフォーマット:
.rootrcは大文字小文字を区別します構文エラー: 構文エラーがあるとROOT起動時に警告が出ます
環境変数:
$(HOME)のように$()形式で環境変数を参照できますコメント:
#で始まる行はコメント行です複数行設定: 継続する場合は行末に
\を付けますrootlogon.C の言語: C++ 言語で記述します
権限:
.rootrcは本人のみ読み取り可能にしてください:chmod 600 ~/.rootrc
トラブルシューティング
設定が反映されない場合
# キャッシュをクリアしてから再起動
$ rm -rf ~/.root_*
$ root
設定ファイルの構文をチェック
# 利用可能な全設定オプションを確認
$ root -b -q -x 'gEnv->Print(); .q'
rootlogon.C が実行されない場合
# ホームディレクトリの rootlogon.C が読み込まれているか確認
$ cat ~/.rootlogon.C
# または ROOT 起動時の出力を確認
$ root -v 2>&1 | grep -i logon