Logo ROOT   6.07/09
Reference Guide
Namespaces
tree.py File Reference

Namespaces

 tree
 

Detailed Description

View in nbviewer Open in SWAN This macro displays the Tree data structures

pict1_tree.py.png
1 
2 from ROOT import TCanvas, TPaveLabel, TPaveText, TPavesText, TText
3 from ROOT import TArrow, TLine
4 from ROOT import gROOT, gBenchmark
5 
6 #gROOT.Reset()
7 
8 c1 = TCanvas('c1','Tree Data Structure',200,10,750,940)
9 c1.Range(0,-0.1,1,1.15)
10 
11 gBenchmark.Start('tree')
12 
13 branchcolor = 26
14 leafcolor = 30
15 basketcolor = 42
16 offsetcolor = 43
17 #title = TPaveLabel(.3,1.05,.8,1.13,c1.GetTitle())
18 title = TPaveLabel(.3,1.05,.8,1.13,'Tree Data Structure')
19 title.SetFillColor(16)
20 title.Draw()
21 tree = TPaveText(.01,.75,.15,1.00)
22 tree.SetFillColor(18)
23 tree.SetTextAlign(12)
24 tnt = tree.AddText('Tree')
25 tnt.SetTextAlign(22)
26 tnt.SetTextSize(0.030)
27 tree.AddText('fScanField')
28 tree.AddText('fMaxEventLoop')
29 tree.AddText('fMaxVirtualSize')
30 tree.AddText('fEntries')
31 tree.AddText('fDimension')
32 tree.AddText('fSelectedRows')
33 tree.Draw()
34 farm = TPavesText(.01,1.02,.15,1.1,9,'tr')
35 tfarm = farm.AddText('CHAIN')
36 tfarm.SetTextSize(0.024)
37 farm.AddText('Collection')
38 farm.AddText('of Trees')
39 farm.Draw()
40 link = TLine(.15,.92,.80,.92)
41 link.SetLineWidth(2)
42 link.SetLineColor(1)
43 link.Draw()
44 link.DrawLine(.21,.87,.21,.275)
45 link.DrawLine(.23,.87,.23,.375)
46 link.DrawLine(.25,.87,.25,.775)
47 link.DrawLine(.41,.25,.41,-.025)
48 link.DrawLine(.43,.25,.43,.075)
49 link.DrawLine(.45,.25,.45,.175)
50 branch0 = TPaveLabel(.20,.87,.35,.97,'Branch 0')
51 branch0.SetTextSize(0.35)
52 branch0.SetFillColor(branchcolor)
53 branch0.Draw()
54 branch1 = TPaveLabel(.40,.87,.55,.97,'Branch 1')
55 branch1.SetTextSize(0.35)
56 branch1.SetFillColor(branchcolor)
57 branch1.Draw()
58 branch2 = TPaveLabel(.60,.87,.75,.97,'Branch 2')
59 branch2.SetTextSize(0.35)
60 branch2.SetFillColor(branchcolor)
61 branch2.Draw()
62 branch3 = TPaveLabel(.80,.87,.95,.97,'Branch 3')
63 branch3.SetTextSize(0.35)
64 branch3.SetFillColor(branchcolor)
65 branch3.Draw()
66 leaf0 = TPaveLabel(.4,.75,.5,.8,'Leaf 0')
67 leaf0.SetFillColor(leafcolor)
68 leaf0.Draw()
69 leaf1 = TPaveLabel(.6,.75,.7,.8,'Leaf 1')
70 leaf1.SetFillColor(leafcolor)
71 leaf1.Draw()
72 leaf2 = TPaveLabel(.8,.75,.9,.8,'Leaf 2')
73 leaf2.SetFillColor(leafcolor)
74 leaf2.Draw()
75 firstevent = TPaveText(.4,.35,.9,.4)
76 firstevent.AddText('First event of each basket')
77 firstevent.AddText('Array of fMaxBaskets Integers')
78 firstevent.SetFillColor(basketcolor)
79 firstevent.Draw()
80 basket0 = TPaveLabel(.4,.25,.5,.3,'Basket 0')
81 basket0.SetFillColor(basketcolor)
82 basket0.Draw()
83 basket1 = TPaveLabel(.6,.25,.7,.3,'Basket 1')
84 basket1.SetFillColor(basketcolor)
85 basket1.Draw()
86 basket2 = TPaveLabel(.8,.25,.9,.3,'Basket 2')
87 basket2.SetFillColor(basketcolor)
88 basket2.Draw()
89 
90 offset = TPaveText(.55,.15,.9,.2)
91 offset.AddText('Offset of events in fBuffer')
92 offset.AddText('Array of fEventOffsetLen Integers')
93 offset.AddText('(if variable length structure)')
94 offset.SetFillColor(offsetcolor)
95 offset.Draw()
96 buffer = TPaveText(.55,.05,.9,.1)
97 buffer.AddText('Basket buffer')
98 buffer.AddText('Array of fBasketSize chars')
99 buffer.SetFillColor(offsetcolor)
100 buffer.Draw()
101 zipbuffer = TPaveText(.55,-.05,.75,.0)
102 zipbuffer.AddText('Basket compressed buffer')
103 zipbuffer.AddText('(if compression)')
104 zipbuffer.SetFillColor(offsetcolor)
105 zipbuffer.Draw()
106 ar1 = TArrow()
107 ar1.SetLineWidth(2)
108 ar1.SetLineColor(1)
109 ar1.SetFillStyle(1001)
110 ar1.SetFillColor(1)
111 ar1.DrawArrow(.21,.275,.39,.275,0.015,'|>')
112 ar1.DrawArrow(.23,.375,.39,.375,0.015,'|>')
113 ar1.DrawArrow(.25,.775,.39,.775,0.015,'|>')
114 ar1.DrawArrow(.50,.775,.59,.775,0.015,'|>')
115 ar1.DrawArrow(.70,.775,.79,.775,0.015,'|>')
116 ar1.DrawArrow(.50,.275,.59,.275,0.015,'|>')
117 ar1.DrawArrow(.70,.275,.79,.275,0.015,'|>')
118 ar1.DrawArrow(.45,.175,.54,.175,0.015,'|>')
119 ar1.DrawArrow(.43,.075,.54,.075,0.015,'|>')
120 ar1.DrawArrow(.41,-.025,.54,-.025,0.015,'|>')
121 ldot = TLine(.95,.92,.99,.92)
122 ldot.SetLineStyle(3)
123 ldot.Draw()
124 ldot.DrawLine(.9,.775,.99,.775)
125 ldot.DrawLine(.9,.275,.99,.275)
126 ldot.DrawLine(.55,.05,.55,0)
127 ldot.DrawLine(.9,.05,.75,0)
128 pname = TText(.46,.21,'fEventOffset')
129 pname.SetTextFont(72)
130 pname.SetTextSize(0.018)
131 pname.Draw()
132 pname.DrawText(.44,.11,'fBuffer')
133 pname.DrawText(.42,.01,'fZipBuffer')
134 pname.DrawText(.26,.81,'fLeaves = TObjArray of TLeaf')
135 pname.DrawText(.24,.40,'fBasketEvent')
136 pname.DrawText(.22,.31,'fBaskets = TObjArray of TBasket')
137 pname.DrawText(.20,1.0,'fBranches = TObjArray of TBranch')
138 ntleaf = TPaveText(0.30,.42,.62,.7)
139 ntleaf.SetTextSize(0.014)
140 ntleaf.SetFillColor(leafcolor)
141 ntleaf.SetTextAlign(12)
142 ntleaf.AddText('fLen: number of fixed elements')
143 ntleaf.AddText('fLenType: number of bytes of data type')
144 ntleaf.AddText('fOffset: relative to Leaf0-fAddress')
145 ntleaf.AddText('fNbytesIO: number of bytes used for I/O')
146 ntleaf.AddText('fIsPointer: True if pointer')
147 ntleaf.AddText('fIsRange: True if leaf has a range')
148 ntleaf.AddText('fIsUnsigned: True if unsigned')
149 ntleaf.AddText('*fLeafCount: points to Leaf counter')
150 ntleaf.AddText(' ')
151 ntleaf.AddLine(0,0,0,0)
152 ntleaf.AddText('fName = Leaf name')
153 ntleaf.AddText('fTitle = Leaf type (see Type codes)')
154 ntleaf.Draw()
155 type = TPaveText(.65,.42,.95,.7)
156 type.SetTextAlign(12)
157 type.SetFillColor(leafcolor)
158 type.AddText(' ')
159 type.AddText('C : a character string')
160 type.AddText('B : an 8 bit signed integer')
161 type.AddText('b : an 8 bit unsigned integer')
162 type.AddText('S : a 16 bit signed short integer')
163 type.AddText('s : a 16 bit unsigned short integer')
164 type.AddText('I : a 32 bit signed integer')
165 type.AddText('i : a 32 bit unsigned integer')
166 type.AddText('F : a 32 bit floating point')
167 type.AddText('D : a 64 bit floating point')
168 type.AddText('TXXXX : a class name TXXXX')
169 type.Draw()
170 typecode = TPaveLabel(.7,.68,.9,.72,'fType codes')
171 typecode.SetFillColor(leafcolor)
172 typecode.Draw()
173 ldot.DrawLine(.4,.75,.30,.7)
174 ldot.DrawLine(.5,.75,.62,.7)
175 ntbasket = TPaveText(0.02,-0.07,0.35,.25)
176 ntbasket.SetFillColor(basketcolor)
177 ntbasket.SetTextSize(0.014)
178 ntbasket.SetTextAlign(12)
179 ntbasket.AddText('fNbytes: Size of compressed Basket')
180 ntbasket.AddText('fObjLen: Size of uncompressed Basket')
181 ntbasket.AddText('fDatime: Date/Time when written to store')
182 ntbasket.AddText('fKeylen: Number of bytes for the key')
183 ntbasket.AddText('fCycle : Cycle number')
184 ntbasket.AddText('fSeekKey: Pointer to Basket on file')
185 ntbasket.AddText('fSeekPdir: Pointer to directory on file')
186 ntbasket.AddText("fClassName: 'TBasket'")
187 ntbasket.AddText('fName: Branch name')
188 ntbasket.AddText('fTitle: Tree name')
189 ntbasket.AddText(' ')
190 ntbasket.AddLine(0,0,0,0)
191 ntbasket.AddText('fNevBuf: Number of events in Basket')
192 ntbasket.AddText('fLast: pointer to last used byte in Basket')
193 ntbasket.Draw()
194 ldot.DrawLine(.4,.3,0.02,0.25)
195 ldot.DrawLine(.5,.25,0.35,-.07)
196 ldot.DrawLine(.5,.3,0.35,0.25)
197 ntbranch = TPaveText(0.02,0.40,0.18,0.68)
198 ntbranch.SetFillColor(branchcolor)
199 ntbranch.SetTextSize(0.015)
200 ntbranch.SetTextAlign(12)
201 ntbranch.AddText('fBasketSize')
202 ntbranch.AddText('fEventOffsetLen')
203 ntbranch.AddText('fMaxBaskets')
204 ntbranch.AddText('fEntries')
205 ntbranch.AddText('fAddress of Leaf0')
206 ntbranch.AddText(' ')
207 ntbranch.AddLine(0,0,0,0)
208 ntbranch.AddText('fName: Branchname')
209 ntbranch.AddText('fTitle: leaflist')
210 ntbranch.Draw()
211 ldot.DrawLine(.2,.97,.02,.68)
212 ldot.DrawLine(.35,.97,.18,.68)
213 ldot.DrawLine(.35,.87,.18,.40)
214 basketstore = TPavesText(.8,-0.088,0.952,-0.0035,7,'tr')
215 basketstore.SetFillColor(28)
216 basketstore.AddText('Baskets')
217 basketstore.AddText('Stores')
218 basketstore.Draw()
219 c1.Update()
220 
221 gBenchmark.Show('tree')
Author
Wim Lavrijsen

Definition in file tree.py.