00001 {
00002
00003
00004
00005
00006 gROOT->Reset();
00007 c1 = new TCanvas("c1","Dictionary Architecture",20,10,750,930);
00008 c1->SetBorderSize(0);
00009 c1->Range(0,0,20.5,26);
00010
00011
00012 TPaveLabel title(4,24,16,25.5,c1->GetTitle());
00013 title.SetFillColor(46);
00014 title.Draw();
00015
00016 TPavesText dll(0.5,19,4.5,23,5,"tr");
00017 dll.SetFillColor(39);
00018 dll.SetTextSize(0.023);
00019 dll.AddText(" ");
00020 dll.AddText("Dynamically");
00021 dll.AddText("Linked");
00022 dll.AddText("Libraries");
00023 dll.Draw();
00024 TPaveLabel dlltitle(1.5,22.6,3.5,23.3,"DLLs");
00025 dlltitle.SetFillColor(28);
00026 dlltitle.Draw();
00027
00028 TPavesText cpp(5.5,19,9.5,23,5,"tr");
00029 cpp.SetTextSize(0.023);
00030 cpp.AddText(" ");
00031 cpp.AddText("Commented");
00032 cpp.AddText("Header");
00033 cpp.AddText("Files");
00034 cpp.Draw();
00035 TPaveLabel cpptitle(6.5,22.6,8.5,23.3,"C++");
00036 cpptitle.SetFillColor(28);
00037 cpptitle.Draw();
00038
00039 TPavesText odl(10.5,19,14.5,23,5,"tr");
00040 odl.SetTextSize(0.023);
00041 odl.AddText(" ");
00042 odl.AddText("Objects");
00043 odl.AddText("Description");
00044 odl.AddText("Files");
00045 odl.Draw();
00046 TPaveLabel odltitle(11.5,22.6,13.5,23.3,"ODL");
00047 odltitle.SetFillColor(28);
00048 odltitle.Draw();
00049
00050 TPavesText idl(15.5,19,19.5,23,5,"tr");
00051 idl.SetTextSize(0.023);
00052 idl.AddText(" ");
00053 idl.AddText("Interface");
00054 idl.AddText("Definition");
00055 idl.AddText("Language");
00056 idl.Draw();
00057 TPaveLabel idltitle(16.5,22.6,18.5,23.3,"IDL");
00058 idltitle.SetFillColor(28);
00059 idltitle.Draw();
00060
00061 TWbox p1(7.8,10,13.2,17,11,12,1);
00062 p1.Draw();
00063 TText pro1(10.5,15.8,"Process 1");
00064 pro1.SetTextAlign(21);
00065 pro1.SetTextSize(0.03);
00066 pro1.Draw();
00067 TPaveText p1dict(8.8,13.8,12.2,15.6);
00068 p1dict.SetTextSize(0.023);
00069 p1dict.AddText("Dictionary");
00070 p1dict.AddText("in memory");
00071 p1dict.Draw();
00072 TPavesText p1object(8.6,10.6,12.1,13.0,5,"tr");
00073 p1object.SetTextSize(0.023);
00074 p1object.AddText("Objects");
00075 p1object.AddText("in memory");
00076 p1object.Draw();
00077 TWbox p2(15.5,10,20,17,11,12,1);
00078 p2.Draw();
00079 TText pro2(17.75,15.8,"Process 2");
00080 pro2.SetTextAlign(21);
00081 pro2.SetTextSize(0.03);
00082 pro2.Draw();
00083 TPaveText p2dict(16,13.8,19.5,15.6);
00084 p2dict.SetTextSize(0.023);
00085 p2dict.AddText("Dictionary");
00086 p2dict.AddText("in memory");
00087 p2dict.Draw();
00088 TPavesText p2object(16.25,10.6,19.25,13.0,5,"tr");
00089 p2object.SetTextSize(0.023);
00090 p2object.AddText("Objects");
00091 p2object.AddText("in memory");
00092 p2object.Draw();
00093 TWbox stub1(12.9,11.5,13.6,15.5,49,3,1);
00094 stub1.Draw();
00095 TText tstub1(13.25,13.5,"Stub1");
00096 tstub1.SetTextSize(0.025);
00097 tstub1.SetTextAlign(22);
00098 tstub1.SetTextAngle(90);
00099 tstub1.Draw();
00100 TWbox stub2(15.1,11.5,15.8,15.5,49,3,1);
00101 stub2.Draw();
00102 TText tstub2(15.45,13.5,"Stub2");
00103 tstub2.SetTextSize(0.025);
00104 tstub2.SetTextAlign(22);
00105 tstub2.SetTextAngle(-90);
00106 tstub2.Draw();
00107 TArrow ar1;
00108 ar1.SetLineWidth(6);
00109 ar1.SetLineColor(1);
00110 ar1.SetFillStyle(1001);
00111 ar1.SetFillColor(1);
00112 ar1.DrawArrow(13.5,14,15,14,0.012,"|>");
00113 ar1.DrawArrow(15.1,13,13.51,13,0.012,"|>");
00114
00115 TPaveText cint(1.0,15.0,8.0,17.5);
00116 cint.SetFillColor(39);
00117 cint.SetBorderSize(1);
00118 cint.SetTextSize(0.023);
00119 cint.AddText("C++ Interpreter");
00120 cint.AddText("and program builder");
00121 cint.Draw();
00122 TPaveText command(2.5,13.4,8.0,14.5);
00123 command.SetTextSize(0.023);
00124 command.SetFillColor(39);
00125 command.SetBorderSize(1);
00126 command.AddText("Command Thread");
00127 command.Draw();
00128 TPavesText view(1.0,9.5,7.7,12.6,3,"tr");
00129 view.SetFillColor(39);
00130 view.SetBorderSize(2);
00131 view.SetTextSize(0.023);
00132 view.AddText("Viewer Thread(s)");
00133 view.AddText("Picking");
00134 view.AddText("Context Menus");
00135 view.AddText("Inspector/Browser");
00136 view.Draw();
00137
00138 TPavesText web(0.5,5,6,8.5,5,"tr");
00139 web.SetTextSize(0.023);
00140 web.AddText(" ");
00141 web.AddText("generated");
00142 web.AddText("automatically");
00143 web.AddText("from dictionary");
00144 web.AddText("and source files");
00145 web.Draw();
00146 TPaveLabel webtitle(1.5,8.1,5.0,8.8,"HTML Files");
00147 webtitle.SetFillColor(28);
00148 webtitle.Draw();
00149
00150 TPavesText printed(0.5,1.0,6,4,5,"tr");
00151 printed.SetTextSize(0.023);
00152 printed.AddText(" ");
00153 printed.AddText("generated");
00154 printed.AddText("automatically");
00155 printed.AddText("from HTML files");
00156 printed.Draw();
00157 TPaveLabel printedtitle(1.5,3.6,5.0,4.3,"Printed Docs");
00158 printedtitle.SetFillColor(28);
00159 printedtitle.Draw();
00160
00161 TBox box1(0.2,9.2,14.25,17.8);
00162 box1.SetFillStyle(0);
00163 box1.SetLineStyle(2);
00164 box1.Draw();
00165
00166 TBox box2(10.2,18.7,20.2,23.6);
00167 box2.SetFillStyle(0);
00168 box2.SetLineStyle(3);
00169 box2.Draw();
00170
00171 ar1.DrawArrow(2.5,17.5,2.5,18.9,0.012,"|>");
00172 ar1.DrawArrow(5.5,9.2,5.5,8.7,0.012,"|>");
00173 ar1.DrawArrow(5.5,5,5.5,4.2,0.012,"|>");
00174 ar1.DrawArrow(8.5,9.2,8.5,8.2,0.012,"|>");
00175 ar1.DrawArrow(9.5,8.1,9.5,9.0,0.012,"|>");
00176 ar1.DrawArrow(6.5,19,6.5,17.6,0.012,"|>");
00177 ar1.DrawArrow(8.5,19,8.5,17.1,0.012,"|>");
00178 ar1.DrawArrow(11.5,19,11.5,17.1,0.012,"|>");
00179
00180
00181 TPaveLabel ootitle(10.5,7.8,17,8.8,"Objects Data Base");
00182 ootitle.SetFillColor(28);
00183 ootitle.Draw();
00184
00185 TPad *pio = new TPad("pio","pio",0.37,0.02,0.95,0.31,49);
00186 pio->Range(0,0,12,8);
00187 pio->Draw();
00188 pio->cd();
00189 TPavesText raw(0.5,1,2.5,6,7,"tr");
00190 raw.Draw();
00191 TPavesText dst1(4,1,5,3,7,"tr");
00192 dst1.Draw();
00193 TPavesText dst2(6,1,7,3,7,"tr");
00194 dst2.Draw();
00195 TPavesText dst3(4,4,5,6,7,"tr");
00196 dst3.Draw();
00197 TPavesText dst4(6,4,7,6,7,"tr");
00198 dst4.Draw();
00199 Float_t xlow = 8.5;
00200 Float_t ylow = 1;
00201 Float_t dx = 0.5;
00202 Float_t dy = 0.5;
00203 for (Int_t j=1;j<9;j++) {
00204 Float_t y0 = ylow + (j-1)*0.7;
00205 Float_t y1 = y0 + dy;
00206 for (Int_t i=1;i<5;i++) {
00207 Float_t x0 = xlow +(i-1)*0.6;
00208 Float_t x1 = x0 + dx;
00209 TPavesText *anal = new TPavesText(x0,y0,x1,y1,7,"tr");
00210 anal.Draw();
00211 }
00212 }
00213 TText daq;
00214 daq.SetTextSize(0.07);
00215 daq.SetTextAlign(22);
00216 daq.DrawText(1.5,7.3,"DAQ");
00217 daq.DrawText(6,7.3,"DST");
00218 daq.DrawText(10.,7.3,"Physics Analysis");
00219 daq.DrawText(1.5,0.7,"Events");
00220 daq.DrawText(1.5,0.3,"Containers");
00221 daq.DrawText(6,0.7,"Tracks/Hits");
00222 daq.DrawText(6,0.3,"Containers");
00223 daq.DrawText(10.,0.7,"Attributes");
00224 daq.DrawText(10.,0.3,"Containers");
00225
00226 c1.cd();
00227 }