Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches

Detailed Description

View in nbviewer Open in SWAN
This macro displays the ROOT architecture.

void archi()
{
TCanvas *c1 = new TCanvas("c1", "Dictionary Architecture", 20, 10, 750, 930);
c1->SetBorderSize(0);
c1->Range(0, 0, 20.5, 26);
TPaveLabel *title = new TPaveLabel(4, 24, 16, 25.5, c1->GetTitle());
title->SetFillColor(46);
title->Draw();
TPavesText *dll = new TPavesText(0.5, 19, 4.5, 23, 5, "tr");
dll->SetFillColor(39);
dll->SetTextSize(0.023);
dll->AddText(" ");
dll->AddText("Dynamically");
dll->AddText("Linked");
dll->AddText("Libraries");
dll->Draw();
TPaveLabel *dlltitle = new TPaveLabel(1.5, 22.6, 3.5, 23.3, "DLLs");
dlltitle->SetFillColor(28);
dlltitle->Draw();
TPavesText *cpp = new TPavesText(5.5, 19, 9.5, 23, 5, "tr");
cpp->SetTextSize(0.023);
cpp->AddText(" ");
cpp->AddText("Commented");
cpp->AddText("Header");
cpp->AddText("Files");
cpp->Draw();
TPaveLabel *cpptitle = new TPaveLabel(6.5, 22.6, 8.5, 23.3, "C++");
cpptitle->SetFillColor(28);
cpptitle->Draw();
TPavesText *odl = new TPavesText(10.5, 19, 14.5, 23, 5, "tr");
odl->SetTextSize(0.023);
odl->AddText(" ");
odl->AddText("Objects");
odl->AddText("Description");
odl->AddText("Files");
odl->Draw();
TPaveLabel *odltitle = new TPaveLabel(11.5, 22.6, 13.5, 23.3, "ODL");
odltitle->SetFillColor(28);
odltitle->Draw();
TPavesText *idl = new TPavesText(15.5, 19, 19.5, 23, 5, "tr");
idl->SetTextSize(0.023);
idl->AddText(" ");
idl->AddText("Interface");
idl->AddText("Definition");
idl->AddText("Language");
idl->Draw();
TPaveLabel *idltitle = new TPaveLabel(16.5, 22.6, 18.5, 23.3, "IDL");
idltitle->SetFillColor(28);
idltitle->Draw();
TWbox *p1 = new TWbox(7.8, 10, 13.2, 17, 11, 12, 1);
p1->Draw();
TText *pro1 = new TText(10.5, 15.8, "Process 1");
pro1->SetTextAlign(21);
pro1->SetTextSize(0.03);
pro1->Draw();
TPaveText *p1dict = new TPaveText(8.8, 13.8, 12.2, 15.6);
p1dict->SetTextSize(0.023);
p1dict->AddText("Dictionary");
p1dict->AddText("in memory");
p1dict->Draw();
TPavesText *p1object = new TPavesText(8.6, 10.6, 12.1, 13.0, 5, "tr");
p1object->SetTextSize(0.023);
p1object->AddText("Objects");
p1object->AddText("in memory");
p1object->Draw();
TWbox *p2 = new TWbox(15.5, 10, 20, 17, 11, 12, 1);
p2->Draw();
TText *pro2 = new TText(17.75, 15.8, "Process 2");
pro2->SetTextAlign(21);
pro2->SetTextSize(0.03);
pro2->Draw();
TPaveText *p2dict = new TPaveText(16, 13.8, 19.5, 15.6);
p2dict->SetTextSize(0.023);
p2dict->AddText("Dictionary");
p2dict->AddText("in memory");
p2dict->Draw();
TPavesText *p2object = new TPavesText(16.25, 10.6, 19.25, 13.0, 5, "tr");
p2object->SetTextSize(0.023);
p2object->AddText("Objects");
p2object->AddText("in memory");
p2object->Draw();
TWbox *stub1 = new TWbox(12.9, 11.5, 13.6, 15.5, 49, 3, 1);
stub1->Draw();
TText *tstub1 = new TText(13.25, 13.5, "Stub1");
tstub1->SetTextSize(0.025);
tstub1->SetTextAlign(22);
tstub1->SetTextAngle(90);
tstub1->Draw();
TWbox *stub2 = new TWbox(15.1, 11.5, 15.8, 15.5, 49, 3, 1);
stub2->Draw();
TText *tstub2 = new TText(15.45, 13.5, "Stub2");
tstub2->SetTextSize(0.025);
tstub2->SetTextAlign(22);
tstub2->SetTextAngle(-90);
tstub2->Draw();
TArrow ar1;
ar1.SetLineWidth(6);
ar1.SetLineColor(1);
ar1.SetFillStyle(1001);
ar1.SetFillColor(1);
ar1.DrawArrow(13.5, 14, 15, 14, 0.012, "|>");
ar1.DrawArrow(15.1, 13, 13.51, 13, 0.012, "|>");
TPaveText *cint = new TPaveText(1.0, 15.0, 8.0, 17.5);
cint->SetFillColor(39);
cint->SetBorderSize(1);
cint->SetTextSize(0.023);
cint->AddText("C++ Interpreter");
cint->AddText("and program builder");
cint->Draw();
TPaveText *command = new TPaveText(2.5, 13.4, 8.0, 14.5);
command->SetTextSize(0.023);
command->SetFillColor(39);
command->SetBorderSize(1);
command->AddText("Command Thread");
command->Draw();
TPavesText *view = new TPavesText(1.0, 9.5, 7.7, 12.6, 3, "tr");
view->SetFillColor(39);
view->SetBorderSize(2);
view->SetTextSize(0.023);
view->AddText("Viewer Thread(s)");
view->AddText("Picking");
view->AddText("Context Menus");
view->AddText("Inspector/Browser");
view->Draw();
TPavesText *web = new TPavesText(0.5, 5, 6, 8.5, 5, "tr");
web->SetTextSize(0.023);
web->AddText(" ");
web->AddText("generated");
web->AddText("automatically");
web->AddText("from dictionary");
web->AddText("and source files");
web->Draw();
TPaveLabel *webtitle = new TPaveLabel(1.5, 8.1, 5.0, 8.8, "HTML Files");
webtitle->SetFillColor(28);
webtitle->Draw();
TPavesText *printed = new TPavesText(0.5, 1.0, 6, 4, 5, "tr");
printed->SetTextSize(0.023);
printed->AddText(" ");
printed->AddText("generated");
printed->AddText("automatically");
printed->AddText("from HTML files");
printed->Draw();
TPaveLabel *printedtitle = new TPaveLabel(1.5, 3.6, 5.0, 4.3, "Printed Docs");
printedtitle->SetFillColor(28);
printedtitle->Draw();
TBox *box1 = new TBox(0.2, 9.2, 14.25, 17.8);
box1->SetFillStyle(0);
box1->Draw();
TBox *box2 = new TBox(10.2, 18.7, 20.2, 23.6);
box2->SetFillStyle(0);
box2->Draw();
ar1.DrawArrow(2.5, 17.5, 2.5, 18.9, 0.012, "|>");
ar1.DrawArrow(5.5, 9.2, 5.5, 8.7, 0.012, "|>");
ar1.DrawArrow(5.5, 5, 5.5, 4.2, 0.012, "|>");
ar1.DrawArrow(8.5, 9.2, 8.5, 8.2, 0.012, "|>");
ar1.DrawArrow(9.5, 8.1, 9.5, 9.0, 0.012, "|>");
ar1.DrawArrow(6.5, 19, 6.5, 17.6, 0.012, "|>");
ar1.DrawArrow(8.5, 19, 8.5, 17.1, 0.012, "|>");
ar1.DrawArrow(11.5, 19, 11.5, 17.1, 0.012, "|>");
TPaveLabel *ootitle = new TPaveLabel(10.5, 7.8, 17, 8.8, "Objects Data Base");
ootitle->SetFillColor(28);
ootitle->Draw();
TPad *pio = new TPad("pio", "pio", 0.37, 0.02, 0.95, 0.31, 49);
pio->Range(0, 0, 12, 8);
pio->Draw();
pio->cd();
TPavesText *raw = new TPavesText(0.5, 1, 2.5, 6, 7, "tr");
raw->Draw();
TPavesText *dst1 = new TPavesText(4, 1, 5, 3, 7, "tr");
dst1->Draw();
TPavesText *dst2 = new TPavesText(6, 1, 7, 3, 7, "tr");
dst2->Draw();
TPavesText *dst3 = new TPavesText(4, 4, 5, 6, 7, "tr");
dst3->Draw();
TPavesText *dst4 = new TPavesText(6, 4, 7, 6, 7, "tr");
dst4->Draw();
Float_t xlow = 8.5;
Float_t ylow = 1;
Float_t dx = 0.5;
Float_t dy = 0.5;
for (Int_t j = 1; j < 9; j++) {
Float_t y0 = ylow + (j - 1) * 0.7;
Float_t y1 = y0 + dy;
for (Int_t i = 1; i < 5; i++) {
Float_t x0 = xlow + (i - 1) * 0.6;
Float_t x1 = x0 + dx;
TPavesText *anal = new TPavesText(x0, y0, x1, y1, 7, "tr");
anal->Draw();
}
}
// just temporary object, used for common attributes
TText daq;
daq.SetTextSize(0.07);
daq.SetTextAlign(22);
daq.DrawText(1.5, 7.3, "DAQ");
daq.DrawText(6, 7.3, "DST");
daq.DrawText(10., 7.3, "Physics Analysis");
daq.DrawText(1.5, 0.7, "Events");
daq.DrawText(1.5, 0.3, "Containers");
daq.DrawText(6, 0.7, "Tracks/Hits");
daq.DrawText(6, 0.3, "Containers");
daq.DrawText(10., 0.7, "Attributes");
daq.DrawText(10., 0.3, "Containers");
c1->cd();
}
int Int_t
Definition RtypesCore.h:45
float Float_t
Definition RtypesCore.h:57
@ kDashed
Definition TAttLine.h:52
@ kDotted
Definition TAttLine.h:52
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char y1
Draw all kinds of Arrows.
Definition TArrow.h:29
virtual TArrow * 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:135
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition TAttFill.h:38
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
Definition TAttFill.h:40
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
Definition TAttLine.h:44
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition TAttLine.h:45
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Definition TAttLine.h:42
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
Definition TAttText.h:44
virtual void SetTextAngle(Float_t tangle=0)
Set the text angle.
Definition TAttText.h:45
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
Definition TAttText.h:49
Create a Box.
Definition TBox.h:22
void Draw(Option_t *option="") override
Draw this box with its current attributes.
Definition TBox.cxx:196
The Canvas class.
Definition TCanvas.h:23
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Definition TObject.cxx:292
The most important graphics class in the ROOT system.
Definition TPad.h:28
void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Set world coordinate system for the pad.
Definition TPad.cxx:5331
TVirtualPad * cd(Int_t subpadnumber=0) override
Set Current pad.
Definition TPad.cxx:693
void Draw(Option_t *option="") override
Draw Pad in Current pad (re-parent pad if necessary).
Definition TPad.cxx:1364
A Pave (see TPave) with a text centered in the Pave.
Definition TPaveLabel.h:20
void Draw(Option_t *option="") override
Draw this pavelabel with its current attributes.
A Pave (see TPave) with text, lines or/and boxes inside.
Definition TPaveText.h:21
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
void Draw(Option_t *option="") override
Draw this pavetext with its current attributes.
virtual void SetBorderSize(Int_t bordersize=4)
Sets the border size of the TPave box and shadow.
Definition TPave.h:77
A PaveText (see TPaveText) with several stacked paves.
Definition TPavesText.h:18
void Draw(Option_t *option="") override
Draw this pavestext with its current attributes.
Base class for several text objects.
Definition TText.h:22
virtual TText * DrawText(Double_t x, Double_t y, const char *text)
Draw this text with new coordinates.
Definition TText.cxx:176
A TBox with a bordersize and a bordermode.
Definition TWbox.h:20
void Draw(Option_t *option="") override
Draw this wbox with its current attributes.
Definition TWbox.cxx:85
return c1
Definition legend1.C:41
Author
Rene Brun

Definition in file archi.C.