Peter wrote:
>
> I'm new to this list, hope this hasn't been asked before but I could
> not find out how to do this from the documentation.
>
> I want to make an array of histograms. I will start with
>
> TH1S *qll = new TH1S[16];
>
> Now, I guess this calls the default constructor TH1S::TH1S(void) with
> no information about setting up the histogram limits, titles,
> etc. I've tried to do this by hand with something like
>
> for (short it1 = 0; it1 < 16; it1++) {
> qll[it1].SetBins(500, 300, 800);
> }
>
> but this does not seem to work (I get core dumps when I try to fill
> the histograms.) What would the correct way of doing this be?
>
> (From the documentation, I see that the other constructors call the
> TH1S::Build() method to create the histogram data structure, but this
> is a private method ??)
>
> Thanks a lot in advance, and thanks for what looks to be a great
> package.
>
This is a small example using pointers to histograms.
{
// example of program creating, filling, saving hsitograms in a file
gROOT->Reset();
TFile hfile("hfile.root","RECREATE");
// create histograms
TH1S *h[16];
char name[20];
char title[100];
for (Int_t i=0;i<16;i++) {
sprintf(name,"h%d",i);
sprintf(title,"title of h%d",i);
h[i] = new TH1S(name,title,100,500,600);
}
// fill histograms
for (Int_t i=0;i<16;i++) {
for (Int_t j=0;j<1000;j++) {
Float_t x= gRandom->Rndm();
h[i]->Fill(500+100*x);
}
}
// save histograms
hfile.Write();
}
You can also look at the tutorials section at:
http://root.cern.ch/root/Tutorials.html
and in particular at:
http://root.cern.ch/root/html/examples/hsimple.C.html
http://root.cern.ch/root/html/examples/hsum.C.html
Rene Brun
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:20 MET