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のグローバル設定ファイルです。

設定ファイルの場所

ファイル

説明

優先度

~/.rootrc

ユーザー設定(ホームディレクトリ)

最優先

$ROOTSYS/etc/root/system.rootrc

システム共通設定

次点

/etc/root/system.rootrc

システム全体設定

最後

後から読み込まれたファイルが同じ設定キーを含む場合、その値で上書きされます。

設定ファイルの探し方

# 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(キャンバス)設定

オプション

説明

Canvas.Style

デフォルトスタイル

Plain, Modern, ATLAS, CMS

Canvas.DefW

デフォルト幅(ピクセル)

700

Canvas.DefH

デフォルト高さ(ピクセル)

500

Canvas.DefX

デフォルトX座標

10

Canvas.DefY

デフォルトY座標

10

Canvas.SaveAsDefaultType

保存形式

pdf, png, jpg, eps

Hist(ヒストグラム)設定

オプション

説明

Hist.Binning.1D.x

1D ビニング数

100

Hist.Binning.2D.x

2D X ビニング数

40

Hist.Binning.2D.y

2D Y ビニング数

40

Hist.Binning.3D.x

3D X ビニング数

20

Hist.Precision.1D

1D 精度

float, double

Hist.Precision.2D

2D 精度

float, double

Hist.Precision.3D

3D 精度

float, double

Rint(対話モード)設定

オプション

説明

Rint.History

履歴ファイル

$(HOME)/.root_hist

Rint.WelcomeLite

ウェルカムメッセージ

yes, no

Rint.Editor

コマンドラインエディター

nano, vim, emacs

Rint.Prompt

コマンドプロンプト

"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の起動時に以下の順序で設定ファイルが読み込まれます:

  1. システム設定: $ROOTSYS/etc/root/system.rootrc

  2. ユーザー設定: ~/.rootrc(この値で上書き)

  3. 対話スクリプト: ~/.rootlogon.C(存在する場合)

  4. プロジェクト設定: ./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

リファレンス