// A ROOT file is a suite of consecutive data records (TKey's) with // the following format (see also the TKey class). If the key is // located past the 32 bit file limit (> 2 GB) then some fields will // be 8 instead of 4 bytes: // ----------TKey--------------- // byte 0->3 Nbytes = Number of bytes compressed record (TKey+data) TKey::fNbytes // 4->5 Version = TKey class version identifier TKey::fVersion // 6->9 ObjLen = Number of bytes of uncompressed data TKey::fObjLen // 10->13 Datime = Date and time when record was written to file TKey::fDatime // | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second // 14->15 KeyLen = Number of bytes in key structure (TKey) TKey::fKeyLen // 16->17 Cycle = Cycle of key TKey::fCycle // 18->21 [18->25] SeekKey = Byte offset of record itself (consistency check) (64) TKey::fSeekKey // 22->25 [26->33] SeekPdir = Byte offset of parent directory record (0) TKey::fSeekPdir // 26->26 [34->34] lname = Number of bytes in the class name (5) TKey::fClassName // 27->.. [35->..] ClassName = Object Class Name ("TFile") TKey::fClassName // 0->0 lname = Number of bytes in the object name TNamed::fName // 1->.. Name = lName bytes with the name of the object TNamed::fName // 0->0 lTitle = Number of bytes in the object title TNamed::fTitle // 1->.. Title = lTitle bytes with the title of the object TNamed::fTitle // --------DATA----------------- // 0->0 lname = Number of bytes in the TFile name TNamed::fName // 1->.. Name = lName bytes with the name of the TFile TNamed::fName // 0->0 lTitle = Number of bytes in the TFile title TNamed::fTitle // 1->.. Title = lTitle bytes with the title of the TFile TNamed::fTitle // 0->0 Modified = True if directory has been modified TDirectory::fModified // 1->1 Writable = True if directory is writable TDirectory::fWriteable // 2->5 DatimeC = Date and time when directory was created TDirectory::fDatimeC // | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second // 6->9 DatimeM = Date and time when directory was last modified TDirectory::fDatimeM // | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second // 10->13 NbytesKeys= Number of bytes in the associated KeysList record TDirectory::fNbyteskeys // 14->17 NbytesName= Number of bytes in TKey+TNamed at creation TDirectory::fNbytesName // 18->21 [18->25] SeekDir = Byte offset of directory record in file (64) TDirectory::fSeekDir // 22->25 [26->33] SeekParent= Byte offset of parent directory record in file (0) TDirectory::fSeekParent // 26->29 [34->41] SeekKeys = Byte offset of associated KeysList record in file TDirectory::fSeekKeys