Index: trunk/FACT++/gui/FactGui.h
===================================================================
--- trunk/FACT++/gui/FactGui.h	(revision 11849)
+++ trunk/FACT++/gui/FactGui.h	(revision 11850)
@@ -1208,13 +1208,15 @@
             delete d1;
             delete d2;
+            d0 = 0;
+            d1 = 0;
+            d2 = 0;
 	    hf = 0;
         }
+        const int roi = fEventData->Roi>0 ? fEventData->Roi : 1;
+
+        c->cd();
 
 	if (!hf)
         {
-            c->cd();
-
-            const int roi = fEventData->Roi>0 ? fEventData->Roi : 1;
-
             hf = new TH1F("Frame", "", roi, -0.5, roi-0.5);
             hf->SetDirectory(0);
@@ -1241,5 +1243,28 @@
             h->SetMarkerColor(kBlue);
 
-
+            hf->Draw("");
+
+            if (dynamic_cast<TH2*>(h))
+                h->Draw("col same");
+        }
+
+        if (d0 && !(fDrsCalibBaselineOn->isChecked() && fDrsCalibBaseline->value()>0))
+        {
+            delete d0;
+            d0 = 0;
+        }
+        if (d1 && !(fDrsCalibGainOn->isChecked() && fDrsCalibGain->value()>0))
+        {
+            delete d1;
+            d1 = 0;
+        }
+        if (d2 && !(fDrsCalibTrgOffsetOn->isChecked() && fDrsCalibTrgOffset->value()>0))
+        {
+            delete d2;
+            d2 = 0;
+        }
+
+        if (!d0 && fDrsCalibBaselineOn->isChecked() && fDrsCalibBaseline->value()>0)
+        {
             d0 = new TH1F("DrsCalib0", "", roi, -0.5, roi-0.5);
 	    d0->SetDirectory(0);
@@ -1248,5 +1273,9 @@
 	    d0->SetMarkerColor(kRed);
 	    d0->SetLineColor(kRed);
-
+            d0->Draw("PEX0same");
+        }
+
+        if (!d1 && fDrsCalibGainOn->isChecked() && fDrsCalibGain->value()>0)
+        {
             d1 = new TH1F("DrsCalib1", "", roi, -0.5, roi-0.5);
 	    d1->SetDirectory(0);
@@ -1254,6 +1283,10 @@
 	    d1->SetMarkerStyle(kFullDotSmall);
 	    d1->SetMarkerColor(kMagenta);
-	    d1->SetLineColor(kMagenta);
-
+            d1->SetLineColor(kMagenta);
+            d1->Draw("PEX0same");
+        }
+
+        if (!d2 && fDrsCalibTrgOffsetOn->isChecked() && fDrsCalibTrgOffset->value()>0)
+        {
             d2 = new TH1F("DrsCalib2", "", roi, -0.5, roi-0.5);
             d2->SetDirectory(0);
@@ -1261,20 +1294,10 @@
 	    d2->SetMarkerStyle(kFullDotSmall);
 	    d2->SetMarkerColor(kGreen);
-	    d2->SetLineColor(kGreen);
-
-            hf->Draw("");
-
-            if (dynamic_cast<TH2*>(h))
-                h->Draw("col same");
-
-            d0->Draw("PEX0same");
-	    d1->Draw("PEX0same");
+            d2->SetLineColor(kGreen);
             d2->Draw("PEX0same");
-
-            if (!dynamic_cast<TH2*>(h))
-                h->Draw("PLsame");
-
-            gPad = NULL;
-	}
+        }
+
+        if (!dynamic_cast<TH2*>(h) && !c->GetListOfPrimitives()->FindObject(h))
+            h->Draw("PLsame");
 
         // -----------------------------------------------------------
@@ -1301,16 +1324,23 @@
         const int16_t start = fEventData->StartPix[p];
 
-        if (fDrsCalibBaseline->value()==0  || start<0)
+        fDrsCalibBaseline->setEnabled(fDrsCalibBaseline->value()>0);
+        fDrsCalibGain->setEnabled(fDrsCalibGain->value()>0);
+        fDrsCalibTrgOffset->setEnabled(fDrsCalibTrgOffset->value()>0);
+
+        if (d0)//fDrsCalibBaseline->value()==0  || start<0)
             d0->Reset();
-        if (fDrsCalibGain->value()==0      || start<0)
+        if (d1)//fDrsCalibGain->value()==0      || start<0)
             d1->Reset();
-        if (fDrsCalibTrgOffset->value()==0 || start<0)
+        if (d2)//fDrsCalibTrgOffset->value()==0 || start<0)
             d2->Reset();
 
         if (!dynamic_cast<TH2*>(h))
             h->Reset();
-        d0->SetEntries(0);
-        d1->SetEntries(0);
-        d2->SetEntries(0);
+        if (d0)
+            d0->SetEntries(0);
+        if (d1)
+            d1->SetEntries(0);
+        if (d2)
+            d2->SetEntries(0);
 
         for (int i=0; i<fEventData->Roi; i++)
@@ -1323,5 +1353,5 @@
                 continue;
 
-            if (fDrsCalibBaseline->value()>0)
+            if (d0)
             {
                 d0->SetBinContent(i+1, fDrsCalibration[1440*1024*0 + p*1024+(start+i)%1024]);
@@ -1329,10 +1359,10 @@
 
             }
-            if (fDrsCalibGain->value()>0)
+            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]);
             }
-            if (fDrsCalibTrgOffset->value()>0)
+            if (d2)
             {
                 d2->SetBinContent(i+1, fDrsCalibration[1440*1024*4 + p*1024 + i]);
@@ -1395,7 +1425,10 @@
         h2.SetDirectory(0);
         hd.SetLineColor(h->GetLineColor());
-        h0.SetLineColor(d0->GetLineColor());
-        h1.SetLineColor(d1->GetLineColor());
-        h2.SetLineColor(d2->GetLineColor());
+        if (d0)
+            h0.SetLineColor(d0->GetLineColor());
+        if (d1)
+            h1.SetLineColor(d1->GetLineColor());
+        if (d2)
+            h2.SetLineColor(d2->GetLineColor());
 
         for (int i=0; i<fEventData->Roi; i++)
@@ -1403,7 +1436,10 @@
             if (!dynamic_cast<TH2*>(h))
                 hd.Fill(h->GetBinContent(i+1));
-            h0.Fill(d0->GetBinContent(i+1));
-            h1.Fill(d1->GetBinContent(i+1));
-            h2.Fill(d2->GetBinContent(i+1));
+            if (d0)
+                h0.Fill(d0->GetBinContent(i+1));
+            if (d1)
+                h1.Fill(d1->GetBinContent(i+1));
+            if (d2)
+                h2.Fill(d2->GetBinContent(i+1));
         }
 
Index: trunk/FACT++/gui/design.ui
===================================================================
--- trunk/FACT++/gui/design.ui	(revision 11849)
+++ trunk/FACT++/gui/design.ui	(revision 11850)
@@ -11,5 +11,5 @@
     <x>0</x>
     <y>0</y>
-    <width>1206</width>
+    <width>1236</width>
     <height>885</height>
    </rect>
@@ -53,5 +53,5 @@
       </property>
       <property name="currentIndex">
-       <number>7</number>
+       <number>5</number>
       </property>
       <property name="documentMode">
@@ -3974,4 +3974,17 @@
                   </item>
                   <item>
+                   <spacer name="horizontalSpacer_54">
+                    <property name="orientation">
+                     <enum>Qt::Horizontal</enum>
+                    </property>
+                    <property name="sizeHint" stdset="0">
+                     <size>
+                      <width>40</width>
+                      <height>20</height>
+                     </size>
+                    </property>
+                   </spacer>
+                  </item>
+                  <item>
                    <widget class="QGroupBox" name="groupBox_10">
                     <property name="title">
@@ -7219,21 +7232,56 @@
               </item>
               <item>
-               <widget class="QSpinBox" name="fDrsCalibBaseline">
-                <property name="alignment">
-                 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                </property>
-                <property name="readOnly">
-                 <bool>true</bool>
-                </property>
-                <property name="buttonSymbols">
-                 <enum>QAbstractSpinBox::NoButtons</enum>
-                </property>
-                <property name="prefix">
-                 <string/>
-                </property>
-                <property name="maximum">
-                 <number>9999</number>
-                </property>
-               </widget>
+               <layout class="QHBoxLayout" name="horizontalLayout_40">
+                <property name="topMargin">
+                 <number>0</number>
+                </property>
+                <item>
+                 <widget class="QCheckBox" name="fDrsCalibBaselineOn">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
+                  <property name="minimumSize">
+                   <size>
+                    <width>0</width>
+                    <height>0</height>
+                   </size>
+                  </property>
+                  <property name="maximumSize">
+                   <size>
+                    <width>20</width>
+                    <height>16777215</height>
+                   </size>
+                  </property>
+                  <property name="text">
+                   <string/>
+                  </property>
+                  <property name="checked">
+                   <bool>true</bool>
+                  </property>
+                 </widget>
+                </item>
+                <item>
+                 <widget class="QSpinBox" name="fDrsCalibBaseline">
+                  <property name="alignment">
+                   <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                  </property>
+                  <property name="readOnly">
+                   <bool>true</bool>
+                  </property>
+                  <property name="buttonSymbols">
+                   <enum>QAbstractSpinBox::NoButtons</enum>
+                  </property>
+                  <property name="prefix">
+                   <string/>
+                  </property>
+                  <property name="maximum">
+                   <number>9999</number>
+                  </property>
+                 </widget>
+                </item>
+               </layout>
               </item>
               <item>
@@ -7245,21 +7293,56 @@
               </item>
               <item>
-               <widget class="QSpinBox" name="fDrsCalibGain">
-                <property name="alignment">
-                 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                </property>
-                <property name="readOnly">
-                 <bool>true</bool>
-                </property>
-                <property name="buttonSymbols">
-                 <enum>QAbstractSpinBox::NoButtons</enum>
-                </property>
-                <property name="prefix">
-                 <string/>
-                </property>
-                <property name="maximum">
-                 <number>9999</number>
-                </property>
-               </widget>
+               <layout class="QHBoxLayout" name="horizontalLayout_41">
+                <property name="topMargin">
+                 <number>0</number>
+                </property>
+                <item>
+                 <widget class="QCheckBox" name="fDrsCalibGainOn">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
+                  <property name="minimumSize">
+                   <size>
+                    <width>0</width>
+                    <height>0</height>
+                   </size>
+                  </property>
+                  <property name="maximumSize">
+                   <size>
+                    <width>20</width>
+                    <height>16777215</height>
+                   </size>
+                  </property>
+                  <property name="text">
+                   <string/>
+                  </property>
+                  <property name="checked">
+                   <bool>true</bool>
+                  </property>
+                 </widget>
+                </item>
+                <item>
+                 <widget class="QSpinBox" name="fDrsCalibGain">
+                  <property name="alignment">
+                   <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                  </property>
+                  <property name="readOnly">
+                   <bool>true</bool>
+                  </property>
+                  <property name="buttonSymbols">
+                   <enum>QAbstractSpinBox::NoButtons</enum>
+                  </property>
+                  <property name="prefix">
+                   <string/>
+                  </property>
+                  <property name="maximum">
+                   <number>9999</number>
+                  </property>
+                 </widget>
+                </item>
+               </layout>
               </item>
               <item>
@@ -7271,21 +7354,56 @@
               </item>
               <item>
-               <widget class="QSpinBox" name="fDrsCalibTrgOffset">
-                <property name="alignment">
-                 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                </property>
-                <property name="readOnly">
-                 <bool>true</bool>
-                </property>
-                <property name="buttonSymbols">
-                 <enum>QAbstractSpinBox::NoButtons</enum>
-                </property>
-                <property name="prefix">
-                 <string/>
-                </property>
-                <property name="maximum">
-                 <number>9999</number>
-                </property>
-               </widget>
+               <layout class="QHBoxLayout" name="horizontalLayout_42">
+                <property name="topMargin">
+                 <number>0</number>
+                </property>
+                <item>
+                 <widget class="QCheckBox" name="fDrsCalibTrgOffsetOn">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
+                  <property name="minimumSize">
+                   <size>
+                    <width>0</width>
+                    <height>0</height>
+                   </size>
+                  </property>
+                  <property name="maximumSize">
+                   <size>
+                    <width>20</width>
+                    <height>16777215</height>
+                   </size>
+                  </property>
+                  <property name="text">
+                   <string/>
+                  </property>
+                  <property name="checked">
+                   <bool>true</bool>
+                  </property>
+                 </widget>
+                </item>
+                <item>
+                 <widget class="QSpinBox" name="fDrsCalibTrgOffset">
+                  <property name="alignment">
+                   <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                  </property>
+                  <property name="readOnly">
+                   <bool>true</bool>
+                  </property>
+                  <property name="buttonSymbols">
+                   <enum>QAbstractSpinBox::NoButtons</enum>
+                  </property>
+                  <property name="prefix">
+                   <string/>
+                  </property>
+                  <property name="maximum">
+                   <number>9999</number>
+                  </property>
+                 </widget>
+                </item>
+               </layout>
               </item>
              </layout>
@@ -13105,5 +13223,5 @@
      <x>0</x>
      <y>0</y>
-     <width>1206</width>
+     <width>1236</width>
      <height>21</height>
     </rect>
