FC2ブログ
冴えないポスドクの備忘録
ポスドクになっちゃった。最近めっきり更新してないから、日記というかプログラムとかメモとかおいておこうかな
プロフィール

asu2ikl4

Author:asu2ikl4
ポスドク
物理学専攻
テーマ「高エネルギー素粒子原子核物理」、「放射線測定器開発」など

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Treeがちゃんと保存されない
ROOT解析プログラムでTreeを作成し、
コマンド「tree->Write()」
をしたのに、エラーが生じて保存されない。
どうしてだろう?

詳しい状況を説明すると、
あるディレクトリ内でROOTファイル「tmp.root」が存在している
この中にデータをFill()したtreeを保存したい。

$root
[0] f=new TFile("tmp.root")
[1] ...ループでデータ読み込み...
[2] tree->Fill()
[3] tree->Write()
Warning in : file t1 not opened in write mode
(Int_t)0
[4] .ls
TFile** tmp.root
TFile* tmp.root
OBJ: TTree tree: tree


上手く保存されない原因は、
ROOTファイルを開く時のモードが書き込み可能になっていないことである。

TFile()コマンドには2つの引数をもつ
最初はファイル名
2つめはファイルをひらくときのモード選択である。

何もないと読み込みのみである。
コマンド:"recreate" ... 新しくROOTファイルを書き込む
コマンド:"update" ... 既存のROOTファイルを上書きで書き込む、新規でも可能


Treeの保存についてはTFileの書き込みモードを許可していないと
ちゃんと保存されないみたい。




スポンサーサイト

コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://koeq.blog.fc2.com/tb.php/7-bf132729
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。