Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
twoscales.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_hist
3 /// \notebook
4 /// Example of macro illustrating how to superimpose two histograms
5 /// with different scales in the "same" pad.
6 ///
7 /// \macro_image
8 /// \macro_code
9 ///
10 /// \author Rene Brun
11 
12 #include "TCanvas.h"
13 #include "TStyle.h"
14 #include "TH1.h"
15 #include "TGaxis.h"
16 #include "TRandom.h"
17 
18 void twoscales()
19 {
20  TCanvas *c1 = new TCanvas("c1","hists with different scales",600,400);
21 
22  //create/fill draw h1
23  gStyle->SetOptStat(kFALSE);
24  TH1F *h1 = new TH1F("h1","my histogram",100,-3,3);
25  Int_t i;
26  for (i=0;i<10000;i++) h1->Fill(gRandom->Gaus(0,1));
27  h1->Draw();
28  c1->Update();
29 
30  //create hint1 filled with the bins integral of h1
31  TH1F *hint1 = new TH1F("hint1","h1 bins integral",100,-3,3);
32  Float_t sum = 0;
33  for (i=1;i<=100;i++) {
34  sum += h1->GetBinContent(i);
35  hint1->SetBinContent(i,sum);
36  }
37 
38  //scale hint1 to the pad coordinates
39  Float_t rightmax = 1.1*hint1->GetMaximum();
40  Float_t scale = gPad->GetUymax()/rightmax;
41  hint1->SetLineColor(kRed);
42  hint1->Scale(scale);
43  hint1->Draw("same");
44 
45  //draw an axis on the right side
46  TGaxis *axis = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(),
47  gPad->GetUxmax(), gPad->GetUymax(),0,rightmax,510,"+L");
48  axis->SetLineColor(kRed);
49  axis->SetLabelColor(kRed);
50  axis->Draw();
51 }