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 とかを付けないと消えてくれない。