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

リファレンス