Re: [ROOT] How can I merge some of the bins in TH1

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sun May 19 2002 - 14:21:18 MEST


iSee example below

Rene Brun

void mup() {
   const Int_t nbins = 100;
   TH1F *h = new TH1F("h","merging high bins",nbins,0,3);
   h->FillRandom("gaus",5000);
   Double_t xbins[nbins];
   Int_t i;
   TAxis *axis = h->GetXaxis();
   for (i=0;i<50;i++)  xbins[i] = axis->GetBinLowEdge(1+i);
   for (i=50;i<=60;i++) xbins[i] = axis->GetBinLowEdge(51+5*(i-50));
   for (i=0;i<=60;i++) printf("xbins[%d]=%g\n",i,xbins[i]);
   TH1F *hnew = new TH1F("hnew","merged",60,xbins);
   for (i=0;i<nbins;i++) {
      Double_t y = h->GetBinContent(i+1);
      Double_t x = axis->GetBinCenter(i+1);
      if (i < 50) hnew->Fill(x,y);
      else        hnew->Fill(x,y/5);
   }
   TCanvas *c1 = new TCanvas("c1","c1",10,10,700,900);
   c1->Divide(1,2);
   c1->cd(1);
   h->Draw();
   c1->cd(2);
   hnew->Draw();
}

On Wed, 15 May 2002, Xiaorong Wang wrote:

> Dear root experter,
> 
> I have a TH1, I want to merge some of the bins on the edge of x axis and
> keep other bins contents. Can I do this in Root?
> 
> Thanks for your attention,
> 
> Xiaorong  Wang
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:53 MET