Re: error with Project3D

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Mar 23 2000 - 10:17:18 MET


Hi Angela,

The Sumw2 function must be called before filling your histogram, not
after.
In testing your program, I found anyhow a bug in TH1::Project3D (now
fixed
in my development version). The error was not correctly calculated for
the projected histogram.
Thanks for having reported this problem.

Rene Brun

Angela Biselli wrote:
> 
> Hi Rooters,
> I was trying to use the error-option in Project3D and I stumbled across
> something that I don't understand:
> I use a 3D histogram, that has errors defined for every bin (Sumw2). The
> errors for the 3d histogram-bins are therefore just the sqrt of the
> associated entry. Now the calculation of the error for the projection is
> fairly straightforward and the result is that the error for one bin should
> just be the sqrt of the total entries projected into that bin (=sqrt(sum
> of the squares of the errors of the 3Dhistogram bins) ).
> However using the "e" option in Project3D (errors are computed) I get a
> result that is way too big (in my humble opinion).
> 
> For example:
> 
> {
> TH3F *test=new TH3F("test","test",2,0.5.,2.5,2,0.5,2.5,2,0.5,2.5);
> for(Int_t i=1;i<3;i++){
>   for(Int_t j=1;j<3;j++){
>     for (Int_t k=1;k<3;k++) {
>       test->Fill(i,j,k,10*i);
>     }
>   }
> }
> test->Sumw2();
> test->Project3D("xe")->Draw();
> cout<<"1st bin content="<<test_xe->GetBinContent(1)<<endl;
> cout<<"1st bin error="<<test_xe->GetBinError(1)<<endl;
> }
> 
> the output is:
> 1st bin content=40
> 1st bin error=20.9762
> 
> The projection for 2 dimensional histograms,on the other hand works in the
> way I expect
> 
> {
> TH2F *test=new TH2F("test","test",2,0.5.,2.5,2,0.5,2.5);
> for(Int_t i=1;i<3;i++){
>   for(Int_t j=1;j<3;j++) {
>       test->Fill(i,j,10*i);
>     }
>   }
> 
> test->Sumw2();
> test->ProjectionX("test_px",1,2,"E")->Draw();
> cout<<"1st bin content="<<test_px->GetBinContent(1)<<endl;
> cout<<"1st bin error="<<test_px->GetBinError(1)<<endl;
> }
> 
> 1st bin content=20
> 1st bin error=4.47214
> 
> I actually looked into the source code and the calculation seems to
> correspond to what I expect.
> Could someone please explain me what I am doing wrong?
> 
> Thanks
> Angela
> 
> Btw I am using root version 2.23-12 for LINUX



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:21 MET