ROOT logo

From $ROOTSYS/tutorials/graphics/archi.C

{
   //
   // This macro displays the ROOT architecture
   //Author: Rene Brun
   
   gROOT->Reset();
   c1 = new TCanvas("c1","Dictionary Architecture",20,10,750,930);
   c1->SetBorderSize(0);
   c1->Range(0,0,20.5,26);


   TPaveLabel title(4,24,16,25.5,c1->GetTitle());
   title.SetFillColor(46);
   title.Draw();

   TPavesText dll(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(1.5,22.6,3.5,23.3,"DLLs");
   dlltitle.SetFillColor(28);
   dlltitle.Draw();

   TPavesText cpp(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(6.5,22.6,8.5,23.3,"C++");
   cpptitle.SetFillColor(28);
   cpptitle.Draw();

   TPavesText odl(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(11.5,22.6,13.5,23.3,"ODL");
   odltitle.SetFillColor(28);
   odltitle.Draw();

   TPavesText idl(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(16.5,22.6,18.5,23.3,"IDL");
   idltitle.SetFillColor(28);
   idltitle.Draw();

   TWbox p1(7.8,10,13.2,17,11,12,1);
   p1.Draw();
   TText pro1(10.5,15.8,"Process 1");
   pro1.SetTextAlign(21);
   pro1.SetTextSize(0.03);
   pro1.Draw();
   TPaveText p1dict(8.8,13.8,12.2,15.6);
   p1dict.SetTextSize(0.023);
   p1dict.AddText("Dictionary");
   p1dict.AddText("in memory");
   p1dict.Draw();
   TPavesText p1object(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(15.5,10,20,17,11,12,1);
   p2.Draw();
   TText pro2(17.75,15.8,"Process 2");
   pro2.SetTextAlign(21);
   pro2.SetTextSize(0.03);
   pro2.Draw();
   TPaveText p2dict(16,13.8,19.5,15.6);
   p2dict.SetTextSize(0.023);
   p2dict.AddText("Dictionary");
   p2dict.AddText("in memory");
   p2dict.Draw();
   TPavesText p2object(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(12.9,11.5,13.6,15.5,49,3,1);
   stub1.Draw();
   TText tstub1(13.25,13.5,"Stub1");
   tstub1.SetTextSize(0.025);
   tstub1.SetTextAlign(22);
   tstub1.SetTextAngle(90);
   tstub1.Draw();
   TWbox stub2(15.1,11.5,15.8,15.5,49,3,1);
   stub2.Draw();
   TText tstub2(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(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(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(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(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(1.5,8.1,5.0,8.8,"HTML Files");
   webtitle.SetFillColor(28);
   webtitle.Draw();

   TPavesText printed(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(1.5,3.6,5.0,4.3,"Printed Docs");
   printedtitle.SetFillColor(28);
   printedtitle.Draw();

   TBox box1(0.2,9.2,14.25,17.8);
   box1.SetFillStyle(0);
   box1.SetLineStyle(2);
   box1.Draw();

   TBox box2(10.2,18.7,20.2,23.6);
   box2.SetFillStyle(0);
   box2.SetLineStyle(3);
   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(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(0.5,1,2.5,6,7,"tr");
   raw.Draw();
   TPavesText dst1(4,1,5,3,7,"tr");
   dst1.Draw();
   TPavesText dst2(6,1,7,3,7,"tr");
   dst2.Draw();
   TPavesText dst3(4,4,5,6,7,"tr");
   dst3.Draw();
   TPavesText dst4(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();
      }
   }
   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();
}
 archi.C:1
 archi.C:2
 archi.C:3
 archi.C:4
 archi.C:5
 archi.C:6
 archi.C:7
 archi.C:8
 archi.C:9
 archi.C:10
 archi.C:11
 archi.C:12
 archi.C:13
 archi.C:14
 archi.C:15
 archi.C:16
 archi.C:17
 archi.C:18
 archi.C:19
 archi.C:20
 archi.C:21
 archi.C:22
 archi.C:23
 archi.C:24
 archi.C:25
 archi.C:26
 archi.C:27
 archi.C:28
 archi.C:29
 archi.C:30
 archi.C:31
 archi.C:32
 archi.C:33
 archi.C:34
 archi.C:35
 archi.C:36
 archi.C:37
 archi.C:38
 archi.C:39
 archi.C:40
 archi.C:41
 archi.C:42
 archi.C:43
 archi.C:44
 archi.C:45
 archi.C:46
 archi.C:47
 archi.C:48
 archi.C:49
 archi.C:50
 archi.C:51
 archi.C:52
 archi.C:53
 archi.C:54
 archi.C:55
 archi.C:56
 archi.C:57
 archi.C:58
 archi.C:59
 archi.C:60
 archi.C:61
 archi.C:62
 archi.C:63
 archi.C:64
 archi.C:65
 archi.C:66
 archi.C:67
 archi.C:68
 archi.C:69
 archi.C:70
 archi.C:71
 archi.C:72
 archi.C:73
 archi.C:74
 archi.C:75
 archi.C:76
 archi.C:77
 archi.C:78
 archi.C:79
 archi.C:80
 archi.C:81
 archi.C:82
 archi.C:83
 archi.C:84
 archi.C:85
 archi.C:86
 archi.C:87
 archi.C:88
 archi.C:89
 archi.C:90
 archi.C:91
 archi.C:92
 archi.C:93
 archi.C:94
 archi.C:95
 archi.C:96
 archi.C:97
 archi.C:98
 archi.C:99
 archi.C:100
 archi.C:101
 archi.C:102
 archi.C:103
 archi.C:104
 archi.C:105
 archi.C:106
 archi.C:107
 archi.C:108
 archi.C:109
 archi.C:110
 archi.C:111
 archi.C:112
 archi.C:113
 archi.C:114
 archi.C:115
 archi.C:116
 archi.C:117
 archi.C:118
 archi.C:119
 archi.C:120
 archi.C:121
 archi.C:122
 archi.C:123
 archi.C:124
 archi.C:125
 archi.C:126
 archi.C:127
 archi.C:128
 archi.C:129
 archi.C:130
 archi.C:131
 archi.C:132
 archi.C:133
 archi.C:134
 archi.C:135
 archi.C:136
 archi.C:137
 archi.C:138
 archi.C:139
 archi.C:140
 archi.C:141
 archi.C:142
 archi.C:143
 archi.C:144
 archi.C:145
 archi.C:146
 archi.C:147
 archi.C:148
 archi.C:149
 archi.C:150
 archi.C:151
 archi.C:152
 archi.C:153
 archi.C:154
 archi.C:155
 archi.C:156
 archi.C:157
 archi.C:158
 archi.C:159
 archi.C:160
 archi.C:161
 archi.C:162
 archi.C:163
 archi.C:164
 archi.C:165
 archi.C:166
 archi.C:167
 archi.C:168
 archi.C:169
 archi.C:170
 archi.C:171
 archi.C:172
 archi.C:173
 archi.C:174
 archi.C:175
 archi.C:176
 archi.C:177
 archi.C:178
 archi.C:179
 archi.C:180
 archi.C:181
 archi.C:182
 archi.C:183
 archi.C:184
 archi.C:185
 archi.C:186
 archi.C:187
 archi.C:188
 archi.C:189
 archi.C:190
 archi.C:191
 archi.C:192
 archi.C:193
 archi.C:194
 archi.C:195
 archi.C:196
 archi.C:197
 archi.C:198
 archi.C:199
 archi.C:200
 archi.C:201
 archi.C:202
 archi.C:203
 archi.C:204
 archi.C:205
 archi.C:206
 archi.C:207
 archi.C:208
 archi.C:209
 archi.C:210
 archi.C:211
 archi.C:212
 archi.C:213
 archi.C:214
 archi.C:215
 archi.C:216
 archi.C:217
 archi.C:218
 archi.C:219
 archi.C:220
 archi.C:221
 archi.C:222
 archi.C:223
 archi.C:224
 archi.C:225
 archi.C:226
 archi.C:227
 archi.C:228
thumb