hstack.C

Go to the documentation of this file.
00001 TCanvas *hstack() {
00002 // Example of stacked histograms: class THStack
00003 //
00004 //  Author: Rene Brun
00005    
00006    THStack *hs = new THStack("hs","Stacked 1D histograms");
00007    //create three 1-d histograms
00008    TH1F *h1st = new TH1F("h1st","test hstack",100,-4,4);
00009    h1st->FillRandom("gaus",20000);
00010    h1st->SetFillColor(kRed);
00011    h1st->SetMarkerStyle(21);
00012    h1st->SetMarkerColor(kRed);
00013    hs->Add(h1st);
00014    TH1F *h2st = new TH1F("h2st","test hstack",100,-4,4);
00015    h2st->FillRandom("gaus",15000);
00016    h2st->SetFillColor(kBlue);
00017    h2st->SetMarkerStyle(21);
00018    h2st->SetMarkerColor(kBlue);
00019    hs->Add(h2st);
00020    TH1F *h3st = new TH1F("h3st","test hstack",100,-4,4);
00021    h3st->FillRandom("gaus",10000);
00022    h3st->SetFillColor(kGreen);
00023    h3st->SetMarkerStyle(21);
00024    h3st->SetMarkerColor(kGreen);
00025    hs->Add(h3st);
00026    
00027    TCanvas *cst = new TCanvas("cst","stacked hists",10,10,700,700);
00028    cst->SetFillColor(41);
00029    cst->Divide(2,2);
00030    // in top left pad, draw the stack with defaults
00031    cst->cd(1);
00032    hs->Draw();
00033    // in top right pad, draw the stack in non-stack mode 
00034    // and errors option
00035    cst->cd(2);
00036    gPad->SetGrid();
00037    hs->Draw("nostack,e1p");
00038    //in bottom left, draw in stack mode with "lego1" option
00039    cst->cd(3);
00040    gPad->SetFrameFillColor(17);
00041    gPad->SetTheta(3.77);
00042    gPad->SetPhi(2.9);
00043    hs->Draw("lego1");
00044 
00045    cst->cd(4);
00046    //create two 2-D histograms and draw them in stack mode
00047    gPad->SetFrameFillColor(17);
00048    THStack *a = new THStack("a","Stacked 2D histograms");
00049    TF2 *f1 = new TF2("f1",
00050       "xygaus + xygaus(5) + xylandau(10)",-4,4,-4,4);
00051    Double_t params[] = {130,-1.4,1.8,1.5,1, 150,2,0.5,-2,0.5, 
00052       3600,-2,0.7,-3,0.3};
00053    f1->SetParameters(params);
00054    TH2F *h2sta = new TH2F("h2sta","h2sta",20,-4,4,20,-4,4);
00055    h2sta->SetFillColor(38);
00056    h2sta->FillRandom("f1",4000);
00057    TF2 *f2 = new TF2("f2","xygaus + xygaus(5)",-4,4,-4,4);
00058    Double_t params[] = {100,-1.4,1.9,1.1,2, 80,2,0.7,-2,0.5};
00059    f2->SetParameters(params);
00060    TH2F *h2stb = new TH2F("h2stb","h2stb",20,-4,4,20,-4,4);
00061    h2stb->SetFillColor(46);
00062    h2stb->FillRandom("f2",3000);
00063    a->Add(h2sta);
00064    a->Add(h2stb);
00065    a->Draw();
00066    return cst;
00067 }

Generated on Tue Jul 5 15:44:26 2011 for ROOT_528-00b_version by  doxygen 1.5.1