Hi Dan, I do not see a problem with your setup. I run 3.04/02 or 3.05 See example below Rene Brun void bugw(){ TFile *fout=new TFile("TreeMat.root","RECREATE"); TTree *tree=new TTree("test_tree","test_tree"); TMatrixD matrix(2,2); TMatrixD *pointer = &matrix; tree->Branch("matrix","TMatrixD",&pointer,64000,0); matrix(0,0)=1.; matrix(0,1)=2.; matrix(1,0)=3.; matrix(1,1)=4.; tree->Fill(); fout->Write(); delete fout; } void bugr() { TFile *f = new TFile("TreeMat.root"); TTree *T = (TTree*)f->Get("test_tree"); TMatrixD *matrix=0; T->SetBranchAddress("matrix",&matrix); T->GetEntry(0); matrix->Print(); T->MakeClass("T"); delete f; } void bug(){ bugw(); bugr(); gROOT->ProcessLine(".L T.C"); T t; t.GetEntry(0); t->matrix->Print(); } Dan Krop wrote: > > Hi, > I am having a problem creating a tree with a branch of TMatrixD. Below is a > short test program showing the problem I have. It runs fine, but when I tree > to MakeClass() out of the tree and loop over it, I get a seg fault. I > apologize if this is some trivial mistake that I am overlooking. I am using > version 3.03/05 on RH 7.3. > > Thanks in advance, > Dan > > //---------------------------------------------------------------------------------- > void TreeMat(){ > > TFile *fout=new TFile("TreeMat.root","RECREATE"); > TTree *tree=new TTree("test_tree","test_tree"); > TMatrixD matrix(2,2); > tree->Branch("matrix","TMatrixD",&matrix,64000,0); > > matrix(0,0)=1.; > matrix(0,1)=2.; > matrix(1,0)=3.; > matrix(1,1)=4.; > > tree->Fill(); > > fout->Write(); > fout->Close(); > } > //--------------------------------------------------------------------------------------
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:08 MET