multicolor.C: Use a THStack to show a 2-D hist with cells with different colors | Histograms | sparsehist.C: Evaluate the performance of THnSparse vs THnF (or Float_t arrays) |
//this tutorial illustrates how to: // -create a variable binwidth histogram with a binning such // that the population per bin is about the same. // -rebin a variable binwidth histogram into another one. //Author: Rene Brun #include "TH1.h" #include "TCanvas.h" void rebin() { //create a fix bin histogram TH1F *h = new TH1F("h","test rebin",100,-3,3); Int_t nentries = 1000; h->FillRandom("gaus",nentries); Double_t xbins[1000]; Int_t k=0; TAxis *axis = h->GetXaxis(); for (Int_t i=1;i<=100;i++) { Int_t y = (Int_t)h->GetBinContent(i); if (y <=0) continue; Double_t dx = axis->GetBinWidth(i)/y; Double_t xmin = axis->GetBinLowEdge(i); for (Int_t j=0;j<y;j++) { xbins[k] = xmin +j*dx; k++; } } //create a variable binwidth histogram out of fix bin histogram //new rebinned histogram should have about 10 entries per bin TH1F *hnew = new TH1F("hnew","rebinned",k-1,xbins); hnew->FillRandom("gaus",10*nentries); //rebin hnew keeping only 50% of the bins Double_t xbins2[501]; Int_t kk=0; for (Int_t j=0;j<k;j+=2) { xbins2[kk] = xbins[j]; kk++; } xbins2[kk] = xbins[k]; TH1F *hnew2 = (TH1F*)hnew->Rebin(kk-1,"hnew2",xbins2); //draw the 3 histograms TCanvas *c1 = new TCanvas("c1","c1",800,1000); c1->Divide(1,3); c1->cd(1); h->Draw(); c1->cd(2); hnew->Draw(); c1->cd(3); hnew2->Draw(); } rebin.C:1 rebin.C:2 rebin.C:3 rebin.C:4 rebin.C:5 rebin.C:6 rebin.C:7 rebin.C:8 rebin.C:9 rebin.C:10 rebin.C:11 rebin.C:12 rebin.C:13 rebin.C:14 rebin.C:15 rebin.C:16 rebin.C:17 rebin.C:18 rebin.C:19 rebin.C:20 rebin.C:21 rebin.C:22 rebin.C:23 rebin.C:24 rebin.C:25 rebin.C:26 rebin.C:27 rebin.C:28 rebin.C:29 rebin.C:30 rebin.C:31 rebin.C:32 rebin.C:33 rebin.C:34 rebin.C:35 rebin.C:36 rebin.C:37 rebin.C:38 rebin.C:39 rebin.C:40 rebin.C:41 rebin.C:42 rebin.C:43 rebin.C:44 rebin.C:45 rebin.C:46 rebin.C:47 rebin.C:48 rebin.C:49 rebin.C:50 rebin.C:51 rebin.C:52 |
|