ROOTでゲートをかけた部分だけのrootファイルを作る
東海村にいます。後輩の指導と自分自身のお勉強。
田舎なんだろうなあって覚悟しながらきたのですが、思っていた数倍は快適です。
余計なことを考えずに研究をするにはかなり良い環境かもしれない・・・
CERN ROOT
で、ゲートをかけた一部分だけのtreeだけを別のrootファイルに書き出す方法の覚え書き。
#include <stdlib.h> #include <string.h> #include <fstream> #include <iostream> using namespace std; void toROOT(){ TFile *infile = new TFile("元のrootファイル.root"); TFile *fout = new TFile("新しく作りたいrootファイル.root","recreate"); ((TTree*)infile->Get("treeの名前"))->CopyTree("書き出す条件"); fout->Write(); fout->Close(); }
CopyTree
内で指定した条件に合致しているデータのみを新しいrootファイルとして書き出してくれます。
ほしい領域だけにゲートをかけたrootファイルが作れるので、処理が軽くなって便利。
GUIのToolBarにあるハサミマークからカットした領域、CUTG
だけを書き出すことも可能。