[ROOT] Problem with tree of TMatrixD

From: David Chamont (David.Chamont@poly.in2p3.fr)
Date: Wed Mar 20 2002 - 18:15:20 MET


Hi,

The program below does not work (I use Root 3.03.02)
More or less the same with TVectorD is working fine.
Help welcome.

David C.



#include <TROOT.h>
#include <TFile.h>
#include <TTree.h>
#include <TMatrixD.h>
#include <iostream>

void main()
 {
  TROOT rdummy("dummy","dummy") ;
  TFile * file = 0 ;
  TTree * tree = 0 ;
  TMatrixD * data = 0 ;

  file =  new TFile("dummy.root","recreate") ;
  tree = new TTree("tree","dummy") ;
  tree->Branch("data","TVectorD",&data) ;
  data = new TMatrixD(2,2) ;
  (*data) = 1 ;
  tree->Fill() ;
  data = new TMatrixD(3,3) ;
  (*data) = 2 ;
  tree->Fill() ;
  tree->Write() ;
  delete data ;
  data = 0 ;
  delete file ;

  file =  new TFile("dummy.root","read") ;
  tree = (TTree *)file->Get("tree") ;
  tree->SetBranchAddress("data",&data) ;
  Int_t nbentries = (Int_t)tree->GetEntries() ;
  for ( Int_t entry = 0 ; entry < nbentries ; ++entry )
   {
    tree->GetEntry(entry) ;
    Int_t nb = data->GetNrows() ;
    for ( Int_t i = 0 ; i < nb ; ++i )
     { cout<<((*data)(i,0))<<' ' ; }
    cout<<endl ;
   }
  delete data ;
  data = 0 ;
  delete file ;

  return 0 ;
 }



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:46 MET