2 from ROOT
import TCanvas, TPaveLabel, TPaveText, TPavesText, TText
3 from ROOT
import TArrow, TLine
4 from ROOT
import gROOT, gBenchmark
8 c1 =
TCanvas(
'c1',
'Tree Data Structure',200,10,750,940)
9 c1.Range(0,-0.1,1,1.15)
11 gBenchmark.Start(
'tree')
18 title =
TPaveLabel(.3,1.05,.8,1.13,
'Tree Data Structure')
19 title.SetFillColor(16)
24 tnt = tree.AddText(
'Tree')
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')
35 tfarm = farm.AddText(
'CHAIN')
36 tfarm.SetTextSize(0.024)
37 farm.AddText(
'Collection')
38 farm.AddText(
'of Trees')
40 link =
TLine(.15,.92,.80,.92)
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)
54 branch1 =
TPaveLabel(.40,.87,.55,.97,
'Branch 1')
55 branch1.SetTextSize(0.35)
56 branch1.SetFillColor(branchcolor)
58 branch2 =
TPaveLabel(.60,.87,.75,.97,
'Branch 2')
59 branch2.SetTextSize(0.35)
60 branch2.SetFillColor(branchcolor)
62 branch3 =
TPaveLabel(.80,.87,.95,.97,
'Branch 3')
63 branch3.SetTextSize(0.35)
64 branch3.SetFillColor(branchcolor)
67 leaf0.SetFillColor(leafcolor)
70 leaf1.SetFillColor(leafcolor)
73 leaf2.SetFillColor(leafcolor)
76 firstevent.AddText(
'First event of each basket')
77 firstevent.AddText(
'Array of fMaxBaskets Integers')
78 firstevent.SetFillColor(basketcolor)
81 basket0.SetFillColor(basketcolor)
84 basket1.SetFillColor(basketcolor)
87 basket2.SetFillColor(basketcolor)
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)
97 buffer.AddText(
'Basket buffer')
98 buffer.AddText(
'Array of fBasketSize chars')
99 buffer.SetFillColor(offsetcolor)
102 zipbuffer.AddText(
'Basket compressed buffer')
103 zipbuffer.AddText(
'(if compression)')
104 zipbuffer.SetFillColor(offsetcolor)
109 ar1.SetFillStyle(1001)
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)
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)
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')
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')
151 ntleaf.AddLine(0,0,0,0)
152 ntleaf.AddText(
'fName = Leaf name')
153 ntleaf.AddText(
'fTitle = Leaf type (see Type codes)')
156 type.SetTextAlign(12)
157 type.SetFillColor(leafcolor)
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')
170 typecode =
TPaveLabel(.7,.68,.9,.72,
'fType codes')
171 typecode.SetFillColor(leafcolor)
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')
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')
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')
221 gBenchmark.Show(
'tree')