Hi ALL,
I was just looking at the sample program in the tutorials
for finding peaks in histograms, which is useful in my
analysis. I think I found some error in the TSpectrum::Search()
with setting the threshold. I am not sure if that's a bug or
its meant to be interpreted that way. But here it is..
I am using Root Version 3.05/07 27 July 2003.
Here's the sample code for peaks.C that I got from the
tutorials. I have stripped the code down to a few lines
to illustrate the error.
/**************************************/
#include "TCanvas.h"
#include "TH1.h"
#include "TF1.h"
#include "TRandom.h"
#include "TSpectrum.h"
#include "TVirtualFitter.h"
Int_t npeaks = 30;
void peaks(Int_t np=10) {
npeaks = np;
TH1F *h = new TH1F("h","test",50,-4,4);
TCanvas *c1 = new TCanvas("c1","c1",10,10,1000,900);
h->FillRandom("gaus",50000);
h->Draw();
TSpectrum *s = new TSpectrum(2);
Int_t nfound = s->Search(h,1,"new",1.0); // <--- Threshold set to 1.0
printf("Found %d candidate peaks to fitn",nfound);
c1->Update();
}
/**************************************/
Here's the output
Error in <TSpectrum::Search1HighRes>: Invalid threshold, must be positive
and less than 100
I think the error should read something like
Invalid threshold, must be positive and less than 100% or
Invalid threshold, must be positive and less than 1.0
Any comments?
Venkat.
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:17 MET