こばりょ・ぶろぐ

実験物理専攻のゆるーい技術ブログ

TEXTデータを ROOTのTreeにつめる

koba-ryo.hatenablog.com

スペースで区切られた数字等をそれぞれ名前をつけてTreeに詰めるということをしたい。

make_tree.Cを作成した。

root make_tree.Cで同じディレクトリにあるデータファイルを読んで、 各列の数字の値を名前をつけてtreeにつめることができる。 value_name_listの数より、データの数列の数の方が多い場合は、value_name_listに対応する値以外は無視される。

{
  std::string input_name = "./run0028.dat";
  std::string output_name = "output.root";
  TString ifn = input_name;
  TString ofn = output_name;
  auto fout = new TFile(ofn, "recreate");
  auto tree = new TTree("tree","tree using ReadFile()");
  std::vector<std::string> value_name_list;
  value_name_list.push_back("adc1/I:");
  value_name_list.push_back("adc2/I:");
  value_name_list.push_back("adc3/I:");
  value_name_list.push_back("adc4/I");
  
  TString branch_names;
  for(const auto& name :value_name_list ){
    branch_names +=  name;
  }
  
  tree->ReadFile(ifn,branch_names);
  tree->Write();

}