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 adcpipeline 15
adcreg 14 40 adcreg 14 40
powerchip 1 powerchip 1
vhighvoltage 90 vhighvoltage 200
period 0.005 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 ir=-(clusterSizeY/2); ir<(clusterSizeY/2)+1; ir++) {
for (int ic=-(clusterSize/2); ic<(clusterSize/2)+1; ic++) { 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) { if ((iy+ir)>=0 && (iy+ir)<ny && (ix+ic)>=0 && (ix+ic)<nx) {
val[iy+ir][ix+ic]=subtractPedestal(data,ix+ic,iy+ir, cm); if ((iy+ir)>=iy &&(ix+ic)>=ix)
(clusters+nph)->set_data(val[iy+ir][ix+ic],ic,ir); 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]); v=&(val[iy+ir][ix+ic]);
tot+=*v; tot+=*v;
if (ir<=0 && ic<=0) if (ir<=0 && ic<=0)

View File

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