Fred Gray wrote: > > I'm looking for a way to extract a subset of the bins of one histogram into > a new histogram. I have a histogram which represents a signal waveform, and > I would like to be able to examine the signal over particular time intervals. > > I've written a function to do this myself, but I suspect that this might be of > sufficiently general utility that there would be a cleaner way of doing it. > If not, please allow me to suggest it for future inclusion in the TH1 class. > > Here's the function that I wrote, in case it's of use to you. Thanks for your > help! > > TH1F *ExtractHistogram(TH1F *src, Text_t *name, Text_t *title, > Float_t min, Float_t max) > { > TAxis *axis = src->GetXaxis(); > Int_t minBin = axis->FindBin(min); > Int_t maxBin = axis->FindBin(max); > Int_t nbins = maxBin - minBin + 1; > > min = src->GetBinLowEdge(minBin); > max = src->GetBinLowEdge(maxBin+1); > > TH1F *dst = new TH1F(name, title, nbins, min, max); > > for(Int_t i = 1; i < nbins+1; i++) > { > dst->SetBinContent(i, src->GetBinContent(i+minBin)); > } > > return dst; > } I agree that this kind of function would be useful. However, in the implementation one has to consider 1-D, 2-D and 3-D histograms with fix or variable bin sizes and also profile histograms. The input should be bin numbers and not boundary values on the axis. Rene Brun
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:31 MET