void hstack()
{
auto hs =
new THStack(
"hs",
"Stacked 1D histograms");
auto h1st =
new TH1F(
"h1st",
"test hstack",100,-4,4);
h1st->FillRandom("gaus",20000);
h1st->SetFillColor(
kRed);
h1st->SetMarkerStyle(21);
h1st->SetMarkerColor(
kRed);
hs->Add(h1st);
auto h2st =
new TH1F(
"h2st",
"test hstack",100,-4,4);
h2st->FillRandom("gaus",15000);
h2st->SetFillColor(
kBlue);
h2st->SetMarkerStyle(21);
h2st->SetMarkerColor(
kBlue);
hs->Add(h2st);
auto h3st =
new TH1F(
"h3st",
"test hstack",100,-4,4);
h3st->FillRandom("gaus",10000);
h3st->SetMarkerStyle(21);
hs->Add(h3st);
auto cst =
new TCanvas(
"cst",
"stacked hists",10,10,700,700);
cst->Divide(2,2);
cst->cd(1);
hs->Draw();
cst->cd(2);
hs->Draw("nostack,e1p");
cst->cd(3);
gPad->SetFrameFillColor(17);
hs->Draw("lego1");
cst->cd(4);
gPad->SetFrameFillColor(17);
auto a =
new THStack(
"a",
"Stacked 2D histograms");
"xygaus + xygaus(5) + xylandau(10)",-4,4,-4,4);
Double_t params1[] = {130,-1.4,1.8,1.5,1, 150,2,0.5,-2,0.5,
3600,-2,0.7,-3,0.3};
auto h2sta =
new TH2F(
"h2sta",
"h2sta",20,-4,4,20,-4,4);
h2sta->SetFillColor(38);
h2sta->FillRandom("f1",4000);
auto f2 =
new TF2(
"f2",
"xygaus + xygaus(5)",-4,4,-4,4);
Double_t params2[] = {100,-1.4,1.9,1.1,2, 80,2,0.7,-2,0.5};
f2->SetParameters(params2);
auto h2stb =
new TH2F(
"h2stb",
"h2stb",20,-4,4,20,-4,4);
h2stb->SetFillColor(46);
h2stb->FillRandom("f2",3000);
}
virtual void SetParameters(const Double_t *params)
A 2-Dim function with parameters.
1-D histogram with a float per channel (see TH1 documentation)}
2-D histogram with a float per channel (see TH1 documentation)}
The Histogram stack class.