Logo ROOT   6.12/07
Reference Guide
fildir.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_io
3 /// \notebook
4 /// This macro displays the ROOT Directory data structure
5 ///
6 /// \macro_image
7 /// \macro_code
8 ///
9 /// \author Rene Brun
10 
11 void fildir(){
12 
13 
14  TCanvas *c1 = new TCanvas("c1","ROOT FilDir description",700,900);
15  c1->Range(1,1,19,24.5);
16  TPaveLabel *title = new TPaveLabel(4,23,16,24.2,"ROOT File/Directory/Key description");
17  title->SetFillColor(16);
18  title->Draw();
19 
20  Int_t keycolor = 42;
21  Int_t dircolor = 21;
22  Int_t objcolor = 46;
23  TPaveText *file = new TPaveText(2,19,6,22);
24  file->SetFillColor(39);
25  file->Draw();
26  file->SetTextSize(0.04);
27  file->AddText("TFile");
28  file->AddText("Header");
29  TArrow *arrow = new TArrow(6,20.5,17,20.5,0.02,"|>");
30  arrow->SetFillStyle(1001);
31  arrow->SetLineWidth(2);
32  arrow->Draw();
33  TPaveText *free1 = new TPaveText(8,20,11,21);
34  free1->SetFillColor(18);
35  free1->Draw();
36  free1->AddText("First:Last");
37  TPaveText *free2 = new TPaveText(12,20,15,21);
38  free2->SetFillColor(18);
39  free2->Draw();
40  free2->AddText("First:Last");
41  TText *tfree = new TText(6.2,21.2,"fFree = TList of free blocks");
42  tfree->SetTextSize(0.02);
43  tfree->Draw();
44  TText *tkeys = new TText(5.2,18.2,"fKeys = TList of Keys");
45  tkeys->SetTextSize(0.02);
46  tkeys->Draw();
47  TText *tmemory = new TText(3.2,15.2,"fListHead = TList of Objects in memory");
48  tmemory->SetTextSize(0.02);
49  tmemory->Draw();
50 
51  arrow->DrawArrow(5,17,17,17,0.02,"|>");
52  TLine *line = new TLine(5,19,5,17);
53  line->SetLineWidth(2);
54  line->Draw();
55  TPaveText *key0 = new TPaveText(7,16,10,18);
56  key0->SetTextSize(0.04);
57  key0->SetFillColor(keycolor);
58  key0->AddText("Key 0");
59  key0->Draw();
60  TPaveText *key1 = new TPaveText(12,16,15,18);
61  key1->SetTextSize(0.04);
62  key1->SetFillColor(keycolor);
63  key1->AddText("Key 1");
64  key1->Draw();
65  line->DrawLine(3,19,3,14);
66  line->DrawLine(3,14,18,14);
67  TPaveText *obj0 = new TPaveText(5,13,8,15);
68  obj0->SetFillColor(objcolor);
69  obj0->AddText("Object");
70  obj0->Draw();
71  TPaveText *dir1 = new TPaveText(10,13,13,15);
72  dir1->SetFillColor(dircolor);
73  dir1->AddText("SubDir");
74  dir1->Draw();
75  TPaveText *obj1 = new TPaveText(15,13,18,15);
76  obj1->SetFillColor(objcolor);
77  obj1->AddText("Object");
78  obj1->Draw();
79  arrow->DrawArrow(12,11,17,11,0.015,"|>");
80  arrow->DrawArrow(11,9,17,9,0.015,"|>");
81  line->DrawLine(12,13,12,11);
82  line->DrawLine(11,13,11,9);
83  TPaveText *key2 = new TPaveText(14,10.5,16,11.5);
84  key2->SetFillColor(keycolor);
85  key2->AddText("Key 0");
86  key2->Draw();
87  TPaveText *obj2 = new TPaveText(14,8.5,16,9.5);
88  obj2->SetFillColor(objcolor);
89  obj2->AddText("Object");
90  obj2->Draw();
91  TLine *ldot = new TLine(10,15,2,11);
92  ldot->SetLineStyle(2);
93  ldot->Draw();
94  ldot->DrawLine(13,15,8,11);
95  ldot->DrawLine(13,13,8,5);
96  TPaveText *dirdata = new TPaveText(2,5,8,11);
97  dirdata->SetTextAlign(12);
98  dirdata->SetFillColor(dircolor);
99  dirdata->Draw();
100  dirdata->SetTextSize(0.015);
101  dirdata->AddText("fModified: True if directory is modified");
102  dirdata->AddText("fWritable: True if directory is writable");
103  dirdata->AddText("fDatimeC: Creation Date/Time");
104  dirdata->AddText("fDatimeM: Last mod Date/Time");
105  dirdata->AddText("fNbytesKeys: Number of bytes of key");
106  dirdata->AddText("fNbytesName : Header length up to title");
107  dirdata->AddText("fSeekDir: Start of Directory on file");
108  dirdata->AddText("fSeekParent: Start of Parent Directory");
109  dirdata->AddText("fSeekKeys: Pointer to Keys record");
110  TPaveText *keydata = new TPaveText(10,2,17,7);
111  keydata->SetTextAlign(12);
112  keydata->SetFillColor(keycolor);
113  keydata->Draw();
114  ldot->DrawLine(14,11.5,10,7);
115  ldot->DrawLine(16,11.5,17,7);
116  keydata->SetTextSize(0.015);
117  keydata->AddText("fNbytes: Size of compressed Object");
118  keydata->AddText("fObjLen: Size of uncompressed Object");
119  keydata->AddText("fDatime: Date/Time when written to store");
120  keydata->AddText("fKeylen: Number of bytes for the key");
121  keydata->AddText("fCycle : Cycle number");
122  keydata->AddText("fSeekKey: Pointer to Object on file");
123  keydata->AddText("fSeekPdir: Pointer to directory on file");
124  keydata->AddText("fClassName: 'TKey'");
125  keydata->AddText("fName: Object name");
126  keydata->AddText("fTitle: Object Title");
127  c1->Print("fildir.png");
128 }
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition: TAttLine.h:43
virtual void Draw(Option_t *option="")
Draw this pavetext with its current attributes.
Definition: TPaveText.cxx:234
TLine * line
return c1
Definition: legend1.C:41
virtual void DrawArrow(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Float_t arrowsize=0, Option_t *option="")
Draw this arrow with new coordinates.
Definition: TArrow.cxx:139
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
Definition: TPaveText.cxx:183
virtual TLine * DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Draw this line with new coordinates.
Definition: TLine.cxx:93
int Int_t
Definition: RtypesCore.h:41
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Definition: TObject.cxx:195
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
Definition: TAttFill.h:39
TArrow * arrow
virtual void Draw(Option_t *option="")
Draw this arrow with its current attributes.
Definition: TArrow.cxx:122
Base class for several text objects.
Definition: TText.h:23
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
Definition: TAttText.h:41
A Pave (see TPave) with a text centered in the Pave.
Definition: TPaveLabel.h:20
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition: TAttFill.h:37
virtual void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Set world coordinate system for the pad.
Definition: TPad.cxx:5103
A simple line.
Definition: TLine.h:23
virtual void Print(const char *filename="") const
Save Pad contents in a file in one of various formats.
Definition: TPad.cxx:4599
The Canvas class.
Definition: TCanvas.h:31
A Pave (see TPave) with text, lines or/and boxes inside.
Definition: TPaveText.h:21
virtual void Draw(Option_t *option="")
Draw this pavelabel with its current attributes.
Definition: TPaveLabel.cxx:77
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
Definition: TAttLine.h:42
Definition: fildir.py:1
Definition: file.py:1
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
Definition: TAttText.h:46
Draw all kinds of Arrows.
Definition: TArrow.h:29