Rev 251 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line | 
|---|---|---|---|
| 230 | f9daq | 1 | #include <TH1D.h> | 
        
| 2 | #include <TStyle.h> | 
        ||
| 3 | #include <TPad.h> | 
        ||
| 4 | #include "mH1D.h" | 
        ||
| 5 | |||
| 6 | double H1DGetBinContent(H1D *h1d,int atx){  | 
        ||
| 7 | |||
| 8 | if (!h1d) return 0;  | 
        ||
| 9 | if (h1d->nx <= atx) return 0;  | 
        ||
| 10 | if (atx < h1d->size ) return h1d->data[atx];  | 
        ||
| 11 | |||
| 12 | |||
| 13 | return 0;  | 
        ||
| 14 | } | 
        ||
| 15 | |||
| 16 | |||
| 17 | int H1Dload(char *fname){  | 
        ||
| 18 | |||
| 19 | FILE *fp= fopen(fname ,"rb");  | 
        ||
| 20 | if (!fp) return -1;  | 
        ||
| 21 | H1D *h = new H1D;  | 
        ||
| 22 | int size=sizeof(H1D);  | 
        ||
| 23 | int nb1 = fread(h,1, size,fp);  | 
        ||
| 24 | if (size + h->size !=h->len ) printf("WRONG HEADER ! Check sizeof H2D on CVI\n");  | 
        ||
| 25 | |||
| 26 | size=h->size;  | 
        ||
| 27 | h->data = new double[size];  | 
        ||
| 28 | int nb = fread(h->data,1, size,fp);  | 
        ||
| 29 | printf("hdr nb=%d : sizeof(HDR)=%d +datasize=%d == len=%d\t",nb1,sizeof(H1D), h->size, h->len);  | 
        ||
| 30 | printf("data nb=%d size=%d\n",nb,size);  | 
        ||
| 251 | f9daq | 31 | fclose(fp);  | 
        
| 230 | f9daq | 32 | TH1D *h1d = new TH1D(h->name, h->title,  | 
        
| 33 | h->nx, h->minx-0.5*h->stepx,h->minx+(h->nx-0.5)*h->stepx );  | 
        ||
| 34 | h1d->SetTitle(h->title);  | 
        ||
| 35 | h1d->SetTitle("");  | 
        ||
| 36 | h1d->GetXaxis()->SetTitle(h->titlex);  | 
        ||
| 37 | h1d->GetYaxis()->SetTitle(h->titley);  | 
        ||
| 246 | f9daq | 38 | printf("TH1D name='%s' title='%s' x='%s' y='%s'\nnx=%d min=%f max=%f \n",h->name, h->title,h->titlex, h->titley,  | 
        
| 230 | f9daq | 39 | h->nx, h->minx,h->minx+h->nx*h->stepx);  | 
        
| 40 | |||
| 41 | |||
| 42 | //h2d->ls(); | 
        ||
| 43 | //h2d->Print(); | 
        ||
| 44 | |||
| 45 | for (int ix=0;ix<h->nx;ix++){  | 
        ||
| 46 | |||
| 47 | double g=H1DGetBinContent(h,ix);  | 
        ||
| 48 | h1d->SetBinContent(ix+1, g);  | 
        ||
| 49 | //       if (g>0) printf("i %d j %d v %g\n",ix+1,iy+1,g); | 
        ||
| 50 | |||
| 51 | } | 
        ||
| 52 | |||
| 53 | gStyle->SetOptStat(0);  | 
        ||
| 247 | f9daq | 54 | gStyle->SetOptFit(1);  | 
        
| 230 | f9daq | 55 | h1d->Draw("colz");  | 
        
| 246 | f9daq | 56 | |
| 230 | f9daq | 57 | char hname[100];  | 
        
| 58 | sprintf(hname,"%s.pdf",fname);  | 
        ||
| 59 | gPad->SaveAs(hname);  | 
        ||
| 246 | f9daq | 60 | h1d->FitPanel();  | 
        
| 251 | f9daq | 61 | gPad->SaveAs(fname);  | 
        
| 230 | f9daq | 62 | return 0;  | 
        
| 63 | } |