如何将分支添加到已存在的TTree:ROOT
How to add a Branch to An Already Existing TTree: ROOT
在进行模拟后,我有一个现有的TTree。我想在这棵树上加一个树枝,我想把它叫做Muon.Mass。我还想给Muon.Mass分支一个值0.1。
我该怎么写?
我已经了解了如何从头开始创建TTrees,以及如何拥有不同变量的分支。但当我已经有了TTree时,我不知道该怎么办。
您可以在现有TTree上调用TTree::Branch
方法,方法与在新TTree上相同。为了填充,您需要确保只填充分支。(这是从https://github.com/pseyfert/tmva-branch-adder)
void AddABranch(TTree* tree) {
Float_t my_local_variable;
TBranch* my_new_branch = tree->AddBranch( ... /* use address of my_local_variable */ );
for (Long64_t entry = 0 ; entry < tree->GetEntries() ; ++e ) {
tree->GetEntry();
/* something to compute my_local_variable */
my_new_branch->Fill();
}
}
作为替代方案,您可能需要查看树友的根教程。
顺便说一句,根据你想对树做什么/把树交给谁,我建议不要在分支名称中使用.
,因为它们在运行MakeClass
时会引起头痛(分支名称可以包含句点,但c++变量不能,所以每个分支自动生成的类成员都会进行字符替换(。
相关文章:
- C++模板来检查友元函数的存在
- 既然存在危险,为什么项目要使用-I include开关
- 我们可以访问一个不存在的联盟的成员吗
- C++:对不存在的命名空间使用命名空间指令
- C++quit()函数中可能存在作用域问题
- C++擦除(如果存在)
- g++ 说函数不存在,即使包含正确的标头
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 有了gcc,是否可以链接库,但前提是它存在
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- gcc和clang在表达式是否为常量求值的问题上存在分歧
- C++Builder中的OnClick事件签名存在问题
- 如何正确地将分支添加到已存在的树中
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 如何检查QList中是否存在值
- 根据某个函数是否存在启用模板
- 如何将分支添加到已存在的TTree:ROOT
- 地图计数确实很重要,或者只是检查是否存在
- 通用C++/Python 多语言的存在
- 为什么我的共享库中存在展开符号