physpolyglot

主にPC関連の自分用メモのうち、役立ちそうなものを共有します。

TTreeFormulaの使い方

自分用メモ。適宜加筆する予定。コードはコンパイルチェックしてません。

目的

TTreeに格納されている数字から任意(限界は?)の計算を行う。

使用法(例)

コンストラクタ

TTreeFormula *formula = new TTreeFormula("formula_name","branch.fValue", tree);

値を読み出してヒストグラムにFillする

インスタンスが1つの場合

branch.fValueを適当なヒストグラムにFillする。 その際anotherBranch.fValue > 0という制限をかける。

TTreeFormula *formula = new TTreeFormula("formula_name","branch.fValue", tree);
TTreeFormula *selection = new TTreeFormula("selection_name","anotherBranch.fValue > 0", tree);
for (Long64_t iEvent = 0, nEvent = tree->GetEntries(); iEvent != nEvent; ++iEvent) {
   tree->LoadTree(iEvent);
   if (selection->EvalInstance()) {
      h->Fill(formula->EvalInstance());
   }
}

よく分かっていないところ

TTreeFormulaManager::Syncの働き