some corrections to cluster writing

This commit is contained in:
2020-04-14 17:48:04 +02:00
parent 163eb2710f
commit c55d19dbfe
3 changed files with 18 additions and 13 deletions

View File

@ -477,7 +477,7 @@ adcphase 90
adcpipeline 15
adcreg 14 40
powerchip 1
vhighvoltage 90
vhighvoltage 200
period 0.005

View File

@ -397,10 +397,12 @@ int *getClusters(char *data, int *ph=NULL) {
for (int ir=-(clusterSizeY/2); ir<(clusterSizeY/2)+1; ir++) {
for (int ic=-(clusterSize/2); ic<(clusterSize/2)+1; ic++) {
if ((iy+ir)>=0 && (iy+ir)>=iy && (iy+ir)<ny && (ix+ic)>=0 &&(ix+ic)>=ix && (ix+ic)<nx) {
val[iy+ir][ix+ic]=subtractPedestal(data,ix+ic,iy+ir, cm);
(clusters+nph)->set_data(val[iy+ir][ix+ic],ic,ir);
if ((iy+ir)>=0 && (iy+ir)<ny && (ix+ic)>=0 && (ix+ic)<nx) {
if ((iy+ir)>=iy &&(ix+ic)>=ix)
val[iy+ir][ix+ic]=subtractPedestal(data,ix+ic,iy+ir, cm);
(clusters+nph)->set_data(val[iy+ir][ix+ic],ic,ir);
v=&(val[iy+ir][ix+ic]);
tot+=*v;
if (ir<=0 && ic<=0)

View File

@ -44,8 +44,8 @@ class single_photon_hit {
//#endif
#ifndef WRITE_QUAD
//printf("no quad ");
if (fwrite((void*)&x, 2, sizeof(int16_t), myFile))
return fwrite((void*)data, 1, dx*dy*sizeof(int), myFile);
if (fwrite((void*)&x, sizeof(int16_t), 2, myFile))
return fwrite((void*)data, sizeof(int),dx*dy, myFile);
#endif
#ifdef WRITE_QUAD
// printf("quad ");
@ -91,8 +91,8 @@ class single_photon_hit {
default:
;
}
if (fwrite((void*)&x, 2, sizeof(int16_t), myFile))
return fwrite((void*)qq, 1, 4*sizeof(int), myFile);
if (fwrite((void*)&x, sizeof(int16_t), 2, myFile))
return fwrite((void*)qq, sizeof(int), 4, myFile);
#endif
return 0;
};
@ -110,13 +110,13 @@ class single_photon_hit {
#ifndef WRITE_QUAD
// printf( "no quad \n");
if (fread((void*)&x, 2, sizeof(int16_t), myFile))
return fread((void*)data, 1, dx*dy*sizeof(int), myFile);
return fread((void*)data,sizeof(int), dx*dy, myFile);
#endif
#ifdef WRITE_QUAD
int qq[4];
// printf( "quad \n");
if (fread((void*)&x, 2, sizeof(int16_t), myFile))
if (fread((void*)qq, 1, 4*sizeof(int), myFile)) {
if (fread((void*)&x, sizeof(int16_t), 2, myFile))
if (fread((void*)qq, sizeof(int), 4, myFile)) {
quad=TOP_RIGHT;
int mm=qq[0];
@ -210,7 +210,10 @@ class single_photon_hit {
};
void print() {
#ifdef WRITE_QUAD
printf("Q");
#endif
// int ix, iy;
printf("*** %d %d %d\n",iframe, x, y);
for (int iy=0; iy<dy; iy++) {