19,7 → 19,7 |
#include "TStyle.h" |
#include "TCanvas.h" |
#include "TLine.h" |
#include "zlib.h" |
//#include "zlib.h" |
|
// ------------------------------------------------------------------------------ |
|
93,7 → 93,7 |
|
int analysisThreshold(char* dfile0="test", int dbg=0, double tdcCut=5.0) |
{ |
const double c_tdcOffset = 368*TDC_BIN; // ns |
const double c_tdcOffset = 93*TDC_BIN; // ns |
|
printf(" Data to root conversion program\nUsage:\nd2r(input file name <without.dat>, debug on/off, TDC cut +-[ns])\n\n"); |
|
129,7 → 129,8 |
unsigned int buf[READBUFFERLENGTH]; |
|
//data file |
gzFile dfp; |
//gzFile dfp; |
FILE *dfp; |
char dfile[256]; |
int ftype=0; |
int fcount=1; |
136,19 → 137,20 |
do { |
switch(ftype++) { |
case 0: |
sprintf(dfile, "./data/%s_file%02d.dat", dfile0, fcount); |
sprintf(dfile, "E:/data/%s_file%02d.dat", dfile0, fcount); |
break; |
case 1: |
sprintf(dfile, "./data/%s_file%02d.dat.gz", dfile0, fcount); |
sprintf(dfile, "E:/data/%s_file%02d.dat.gz", dfile0, fcount); |
break; |
case 2: |
sprintf(dfile, "./data/%s_file%02d.gz", dfile0, fcount); |
sprintf(dfile, "E:/data/%s_file%02d.gz", dfile0, fcount); |
break; |
default: |
printf(" Cannot find data file for %s !!!\n", dfile0); |
return -1; |
} |
dfp=gzopen(dfile,"rb"); |
//dfp=gzopen(dfile,"rb"); |
dfp=fopen(dfile,"rb"); |
} while(!dfp); |
printf("Opened data file %s\n", dfile); |
|
177,9 → 179,8 |
int status; |
char hname[256]; |
TH2F* htdc = new TH2F("htdc",";TDC channel;SiPM channel",512,-0.5,511.5,NCH,-0.5,NCH-0.5); |
TH3F* h_correctedTDC = new TH3F("h_correctedTDC",";SiPM channel; ASD threshold [V]; t [ns]", |
TH2F* h_correctedTDC = new TH2F("h_correctedTDC",";SiPM channel; t [ns]", |
NCH, -0.5, NCH-0.5, |
101, 1.0, 2.0, |
33, -16.5*TDC_BIN, 16.5*TDC_BIN); |
TH1F* hnhitsx[NCH]; // move to 2d with (channel, position) |
TH1F* hnhitsy[NCH]; //-||- |
191,9 → 192,11 |
TNtuple* nt = new TNtuple("nt", "nt", "ch:x:y:tdc"); |
|
while(1) { |
if(gzeof(dfp)) end_of_file = 1; |
//if(gzeof(dfp)) end_of_file = 1; |
if(feof(dfp)) end_of_file = 1; |
|
gzread(dfp, (voidp)&readbuf, 2*ulsize); |
//gzread(dfp, (voidp)&readbuf, 2*ulsize); |
fread((void*)&readbuf, 2*ulsize, 1, dfp); |
rec_id=readbuf[0]; |
rec_len=readbuf[1]; |
|
206,7 → 209,8 |
{ |
case RUNREC_ID: |
if (dbg) printf("RUNREC\n"); |
gzread(dfp, (voidp)&readbuf[2], (rec_len-2*ulsize)); |
//gzread(dfp, (voidp)&readbuf[2], (rec_len-2*ulsize)); |
fread((void*)&readbuf[2], (rec_len-2*ulsize), 1, dfp); |
runrec = (RUNREC *) readbuf; |
run=*runrec; |
|
227,17 → 231,14 |
//htdc = (TH2F*) gROOT->FindObject(hname); |
//if (htdc) delete htdc; |
//htdc = new TH2F("htdc",";TDC channel;SiPM channel",512,0,512,NCH,0,NCH); |
h_correctedTDC = (TH3F*) gROOT->FindObject("h_correctedTDC"); |
h_correctedTDC = (TH2F*) gROOT->FindObject("h_correctedTDC"); |
if (h_correctedTDC) delete h_correctedTDC; |
nSteps = (run.thUp - run.thLow)/double(run.thStep) + 1; |
if (dbg) printf("nSteps %f\n", nSteps); |
h_correctedTDC = new TH3F("h_correctedTDC",";SiPM channel; ASD threshold [V]; t [ns]", |
h_correctedTDC = new TH2F("h_correctedTDC",";SiPM channel; t [ns]", |
NCH, |
-0.5, |
NCH-0.5, |
nSteps, |
(run.thLow - 0.5*run.thStep)/1000.0, |
(run.thUp + 0.5*run.thStep)/1000.0, |
2*tdcCut+1, |
(-tdcCut - 0.5)*TDC_BIN, |
(tdcCut + 0.5)*TDC_BIN); |
299,7 → 300,8 |
|
case POSREC_ID: |
if (dbg) printf("POSREC\n"); |
gzread(dfp, (voidp)&readbuf[2], (rec_len-2*ulsize)); |
//gzread(dfp, (voidp)&readbuf[2], (rec_len-2*ulsize)); |
fread((void*)&readbuf[2], (rec_len-2*ulsize), 1, dfp); |
posrec = (POSREC *) readbuf; |
pos=*posrec; |
|
313,7 → 315,8 |
break; |
|
case EVTREC_ID: |
gzread(dfp, (voidp)&readbuf[2], ulsize); // last field of event record |
//gzread(dfp, (voidp)&readbuf[2], ulsize); // last field of event record |
fread((void*)&readbuf[2], ulsize, 1, dfp); |
evtrec = (EVTREC *) readbuf; |
//evtrec->nev = buf[0]; |
//if (rec_len < 0 || rec_len > 10000) { |
322,7 → 325,8 |
return(1); |
} |
nb = rec_len - 3*ulsize; // no. of bytes to read |
gzread(dfp, (voidp)&buf, nb); |
//gzread(dfp, (voidp)&buf, nb); |
fread((void*)&buf, nb, 1, dfp); |
|
if(dbg) { |
printf("EVTREC_ID\n"); |
370,15 → 374,15 |
double tdcmax = tdcOffset[channel] + tdcCut; |
double time = data*TDC_BIN - tdcOffset[channel]; |
if((time >= -tdcCut) && (time <= tdcCut)) { |
h_correctedTDC->Fill(channel, thr.threshold/1000.0, time); |
h_correctedTDC->Fill(channel, time); |
hnhitsx[channel]->Fill((pos.xset - OFFSETX) * MIKRO_BIN); |
hnhitsy[channel]->Fill((pos.yset - OFFSETY) * MIKRO_BIN); |
h2d[channel]->Fill((pos.xset - OFFSETX) * MIKRO_BIN, (pos.yset - OFFSETY) * MIKRO_BIN); |
|
if (position(pos.xset-OFFSETX, pos.yset-OFFSETY, channel)) { |
//if (position(pos.xset-OFFSETX, pos.yset-OFFSETY, channel)) { |
h_ch33->Fill(pos.xset-OFFSETX, pos.yset-OFFSETY); |
h_threshold->Fill(channel, thr.threshold/1000.0); |
} |
//} |
} |
//gV673A->Fill(data,channel); |
//gsumV673A[channel/16]->Fill(data); |
393,7 → 397,8 |
break; |
|
case THRREC_ID: |
status = gzread(dfp, (voidp)&readbuf[2], (rec_len-2*ulsize)); |
//status = gzread(dfp, (voidp)&readbuf[2], (rec_len-2*ulsize)); |
status = fread((void*)&readbuf[2], (rec_len-2*ulsize), 1, dfp); |
thrrec = (THRREC*) readbuf; |
thr = *thrrec; |
if (dbg) printf("THRREC id = %d len = %d threshold %d\n", |
401,7 → 406,8 |
break; |
|
case ENDREC_ID: |
gzread(dfp, (voidp)&readbuf[2], (rec_len-2*ulsize)); |
//gzread(dfp, (voidp)&readbuf[2], (rec_len-2*ulsize)); |
fread((void*)&readbuf[2], (rec_len-2*ulsize), 1, dfp); |
endrec = (ENDREC *) readbuf; |
|
if(dbg) { |
412,19 → 418,21 |
fcount++; |
switch(ftype-1) { |
case 0: |
sprintf(dfile, "./data/%s_file%02d.dat", dfile0, fcount); |
sprintf(dfile, "E:/data/%s_file%02d.dat", dfile0, fcount); |
break; |
case 1: |
sprintf(dfile, "./data/%s_file%02d.dat.gz", dfile0, fcount); |
sprintf(dfile, "E:/data/%s_file%02d.dat.gz", dfile0, fcount); |
break; |
case 2: |
sprintf(dfile, "./data/%s_file%02d.gz", dfile0, fcount); |
sprintf(dfile, "E:/data/%s_file%02d.gz", dfile0, fcount); |
break; |
} |
|
if(dfp) gzclose(dfp); |
//if(dfp) gzclose(dfp); |
if(dfp) fclose(dfp); |
|
dfp=gzopen(dfile,"rb"); |
//dfp=gzopen(dfile,"rb"); |
dfp=fopen(dfile,"rb"); |
if(!dfp) { |
printf(" Cannot open data file: %s ---> Exiting\n", dfile); |
end_of_file = 1; |
448,7 → 456,8 |
} |
|
if(dfp) { |
gzclose(dfp); |
//gzclose(dfp); |
fclose(dfp); |
//delete dfp; |
} |
//if(dbg) return 0; |