From: Jan Michel Date: Mon, 30 Jan 2017 13:50:25 +0000 (+0100) Subject: few adaptions to NA61 data to unpacker X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=34038952a98cea7e2444bef825e4d5cf3770ecaf;p=mvdsensorcontrol.git few adaptions to NA61 data to unpacker --- diff --git a/tools/unpacker/unpacker.cxx b/tools/unpacker/unpacker.cxx index fb7fda4..2e46702 100644 --- a/tools/unpacker/unpacker.cxx +++ b/tools/unpacker/unpacker.cxx @@ -7,9 +7,10 @@ signed analyzeSubEvent(hadaq::RawSubevent* sub, unsigned pos, unsigned datalen, unsigned getSensor(unsigned sensorId); void writeResults(); -#define DEBUG 0 -#define MAX_SENSORS 12 +#define DEBUG 3 +#define MAX_SENSORS 8 +unsigned framesize[MAX_SENSORS][5] = {{0}}; unsigned pixelMap[MAX_SENSORS][576][1152] = {{0}}; unsigned pixelcount[MAX_SENSORS][1153] = {{0}}; unsigned statistics[MAX_SENSORS][4] = {{0}}; @@ -52,7 +53,7 @@ unsigned getSensor(unsigned sensorId) { return i; } } - if (numSensors == MAX_SENSORS) { return -1;} + if (numSensors == MAX_SENSORS) { printf("More sensors than I can handle. Dieing...\n"); return -1;} sensors[numSensors] = sensorId; return numSensors++; @@ -99,7 +100,7 @@ signed analyzeSubEvent(hadaq::RawSubevent* sub, unsigned pos, unsigned datalen, unsigned hnum; unsigned data; unsigned pdata = 0x0; - + format = sub->Data(pos+1); #if DEBUG>=1 printf("form\t%08x\n",format); @@ -187,7 +188,7 @@ signed analyzeSubEvent(hadaq::RawSubevent* sub, unsigned pos, unsigned datalen, printf("Sensor\t%02x\tID\t%08x\tStatus\t%08x\tError\t%08x\tDebug\t%08x\n", mySensor, frame_id, frame_status, frame_errcode, frame_debug); #endif - + framesize[mySensor][numSubevents%5] += datalen; if (sub->Data(pdata) != 0x55555555) { #if DEBUG>=1 printf("ERROR: Sensor Header (0x55555555) Not Found! (got: %08x)\n",sub->Data(pdata)); @@ -197,11 +198,12 @@ signed analyzeSubEvent(hadaq::RawSubevent* sub, unsigned pos, unsigned datalen, unsigned sensorIsValid = 0; if (v1 == 1){ - if((frame_status & 0xf000000f) == 0xf000000f) { + if((frame_status & 0xf000000f) == 0xf000000f or (frame_status & 0xf000000f) == 0xf0000007) { sensorIsValid = 1; } else{ sensorIsValid = 0; + //printf("Frame Status 0x%08x\n",frame_status); statistics[mySensor][FRBROKEN]++; } } @@ -514,6 +516,8 @@ void writeResults() { hitrates[2], hitrates[3] ); + + printf("\t\t\t\t\t\t\t%i\t%i\t%i\t%i\t%i\n",framesize[i][0],framesize[i][1],framesize[i][2],framesize[i][3],framesize[i][4]); FILE* cvt; int status;