nastein
November 13, 2017, 3:56pm
1
Hello, I cannot seem to get my TTreeReader to read TVector3s.
I’ve attached my code below.
I simply run:
TChain* fChain = new TChain("T"); fChain->AddFile("anamuse.root");
fChain->Process("MuseSelector.C")
And I get the error:
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.
MuseSelector.C (2.2 KB)
nastein
November 14, 2017, 5:26pm
2
I would really appreciate some help from fellow ROOTers
Axel
November 15, 2017, 11:48am
3
Hi Noah,
Sorry it took so long! I doubt that TTreeReader
is able to convert a TVector3
to a TTreeReadArray<double>
. Does it work if you declare it as TTreeReadValue<TVector3>
?
Cheers, Axel.
nastein
November 15, 2017, 2:16pm
4
I apologize, I uploaded the wrong piece of code, I have been declaring it as TTreeReaderArray and it still will not work. Thank you.
Axel
November 15, 2017, 2:28pm
5
Sorry, my fingers didn’t do what my brain asked them to type. I meant to write TTreeReadValue<TVector3>
. (I have edited my post.)
Does that help?
nastein
November 15, 2017, 2:35pm
6
Neither
TTreeReaderValue<TVector3>
nor
TTreeReaderArray<TVector3>
work, they both return the same error as in my original post.
Axel
November 15, 2017, 3:02pm
7
Hmm too bad, Noah, time for me to spin up gdb and debug what’s happening. I’ll be back…
Axel
November 15, 2017, 4:35pm
8
Even worse - it works for me:
root.exe -l -b vec3.root
root [0]
Attaching file vec3.root as _file0...
(TFile *) 0x7f8fb8671e20
root [1] TTreeReader r("t")
(TTreeReader &) Name: TTreeReader Title: A simple interface to read trees
root [2] TTreeReaderValue<TVector3> v(r, "v3")
(TTreeReaderValue<TVector3> &) @0x106cea110
root [3] r.Next()
(bool) true
root [4] v->X()
(double) 0.1
root [5] v->Z()
(double) 0.3
root [6] t->Print()
******************************************************************************
*Tree :t : vec3 *
*Entries : 1 : Total = 984 bytes File Size = 492 *
* : : Tree compression factor = 1.04 *
******************************************************************************
*Br 0 :v3 : TVector3 *
*Entries : 1 : Total Size= 599 bytes File Size = 114 *
*Baskets : 1 : Basket Size= 32000 bytes Compression= 1.04 *
*............................................................................*
Can you send tree->Print()
for your tree?
Cheers, Axel.
nastein
November 15, 2017, 6:20pm
9
Yep, I get the same sort of output as you. Except TTreeReaderValue doesn’t work for me.
nastein
November 15, 2017, 9:36pm
10
What Version of ROOT are you using? I’m using v6-08-06
Axel
November 16, 2017, 8:22am
11
Ha! Indeed, I can reproduce this issue in 6.08/06.
It works not only in the master, but also with e.g. 6.10.08. Can you upgrade?
system
Closed
November 30, 2017, 8:23am
12
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.