Index: /trunk/FACT++/gui/FactGui.h
===================================================================
--- /trunk/FACT++/gui/FactGui.h	(revision 11883)
+++ /trunk/FACT++/gui/FactGui.h	(revision 11884)
@@ -1273,5 +1273,7 @@
         TH1 *d2 = dynamic_cast<TH1*>(c->FindObject("DrsCalib2"));
 
-        if ((hf && hf->GetNbinsX()!=fEventData->Roi) ||
+        const int roi = fAdcPhysical->isChecked() ? 1024 : (fEventData->Roi>0 ? fEventData->Roi : 1);
+
+        if ((hf && hf->GetNbinsX()!=roi) ||
             (dynamic_cast<TH2*>(h) && !fAdcPersistent->isChecked()) ||
             (!dynamic_cast<TH2*>(h) && fAdcPersistent->isChecked()))
@@ -1287,5 +1289,4 @@
 	    hf = 0;
         }
-        const int roi = fEventData->Roi>0 ? fEventData->Roi : 1;
 
         c->cd();
@@ -1307,5 +1308,5 @@
             else
             {
-                h = new TH2F("EventData", "", roi, -0.5, roi-0.5, 3301, -1150.5, 2150.5);
+                h = new TH2F("EventData", "", roi, -0.5, roi-0.5, 6751, -2350.5*2000/4096, 4400.5*2000/4096);
                 h->SetContour(50);
                 gStyle->SetPalette(1, 0);
@@ -1420,6 +1421,11 @@
         for (int i=0; i<fEventData->Roi; i++)
         {
+            // FIXME: physcial: i -> (i+start)%1024
+            // FIXME: logical:  i ->  i
+
+            const int ii = fAdcPhysical->isChecked() ? (i+start)%1024 : i;
+
             //if (dynamic_cast<TH2*>(h))
-                h->Fill(i, reinterpret_cast<float*>(fEventData->Adc_Data)[p*fEventData->Roi+i]);
+                h->Fill(ii, reinterpret_cast<float*>(fEventData->Adc_Data)[p*fEventData->Roi+i]);
             //else
             //    h->SetBinContent(i+1, reinterpret_cast<float*>(fEventData->Adc_Data)[p*fEventData->Roi+i]);
@@ -1429,17 +1435,17 @@
             if (d0)
             {
-                d0->SetBinContent(i+1, fDrsCalibration[1440*1024*0 + p*1024+(start+i)%1024]);
-                d0->SetBinError(i+1,   fDrsCalibration[1440*1024*1 + p*1024+(start+i)%1024]);
+                d0->SetBinContent(ii+1, fDrsCalibration[1440*1024*0 + p*1024+(start+i)%1024]);
+                d0->SetBinError(ii+1,   fDrsCalibration[1440*1024*1 + p*1024+(start+i)%1024]);
 
             }
             if (d1)
             {
-                d1->SetBinContent(i+1, fDrsCalibration[1440*1024*2 + p*1024+(start+i)%1024]);
-                d1->SetBinError(i+1,   fDrsCalibration[1440*1024*3 + p*1024+(start+i)%1024]);
+                d1->SetBinContent(ii+1, fDrsCalibration[1440*1024*2 + p*1024+(start+i)%1024]);
+                d1->SetBinError(ii+1,   fDrsCalibration[1440*1024*3 + p*1024+(start+i)%1024]);
             }
             if (d2)
             {
-                d2->SetBinContent(i+1, fDrsCalibration[1440*1024*4 + p*1024 + i]);
-                d2->SetBinError(i+1,   fDrsCalibration[1440*1024*5 + p*1024 + i]);
+                d2->SetBinContent(ii+1, fDrsCalibration[1440*1024*4 + p*1024 + i]);
+                d2->SetBinError(ii+1,   fDrsCalibration[1440*1024*5 + p*1024 + i]);
             }
         }
@@ -3766,4 +3772,22 @@
         // --------------------------------------------------------------------------
 
+        fRatesCanv->setTitle("Patch rates");
+        fRatesCanv->setUnits("Hz");
+
+        fBiasCam->setTitle("BIAS current");
+        fBiasCam->setUnits("uA");
+
+        fEventCanv1->setTitle("Average (all slices)");
+        fEventCanv2->setTitle("RMS (all slices)");
+        fEventCanv3->setTitle("Maximum (all slices)");
+        fEventCanv4->setTitle("Position of maximum (all slices)");
+
+        fEventCanv1->setUnits("mV");
+        fEventCanv2->setUnits("mV");
+        fEventCanv3->setUnits("mV");
+        fEventCanv4->setUnits("slice");
+
+        // --------------------------------------------------------------------------
+
         QTimer::singleShot(1000, this, SLOT(slot_RootUpdate()));
 
