作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望了解 ROOT 的 TTreeReader 和 TVector3 类的人可以帮助我。
我正在尝试使用 TTreeReader 读取包含 TVector3 的 TTree。
class MuseSelector : public TSelector {
public :
TH1D* h_doca_;
TH1D* h_vertex_z_;
TTreeReader fReader;
TTreeReaderValue<double> mDoca;
TTreeReaderValue<TVector3> mVertex;
MuseSelector(TTree * = 0): mDoca(fReader, "recon_doca"), mVertex(fReader, "recon_vertex") {}
virtual ~MuseSelector() {}
virtual void Init(TTree *tree);
virtual void SlaveBegin(TTree *tree);
virtual Bool_t Process(Long64_t entry);
virtual void Terminate();
virtual Int_t Version() const { return 2; }
ClassDef(MuseSelector,0);
};
void MuseSelector::Init( TTree *tree)
{
fReader.SetTree(tree);
}
void MuseSelector::SlaveBegin(TTree *tree)
{
h_doca_ = new TH1D("h_doca_", "", 100, 0, 100);
h_vertex_z_ = new TH1D("h_vertex_z_", "", 50, -100, 100);
GetOutputList()->Add(h_doca_);
GetOutputList()->Add(h_vertex_z_);
}
Bool_t MuseSelector::Process(Long64_t entry)
{
fReader.SetEntry(entry);
h_doca_->Fill(*mDoca, 1);
h_vertex_z_->Fill((*mVertex)->z(), 1);
return kTRUE;
}
void MuseSelector::Terminate()
{
h_doca_->Print();
h_doca_->Draw();
h_vertex_z_->Draw();
}
我在 ROOT 中运行这个类:
TChain *fChain = new TChain("T"); fChain->AddFile("anamuse.root");
fChain->Process("MuseSelector.C");
其中 anamuse.root 包含一个名为“T”的树,其中包含一个 TVector3。
当我运行它时出现这个错误。
Error in <TTreeReaderValueBase::GetBranchDataType()>: Unknown type and class combination: -1, TVector3
Error in <TTreeReaderValueBase::CreateProxy()>: The branch recon_vertex contains data of type {UNDETERMINED TYPE}, which does not have a dictionary.
如有任何帮助,我们将不胜感激。谢谢。
最佳答案
ROOT 论坛的讨论结论是:那是一个错误,已经修复了一段时间,例如6.10.08 有那个修复。升级ROOT就可以了!
关于c++ - 根目录 : TTreeReader and TVector3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47269543/
我是一名优秀的程序员,十分优秀!