The class structure and Object-Orientation make possible more modular programming. However, programs consisting of several hundred classes and several hundred thousand lines of code may be difficult to understand, in particular for novice users. ROOT provides a set of tools to help understanding an existing class structure, a data structure in memory or files.
THtml html; html.MakeClass(myclass);
If a data member is a pointer to another object, one can click on the pointer and, in turn, inspect the pointed object,etc.
TFile f("hsimple.root"); // connects a file f.Dump(); // produces the following dump of the object f fBEGIN 64 First used byte in file fEND 459500 Last used byte in file fVersion 9010 File format version fCompress 1 (=1 file is compressed, 0 otherwise) fOption.*fData READ fUnits 4 Number of bytes for file pointers fSeekFree 459414 Location on disk of free segments structure fNbytesFree 86 Number of bytes for free segments structure fWritten 0 Number of objects written so far fSumBuffer 0 Sum of buffer sizes of objects written so far fSum2Buffer 0 Sum of squares of buffer sizes of objects written so far *fStream ->4033f690 Input file stream identifier *fOStream ->0 Output stream (output on same file as fStream) *fFree ->0 Free segments linked list table fModified 1 true if directory has been modified fWritable 0 true if directory is writable fDatimeC.fDatime 139248235 Date (relative to 1995) + time fDatimeM.fDatime 139248246 Date (relative to 1995) + time fNbytesKeys 307 Number of bytes for the keys fNbytesName 120 Number of bytes in TNamed at creation time fSeekDir 64 Location of directory on file fSeekParent 0 Location of parent directory on file fSeekKeys 459107 Location of Keys record on file *fFile ->4033f508 pointer to current file in memory *fKeys ->4033f628 Pointer to keys list in memory *fMother ->0 pointer to mother of the list *fIndex ->0 Index of the list *fListHead ->4033f5f0 Pointer to Objects in this directory fName.*fData hsimple.root fTitle.*fData fUniqueID 0 object unique identifier fBits 50331649 bit field status word
- Date/Time when the object was written. - Position of the object (starting byte number). - Number of bytes occupied by the object. - Object class name. - Compression factor (if file is compressed).For example, to see the map of the file generated by the tutorial hsimple, you can type the following commands:
TFile f("hsimple.root"); //connect file f.Map(); // this produces the following output 970106/120943 At:64 N=150 TFile 970106/120944 At:214 N=28909 TBasket CX = 1.11 970106/120945 At:29123 N=29046 TBasket CX = 1.10 970106/120946 At:58169 N=29021 TBasket CX = 1.10 970106/120946 At:87190 N=28994 TBasket CX = 1.10 970106/120947 At:116184 N=29069 TBasket CX = 1.10 970106/120948 At:145253 N=29101 TBasket CX = 1.10 970106/120948 At:174354 N=29019 TBasket CX = 1.10 970106/120949 At:203373 N=28930 TBasket CX = 1.11 970106/120949 At:232303 N=29040 TBasket CX = 1.10 970106/120950 At:261343 N=29001 TBasket CX = 1.10 970106/120951 At:290344 N=29035 TBasket CX = 1.10 970106/120951 At:319379 N=29003 TBasket CX = 1.10 970106/120952 At:348382 N=29008 TBasket CX = 1.10 970106/120953 At:377390 N=29049 TBasket CX = 1.10 970106/120953 At:406439 N=29025 TBasket CX = 1.10 970106/120953 At:435464 N=455 TH1F CX = 1.80 970106/120954 At:435919 N=1724 TH2F CX = 4.33 970106/120954 At:437643 N=1850 TProfile CX = 1.55 970106/120954 At:439493 N=19614 TNtuple CX = 1.74 970106/120954 At:459107 N=307 TFile 970106/121159 At:459414 N=86 TFile
gObjectTable->Print(); produces the following output: Object statistics class cnt on heap size total size heap size ============================================================================ TH1F 1 1 448 448 448 TObject 11 11 12 132 132 TFileType 6 6 36 216 216 TRint 1 1 116 116 116 TClassTable 1 1 12 12 12 TObjectTable 1 1 12 12 12 THashList 5 5 40 200 200 THashTable 5 5 36 180 180 TList 24 24 36 864 864 TStyle 1 1 328 328 328 TGeometry 1 1 64 64 64 TGaxis 1 0 124 124 0 TAxis 6 3 88 528 264 TUnixSystem 1 1 256 256 256 TPostScript 1 1 764 764 764 TOrdCollection 4 4 40 160 160 TEnv 1 1 24 24 24 TBenchmark 1 1 52 52 52 TSignalHandler 1 1 20 20 20 TFileHandler 2 2 20 40 40 TCint 1 1 208 208 208 TFile 1 1 160 160 160 TROOT 1 0 244 244 0 TClass 6 6 64 384 384 TKey 4 4 80 320 320 TStopwatch 1 0 56 56 0 TGuiFactory 2 2 28 56 56 TGXW 1 1 84 84 84 TRandom 1 1 32 32 32 TGX11 1 1 176 176 176 ---------------------------------------------------------------------------- Total: 94 88 3660 6260 5572 ============================================================================