ROOT
master
Reference Guide
Loading...
Searching...
No Matches
archi.C File Reference
Tutorials
»
Visualisation tutorials
»
Graphics tutorials
Detailed Description
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
->SetLineStyle(
kDashed
);
box1
->Draw();
TBox
*
box2
=
new
TBox
(10.2, 18.7, 20.2, 23.6);
box2
->SetFillStyle(0);
box2
->SetLineStyle(
kDotted
);
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_t
int Int_t
Definition
RtypesCore.h:45
Float_t
float Float_t
Definition
RtypesCore.h:57
kDashed
@ kDashed
Definition
TAttLine.h:52
kDotted
@ kDotted
Definition
TAttLine.h:52
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:358
x1
Option_t Option_t TPoint TPoint const char x1
Definition
TGWin32VirtualXProxy.cxx:70
y1
Option_t Option_t TPoint TPoint const char y1
Definition
TGWin32VirtualXProxy.cxx:70
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
TArrow
Draw all kinds of Arrows.
Definition
TArrow.h:29
TAttFill::SetFillColor
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition
TAttFill.h:38
TAttText::SetTextSize
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
Definition
TAttText.h:49
TBox
Create a Box.
Definition
TBox.h:22
TCanvas
The Canvas class.
Definition
TCanvas.h:23
TPad
The most important graphics class in the ROOT system.
Definition
TPad.h:28
TPaveLabel
A Pave (see TPave) with a text centered in the Pave.
Definition
TPaveLabel.h:20
TPaveLabel::Draw
void Draw(Option_t *option="") override
Draw this pavelabel with its current attributes.
Definition
TPaveLabel.cxx:88
TPaveText
A Pave (see TPave) with text, lines or/and boxes inside.
Definition
TPaveText.h:21
TPaveText::AddText
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:190
TPave::SetBorderSize
virtual void SetBorderSize(Int_t bordersize=4)
Sets the border size of the TPave box and shadow.
Definition
TPave.h:77
TPavesText
A PaveText (see TPaveText) with several stacked paves.
Definition
TPavesText.h:18
TPavesText::Draw
void Draw(Option_t *option="") override
Draw this pavestext with its current attributes.
Definition
TPavesText.cxx:80
TText
Base class for several text objects.
Definition
TText.h:22
TWbox
A TBox with a bordersize and a bordermode.
Definition
TWbox.h:20
c1
return c1
Definition
legend1.C:41
Author
Rene Brun
Definition in file
archi.C
.
tutorials
visualisation
graphics
archi.C
ROOT master - Reference Guide Generated on Sun Feb 2 2025 04:16:33 (GVA Time) using Doxygen 1.10.0