Logo ROOT   6.10/00
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Namespaces
file.py File Reference

Namespaces

 file
 

Detailed Description

This macro displays the physical ROOT file structure.

pict1_file.py.png
1 
2 from ROOT import TCanvas, TPaveLabel, TPave, TLine, TArrow, TText, TPaveText
3 from ROOT import gROOT
4 
5 c1 = TCanvas( 'c1', 'ROOT File description', 200, 10, 700, 550 )
6 
7 c1.Range( 0, -0.25, 21, 14 )
8 title = TPaveLabel( 5, 12, 15, 13.7, c1.GetTitle() )
9 title.SetFillColor( 16 )
10 title.Draw()
11 
12 # horizonthal file layout
13 file = TPave( 1, 8.5, 20, 11 )
14 file.SetFillColor( 11 )
15 file.Draw()
16 fileh = TPave( 1, 8.5, 2.5, 11 )
17 fileh.SetFillColor( 44 )
18 fileh.Draw()
19 lrh = TPave( 2.5, 8.5, 3.3, 11, 1 )
20 lrh.SetFillColor( 33 )
21 lrh.Draw()
22 lrh.DrawPave( 6.9, 8.5, 7.7, 11, 1 )
23 lrh.DrawPave( 10.5, 8.5, 11.3, 11, 1 )
24 lrh.DrawPave( 14.5, 8.5, 15.3, 11, 1 )
25 ldot = TLine( 1, 8.5, 0.5, 6.5 )
26 ldot.SetLineStyle( 2 )
27 ldot.Draw()
28 ldot.DrawLine( 2.5, 8.5, 9.4, 6.5 )
29 ldot.DrawLine( 10.5, 8.5, 10, 6.5 )
30 ldot.DrawLine( 11.3, 8.5, 19.5, 6.5 )
31 line = TLine( 2.6, 11, 2.6, 11.5 )
32 line.Draw()
33 line.DrawLine( 2.6, 11.5, 7, 11.5 )
34 arrow = TArrow( 7, 11.5, 7, 11.1, 0.01, '|>' )
35 arrow.SetFillStyle( 1001 )
36 arrow.Draw()
37 line.DrawLine( 7, 8.5, 7, 8.0 )
38 line.DrawLine( 7, 8.0, 10.6, 8 )
39 arrow.DrawArrow( 10.6,8, 10.6, 8.4, 0.01, '|>' )
40 line.DrawLine( 10.6, 11, 10.6, 11.5 )
41 line.DrawLine( 10.6, 11.5, 14.6, 11.5 )
42 arrow.DrawArrow( 14.6, 11.5, 14.6, 11.1, 0.01, '|>' )
43 line.DrawLine( 14.6, 8.5, 14.6, 8.0 )
44 line.DrawLine( 14.6, 8.0, 16, 8 )
45 ldot.DrawLine( 16, 8, 19, 8 )
46 vert = TText( 1.5, 9.75, 'File' )
47 vert.SetTextAlign( 21 )
48 vert.SetTextAngle( 90 )
49 vert.SetTextSize( 0.025 )
50 vert.Draw()
51 vert.DrawText( 2.0, 9.75, 'Header' )
52 vert.DrawText( 2.9, 9.75, 'Logical Record' )
53 vert.DrawText( 3.2, 9.75, 'Header' )
54 vert.DrawText( 7.3, 9.75, 'Logical Record' )
55 vert.DrawText( 7.6, 9.75, 'Header' )
56 vert.DrawText( 10.9, 9.75, 'Logical Record' )
57 vert.DrawText( 11.2, 9.75, 'Header' )
58 vert.DrawText( 14.9, 9.75, 'Logical Record' )
59 vert.DrawText( 15.2, 9.75, 'Header' )
60 hori = TText( 4.75, 10, 'Object' )
61 hori.SetTextAlign( 22 )
62 hori.SetTextSize( 0.035 )
63 hori.Draw()
64 hori.DrawText( 4.75, 9.5, 'Data' )
65 hori.DrawText( 9.2, 10, 'Deleted' )
66 hori.DrawText( 9.2, 9.5, 'Object' )
67 line.DrawLine( 6.9, 8.5, 10.5, 11 )
68 line.DrawLine( 6.9, 11, 10.5, 8.5 )
69 tbig = TText( 17, 9.75, '............' )
70 tbig.SetTextAlign( 22 )
71 tbig.SetTextSize( 0.03 )
72 tbig.Draw()
73 tbig.DrawText( 2.6, 7, 'fBEGIN' )
74 tbig.DrawText( 20., 7, 'fEND' )
75 arrow.DrawArrow( 2.6, 7, 2.6, 8.4, 0.01, '|>' )
76 arrow.DrawArrow( 20, 7, 20, 8.4, 0.01, '|>' )
77 
78 #file header
79 header = TPaveText( 0.5, .2, 9.4, 6.5 )
80 header.SetFillColor( 44 )
81 header.Draw()
82 fh = header.AddText( 'File Header' )
83 fh.SetTextAlign( 22 )
84 fh.SetTextSize( 0.04 )
85 header.SetTextSize( 0.027 )
86 header.SetTextAlign( 12 )
87 header.AddText( ' ' )
88 header.AddLine( 0, 0, 0, 0 )
89 header.AddText( '"root": Root File Identifier' )
90 header.AddText( 'fVersion: File version identifier' )
91 header.AddText( 'fBEGIN: Pointer to first data record' )
92 header.AddText( 'fEND: Pointer to first free word at EOF' )
93 header.AddText( 'fSeekFree: Pointer to FREE data record' )
94 header.AddText( 'fNbytesFree: Number of bytes in FREE' )
95 header.AddText( 'fNfree: Number of free data records' )
96 header.AddText( 'fNbytesName: Number of bytes in name/title' )
97 header.AddText( 'fUnits: Number of bytes for pointers' )
98 header.AddText( 'fCompress: Compression level' )
99 
100 #logical record header
101 lrecord = TPaveText( 10, 0.2, 19.5, 6.5 )
102 lrecord.SetFillColor( 33 )
103 lrecord.Draw()
104 tlrh = lrecord.AddText( 'Logical Record Header (TKEY)' )
105 tlrh.SetTextAlign( 22 )
106 tlrh.SetTextSize( 0.04 )
107 lrecord.SetTextSize( 0.027 )
108 lrecord.SetTextAlign( 12 )
109 lrecord.AddText( ' ' )
110 lrecord.AddLine( 0, 0, 0, 0 )
111 lrecord.AddText( 'fNbytes: Length of compressed object' )
112 lrecord.AddText( 'fVersion: Key version identifier' )
113 lrecord.AddText( 'fObjLen: Length of uncompressed object' )
114 lrecord.AddText( 'fDatime: Date/Time when written to store' )
115 lrecord.AddText( 'fKeylen: Number of bytes for the key' )
116 lrecord.AddText( 'fCycle : Cycle number' )
117 lrecord.AddText( 'fSeekKey: Pointer to object on file' )
118 lrecord.AddText( 'fSeekPdir: Pointer to directory on file' )
119 lrecord.AddText( 'fClassName: class name of the object' )
120 lrecord.AddText( 'fName: name of the object' )
121 lrecord.AddText( 'fTitle: title of the object' )
122 
123 c1.Update()
Author
Wim Lavrijsen

Definition in file file.py.