I’m attempting to access an ntuple that has some of its data organized in vectors of vectors. To be specific the .h file that is generated upon executing MakeClass has a lines like
where the last line seems to be the problem when I uncomment things one line at a time. Everything works fine for ints, doubles and vectors of ints and vectors of doubles.
If anyone has a way to fix this, please let me know.
#ifdefCINT #pragma link C++ class std::vector<vector >+; #endif
At run time I now get
root [2] x.Loop()
5 318 //these are just values from the first event that I am printing
*** glibc detected *** free(): invalid pointer: 0x0a9f6948 ***
Both these suggestions taken together still did not work; I get a similar message as the one I listed above during runtime after compliling.
I also get the following while just trying to interpret
Error in TTree::SetBranchAddress: The class requested (vector<vector<float,allocator > >) for the branch “trk_PixPullEtaPix_Up” refer to an stl collection and do not have a compiled CollectionProxy. Please generate the dictionary for this class (vector<vector<float,allocator > >)
I get that, as near as I can tell, for any branch that is a vector<vector >
Your unchanged code runs fine for me (even with valgrind) with ROOT 5.17/04. I suggest that you upgrade to a newer version of root (or if
you already have, try to run with valgrind to give us more information).