TTreeを描画したい(TTree::Draw)
1#include <TFile.h>
2#include <TTree.h>
3
4TFile* file = new TFile("data.root");
5TTree* tree = (TTree*)file->Get("tree");
6
7// 基本的な描画
8tree->Draw("energy_deposit");
9
10// フィルター条件付き描画
11tree->Draw("energy_deposit", "parent_id==0");
TTree::DrawでTTreeの変数を描画できます。第1引数(varexp)に描画したい軸を設定し、第2引数(selection)にフィルター条件を設定します。
1import ROOT
2
3file = ROOT.TFile("data.root")
4tree = file.Get("tree")
5
6# 基本的な描画
7tree.Draw("energy_deposit")
8
9# フィルター条件付き描画
10tree.Draw("energy_deposit", "parent_id==0")
メソッドのシグネチャ
1Long64_t Draw(const char* varexp, const char* selection = "",
2 Option_t* option = "", Long64_t nentries = kMaxEntries,
3 Long64_t firstentry = 0)
引数と戻り値
引数:
varexp - 描画する変数。形式:
"variable"(1D)、"y:x"(2D)、"z:y:x"(3D)selection - フィルター条件(オプション、デフォルト: なし)
option - 描画オプション(オプション、デフォルト: 空文字列)
nentries - 処理するエントリ数(デフォルト: 全エントリ)
firstentry - 開始エントリ番号(デフォルト: 0)
戻り値:
描画されたエントリ数(条件を満たしたエントリ数)
1次元ヒストグラムを描画したい(Draw)
1#include <TFile.h>
2#include <TTree.h>
3
4TFile* file = new TFile("data.root");
5TTree* tree = (TTree*)file->Get("tree");
6
7tree->Draw("energy_deposit");
Drawメソッドで、単一の変数をヒストグラムとして描画できます。
2次元プロットを作成したい(Draw)
1#include <TFile.h>
2#include <TTree.h>
3
4TFile* file = new TFile("data.root");
5TTree* tree = (TTree*)file->Get("tree");
6
7tree->Draw("energy_deposit:position_x");
Drawメソッドで2つの変数の関係を散布図として可視化できます。横軸にposition_x、縦軸にenergy_depositがプロットされます。
フィルター条件付きで描画したい(Draw)
1#include <TFile.h>
2#include <TTree.h>
3
4TFile* file = new TFile("data.root");
5TTree* tree = (TTree*)file->Get("tree");
6
7tree->Draw("energy_deposit", "parent_id==0");
8
9// 複数条件を指定
10tree->Draw("energy_deposit", "parent_id==0 && energy_deposit>10");
Drawメソッドの第2引数に条件を指定することで、特定の条件を満たすデータのみを描画できます。論理演算子で複数条件を結合することも可能です。
描画結果から統計情報を取得したい(Draw)
1#include <TFile.h>
2#include <TTree.h>
3
4TFile* file = new TFile("data.root");
5TTree* tree = (TTree*)file->Get("tree");
6
7Long64_t n = tree->Draw("energy_deposit", "parent_id==0");
8std::cout << "Matched entries: " << n << std::endl;
Drawメソッドの戻り値でフィルター条件に合致したエントリ数を取得できます。
関連メソッド
TTree::Scan: データを表形式で表示TTree::GetEntries: 総エントリ数を取得TTree::GetLeaf: リーフ(葉)オブジェクトを取得