archi.C

Go to the documentation of this file.
00001 {
00002    //
00003    // This macro displays the ROOT architecture
00004    //Author: Rene Brun
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 }

Generated on Tue Jul 5 15:44:20 2011 for ROOT_528-00b_version by  doxygen 1.5.1