Index: trunk/FACT++/gui/BasicGlCamera.cc
===================================================================
--- trunk/FACT++/gui/BasicGlCamera.cc	(revision 12179)
+++ trunk/FACT++/gui/BasicGlCamera.cc	(revision 12180)
@@ -1,2 +1,3 @@
+#include "BasicGlCamera.h"
 #include "BasicGlCamera.h"
 #include <math.h>
@@ -22,5 +23,4 @@
 int BasicGlCamera::pixelsPatch[NPIX];
 int BasicGlCamera::softwareMapping[NPIX];
-int BasicGlCamera::patches[160][9];
 
 //Coordinates of an hexagon of radius 1 and center 0
@@ -276,37 +276,21 @@
     {
         fPixelMap = map;
-        for (auto i=fPixelMap.begin();i!=fPixelMap.end(); i++)
-        {
-            hardwareMapping[i->index] = i->hw();
-            softwareMapping[i->hw()] = i->index;
-        }
-    }
-    void BasicGlCamera::assignTriggerPatchesMap(const vector<int>& pa)
-    {
-        vector<vector<int> > intervec;
-        intervec.resize(160);
-        int i=0;
-        for (auto it=pa.begin(); it != pa.end(); it++)
-        {
-            intervec[*it].push_back(hardwareMapping[i]);
-            i++;
-        }
-        for (i=0;i<160;i++)
-        {
+
+        for (auto it=fPixelMap.begin(); it!=fPixelMap.end(); it++)
+        {
+            hardwareMapping[it->index] = it->hw();
+            softwareMapping[it->hw()]  = it->index;
+        }
+
+        //now construct the correspondance between pixels and patches
+        for (int i=0;i<NTMARK;i++)
             for (int j=0;j<9;j++)
-            {
-                patches[i][j] = intervec[i][j];
-            }
-        }
-
-        //now construct the correspondance between pixels and patches
-        for (i=0;i<NTMARK;i++)
-            for (int j=0;j<9;j++)
-                pixelsPatch[softwareMapping[patches[i][j]]] = i;
-
-        for (i=0;i<1440;i++)
+                pixelsPatch[softwareMapping[i*9+j]] = i;
+
+        for (int i=0;i<1440;i++)
             updateNeighbors(i);
 
         buildPatchesIndices();
+
     }
     void BasicGlCamera::setPatchColor(int id, float color[3])
@@ -314,5 +298,5 @@
         for (int i=0;i<9;i++)
             for (int j=0;j<3;j++)
-                pixelsColor[softwareMapping[patches[id][i]]][j] = color[j];
+                pixelsColor[softwareMapping[id*9+i]][j] = color[j];
     }
     void BasicGlCamera::setUnits(const string& units)
@@ -1121,5 +1105,5 @@
             for (int j=0;j<9;j++)//for all cells of the current patch
             {
-                if (softwareMapping[patches[i][j]] >= ACTUAL_NUM_PIXELS)
+                if (softwareMapping[i*9+j] >= ACTUAL_NUM_PIXELS)
                     continue;
                 for (int k=0;k<6;k++)//for all sides of the current cell
@@ -1132,8 +1116,10 @@
                     for (it=(patchesIndices[i]).begin(); it != (patchesIndices[i]).end(); it++)//check if this side is here already or not
                     {
-                        if (((*it).first == verticesIndices[softwareMapping[patches[i][j]]][first] &&
-                             (*it).second == verticesIndices[softwareMapping[patches[i][j]]][second]) ||
-                            ((*it).first == verticesIndices[softwareMapping[patches[i][j]]][second] &&
-                             (*it).second == verticesIndices[softwareMapping[patches[i][j]]][first]))
+                        const int idx = i*9+j;
+
+                        if ((it->first == verticesIndices[softwareMapping[idx]][first] &&
+                             it->second == verticesIndices[softwareMapping[idx]][second]) ||
+                            (it->first == verticesIndices[softwareMapping[idx]][second] &&
+                             it->second == verticesIndices[softwareMapping[idx]][first]))
                         {
                             patchesIndices[i].erase(it);
@@ -1145,6 +1131,6 @@
                     {
                         edge temp;
-                        temp.first = verticesIndices[softwareMapping[patches[i][j]]][first];
-                        temp.second = verticesIndices[softwareMapping[patches[i][j]]][second];
+                        temp.first = verticesIndices[softwareMapping[i*9+j]][first];
+                        temp.second = verticesIndices[softwareMapping[i*9+j]][second];
                         patchesIndices[i].push_back(temp);
                     }
Index: trunk/FACT++/gui/BasicGlCamera.h
===================================================================
--- trunk/FACT++/gui/BasicGlCamera.h	(revision 12179)
+++ trunk/FACT++/gui/BasicGlCamera.h	(revision 12180)
@@ -84,5 +84,4 @@
     void updateCamera();
     void assignPixelMap(const PixelMap& );
-    void assignTriggerPatchesMap(const std::vector<int>& );
 
     float ss[5];// = {0.00, 0.25, 0.5, 0.75, 1.00};
@@ -140,5 +139,4 @@
     static int pixelsPatch[NPIX];
     static int softwareMapping[NPIX];
-    static int patches[160][9];
     float shownSizex;
     float shownSizey;
Index: trunk/FACT++/gui/FactGui.h
===================================================================
--- trunk/FACT++/gui/FactGui.h	(revision 12179)
+++ trunk/FACT++/gui/FactGui.h	(revision 12180)
@@ -379,5 +379,4 @@
     //vector<int>  fPixelMapHW; // Software -> Hardware
     vector<int> fPatchMapHW; // Software -> Hardware
-    vector<int> fPatchHW; // Maps the software(!) pixel id to the hardware(!) patch id
 
     bool fInChoosePatchTH;   // FIXME. Find a better solution
@@ -2000,7 +1999,5 @@
         for (int i=0; i<1440; i++)
         {
-            const int ihw = fPatchHW[i];
-//            const int isw = fPatch[i];
-//            const int ihw = fPatchMapHW[isw];
+            const int ihw = fPixelMap.index(i).hw()/9;
             dat[i] = sdata.fPatchRate[ihw];
 
@@ -3444,5 +3441,5 @@
         int ii = 0;
         for (; ii<160; ii++)
-            if (fPatchHW[isw]==fPatchMapHW[ii])
+            if (fPixelMap.index(isw).hw()/9==fPatchMapHW[ii])
                 break;
 
@@ -3689,5 +3686,5 @@
     FactGui(Configuration &conf) :
         fFtuStatus(40), 
-        /*fPixelMapHW(1440),*/ fPatchMapHW(160), fPatchHW(1440),
+        /*fPixelMapHW(1440),*/ fPatchMapHW(160), 
         fInChoosePatchTH(false),
         fInChooseBiasHv(false), fInChooseBiasCam(false),
@@ -3805,4 +3802,5 @@
         // --------------------------------------------------------------------------
 
+        /*
         ifstream fin1("Trigger-Patches.txt");
 
@@ -3832,5 +3830,5 @@
         if (l!=160)
             cerr << "WARNING - Problems reading Trigger-Patches.txt" << endl;
-
+        */
         // --------------------------------------------------------------------------
 
@@ -3869,6 +3867,7 @@
         ifstream fin3("PatchList.txt");
 
-        l = 0;
-
+        string buf;
+
+        int l = 0;
         while (getline(fin3, buf, '\n'))
         {
@@ -4028,5 +4027,4 @@
         // --------------------------------------------------------------------------
         fFeedbackDevCam->assignPixelMap(fPixelMap);
-        fFeedbackDevCam->assignTriggerPatchesMap(fPatchHW);
         fFeedbackDevCam->setAutoscaleLowerLimit((fFeedbackDevMin->minimum()+0.5*fFeedbackDevMin->singleStep()));
         fFeedbackDevCam->SetMin(fFeedbackDevMin->value());
@@ -4035,5 +4033,4 @@
 
         fFeedbackCmdCam->assignPixelMap(fPixelMap);
-        fFeedbackCmdCam->assignTriggerPatchesMap(fPatchHW);
         fFeedbackCmdCam->setAutoscaleLowerLimit((fFeedbackCmdMin->minimum()+0.5*fFeedbackCmdMin->singleStep()));
         fFeedbackCmdCam->SetMin(fFeedbackCmdMin->value());
@@ -4044,5 +4041,4 @@
 
         fBiasCamV->assignPixelMap(fPixelMap);
-        fBiasCamV->assignTriggerPatchesMap(fPatchHW);
         fBiasCamV->setAutoscaleLowerLimit((fBiasVoltMin->minimum()+0.5*fBiasVoltMin->singleStep()));
         fBiasCamV->SetMin(fBiasVoltMin->value());
@@ -4059,5 +4055,4 @@
 
         fRatesCanv->assignPixelMap(fPixelMap);
-        fRatesCanv->assignTriggerPatchesMap(fPatchHW);
         fRatesCanv->setAutoscaleLowerLimit((fRatesMin->minimum()+0.5*fRatesMin->singleStep())*0.001);
         fRatesCanv->SetMin(fRatesMin->value());
Index: trunk/FACT++/gui/QCameraWidget.cc
===================================================================
--- trunk/FACT++/gui/QCameraWidget.cc	(revision 12179)
+++ trunk/FACT++/gui/QCameraWidget.cc	(revision 12180)
@@ -422,5 +422,5 @@
          for (int i=0;i<9;i++)
              for (int j=0;j<3;j++)
-                 averagePatchColour[j] += pixelsColor[softwareMapping[patches[fWhitePatch][i]]][j];
+                 averagePatchColour[j] += pixelsColor[softwareMapping[fWhitePatch*9+i]][j];
          for (int j=0;j<3;j++)
              averagePatchColour[j] /= 9;
