Index: /trunk/FACT++/gui/FactGui.h
===================================================================
--- /trunk/FACT++/gui/FactGui.h	(revision 11865)
+++ /trunk/FACT++/gui/FactGui.h	(revision 11866)
@@ -368,4 +368,5 @@
     int patch() const { return (cbpx/10)%10; }
     int pixel() const { return cbpx%10; }
+    int hw() const    { return pixel()+patch()*9+board()*36+crate()*360; }
     int group() const { return pixel()>4; }
     int hv() const    { return hv_channel+hv_board*32; }
@@ -441,6 +442,6 @@
     PixelMap fPixelMap;
 
-    vector<int>  fPixelMapHW; // Software -> Hardware
-    vector<int>  fPatchMapHW; // Software -> Hardware
+    //vector<int>  fPixelMapHW; // Software -> Hardware
+    vector<int> fPatchMapHW; // Software -> Hardware
     vector<int> fPatchHW; // Maps the software(!) pixel id to the hardware(!) patch id
 
@@ -1584,15 +1585,5 @@
             return;
 
-//       static int cnt=0;
-//       if (cnt++%10>0)
-//           return;
-
         const float *ptr = d.ptr<float>();
-
-//        TCanvas *c = fEventCanv->GetCanvas();
-        Camera *cam1 = fEventCanv1;//(Camera*)c->GetPad(1)->FindObject("Camera");
-        Camera *cam2 = fEventCanv2;//(Camera*)c->GetPad(2)->FindObject("Camera");
-        Camera *cam3 = fEventCanv3;//(Camera*)c->GetPad(3)->FindObject("Camera");
-        Camera *cam4 = fEventCanv4;//(Camera*)c->GetPad(4)->FindObject("Camera");
 
         valarray<double> arr1(1440);
@@ -1601,23 +1592,16 @@
         valarray<double> arr4(1440);
 
-        for (int i=0; i<1440; i++)
-        {
-            arr1[i] = ptr[0*1440+fPixelMapHW[i]];
-            arr2[i] = ptr[1*1440+fPixelMapHW[i]];
-            arr3[i] = ptr[2*1440+fPixelMapHW[i]];
-            arr4[i] = ptr[3*1440+fPixelMapHW[i]];
-        }
-
-        cam1->SetData(arr1);
-        cam2->SetData(arr2);
-        cam3->SetData(arr3);
-        cam4->SetData(arr4);
-
-//        c->GetPad(1)->Modified();
-//        c->GetPad(2)->Modified();
-//        c->GetPad(3)->Modified();
-//        c->GetPad(4)->Modified();
-
-//	c->Update();
+        for (vector<PixelMapEntry>::const_iterator it=fPixelMap.begin(); it!=fPixelMap.end(); it++)
+        {
+            arr1[it->index] = ptr[0*1440+it->hw()];
+            arr2[it->index] = ptr[1*1440+it->hw()];
+            arr3[it->index] = ptr[2*1440+it->hw()];
+            arr4[it->index] = ptr[3*1440+it->hw()];
+        }
+
+        fEventCanv1->SetData(arr1);
+        fEventCanv2->SetData(arr2);
+        fEventCanv3->SetData(arr3);
+        fEventCanv4->SetData(arr4);
     }
 
@@ -2302,18 +2286,9 @@
         SetFtuStatusLed(d.time);
 
-
-
-        for (int isw=0; isw<1440; isw++)
-        {
-            const int ihw = fPixelMapHW[isw];
-            fRatesCanv->SetEnable(isw, sdata.IsEnabled(ihw));
-        }
-
-        {
-            const int  isw = fPixelIdx->value();
-            const int  ihw = fPixelMapHW[isw];
-            const bool on  = sdata.IsEnabled(ihw);
-            fPixelEnable->setChecked(on);
-        }
+        for (vector<PixelMapEntry>::const_iterator it=fPixelMap.begin(); it!=fPixelMap.end(); it++)
+            fRatesCanv->SetEnable(it->index, sdata.IsEnabled(it->hw()));
+
+        const PixelMapEntry &entry = fPixelMap.index(fPixelIdx->value());
+        fPixelEnable->setChecked(sdata.IsEnabled(entry.index));
 
         if (fThresholdIdx->value()>=0)
@@ -3209,7 +3184,7 @@
     {
         fPixelIdx->setValue(isw);
-        const uint16_t ihw = fPixelMapHW[isw];
-        const bool on = fFtmStaticData.IsEnabled(ihw);
-        fPixelEnable->setChecked(on);
+
+        const PixelMapEntry &entry = fPixelMap.index(isw);
+        fPixelEnable->setChecked(fFtmStaticData.IsEnabled(entry.hw()));
     }
 
@@ -3217,11 +3192,15 @@
     {
         fPixelIdx->setValue(isw);
-        const uint16_t ihw = fPixelMapHW[isw];
-        Dim::SendCommand("FTM_CONTROL/TOGGLE_PIXEL", ihw);
+
+        const PixelMapEntry &entry = fPixelMap.index(isw);
+        Dim::SendCommand("FTM_CONTROL/TOGGLE_PIXEL", uint16_t(entry.hw()));
     }
 
     void slot_CameraMouseMove(int isw)
     {
-        const int ihw = fPixelMapHW[isw];
+        const PixelMapEntry &entry = fPixelMap.index(isw);
+
+        const int ihw = entry.hw();
+
         const int idx = fPatchHW[isw];
         int ii = 0;
@@ -3269,6 +3248,4 @@
     void on_fPixelIdx_valueChanged(int isw)
     {
-        const int  ihw = fPixelMapHW[isw];
-
         int ii = 0;
         for (; ii<160; ii++)
@@ -3279,6 +3256,6 @@
         ChoosePatchThreshold(*fRatesCanv, ii);
 
-        const bool on  = fFtmStaticData.IsEnabled(ihw);
-        fPixelEnable->setChecked(on);
+        const PixelMapEntry &entry = fPixelMap.index(isw);
+        fPixelEnable->setChecked(fFtmStaticData.IsEnabled(entry.hw()));
     }
 
@@ -3378,18 +3355,16 @@
             return;
 
-        const uint16_t isw = fPixelIdx->value();
-        const uint16_t ihw = fPixelMapHW[isw];
+        const PixelMapEntry &entry = fPixelMap.index(fPixelIdx->value());
 
         Dim::SendCommand(b==Qt::Unchecked ?
                          "FTM_CONTROL/DISABLE_PIXEL" : "FTM_CONTROL/ENABLE_PIXEL",
-                         ihw);
+                         uint16_t(entry.hw()));
     }
 
     void on_fPixelDisableOthers_clicked()
     {
-        const uint16_t isw = fPixelIdx->value();
-        const uint16_t ihw = fPixelMapHW[isw];
-
-        Dim::SendCommand("FTM_CONTROL/DISABLE_ALL_PIXELS_EXCEPT", ihw);
+        const PixelMapEntry &entry = fPixelMap.index(fPixelIdx->value());
+
+        Dim::SendCommand("FTM_CONTROL/DISABLE_ALL_PIXELS_EXCEPT", uint16_t(entry.hw()));
     }
 
@@ -3459,5 +3434,5 @@
     FactGui(Configuration &conf) :
         fFtuStatus(40), 
-        fPixelMapHW(1440), fPatchMapHW(160), fPatchHW(1440),
+        /*fPixelMapHW(1440),*/ fPatchMapHW(160), fPatchHW(1440),
         fInChoosePatchTH(false),
         fInChooseBiasHv(false), fInChooseBiasCam(false),
@@ -3634,4 +3609,5 @@
         // --------------------------------------------------------------------------
 
+        /*
         ifstream fin2("MasterList-v3.txt");
 
@@ -3662,5 +3638,5 @@
         if (l!=1440)
             cerr << "WARNING - Problems reading MasterList-v3.txt" << endl;
-
+         */
         // --------------------------------------------------------------------------
 
