Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
hstack.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_hist
3/// \notebook
4/// Example of stacked histograms: class THStack.
5///
6/// \macro_image
7/// \macro_code
8///
9/// \author Rene Brun
10
11void hstack()
12{
13 auto hs = new THStack("hs","Stacked 1D histograms");
14 //create three 1-d histograms
15 auto h1st = new TH1F("h1st","test hstack",100,-4,4);
16 h1st->FillRandom("gaus",20000);
17 h1st->SetFillColor(kRed);
18 h1st->SetMarkerStyle(21);
19 h1st->SetMarkerColor(kRed);
20 hs->Add(h1st);
21 auto h2st = new TH1F("h2st","test hstack",100,-4,4);
22 h2st->FillRandom("gaus",15000);
23 h2st->SetFillColor(kBlue);
24 h2st->SetMarkerStyle(21);
25 h2st->SetMarkerColor(kBlue);
26 hs->Add(h2st);
27 auto h3st = new TH1F("h3st","test hstack",100,-4,4);
28 h3st->FillRandom("gaus",10000);
29 h3st->SetFillColor(kGreen);
30 h3st->SetMarkerStyle(21);
31 h3st->SetMarkerColor(kGreen);
32 hs->Add(h3st);
33
34 auto cst = new TCanvas("cst","stacked hists",10,10,700,700);
35 cst->Divide(2,2);
36 // in top left pad, draw the stack with defaults
37 cst->cd(1);
38 hs->Draw();
39 // in top right pad, draw the stack in non-stack mode
40 // and errors option
41 cst->cd(2);
42 gPad->SetGrid();
43 hs->Draw("nostack,e1p");
44 //in bottom left, draw in stack mode with "lego1" option
45 cst->cd(3);
46 gPad->SetFrameFillColor(17);
47 gPad->SetTheta(3.77);
48 gPad->SetPhi(2.9);
49 hs->Draw("lego1");
50
51 cst->cd(4);
52 //create two 2-D histograms and draw them in stack mode
53 gPad->SetFrameFillColor(17);
54 auto a = new THStack("a","Stacked 2D histograms");
55 auto f1 = new TF2("f1",
56 "xygaus + xygaus(5) + xylandau(10)",-4,4,-4,4);
57 Double_t params1[] = {130,-1.4,1.8,1.5,1, 150,2,0.5,-2,0.5,
58 3600,-2,0.7,-3,0.3};
59 f1->SetParameters(params1);
60 auto h2sta = new TH2F("h2sta","h2sta",20,-4,4,20,-4,4);
61 h2sta->SetFillColor(38);
62 h2sta->FillRandom("f1",4000);
63 auto f2 = new TF2("f2","xygaus + xygaus(5)",-4,4,-4,4);
64 Double_t params2[] = {100,-1.4,1.9,1.1,2, 80,2,0.7,-2,0.5};
65 f2->SetParameters(params2);
66 auto h2stb = new TH2F("h2stb","h2stb",20,-4,4,20,-4,4);
67 h2stb->SetFillColor(46);
68 h2stb->FillRandom("f2",3000);
69 a->Add(h2sta);
70 a->Add(h2stb);
71 a->Draw();
72}
#define a(i)
Definition RSha256.hxx:99
double Double_t
Definition RtypesCore.h:59
@ kRed
Definition Rtypes.h:66
@ kGreen
Definition Rtypes.h:66
@ kBlue
Definition Rtypes.h:66
#define gPad
The Canvas class.
Definition TCanvas.h:23
virtual void SetParameters(const Double_t *params)
Definition TF1.h:677
A 2-Dim function with parameters.
Definition TF2.h:29
1-D histogram with a float per channel (see TH1 documentation)
Definition TH1.h:622
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:307
The Histogram stack class.
Definition THStack.h:40
TF1 * f1
Definition legend1.C:11