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