/cvi/RedPitaya/soccli/H1Dload.cxx |
---|
0,0 → 1,59 |
#include <TH1D.h> |
#include <TStyle.h> |
#include <TPad.h> |
#include "mH1D.h" |
double H1DGetBinContent(H1D *h1d,int atx){ |
if (!h1d) return 0; |
if (h1d->nx <= atx) return 0; |
if (atx < h1d->size ) return h1d->data[atx]; |
return 0; |
} |
int H1Dload(char *fname){ |
FILE *fp= fopen(fname ,"rb"); |
if (!fp) return -1; |
H1D *h = new H1D; |
int size=sizeof(H1D); |
int nb1 = fread(h,1, size,fp); |
if (size + h->size !=h->len ) printf("WRONG HEADER ! Check sizeof H2D on CVI\n"); |
size=h->size; |
h->data = new double[size]; |
int nb = fread(h->data,1, size,fp); |
printf("hdr nb=%d : sizeof(HDR)=%d +datasize=%d == len=%d\t",nb1,sizeof(H1D), h->size, h->len); |
printf("data nb=%d size=%d\n",nb,size); |
TH1D *h1d = new TH1D(h->name, h->title, |
h->nx, h->minx-0.5*h->stepx,h->minx+(h->nx-0.5)*h->stepx ); |
h1d->SetTitle(h->title); |
h1d->SetTitle(""); |
h1d->GetXaxis()->SetTitle(h->titlex); |
h1d->GetYaxis()->SetTitle(h->titley); |
printf("TH1D name=%s %s %s %s\nnx=%d %f %f \n",h->name, h->title,h->titlex, h->titley, |
h->nx, h->minx,h->minx+h->nx*h->stepx); |
//h2d->ls(); |
//h2d->Print(); |
for (int ix=0;ix<h->nx;ix++){ |
double g=H1DGetBinContent(h,ix); |
h1d->SetBinContent(ix+1, g); |
// if (g>0) printf("i %d j %d v %g\n",ix+1,iy+1,g); |
} |
gStyle->SetOptStat(0); |
h1d->Draw("colz"); |
char hname[100]; |
sprintf(hname,"%s.pdf",fname); |
gPad->SaveAs(hname); |
return 0; |
} |
/cvi/RedPitaya/soccli/mH1D.h |
---|
0,0 → 1,79 |
#ifndef _H1D_H_ |
#define _H1D_H_ |
#ifdef _CVI_ |
#include <cvidef.h> |
#include <ivi.h> |
#include <userint.h> |
#else |
#define _VI_FUNC /* */ |
#endif |
#include <stdio.h> |
/* 2d histogramming */ |
#define H1D_ID 0x11 |
#pragma pack(4) |
typedef struct { |
unsigned int id,len; |
unsigned int nx; |
int nentries; |
unsigned int size; |
double min; |
double max; |
double minx; |
double stepx; |
char name[20]; |
char title[100]; |
char titlex[40]; |
char titley[40]; |
double *data; |
} H1D; |
#pragma pack() |
double _VI_FUNC H1D_GetYBinCenter(int h2d,int ybin); |
double _VI_FUNC H1D_GetYBinCenter(int h2d,int xbin); |
int _VI_FUNC H1D_Clear(int h2d); |
int _VI_FUNC H1D_Print(int h2d); |
int _VI_FUNC H1D_Exist(int h2d); |
int _VI_FUNC H1D_GetBin(int h2d, double value); |
int _VI_FUNC H1D_Fill(int h2d,double x, double val); |
int _VI_FUNC H1D_FillBin(int h2d,int x, double val); |
int _VI_FUNC H1D_SetBinContent(int h2d,int x, double val); |
double _VI_FUNC H1D_GetBinContent(int h2d,int atx); |
int _VI_FUNC H1D_Init(int h2d,char *name, char *title,int nx, double minx, double maxx); |
int _VI_FUNC H1D_Write(int h2d,const char *fname,const char*opt); |
int _VI_FUNC H1D_Write2File(int h2d,FILE *fp); |
int _VI_FUNC H1D_SetTitle(int h2d,char *title); |
int _VI_FUNC H1D_SetTitleX(int h2d,char *title); |
int _VI_FUNC H1D_SetTitleY(int h2d,char *title); |
int _VI_FUNC H1D_SetName(int h2d,char *title); |
char * _VI_FUNC H1D_GetTitleX(int h1d); |
char * _VI_FUNC H1D_GetTitleY(int h1d); |
char * _VI_FUNC H1D_GetTitle(int h1d); |
int _VI_FUNC H1D_GetNbinsX(int h); |
double _VI_FUNC H1D_GetMinX(int h); |
double _VI_FUNC H1D_GetMaxX(int h); |
double _VI_FUNC H1D_GetStepX(int h); |
double _VI_FUNC H1D_GetMin(int h); |
double _VI_FUNC H1D_GetMax(int h); |
double * _VI_FUNC H1D_GetData(int h); |
int _VI_FUNC H1D_Draw(int histogram,int panel, int control, int *plothandle) ; |
#endif /* _H1D_H_ */ |
/cvi/RedPitaya/soccli/thisroot.bat |
---|
0,0 → 1,25 |
@echo off |
set MPATH=%~dp0 |
rem set MPATH=%CD% |
cd "\" |
FOR /D %%x in ("Program Files*") do ( |
cd /D %%x |
if exist "Microsoft SDKs\Windows\v7.1A\Include" set INCLUDE=%INCLUDE%;%CD%%%x\Microsoft SDKs\Windows\v7.1A\Include |
For /D %%G in ("Microsoft Visual Studio*") do set VC=%%x\%%G |
cd "\" |
) |
echo call "%VC%\VC\vcvarsall.bat" x86 |
call "%VC%\VC\vcvarsall.bat" x86 |
cd "\" |
FOR /D %%G IN ("root*") DO SET ROOTSYS=c:\%%G |
echo ROOTSYS= "%ROOTSYS%" |
echo INCLUDE="%INCLUDE%" |
echo Visual C Development environment |
echo nmake -f Makefile.win32 |
cd /D "%MPATH%" |