Connot read objects from subdirectories in ROOT files

From: ROHLFS Reiner (Reiner.Rohlfs@obs.unige.ch)
Date: Sun Mar 05 2000 - 10:54:08 MET


Hi ROOT - team

I have problems to find my object in a ROOT file that I have written into a
subdirectory. It disappears after I close and reopen the ROOT file:

Warning in <TGClient::GetColorByName>: couldn't retrieve color LightYellow
  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   2.23/12  21 February 2000   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

FreeType Engine v1.1 used to render TrueType fonts.

CINT/ROOT C/C++ Interpreter version 5.14.25, Nov 25 1999
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] TFile * file = new TFile("subdir.root", "NEW")  
root [1] file->IsOpen()
(Bool_t)1
root [2] TNamed *name = new TNamed("my Name", "my title")
root [3] TDirectory * dir = file->mkdir("sub")
root [4] dir->cd()
(Bool_t)1
root [5] name->Write("my Name")
root [6] file->ls()
TFile**         subdir.root
 TFile*         subdir.root
  TDirectory*           sub     sub
   KEY: TNamed  my Name;1       my title
  KEY: TDirectory       sub;1   sub
						// up to here everything looks
						// OK for me

root [7] delete file
root [8] TFile * file = new TFile("subdir.root", "READ") 
root [9] file->IsOpen()                                  
(Bool_t)1
root [10] file->ls()                                     
TFile**         subdir.root
 TFile*         subdir.root
  KEY: TDirectory       sub;1   sub
						// here "TNamed  my Name" is
						// missing ??

root [11] gDirectory->cd("sub")
(Bool_t)1
root [12] gDirectory->ls()
TDirectory*             sub     sub
root [13] gDirectory->pwd()
subdir.root:/sub
root [14] name->Read("my Name")
Error in <TNamed::Read>: Key not found
						// I cannot read the object

root [15] file->Map()
20000305/103617  At:64        N=88        TFile         
20000305/103650  At:152       N=75        TDirectory    
20000305/103725  At:227       N=79        TNamed        
20000305/103738  At:306       N=94        TFile         
20000305/103738  At:400       N=55        TFile         

						// But somehow TNamed is 
						// available in the file



What is wrong with these statements?
I run these on a SUN SPARC station.

Thanks Reiner.



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:20 MET