Re: [ROOT] Saving and loading TExMaps....

From: Edward Moyse (edward.moyse@cern.ch)
Date: Mon Jun 23 2003 - 08:35:34 MEST


> The problem is you didn't write your TExMap in the file, so it's normal
> you can't get it back afterwards ;-)

Oops! ;-)

> However if you replace
>
> hfile->Write("TestMap", TObject::kSingleKey);
>
> with
>
> testMap->Write();

That was a typo. I actually meant to do:
testMap->Write("TestMap", TObject::kSingleKey);
because I had already tried the approach you suggested, and  got/get the 
following problem:

root [0] TFile* hfile = new TFile("test.root","RECREATE");
root [1] TExMap* testMap = new TExMap();
root [2] testMap->Add(1,2);
root [3] testMap->Add(2,56);
root [4] testMap->Add(3,256);
root [5] cout << (testMap->GetValue(2))<<endl;;
56
root [6] cout << (testMap->GetValue(1))<<endl;;
2
root [8] testMap->Write();
root [9] hfile->Close();
root [10] gROOT->Reset()

Sure enough the TExMap appears to be added to the root file properly:

root [14]  TFile f("test.root")
root [15] f.ls()
TFile**         test.root
 TFile*         test.root
  KEY: TExMap   TestMap;1       Map with external hash

But I can't seem to "Get" it properly:

root [12] TExMap *map = (TExMap*)f2.Get("TExMap");
root [13] cout << (map->GetValue(2))<<endl;;
0
root [14] cout << (map->GetValue(1))<<endl;;
0

i.e. it seems to be empty!

Any help would be much appreciated!

Cheers,

Ed



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET