Logo ROOT   6.12/07
Reference Guide
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;
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 }
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
Definition: TH1.cxx:3244
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
Definition: TSystem.cxx:424
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
Definition: TRandom.cxx:481
TList * GetListOfPrimitives() const
Definition: TPad.h:240
float Float_t
Definition: RtypesCore.h:53
return c1
Definition: legend1.C:41
THist< 1, float, THistStatContent, THistStatUncertainty > TH1F
Definition: THist.hxx:285
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
Definition: TCanvas.cxx:688
virtual void Update()
Update pad.
Definition: TPad.cxx:2804
int Int_t
Definition: RtypesCore.h:41
Iterator of linked list.
Definition: TList.h:197
void Class()
Definition: Class.C:29
virtual void SetSeed(ULong_t seed=0)
Set the random generator seed.
Definition: TRandom.cxx:589
A doubly linked list.
Definition: TList.h:44
R__EXTERN TSystem * gSystem
Definition: TSystem.h:540
virtual void Draw(Option_t *option="")
Draw this histogram with options.
Definition: TH1.cxx:2969
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition: TAttFill.h:37
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Definition: TObject.cxx:443
The most important graphics class in the ROOT system.
Definition: TPad.h:29
R__EXTERN TRandom * gRandom
Definition: TRandom.h:62
TH1K class supports the nearest K Neighbours method, widely used in cluster analysis.
Definition: TH1K.h:27
The Canvas class.
Definition: TCanvas.h:31
TFitResultPtr Fit(FitObject *h1, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption, const char *goption, ROOT::Fit::DataRange &range)
Definition: HFitImpl.cxx:134
The TH1 histogram class.
Definition: TH1.h:56
Mother of all ROOT objects.
Definition: TObject.h:37
virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
Automatic pad generation by division.
Definition: TPad.cxx:1153
void Modified(Bool_t flag=1)
Definition: TPad.h:414