Index: /trunk/FACT++/src/EventBuilder.c
===================================================================
--- /trunk/FACT++/src/EventBuilder.c	(revision 15346)
+++ /trunk/FACT++/src/EventBuilder.c	(revision 15347)
@@ -561,15 +561,10 @@
 //        < 0    if no space left
 
-   struct timeval tv;
-   uint32_t tsec, tusec;
-   uint oldest;
-   int jold;
-
-   int i, b, evFree;
+//   int evFree;
 //   int headmem = 0;
 //   size_t needmem = 0;
 
 
-   b = sk / 7;
+   const int b = sk / 7;
 
    if (nRoi[0] < 0 || nRoi[0] > 1024) {
@@ -596,6 +591,6 @@
 
 
-   i = evID % MAX_EVT;
-   evFree = -1;
+   int i = evID % MAX_EVT;
+   int evFree = -1;
 
    for (int k = 0; k < MAX_RUN; k++) {
@@ -635,12 +630,16 @@
    i = evFree;                  //found free entry; use it ...
 
+   struct timeval tv;
    gettimeofday (&tv, NULL);
-   tsec = tv.tv_sec;
-   tusec = tv.tv_usec;
+
+   const uint32_t tsec = tv.tv_sec;
+   const uint32_t tusec = tv.tv_usec;
 
    //check if runId already registered in runCtrl
    evFree = -1;
-   oldest = g_actTime + 1000;
-   jold = -1;
+
+   uint oldest = g_actTime + 1000;
+   int jold = -1;
+
    for (int k = 0; k < MAX_RUN; k++) {
       if (runCtrl[k].runId == runID) {
@@ -1049,18 +1048,8 @@
 {
 /* *** main loop reading FAD data and sorting them to complete events */
-   int head_len, frst_len, numok, numok2, numokx, dest, evID, i, k;
-   int actBoards = 0, minLen;
-   int32_t jrd;
+   int actBoards = 0;
    uint gi_SecTime;             //time in seconds
-   int boardId, roi[9], drs, px, src, pixS, /*pixH,*/ pixC, pixR, tmS;
-
-   int goodhed = 0;
 
    int sockDef[NBOARDS];        //internal state of sockets
-   int jrdx;
-
-
-   struct timespec xwait;
-
 
    struct timeval tv;
@@ -1086,7 +1075,6 @@
 
 
-   head_len = sizeof (PEVNT_HEADER);
-   frst_len = head_len;         //max #bytes to read first: fad_header only, so each event must be longer, even for roi=0
-   minLen = head_len;           //min #bytes needed to check header: full header for debug
+   int frst_len = sizeof(PEVNT_HEADER);  //max #bytes to read first: fad_header only, so each event must be longer, even for roi=0
+   int minLen   = sizeof(PEVNT_HEADER);  //min #bytes needed to check header: full header for debug
 
    start.S = 0xFB01;
@@ -1094,5 +1082,5 @@
 
 /* initialize run control logics */
-   for (i = 0; i < MAX_RUN; i++) {
+   for (int i = 0; i < MAX_RUN; i++) {
       runCtrl[i].runId = 0;
       runCtrl[i].fileId = -2;
@@ -1100,5 +1088,5 @@
    }
    gi_resetS = gi_resetR = 9;
-   for (i = 0; i < NBOARDS; i++)
+   for (int i = 0; i < NBOARDS; i++)
       sockDef[i] = 0;
 
@@ -1114,16 +1102,15 @@
    gi_runStat = g_runStat;
    gj.readStat = g_runStat;
-   numok = numok2 = 0;
-
-   int cntsock = 8 - NUMSOCK ;
+
+   const int cntsock = 8 - NUMSOCK ;
 
    if (gi_resetS > 0) {
       //make sure all sockets are preallocated as 'not exist'
-      for (i = 0; i < MAX_SOCK; i++) {
+      for (int i = 0; i < MAX_SOCK; i++) {
          rd[i].socket = -1;
          rd[i].sockStat = 99;
       }
 
-      for (k = 0; k < NBOARDS; k++) {
+      for (int k = 0; k < NBOARDS; k++) {
          gi_NumConnect[k] = 0;
          gi.numConn[k] = 0;
@@ -1171,8 +1158,7 @@
 
 
-      int b, p, p0, s0, nch;
-      nch = 0;
-      for (b = 0; b < NBOARDS; b++) {
-         k = b * 7;
+      int nch = 0;
+      for (int b = 0; b < NBOARDS; b++) {
+         int k = b * 7;
          if (g_port[b].sockDef != sockDef[b]) { //something has changed ...
             nch++;
@@ -1180,4 +1166,6 @@
             gi.numConn[b] = 0;
             gj.numConn[b] = 0;
+
+            int s0;
             if (sockDef[b] == 0)
                s0 = 0;          //sockets to be defined and opened   
@@ -1187,10 +1175,7 @@
                s0 = +1;         //sockets to be closed and reopened
 
-            if (s0 == 0)
-               p0 = ntohs (g_port[b].sockAddr.sin_port);
-            else
-               p0 = 0;
-
-            for (p = p0 + 1; p < p0 + 8; p++) {
+            const int p0 = s0==0 ? 0 : ntohs (g_port[b].sockAddr.sin_port);
+
+            for (int p = p0 + 1; p < p0 + 8; p++) {
                GenSock (s0, k, p, &g_port[b].sockAddr, &rd[k]); //generate address and socket
                k++;
@@ -1202,5 +1187,5 @@
       if (nch > 0) {
          actBoards = 0;
-         for (b = 0; b < NBOARDS; b++) {
+         for (int b = 0; b < NBOARDS; b++) {
             if (sockDef[b] > 0)
                actBoards++;
@@ -1209,7 +1194,10 @@
 
 
-      jrdx = 0;
-      numokx = 0;
-      numok = 0;                //count number of succesfull actions
+#ifdef EVTDEBUG
+      int jrdx = 0;
+#endif
+
+      int numokx = 0;
+      int numok = 0;                //count number of succesfull actions
 
 /*
@@ -1229,15 +1217,12 @@
       */
 
-      for (i = 0; i < MAX_SOCK; i+=7) {  //check all sockets if something to read
-
-         b = i / 7 ;
-         p = i % 7 ;
+      for (int i = 0; i < MAX_SOCK; i+=7) {  //check all sockets if something to read
+
+          const int b = i / 7 ;
+          //const int p = i % 7 ;
 
 /*if ( p >= NUMSOCK) { ; }
-else*/ {
-         if (sockDef[b] > 0)
-            s0 = +1;
-         else
-            s0 = -1;
+ else*/ {
+     const int s0 = sockDef[b] > 0 ? +1 : -1;
 
          if (rd[i].sockStat < 0) {      //try to connect if not yet done
@@ -1291,5 +1276,5 @@
                numok++;
 
-               jrd =
+               const int32_t jrd =
                   recv (rd[i].socket, &rd[i].rBuf->B[rd[i].bufPos],
                         rd[i].bufLen, MSG_DONTWAIT);
@@ -1339,5 +1324,7 @@
             //if (jrd > 0) {
                numokx++;
+#ifdef EVTDEBUG
                jrdx += jrd;
+#endif
             //}
 
@@ -1447,10 +1434,10 @@
 
 
-                  int jr, kr;
-                  int  checkRoi;
-                  int roiHopper = head_len/2 + 2; //points to the very first roi
+                  int checkRoi;
+                  int roiHopper = sizeof(PEVNT_HEADER)/2 + 2; //points to the very first roi
+                  int roi[9];
                   roi[0] = rd[i].rBuf->S[roiHopper];
                   roiHopper += roi[0]+4;//skip to the second roi (i.e. next board, same patch-pixel)
-                  for (kr = 1; kr < 4; kr++)
+                  for (int kr = 1; kr < 4; kr++)
                   {
                       checkRoi = rd[i].rBuf->S[roiHopper];
@@ -1464,8 +1451,8 @@
                   }
                   //roiHopper now points to the first pixel of board 2. Do the 8 remaining pixels
-                  for (jr = 1; jr < 9; jr++) {
+                  for (int jr = 1; jr < 9; jr++) {
                      roi[jr] = rd[i].rBuf->S[roiHopper];
                      checkRoi = roi[jr];
-                     for (kr = 1; kr < 4; kr++)
+                     for (int kr = 1; kr < 4; kr++)
                      {
                          roiHopper += checkRoi+4;
@@ -1487,5 +1474,5 @@
 //                     actid = rd[i].ftmID;
 
-                  evID = mBufEvt (rd[i].evtID, rd[i].runID, roi, i,
+                  const int evID = mBufEvt (rd[i].evtID, rd[i].runID, roi, i,
                                   rd[i].fadLen, rd[i].ftmTyp, rd[i].ftmID,
                                   rd[i].evtID);
@@ -1530,8 +1517,8 @@
                   }
 #endif
-                  int qncpy = 0;
-                  boardId = b;
-                  int fadBoard = rd[i].rBuf->S[12];
-                  int fadCrate = fadBoard / 256;
+                  const int boardId = b;
+                  const int fadBoard = rd[i].rBuf->S[12];
+                  const int fadCrate = fadBoard / 256;
+
                   if (boardId != (fadCrate * 10 + fadBoard % 256)) {
                      factPrintf(kWarn, 301, "Board ID mismatch. Expected %d, got %d (C=%d, B=%d)",
@@ -1551,32 +1538,31 @@
                   }
 
-                  int iDx = evtIdx[evID];       //index into evtCtrl
+                  const int iDx = evtIdx[evID];       //index into evtCtrl
 
                   memcpy (&mBuffer[evID].FADhead[boardId].start_package_flag,
-                          &rd[i].rBuf->S[0], head_len);
-                  qncpy += head_len;
-
-                  src = head_len / 2;
-                  for (px = 0; px < 9; px++) {  //different sort in FAD board.....
-                     for (drs = 0; drs < 4; drs++) {
+                          &rd[i].rBuf->S[0], sizeof(PEVNT_HEADER));
+
+                  int src = sizeof(PEVNT_HEADER) / 2;
+                  for (int px = 0; px < 9; px++) {  //different sort in FAD board.....
+                     for (int drs = 0; drs < 4; drs++) {
                          // pixH = rd[i].rBuf->S[src++];    // ID
                          src++;
-                        pixC = rd[i].rBuf->S[src++];    // start-cell
-                        pixR = rd[i].rBuf->S[src++];    // roi
+                        const int pixC = rd[i].rBuf->S[src++];    // start-cell
+                        const int pixR = rd[i].rBuf->S[src++];    // roi
 //here we should check if pixH is correct ....
 
-                        pixS = boardId * 36 + drs * 9 + px;
+                        const int pixS = boardId * 36 + drs * 9 + px;
                         src++;
 
 
                         mBuffer[evID].fEvent->StartPix[pixS] = pixC;
-                        dest = pixS * roi[0];
+
+                        int dest = pixS * roi[0];
                         memcpy (&mBuffer[evID].fEvent->Adc_Data[dest],
                                 &rd[i].rBuf->S[src], roi[0] * 2);
-                        qncpy += roi[0] * 2;
                         src += pixR;
 
                         if (px == 8) {
-                           tmS = boardId * 4 + drs;
+                           const int tmS = boardId * 4 + drs;
                            if (pixR > roi[0]) { //and we have additional TM info
                               dest = tmS * roi[0] + NPIX * roi[0];
@@ -1586,5 +1572,4 @@
                               memcpy (&mBuffer[evID].fEvent->Adc_Data[dest],
                                       &rd[i].rBuf->S[srcT], roi[0] * 2);
-                              qncpy += roi[0] * 2;
                            } else {
                               mBuffer[evID].fEvent->StartTM[tmS] = -1;
@@ -1622,8 +1607,4 @@
                         }
                      }
-#ifdef EVTDEBUG
-                     factPrintf(kDebug, -1, "%5d complete event roi %4d roiTM %d cpy %8d %5d",
-                               mBuffer[evID].evNum, roi[0], roi[8] - roi[0], qncpy, qnrun);
-#endif
                      //complete event read ---> flag for next processing
                      evtCtrl.evtStat[iDx] = 99;
@@ -1650,5 +1631,6 @@
                 }
 
-                  //check if startflag correct; else shift block ....
+                //check if startflag correct; else shift block ....
+                int k;
                   for (k = 0; k < rd[i].bufPos - 1; k++) {
                      if (rd[i].rBuf->B[k] == start.B[1]
@@ -1660,5 +1642,5 @@
                   if (k >= rd[i].bufPos - 1) {  //no start of header found
                      rd[i].bufPos = 0;
-                     rd[i].bufLen = head_len;
+                     rd[i].bufLen = sizeof(PEVNT_HEADER);
                      continue;
                   }
@@ -1690,5 +1672,4 @@
 
                      // TGB: This needs much more checks than just the first two bytes!
-                     goodhed++;
 
                      // Swap everything except start_package_flag.
@@ -1766,19 +1747,10 @@
       gi_SecTime = g_actTime;
 
+      gj.bufNew = gj.bufEvt = 0;
 
       //loop over all active events and flag those older than read-timeout
       //delete those that are written to disk ....
-
-      int kd = evtCtrl.lastPtr - evtCtrl.frstPtr;
-      if (kd < 0)
-          kd += (MAX_EVT * MAX_RUN);
-
-      gj.bufNew = gj.bufEvt = 0;
-
-      const int k1 = evtCtrl.frstPtr;
-      for (int k=k1; k<k1+kd; k++)
+      for (int k0=evtCtrl.frstPtr; k0!=evtCtrl.lastPtr; k0++, k0 %= MAX_EVT*MAX_RUN)
       {
-          const int k0 = k % (MAX_EVT * MAX_RUN);
-
           if (k0==evtCtrl.frstPtr && evtCtrl.evtStat[k0]<0)
           {
@@ -1848,5 +1820,5 @@
          gj.maxMem = gj.usdMem;
          gj.maxEvt = gj.bufTot;
-         for (b = 0; b < NBOARDS; b++)
+         for (int b = 0; b < NBOARDS; b++)
             gj.rateBytes[b] = 0;
 /*
@@ -1894,5 +1866,5 @@
       //must close all open sockets ...
       factPrintf(kInfo, -1, "Close all sockets...");
-      for (i = 0; i < MAX_SOCK; i++) {
+      for (int i = 0; i < MAX_SOCK; i++) {
          if (rd[i].sockStat == 0) {
             GenSock (-1, i, 0, NULL, &rd[i]);   //close and destroy open socket   
@@ -1913,12 +1885,6 @@
    {
        //flag all events as 'read finished'
-       int kd = evtCtrl.lastPtr - evtCtrl.frstPtr;
-       if (kd < 0)
-           kd += (MAX_EVT * MAX_RUN);
-
-       const int k1 = evtCtrl.frstPtr;
-       for (int k=k1; k<k1+kd; k++)
-       {
-           const int k0 = k % (MAX_EVT * MAX_RUN);
+      for (int k0=evtCtrl.frstPtr; k0!=evtCtrl.lastPtr; k0++, k0 %= MAX_EVT*MAX_RUN)
+      {
            if (evtCtrl.evtStat[k0] > 0 && evtCtrl.evtStat[k0] < 90)
            {
@@ -1944,12 +1910,6 @@
          numclear = 0;
 
-         int kd = evtCtrl.lastPtr - evtCtrl.frstPtr;
-         if (kd < 0)
-             kd += (MAX_EVT * MAX_RUN);
-
-         const int k1 = evtCtrl.frstPtr;
-         for (int k=k1; k<k1+kd; k++)
+         for (int k0=evtCtrl.frstPtr; k0!=evtCtrl.lastPtr; k0++, k0 %= MAX_EVT*MAX_RUN)
          {
-             const int k0 = k % (MAX_EVT * MAX_RUN);
              if (evtCtrl.evtStat[k0] > minclear)
              {
@@ -1980,8 +1940,10 @@
          CloseRunFile (0, 0, 0);        //ask all Runs to be closed
       }
-      if (gi_resetX > 0) {
-         xwait.tv_sec = gi_resetX;
-         xwait.tv_nsec = 0;
-         nanosleep (&xwait, NULL);
+      if (gi_resetX > 0)
+      {
+          struct timespec xwait;
+          xwait.tv_sec = gi_resetX;
+          xwait.tv_nsec = 0;
+          nanosleep (&xwait, NULL);
       }
 
@@ -2019,13 +1981,6 @@
         int numProc = 0;
 
-        int kd = evtCtrl.lastPtr - evtCtrl.frstPtr;
-        if (kd < 0)
-            kd += (MAX_EVT * MAX_RUN);
-
-        const int k1 = evtCtrl.frstPtr;
-        for (int k=k1; k<k1+kd; k++)
+        for (int k0=evtCtrl.frstPtr; k0!=evtCtrl.lastPtr; k0++, k0 %= MAX_EVT*MAX_RUN)
         {
-            const int k0 = k % (MAX_EVT * MAX_RUN);
-
             if (!(evtCtrl.evtStat[k0] == 1000 + threadID))
             {
@@ -2085,5 +2040,5 @@
 {
 /* *** main loop processing file, including SW-trigger */
-   int status, j;
+   int status;
 
    int lastRun = 0;             //usually run from last event still valid
@@ -2125,12 +2080,6 @@
        int numProc = 0;
 
-       int kd = evtCtrl.lastPtr - evtCtrl.frstPtr;
-       if (kd < 0)
-           kd += (MAX_EVT * MAX_RUN);
-
-       const int k1 = evtCtrl.frstPtr;
-       for (int k=k1; k<k1+kd; k++)
+       for (int k0=evtCtrl.frstPtr; k0!=evtCtrl.lastPtr; k0++, k0 %= MAX_EVT*MAX_RUN)
        {
-           const int k0 = k % (MAX_EVT * MAX_RUN);
            if (!(evtCtrl.evtStat[k0] > 90 && evtCtrl.evtStat[k0] < 1000))
            {
@@ -2329,7 +2278,4 @@
 
    factPrintf(kInfo, -1, "Abort Processing Process ...");
-   int kd = evtCtrl.lastPtr - evtCtrl.frstPtr;
-   if (kd < 0)
-      kd += (MAX_EVT * MAX_RUN);
 
    for (int k = 0; k < gi_maxProc; k++) {
@@ -2337,8 +2283,6 @@
    }
 
-   const int k1 = evtCtrl.frstPtr;
-   for (int k=k1; k<k1+kd; k++)
+   for (int k0=evtCtrl.frstPtr; k0!=evtCtrl.lastPtr; k0++, k0 %= MAX_EVT*MAX_RUN)
    {
-       const int k0 = k % (MAX_EVT * MAX_RUN);
        if (evtCtrl.evtStat[k0] >= 0 && evtCtrl.evtStat[k0] < 1000)
            evtCtrl.evtStat[k0] = 9800;    //flag event as 'processed'
@@ -2462,13 +2406,6 @@
        int numWait  = 0;
 
-       int kd = evtCtrl.lastPtr - evtCtrl.frstPtr;
-       if (kd < 0)
-           kd += (MAX_EVT * MAX_RUN);
-
-       const int k1 = evtCtrl.frstPtr;
-       for (int k=k1; k<k1+kd; k++)
+       for (int k0=evtCtrl.frstPtr; k0!=evtCtrl.lastPtr; k0++, k0 %= MAX_EVT*MAX_RUN)
        {
-           const int k0 = k % (MAX_EVT * MAX_RUN);
-
            if (evtCtrl.evtStat[k0] <= 5000 || evtCtrl.evtStat[k0] >= 9000)
            {
@@ -2483,5 +2420,5 @@
            //we must drain the buffer asap
            if (gi_resetR > 1)
-           {        
+           {
                evtCtrl.evtStat[k0] = 9904;
                continue;
