{ gROOT->Reset(); TCanvas *cr = new TCanvas("cr","Amplitude",200,10,800,600); TH1D *h=new TH1D("Pixel","Pixel",13,0,13); for(Int_t i=0;i<6;i++) h->Fill(10*gRandom->Rndm()); cout<<"Mean befor SetRange ="<<h->GetMean()<<endl; h->GetXaxis()->SetRange(0,12); cout<<"Mean after SetRange ="<<h->GetMean()<<endl; h->Draw(); cr->Update(); cr->Pop(); } The changing of the mean confuses people a little bit. Best regards, Andrei. On Wed, 15 Sep 2004, Rene Brun wrote: > Andrei, > > The member fTsumwx is incremented in the TH1::Fill methods using the true > value of the x coordinate. TH1::GetMean returns the mean using this value. > > However, when you zoom via TAxis::SetRange, ROOT recomputes the mean value > using the bin contents and the center of each bin. > > I do not see any problems with this method. If you have evidence of the > contrary, please send the shortest possible running script showing the > problem. > > Rene Brun > > Andrei Kuznetsov wrote: > > > > Hello, > > > > it looks like ROOT calculates fTsumwx (and hence Mean of a histogram) in > > TH1 incorrectly. > > > > But if you perform > > your_histogram->GetXaxis()->SetRange(a,b); > > after the filling (or "zoom" by hands) it works correctly. > > > > It looks likes in the first case it is not used the center of bin when > > fTsumwx is calculated. > > > > Best regards, > > Andrei. >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET