为什么此循环不会加载正确的事件?
Why won't this loop load the proper event?
这是我写的代码,它运行良好,但它似乎并没有实际加载事件…相反,它似乎用一个任意的小数字填充了直方图和计数。
include "TTree.h"
include "TFile.h"
include "TRandom.h"
include "TTree.h"
include "TCanvas.h"
include "TStyle.h"
include <iostream>
include "TH1.h"
include "TChain.h"
using namespace std;
void readtestsimple(){
TFile *file = TFile::Open("/file/");
TTree* comp_tree = (TTree*)file->Get("_compress_tree");
TChain* compchain = new TChain("_compress_tree");
compchain->Add("/file/");
TH1D *comp = new TH1D("comp","_compression",100,0,0.05);
Double_t _compression, _compressionU, _compressionV, _compressionY, _ch_compression;
Int_t _ch;
comp_tree->SetBranchAddress("_compression",&_compression);
comp_tree->SetBranchAddress("_compressionU",&_compressionU);
comp_tree->SetBranchAddress("_compressionV",&_compressionV);
comp_tree->SetBranchAddress("_compressionY",&_compressionY);
Long64_t nentries = compchain->GetEntries();
Long64_t nb = 0, nbytes = 0 ;
for (Long64_t i=0; i<nentries; i++) {
Long64_t entry = compchain->LoadTree(i);
if (entry <0 ) break;
nb = compchain->GetEntry(i); nbytes += nb;
cout << "entry = " << nb << endl;
cout << "compression = " << _compression << endl;
comp->Fill(_compression);
}
cout << "entries = " << nentries << endl;
}
我得到的输出是这个的长重复:
entry = 36
compression = 1.54768e-316
entry = 36
compression = 1.54768e-316
entry = 36
compression = 1.54768e-316
(最后是正确的条目数)。
我怎么做才能使它读出正确的条目?请帮助!
看起来你根本不需要使用comp_tree
指针。compchain
指针应该足以访问TTree
中的数据,因为TChain
是TTree
。因此,您应该能够将变量"链接"到链/树分支,如:
compchain->SetBranchAddress("_compression",&_compression);
不是comp_tree->SetBranchAddress("_compression",&_compression);
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 为什么加载SDF会导致Mobilizer创建闭环错误
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- 如何使用tinyxml2从XML加载父实体和子实体
- 如何在C++中使用pybind11加载一个pickle python列表
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- Python ctypes:不会按预期加载 dll
- 为什么会出现 gettnig 运行时错误:加载类型为"_Bit_type"(stl_bvector.h) 的空指针?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 是否可以在QT GUI应用程序中处理事件时播放加载动画指示器?
- 从C 加载HTTP页面到触发事件
- 如何在 Windows 8 上捕获触摸键盘加载事件
- QML:文档完全加载时触发的事件
- Nodejs C++事件发射器.加载项错误.MakeCallback中没有函数.method=发出中止陷阱:6
- 制作包含地图或场景信息的文件,例如要加载的资源、对象、位置、事件
- 为什么此循环不会加载正确的事件?