Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
tree501_cernstaff.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_tree
3/// \notebook
4/// Playing with a Tree containing variables of type character
5///
6/// \macro_image
7/// \macro_code
8///
9/// \author Rene Brun
10
11void tree501_cernstaff()
12{
13 TString dir = gROOT->GetTutorialDir();
14 dir.Append("/io/tree/cernstaff.C");
15 if (gSystem->AccessPathName("cernstaff.root")) {
16 gROOT->SetMacroPath(dir);
17 gROOT->ProcessLine(".x tree500_cernbuild.C");
18 }
19 auto f = TFile::Open("cernstaff.root");
20 auto T = f->Get<TTree>("T");
21 auto c1 = new TCanvas("c1", "CERN staff", 10, 10, 1000, 750);
22 c1->Divide(2, 2);
23 // make table of number of people per Nation & Division
24 c1->cd(1);
25 gPad->SetGrid();
26 T->Draw("Nation:Division>>hN", "", "text");
27 TH2F *hN = (TH2F*)gDirectory->Get("hN");
28 hN->SetMarkerSize(1.6);
29 hN->SetStats(0);
30
31 //make profile of Average cost per Nation
32 c1->cd(2);
33 gPad->SetGrid();
34 gPad->SetLeftMargin(0.12);
35 T->Draw("Cost:Nation>>hNation", "", "prof,goff");
36 TH1F *hNation = (TH1F*)gDirectory->Get("hNation");
37 hNation->SetTitle("Average Cost per Nation");
38 hNation->LabelsOption(">"); //sort by decreasing bin contents
39 hNation->SetMaximum(13000);
40 hNation->SetMinimum(7000);
41 hNation->SetStats(0);
42 hNation->SetMarkerStyle(21);
43 hNation->Draw();
44
45 //make stacked plot of Nations versus Grade
46 c1->cd(3);
47 gPad->SetGrid();
48 auto hGrades = new THStack("hGrades", "Nations versus Grade");
49 auto hFR = new TH1F("hFR", "FR", 12, 3, 15);
50 hFR->SetFillColor(kCyan);
51 hGrades->Add(hFR);
52 T->Draw("Grade>>hFR", "Nation==\"FR\"");
53 auto hCH = new TH1F("hCH", "CH", 12, 3, 15);
54 hCH->SetFillColor(kRed);
55 hGrades->Add(hCH);
56 T->Draw("Grade>>hCH","Nation==\"CH\"");
57 auto hIT = new TH1F("hIT", "IT", 12, 3, 15);
58 hIT->SetFillColor(kGreen);
59 hGrades->Add(hIT);
60 T->Draw("Grade>>hIT","Nation==\"IT\"");
61 auto hDE = new TH1F("hDE","DE", 12, 3, 15);
62 hDE->SetFillColor(kYellow);
63 hGrades->Add(hDE);
64 T->Draw("Grade>>hDE","Nation==\"DE\"");
65 auto hGB = new TH1F("hGB","GB", 12, 3, 15);
66 hGB->SetFillColor(kBlue);
67 hGrades->Add(hGB);
68 T->Draw("Grade>>hGB","Nation==\"GB\"");
69 hGrades->Draw();
70 auto legend = new TLegend(0.7, 0.65, 0.86, 0.88);
71 legend->AddEntry(hGB,"GB","f");
72 legend->AddEntry(hDE,"DE","f");
73 legend->AddEntry(hIT,"IT","f");
74 legend->AddEntry(hCH,"CH","f");
75 legend->AddEntry(hFR,"FR","f");
76 legend->Draw();
77
78 //make histogram of age distribution
79 c1->cd(4); gPad->SetGrid();
80 T->Draw("Age");
81 T->Draw("Age>>hRetired", "Age>(65-2002+1988)", "same");
82 TH1F *hRetired = (TH1F*)gDirectory->Get("hRetired");
83 hRetired->SetFillColor(kRed);
84 hRetired->SetFillStyle(3010);
85
86 auto arrow = new TArrow(32, 169, 55, 74, 0.03, "|>");
87 arrow->SetFillColor(1);
88 arrow->SetFillStyle(1001);
89 arrow->Draw();
90
91 auto pt = new TPaveText(0.12, 0.8, 0.55, 0.88, "brNDC");
92 pt->SetFillColor(kWhite);
93 pt->AddText("People at CERN in 1988");
94 pt->AddText("and retired in 2002");
95 pt->Draw();
96
97 c1->cd();
98}
#define f(i)
Definition RSha256.hxx:104
@ kRed
Definition Rtypes.h:67
@ kGreen
Definition Rtypes.h:67
@ kWhite
Definition Rtypes.h:66
@ kCyan
Definition Rtypes.h:67
@ kBlue
Definition Rtypes.h:67
@ kYellow
Definition Rtypes.h:67
#define gDirectory
Definition TDirectory.h:385
#define gROOT
Definition TROOT.h:417
externTSystem * gSystem
Definition TSystem.h:582
#define gPad
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition TAttFill.h:40
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
Definition TAttFill.h:42
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
Definition TAttMarker.h:43
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
Definition TAttMarker.h:48
The Canvas class.
Definition TCanvas.h:23
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
Definition TFile.cxx:3787
1-D histogram with a float per channel (see TH1 documentation)
Definition TH1.h:878
void SetTitle(const char *title) override
Change/set the title.
Definition TH1.cxx:6836
virtual void LabelsOption(Option_t *option="h", Option_t *axis="X")
Sort bins with labels or set option(s) to draw axis with labels.
Definition TH1.cxx:5464
virtual void SetMaximum(Double_t maximum=-1111)
Definition TH1.h:652
void Draw(Option_t *option="") override
Draw this histogram with options.
Definition TH1.cxx:3097
virtual void SetMinimum(Double_t minimum=-1111)
Definition TH1.h:653
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
Definition TH1.cxx:9127
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:345
Basic string class.
Definition TString.h:138
TString & Append(const char *cs)
Definition TString.h:581
A TTree represents a columnar dataset.
Definition TTree.h:89
TPaveText * pt
return c1
Definition legend1.C:41