Index: /trunk/FACT++/gui/FactGui.h
===================================================================
--- /trunk/FACT++/gui/FactGui.h	(revision 13822)
+++ /trunk/FACT++/gui/FactGui.h	(revision 13823)
@@ -28,4 +28,5 @@
 #include "src/DimData.h"
 
+#ifdef HAVE_ROOT
 #include "TROOT.h"
 #include "TSystem.h"
@@ -37,4 +38,5 @@
 #include "TMarker.h"
 #include "TColor.h"
+#endif
 
 #include "QCameraWidget.h"
@@ -1019,6 +1021,4 @@
         }
 
-        c->cd();
-
 	if (!hf)
         {
@@ -1047,8 +1047,8 @@
             h->SetMarkerColor(kBlue);
 
-            hf->Draw("");
+            c->GetListOfPrimitives()->Add(hf, "");
 
             if (dynamic_cast<TH2*>(h))
-                h->Draw("col same");
+                c->GetListOfPrimitives()->Add(h, "col same");
         }
 
@@ -1077,5 +1077,5 @@
 	    d0->SetMarkerColor(kRed);
 	    d0->SetLineColor(kRed);
-            d0->Draw("PEX0same");
+            c->GetListOfPrimitives()->Add(d0, "PEX0same");
         }
 
@@ -1088,5 +1088,5 @@
 	    d1->SetMarkerColor(kMagenta);
             d1->SetLineColor(kMagenta);
-            d1->Draw("PEX0same");
+            c->GetListOfPrimitives()->Add(d1, "PEX0same");
         }
 
@@ -1099,9 +1099,9 @@
 	    d2->SetMarkerColor(kGreen);
             d2->SetLineColor(kGreen);
-            d2->Draw("PEX0same");
+            c->GetListOfPrimitives()->Add(d2, "PEX0same");
         }
 
         if (!dynamic_cast<TH2*>(h) && !c->GetListOfPrimitives()->FindObject(h))
-            h->Draw("PLsame");
+            c->GetListOfPrimitives()->Add(h, "PLsame");
 
         // -----------------------------------------------------------
@@ -1283,6 +1283,4 @@
         const double scale = 0.9*(m-l)/mm;
 
-        c->cd();
-
         DrawHorizontal(hf, l, h2, scale);
         DrawHorizontal(hf, l, h1, scale);
@@ -1918,11 +1916,12 @@
         TCanvas *c = fFtmRateCanv->GetCanvas();
 
+        TList * l = c->GetListOfPrimitives();
+
+
         while (c->FindObject("PatchRate"))
-            c->GetListOfPrimitives()->Remove(c->FindObject("PatchRate"));
+            l->Remove(c->FindObject("PatchRate"));
 
         while (c->FindObject("BoardRate"))
-            c->GetListOfPrimitives()->Remove(c->FindObject("BoardRate"));
-
-        c->cd();
+            l->Remove(c->FindObject("BoardRate"));
 
         if (fRatePatch1->value()>=0)
@@ -1930,5 +1929,5 @@
             fGraphPatchRate[fRatePatch1->value()].SetLineColor(kRed);
             fGraphPatchRate[fRatePatch1->value()].SetMarkerColor(kRed);
-            fGraphPatchRate[fRatePatch1->value()].Draw("PL");
+            l->Add(&fGraphPatchRate[fRatePatch1->value()], "PL");
         }
         if (fRatePatch2->value()>=0)
@@ -1936,5 +1935,5 @@
             fGraphPatchRate[fRatePatch2->value()].SetLineColor(kGreen);
             fGraphPatchRate[fRatePatch2->value()].SetMarkerColor(kGreen);
-            fGraphPatchRate[fRatePatch2->value()].Draw("PL");
+            l->Add(&fGraphPatchRate[fRatePatch2->value()], "PL");
         }
         if (fRateBoard1->value()>=0)
@@ -1942,5 +1941,5 @@
             fGraphBoardRate[fRateBoard1->value()].SetLineColor(kMagenta);
             fGraphBoardRate[fRateBoard1->value()].SetMarkerColor(kMagenta);
-            fGraphBoardRate[fRateBoard1->value()].Draw("PL");
+            l->Add(&fGraphBoardRate[fRateBoard1->value()], "PL");
         }
         if (fRateBoard2->value()>=0)
@@ -1948,5 +1947,5 @@
             fGraphBoardRate[fRateBoard2->value()].SetLineColor(kCyan);
             fGraphBoardRate[fRateBoard2->value()].SetMarkerColor(kCyan);
-            fGraphBoardRate[fRateBoard2->value()].Draw("PL");
+            l->Add(&fGraphBoardRate[fRateBoard2->value()], "PL");
         }
 
@@ -2458,11 +2457,11 @@
         TCanvas *c = fRateScanCanv->GetCanvas();
 
+        TList *l = c->GetListOfPrimitives();
+
         while (c->FindObject("PatchRate"))
-            c->GetListOfPrimitives()->Remove(c->FindObject("PatchRate"));
+            l->Remove(c->FindObject("PatchRate"));
 
         while (c->FindObject("BoardRate"))
-            c->GetListOfPrimitives()->Remove(c->FindObject("BoardRate"));
-
-        c->cd();
+            l->Remove(c->FindObject("BoardRate"));
 
         if (fRateScanPatch1->value()>=0)
@@ -2470,5 +2469,5 @@
             fGraphRateScan[fRateScanPatch1->value()+41].SetLineColor(kRed);
             fGraphRateScan[fRateScanPatch1->value()+41].SetMarkerColor(kRed);
-            fGraphRateScan[fRateScanPatch1->value()+41].Draw("PL");
+            l->Add(&fGraphRateScan[fRateScanPatch1->value()+41], "PL");
         }
         if (fRateScanPatch2->value()>=0)
@@ -2476,5 +2475,5 @@
             fGraphRateScan[fRateScanPatch2->value()+41].SetLineColor(kGreen);
             fGraphRateScan[fRateScanPatch2->value()+41].SetMarkerColor(kGreen);
-            fGraphRateScan[fRateScanPatch2->value()+41].Draw("PL");
+            l->Add(&fGraphRateScan[fRateScanPatch2->value()+41], "PL");
         }
         if (fRateScanBoard1->value()>=0)
@@ -2482,5 +2481,5 @@
             fGraphRateScan[fRateScanBoard1->value()+1].SetLineColor(kMagenta);
             fGraphRateScan[fRateScanBoard1->value()+1].SetMarkerColor(kMagenta);
-            fGraphRateScan[fRateScanBoard1->value()+1].Draw("PL");
+            l->Add(&fGraphRateScan[fRateScanBoard1->value()+1], "PL");
         }
         if (fRateScanBoard2->value()>=0)
@@ -2488,5 +2487,5 @@
             fGraphRateScan[fRateScanBoard2->value()+1].SetLineColor(kCyan);
             fGraphRateScan[fRateScanBoard2->value()+1].SetMarkerColor(kCyan);
-            fGraphRateScan[fRateScanBoard2->value()+1].Draw("PL");
+            l->Add(&fGraphRateScan[fRateScanBoard2->value()+1], "PL");
         }
 
@@ -3708,5 +3707,5 @@
         const int16_t isw = fThresholdIdx->value();
         const int16_t ihw = isw<0 ? -1 : fPatchMapHW[isw];
-       if (ihw<0)
+        if (ihw<0)
             return;
 
@@ -3753,6 +3752,4 @@
         h->GetYaxis()->SetTitleOffset(1.2);
 	//        h.GetYaxis()->SetTitleSize(1.2);
-        h->Draw();
-
         return h;
     }
@@ -3959,5 +3956,4 @@
         c->SetTopMargin(0.03);
         c->SetGrid();
-        c->cd();
 
 	TH1 *hf = DrawTimeFrame("Control deviation [mV]   ");
@@ -3969,5 +3965,6 @@
         hf->GetYaxis()->SetRangeUser(-99, 99);
 
-        fGraphFeedbackDev.Draw("LP");
+        c->GetListOfPrimitives()->Add(hf, "");
+        c->GetListOfPrimitives()->Add(&fGraphFeedbackDev, "LP");
 
         c = fFeedbackCmd->GetCanvas();
@@ -3978,5 +3975,4 @@
         c->SetTopMargin(0.03);
         c->SetGrid();
-        c->cd();
 
         hf = DrawTimeFrame("Command delta value [mV]   ");
@@ -3988,5 +3984,6 @@
         hf->GetYaxis()->SetRangeUser(-99*10, 99*10);
 
-        fGraphFeedbackCmd.Draw("LP");
+        c->GetListOfPrimitives()->Add(hf, "");
+        c->GetListOfPrimitives()->Add(&fGraphFeedbackCmd, "LP");
 
         // --------------------------------------------------------------------------
@@ -4000,5 +3997,4 @@
         c->SetTopMargin(0.03);
         c->SetGrid();
-        c->cd();
 
         TH1F *h=new TH1F("Frame", "", 1, 0, 1);
@@ -4013,5 +4009,5 @@
 	h->GetYaxis()->SetLabelSize(0.025);
         h->GetYaxis()->SetTitleOffset(1.2);
-        h->Draw();
+        c->GetListOfPrimitives()->Add(h, "");
 
         fGraphRateScan[0].SetName("CameraRate");
@@ -4030,5 +4026,5 @@
         fGraphRateScan[0].SetMarkerColor(kBlue);
         fGraphRateScan[0].SetMarkerStyle(kFullDotSmall);
-        fGraphRateScan[0].Draw("LP");
+        c->GetListOfPrimitives()->Add(&fGraphRateScan[0], "LP");
 
         // --------------------------------------------------------------------------
@@ -4042,5 +4038,4 @@
         c->SetTopMargin(0.03);
         c->SetGrid();
-        c->cd();
 
 	hf = DrawTimeFrame("Trigger rate [Hz]");
@@ -4065,5 +4060,7 @@
         fGraphFtmRate.SetMarkerColor(kBlue);
         fGraphFtmRate.SetMarkerStyle(kFullDotSmall);
-        fGraphFtmRate.Draw("LP");
+
+        c->GetListOfPrimitives()->Add(hf, "");
+        c->GetListOfPrimitives()->Add(&fGraphFtmRate, "LP");
 
         /*
