cernstaff.C

Go to the documentation of this file.
00001 // Playing with a Tree containing variables of type character
00002 // Author: Rene Brun
00003 void cernstaff () {
00004    if (gSystem->AccessPathName("cernstaff.root")) {
00005       gROOT->ProcessLine(".x cernbuild.C");
00006    }
00007    TFile *f = new TFile("cernstaff.root");
00008    TTree *T = (TTree*)f->Get("T");
00009    TCanvas *c1 = new TCanvas("c1","CERN staff",10,10,1000,750);
00010    c1->SetFillColor(17);
00011    c1->Divide(2,2);
00012    // make table of number of people per Nation & Division
00013    c1->cd(1); gPad->SetGrid();
00014    T->Draw("Nation:Division>>hN","","text");
00015    TH2F *hN = (TH2F*)gDirectory->Get("hN");
00016    hN->SetMarkerSize(1.6);
00017    hN->SetStats(0);
00018    
00019    //make profile of Average cost per Nation
00020    c1->cd(2); gPad->SetGrid();
00021    gPad->SetLeftMargin(0.12);
00022    T->Draw("Cost:Nation>>hNation","","prof,goff");
00023    TH1F *hNation = (TH1F*)gDirectory->Get("hNation");
00024    hNation->SetTitle("Average Cost per Nation");
00025    hNation->LabelsOption(">"); //sort by decreasing bin contents
00026    hNation->SetMaximum(13000);
00027    hNation->SetMinimum(7000);
00028    hNation->SetStats(0);
00029    hNation->SetMarkerStyle(21);
00030    hNation->Draw();
00031    
00032    //make stacked plot of Nations versus Grade
00033    c1->cd(3); gPad->SetGrid();
00034    THStack *hGrades = new THStack("hGrades","Nations versus Grade");
00035    TH1F *hFR = new TH1F("hFR","FR",12,3,15);
00036     hFR->SetFillColor(kCyan);
00037     hGrades->Add(hFR);
00038     T->Draw("Grade>>hFR","Nation==\"FR\"");
00039    TH1F *hCH = new TH1F("hCH","CH",12,3,15);
00040     hCH->SetFillColor(kRed);
00041     hGrades->Add(hCH);
00042     T->Draw("Grade>>hCH","Nation==\"CH\"");
00043    TH1F *hIT = new TH1F("hIT","IT",12,3,15);
00044     hIT->SetFillColor(kGreen);
00045     hGrades->Add(hIT);
00046     T->Draw("Grade>>hIT","Nation==\"IT\"");
00047    TH1F *hDE = new TH1F("hDE","DE",12,3,15);
00048     hDE->SetFillColor(kYellow);
00049     hGrades->Add(hDE);
00050     T->Draw("Grade>>hDE","Nation==\"DE\"");
00051    TH1F *hGB = new TH1F("hGB","GB",12,3,15);
00052     hGB->SetFillColor(kBlue);
00053     hGrades->Add(hGB);
00054     T->Draw("Grade>>hGB","Nation==\"GB\"");
00055    hGrades->Draw();
00056    TLegend *legend = new TLegend(0.7,0.65,0.86,0.88);
00057    legend->AddEntry(hGB,"GB","f");
00058    legend->AddEntry(hDE,"DE","f");
00059    legend->AddEntry(hIT,"IT","f");
00060    legend->AddEntry(hCH,"CH","f");
00061    legend->AddEntry(hFR,"FR","f");
00062    legend->Draw();
00063    
00064    //make histogram of age distribution
00065    c1->cd(4); gPad->SetGrid();
00066    T->Draw("Age");
00067    T->Draw("Age>>hRetired","Age>(65-2002+1988)","same");
00068    TH1F *hRetired = (TH1F*)gDirectory->Get("hRetired");
00069    hRetired->SetFillColor(kRed);
00070    hRetired->SetFillStyle(3010);
00071    
00072    TArrow *arrow = new TArrow(32,169,55,74,0.03,"|>");
00073    arrow->SetFillColor(1);
00074    arrow->SetFillStyle(1001);
00075    arrow->Draw();
00076    
00077    TPaveText *pt = new TPaveText(0.12,0.8,0.55,0.88,"brNDC");
00078    pt->SetFillColor(18);
00079    pt->AddText("People at CERN in 1988");
00080    pt->AddText("and retired in 2002");
00081    pt->Draw();
00082    
00083    c1->cd(); 
00084 }

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