TProfile2D

From: federico <federico.roncarolo_at_cern.ch>
Date: Tue, 15 Feb 2005 19:40:45 +0100


Dear Rooters,

I read in the reference manual about the binning of 2D historgrams,

"In case of 2-D or 3-D histograms, a "global bin" number is defined. For example, assuming a 3-D histogram with binx,biny,binz, the function Int_t <ListOfTypes.html#Int_t> gbin = h->GetBin <#TH1:GetBin>(binx,biny,binz); returns a global/linearized gbin number. This global gbin is useful to access the bin content/error information independently of the dimension. "

but I've a problem to understand what's happening with TProfile2D..

I want to fill the TProfile2D, plot it and then print out what is contained in each bin.

Please find attached a simple script intending to do that.

Why "i", the bin number, does not go from 1 to 4 (=nbinsx*nbinsy) ? Why only one bin results with a content > 0 while 2 are plotted?

Maybe I'm giving wrong arguments to:
h2->GetBin(x,y);

Is it possible to:
-retrieve the total number of bins
-scan with some index over all the bins and get bincenter (in 2D), bins
contents, bin entries etc...

Thanks a lot,

    Federico

{

         gROOT->Reset();

         gStyle->SetOptStat(0);         

	 Double_t nbinsx=2;
	 Double_t xmin=-4;
	 Double_t xmax=4;
	 

	 Double_t nbinsy=2;
	 Double_t ymin=-4;
	 Double_t ymax=4;

	 Double_t bwidthx=(xmax-xmin)/nbinsx;
	 Double_t bwidthy=(ymax-ymin)/nbinsy;
 

	 TCanvas *c1 = new TCanvas("c1","Profile histogram example",200,10,700,500);
	 h2  = new TProfile2D("h2","h2",nbinsx,xmin,xmax,nbinsy,ymin,ymax,0,20);
  
	 Int_t i=0;
  
  
	 for (i=0; i<5; i++) 
		  h2->Fill((Double_t)i-2,(Double_t)i-1,(Double_t)i);
  
	 h2->Draw("colz");

  
	 Double_t x,y,z;
	 
	 x=xmin+bwidthx/2;
	 
	 while(x<xmax) {
		  
		  y=ymin+bwidthy/2;
		  
		  while(y<ymax) {
			   i=h2->GetBin(x,y);
			   z=h2->GetBinContent(i);
			   
			   cout << i << "\t" << x << "\t" << y << "\t" << z << endl;
			   
			   
			   y+=bwidthy;
			   
		  }
		

		  x+=bwidthx;  
	 }
	 

} Received on Tue Feb 15 2005 - 19:40:56 MET

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:05 MET