Subversion Repositories f9daq

Rev

Blame | Last modification | View Log | RSS feed

  1. #include "TH2D.h"
  2. #include "..\cvi\H2D.h"
  3.  
  4. double H2DGetBinContent(H2D *h2d,int atx, int aty){
  5.  
  6. int idx;
  7. if (!h2d) return 0;
  8. if (h2d->nx <= atx)  return 0;
  9. if (h2d->ny <= aty)  return 0;  
  10. idx = atx+aty*h2d->nx;  
  11. if (idx < h2d->size ) return h2d->data[idx];
  12.  
  13.  
  14. return 0;
  15. }
  16.  
  17.  
  18. int H2Dload(char *fname){
  19.  
  20. FILE *fp= fopen(fname ,"rb");
  21. if (!fp) return -1;
  22. H2D *h = new H2D;
  23. int size=sizeof(H2D);
  24. int nb1 = fread(h,1, size,fp);
  25. if (size + h->size !=h->len ) printf("WRONG HEADER ! Check sizeof H2D on CVI\n");
  26.  
  27. size=h->size;
  28. h->data = new double[size];
  29. int nb  = fread(h->data,1, size,fp);
  30. printf("hdr nb=%d sizeof(HDR)=%d len=%d datasize=%d\t",nb1,sizeof(H2D),h->len, h->size);
  31. printf("data nb=%d size=%d\n",nb,size);
  32.  
  33. TH2D *h2d = new TH2D(h->name, h->title,
  34.                      h->nx, h->minx-0.5*h->stepx,h->minx+(h->nx-0.5)*h->stepx,
  35.                      h->ny, h->miny-0.5*h->stepy,h->miny+(h->ny-0.5)*h->stepy);
  36. h2d->SetTitle(h->title);
  37. h2d->SetTitle("");
  38. h2d->GetXaxis()->SetTitle(h->titlex);
  39. h2d->GetYaxis()->SetTitle(h->titley);
  40. printf("TH2D name=%s %s %s %s\nnx=%d %f %f \nny=%d %f %f\n",h->name, h->title,h->titlex, h->titley,
  41.                      h->nx, h->minx-0.5*h->stepx,h->minx+(h->nx-0.5)*h->stepx,
  42.                      h->ny, h->miny-0.5*h->stepy,h->miny+(h->ny-0.5)*h->stepy);
  43.  
  44.                      
  45. //h2d->ls();
  46. //h2d->Print();
  47.  
  48. for (int ix=0;ix<h->nx;ix++){
  49.   for (int iy=0;iy<h->ny;iy++){
  50.          double g=H2DGetBinContent(h,ix,iy);
  51.      h2d->SetBinContent(ix+1,iy+1, g);
  52. //       if (g>0) printf("i %d j %d v %g\n",ix+1,iy+1,g);
  53.   }
  54.  
  55. }
  56.  
  57. gStyle->SetOptStat(0);
  58. h2d->Draw("colz");
  59. char hname[100];
  60. sprintf(hname,"%s.pdf",fname);
  61. gPad->SaveAs(hname);
  62. }
  63.