Error in <TTree::Branch>: The class requested (ROOT::VecOps::RVec<array<float,3> >) for the branch "b" is an instance of an stl collection and does not have a compiled CollectionProxy. Please generate the dictionary for this collection (ROOT::VecOps::RVec<array<float,3> >) to avoid to write corrupted data.
I’m not sure which one is the best solution for both simple and safe of using TTree.
using TCloneArray?
using RVec<TArray?>
build a class contain std::array member and build a dict?
Could any one give me some advice, a tutorial world be the best
Error in <TBranchElement::InitializeOffsets>: Could not find the real data member '__elems_[3]' when constructing the branch 'b' [Likely missing ShowMember].
I solved this by specifying leaflist in the Branch definition. It is the concatenation of the variable name and the variable type are separated by a slash (/). The variable type must be 1 character. In your case, i.e. a float array with fixed size: b[3]/F.
Error in <TTreeReaderArrayBase::CreateContentProxy()>: The branch b contains data of type float. It cannot be accessed by a TTreeReaderArray<array<float,3>>
*** Break *** bus error
What do you hope to gain from using TObject there? (to answer the direct question it would increase the file by adding fBits and fUniqueID for each individual array instances.
Thanks @pcanal
What do you hope to gain from using TObject there?
I’m not sure whether it is safer to use a TObject. For This time I think there is no need to use it.