G'day rooters,
I'm concerned about TProfile treatments of the bins with just one event. According to the TProfile source the default computation of errors is:
" " SQRT(Y)/SQRT(N) for Spread.eq.0,N.gt.0
In my case it seems like the error for the 1 event bins is set to 0 which might create problems for the subsequent fits.
I attached a small program ( similar to the one given as example) that shows a similar problem. It seems that in hprof the one event bins are ignored. In hprof1 they are present and the error associated is zero. The same thing occurs when I use the menu ("righth click" "ProfileX") to produce a ProfileX from the hprof_bidim 2D histogram. When fitted with a pol2 the two profile histograms (hprof, and hprof1) give completely different results.
I'm using root 4.01/02 on an RedHat Linux release 7.3 (Valhalla) kernel 2.4.20-18.7
Is there an option to remove the 1 event channels , or compute a reasonable error ?
Cheers,
Cozmin
____________________________________________________________________
C. N. Timis
Department of Physics | Email: C.Timis@surrey.ac.uk
University of Surrey | tel: +44 (0)1483 68 69 05
Guildford GU2 7XH | fax: +44 (0)1483 68 67 81
UK |
_____________________________________________________________
{
TCanvas *c1 = new TCanvas("c1","Profile histogram example",200,10,700,500);
hprof = new TProfile("hprof","Profile of pz versus px",100,-4,4,0,20);
hprof1 = new TProfile("hprof1","Profile of pz versus px",100,-4,4,0,20);
TH2F *hprof_bidim = new TH2F("hprof_bidim","",100,-4,4,100,0,20);
Float_t px, py, pz;
for ( Int_t i=0; i<1000; i++) {
gRandom->Rannor(px,py);
pz = px*px + py*py;
hprof->Fill(px,pz,1);
hprof_bidim->Fill(px,pz);
}
hprof->Draw();
hprof1=hprof_bidim->ProfileX();
TCanvas *my = new TCanvas;
hprof_bidim->Draw();
TCanvas *my2 = new TCanvas;
hprof1->Draw();
}
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET