TEXTデータを ROOTのTreeにつめる
スペースで区切られた数字等をそれぞれ名前をつけて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(); }