イベントを自動保存したい(TTree::AutoSave)
1// 10000イベントごとに自動的にフラッシュ
2tree->SetAutoFlush(10000);
3tree->SetAutoSave(100000);
4
5// Event loop
6for (int i = 0; i < n; ++i) {
7 // Acquire data
8 ch1 = ...;
9 ch2 = ...;
10
11 // Fill tree
12 tree->Fill();
13
14 // AutoFlush: called every 10000 events
15 // AutoSave: called every 100000 events
16 // AutoSave manually
17 if (i % 50000 == 0) {
18 tree->AutoSave("SaveSelf");
19 printf("Saved %d events...\n", i);
20 }
21}
TTree::AutoSaveは、指定したイベント数もしくはファイルサイズごとに自動的にファイルに保存する機能です。
TTree::SetAutoFlushで、指定したイベント数ごとに自動的にファイルにフラッシュするように設定できます。
TTree::SetAutoSaveで、指定したイベント数もしくはファイルサイズごとに自動的にファイルに保存するように設定できます。
注意
TTree:Writeは、ファイルに書き込む際にTTreeの内容を完全に保存します。
イベントごとに呼び出してはいけません。
イベント数が多い場合は、AutoSaveやAutoFlushを活用して、定期的にファイルに書き出すようにします。