Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何防止将TTree写入TFile_C++_Root Framework - Fatal编程技术网

C++ 如何防止将TTree写入TFile

C++ 如何防止将TTree写入TFile,c++,root-framework,C++,Root Framework,在我的根脚本中,我有一个TTree,我创建了这个树,但从不希望保存它。确保t树永远不会保存到t文件的最佳方法是什么 我曾想过为我创建的每一棵树创建一个t文件,但不需要保存,但感觉应该有一种更简单的方法将TTree标记为不可写入。我想您需要TTree::SetDirectory。传入一个0指针,将没有“所有者”目录,包括没有根内存管理。这可能就是我想要的,尽管这会导致TTree在我尝试访问它时消失。它相当长而且很难解开,如果我无法跟踪错误,我将尝试制作一个MWE。使用tree->SetDirect

在我的根脚本中,我有一个
TTree
,我创建了这个树,但从不希望保存它。确保
t树
永远不会保存到
t文件
的最佳方法是什么


我曾想过为我创建的每一棵树创建一个
t文件
,但不需要保存,但感觉应该有一种更简单的方法将
TTree
标记为不可写入。

我想您需要
TTree::SetDirectory
。传入一个0指针,将没有“所有者”目录,包括没有根内存管理。

这可能就是我想要的,尽管这会导致
TTree
在我尝试访问它时消失。它相当长而且很难解开,如果我无法跟踪错误,我将尝试制作一个MWE。使用
tree->SetDirectory(0)
工作正常,但也会影响连接的树(正如我用
TTree::CopyTree
创建的
tree
),这是一个单独的问题。是的,根内存结构有点令人讨厌。您可能希望在TROOT(又名global var gROOT:)有很多功能,可以在文件、目录和临时目录(RAM?)之间切换内存上下文。至少对于直方图
SetDirectory
可以全局设置。也许你的TTree就是这样(不看TTree代码很难说)