Since both classes TH1F as well as TH2F ( http://root.cern.ch/root/htmldoc/TH2F.html ) are
derived from TArrayF (http://root.cern.ch/root/htmldoc/TArrayF.html)
all methods of the last one are available.
This means any histogram is in possession of the
public: float *TArrayF::fArray
and
public: float &TArray::operator [] (int i)
as well.
And one can simplify the example below:
> > for a 2D histogram
>
> The brute force way to do this, if I remember my
> PAW correctly, is:
>
> TH2 *hist = (TH2*)file->Get("hist_id");
> int dimX = (int)hist->GetNbinsX();
> int dimY = (int)hist->GetNbinsY();
>
> double vect[dimX][dimY];
>
> for(int i=1; i <= dimX; i++) {
> for(int j=1; j <= dimY; j++) {
> int bin = (int)hist->GetBin(i,j);
> vect[i][j] = (double)hist->GetBinContent(bin);
> }
> }
>
TH2F *hist = (TH2F*)file->Get("hist_id");
int dimX = (int)hist->GetNbinsX();
int dimY = (int)hist->GetNbinsY();
float *vect = new float[dimX*dimY];
memcpy(vect,hist->fArray,sizeof(vector));
> Whether there is a clean, simple function call in a ROOT
> class, I'm not sure (haven't look at recent versions)
One one needs no special function.
The function "memcpy" can do job.
Cheers, Valeri
>
> Cheers,
> -Tim
>
> P.S. I haven't run the code above, but from first glance
> it looks like it has no bugs (tm).
>
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:59 MET