ROOTでの解析方法のメモ書き 最終更新2021/7/2 戻る
TCutGでのカットの作り方
View->Toolbarでツールバーを表示させる
はさみマークをクリック、図上で範囲を選択
((TCutG*)gROOT->GetListOfSpecials()->FindObject("CUTG"))->SetName("cg_fp7pla");
ROOT
ファイルにkeyとして追加する場合は
TFile
*cut =
TFile::Open("analysis/cut.root","update");
cg_fp7pla->Write();
複数のファイルに跨る同じ形式のtreeの結合(TChain)
TFile
*cut = TFile::Open("analysis/cut.root","update");
TChain
*tr= new TChain("tr",
"");
tr->Add("merged/merge_0006_0003-2.root");
tr->Add("merged/merge_0007_0004.root");
tr->Write();
それぞれのrootファイルに含まれるtrというツリーをtrというTChainに入れる。
これでtr->Draw(~~~)という感じで使える
TChainに含めたファイル一覧(リスト)の取得
->ls()を使えば一発だった。
tr->ls();
OBJ:
TChain tr : 0 at: 0x4b2c2c0
merged/merge_0007_0004-2.roottree:tr entries=<not calculated>
merged/merge_0006_0003-2.roottree:tr entries=<not calculated>
TEventListの使い方
tree解析で毎回同じカット条件を適用する場合などに、条件でカットしたイベントのリストを作ることが出来る。
一旦リストを作ってしまえば、カット条件を掛けるのに使った独自の関数の再読み込みをせずに利用できる。
TFile
*cut = TFile::Open("analysis/cut.root","update");
//ファイルに書き込む場合
.x
analysis/ppactsumcut.cxx; //自分で作ったマクロの実行&関数のロード
tr->Draw(">>elist1",
"cut_func(ppacs.fppacs.fID[0],ppacs.fppacs.ftsumx[0])");
//bool型の独自関数で条件設定
tr->SetEventList(elist1);
tr->Draw("ppacs.fppacs.ftsumx:ppacs.fppacs.fID>>h2(40,0,40,200,0,200)","","colz")
elist1->SetName("elist1");
elist1->SetTitle("PPAC
TsumX BGrem");
elist1->Write();
TFileに含まれるKeyを消すとき
TFile
*cut =
TFile::Open("analysis/cut.root","update");
cut->Delete("f8pla;1");
ちゃんと
;1
とかを付けないと消えてくれない。