Index: /trunk/Mars/msimcamera/MSimTrigger.cc
===================================================================
--- /trunk/Mars/msimcamera/MSimTrigger.cc	(revision 19697)
+++ /trunk/Mars/msimcamera/MSimTrigger.cc	(revision 19698)
@@ -107,5 +107,5 @@
       fDigitalSignalLength(8),
       fCoincidenceTime(0.5),
-      fShiftBaseline(kTRUE),
+      fShiftBaseline(kFALSE),
       fUngainSignal(kTRUE),
       fSimulateElectronics(kTRUE),
@@ -355,5 +355,5 @@
 //        return kFALSE;
 //    }
-
+/*
     if (fElectronicNoise && !fRouteAC.IsEmpty() && !fRouteAC.IsDefaultCol())
     {
@@ -362,5 +362,5 @@
         fElectronicNoise = 0;
     }
-
+*/
     if (fGain && !fRouteAC.IsEmpty() && !fRouteAC.IsDefaultCol())
     {
@@ -557,5 +557,9 @@
                 if (pixel_id<fCamera->GetNumChannels())
                 {
-                    //(*raw_patches)[patch_id].AddSignal((*fCamera)[pixel_id]);
+                    // FIXME: There must also be a correction for the AC-coupling. Fortunately it is tiny
+                    // and for one channel in the order of a few ADC counts
+                    if (fShiftBaseline && fElectronicNoise)
+                        (*patches)[patch_id].ShiftSignal(-(1+fCableDamping)*(*fElectronicNoise)[pixel_id].GetPedestal());
+
                     (*patches)[patch_id].AddSignal((*fCamera)[pixel_id]);
                     (*patches)[patch_id].AddSignal((*fCamera)[pixel_id], fCableDelay, fCableDamping);
@@ -627,6 +631,6 @@
     {
         // FIXME: What if the gain was also allpied to the baseline?
-        const Double_t offset = fElectronicNoise ? (*fElectronicNoise)[i].GetPedestal() : 0;
-        const Double_t gain   = fGain            ? (*fGain)[i].GetPedestal()            : 1;
+        const Double_t offset = fElectronicNoise && empty ? (*fElectronicNoise)[i].GetPedestal() : 0;
+        const Double_t gain   = fGain                     ? (*fGain)[i].GetPedestal()            : 1;
         // FIXME: fCableDelay not taken into account when calculating the
         // valid range, therefore, fCableDelay must be smaller than the pulse width
@@ -894,4 +898,10 @@
     }
 
+    if (IsEnvDefined(env, prefix, "ShiftBaseline", print))
+    {
+        rc = kTRUE;
+        fShiftBaseline = GetEnvValue(env, prefix, "ShiftBaseline", fShiftBaseline);
+    }
+
     return rc;
 }
