Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
hksimple.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_hist
3 /// \notebook
4 /// Illustrates the advantages of a TH1K histogram
5 ///
6 /// \macro_image
7 /// \macro_code
8 ///
9 /// \author Victor Perevovchikov
10 
11 void padRefresh(TPad *pad,int flag=0)
12 {
13  if (!pad) return;
14  pad->Modified();
15  pad->Update();
16  TList *tl = pad->GetListOfPrimitives();
17  if (!tl) return;
18  TListIter next(tl);
19  TObject *to;
20  while ((to=next())) {
21  if (to->InheritsFrom(TPad::Class())) padRefresh((TPad*)to,1);}
22  if (flag) return;
23  gSystem->ProcessEvents();
24 }
25 
26 void hksimple()
27 {
28 // Create a new canvas.
29  TCanvas* c1 = new TCanvas("c1","Dynamic Filling Example",200,10,600,900);
30 
31 // Create a normal histogram and two TH1K histograms
32  TH1 *hpx[3];
33  hpx[0] = new TH1F("hp0","Normal histogram",1000,-4,4);
34  hpx[1] = new TH1K("hk1","Nearest Neighbour of order 3",1000,-4,4);
35  hpx[2] = new TH1K("hk2","Nearest Neighbour of order 16",1000,-4,4,16);
36  c1->Divide(1,3);
37  Int_t j;
38  for (j=0;j<3;j++) {
39  c1->cd(j+1);
40  hpx[j]->SetFillColor(48);
41  hpx[j]->Draw();
42  }
43 
44 // Fill histograms randomly
45  gRandom->SetSeed(12345);
46  Float_t px, py, pz;
47  const Int_t kUPDATE = 10;
48  for (Int_t i = 0; i <= 300; i++) {
49  gRandom->Rannor(px,py);
50  for (j=0;j<3;j++) {hpx[j]->Fill(px);}
51  if (i && (i%kUPDATE) == 0) {
52  padRefresh(c1);
53  }
54  }
55 
56  for (j=0;j<3;j++) hpx[j]->Fit("gaus");
57  padRefresh(c1);
58 }