Root [0] TFile top("top.root");
The hierarchy can be browsed by the Root browser as shown below
Root TBrowser b;
Click on the left pane on one of the plane directories. This shows the list of all histograms in this directory. Double click on one histogram to draw it (left mouse button). Select different options with the right mouse button. Instead of using the browser, you can also do:
Root > tof->cd();
Root > plane3->cd();
Root > h3_90N->Draw();
Author: Rene Brun
This notebook tutorial was automatically generated with ROOTBOOK-izer (Beta) from the macro found in the ROOT repository on Thursday, January 19, 2017 at 04:29 PM.
Create a new root file
In [1]:
TFile *top = new TFile("top.root","recreate");
Create a subdirectory "tof" in this file
In [2]:
TDirectory *cdtof = top->mkdir("tof");
cdtof->cd(); // make the "tof" directory the current directory
Create a new subdirectory for each plane
In [3]:
const Int_t nplanes = 10;
const Int_t ncounters = 100;
char dirname[50];
char hname[20];
char htitle[80];
Int_t i,j,k;
TDirectory *cdplane[nplanes];
TH1F *hn[nplanes][ncounters];
TH1F *hs[nplanes][ncounters];
for (i=0;i<nplanes;i++) {
sprintf(dirname,"plane%d",i);
cdplane[i] = cdtof->mkdir(dirname);
cdplane[i]->cd();
// create counter histograms
for (j=0;j<ncounters;j++) {
sprintf(hname,"h%d_%dN",i,j);
sprintf(htitle,"hist for counter:%d in plane:%d North",j,i);
hn[i][j] = new TH1F(hname,htitle,100,0,100);
sprintf(hname,"h%d_%dS",i,j);
sprintf(htitle,"hist for counter:%d in plane:%d South",j,i);
hs[i][j] = new TH1F(hname,htitle,100,0,100);
}
cdtof->cd(); // change current directory to top
}
Fill histograms
In [4]:
TRandom r;
for (i=0;i<nplanes;i++) {
cdplane[i]->cd();
for (j=0;j<ncounters;j++) {
for (k=0;k<100;k++) {
hn[i][j]->Fill(100*r.Rndm(),i+j);
hs[i][j]->Fill(100*r.Rndm(),i+j+k);
}
}
}
Save histogram hierarchy in the file
In [5]:
top->Write();
delete top;