gpt4 book ai didi

c++ - 根目录 : TTreeReader and TVector3

转载 作者:行者123 更新时间:2023-11-28 01:40:46 26 4
gpt4 key购买 nike

我希望了解 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com