Index: trunk/Mars/msimcamera/MSimTrigger.cc
===================================================================
--- trunk/Mars/msimcamera/MSimTrigger.cc	(revision 19683)
+++ trunk/Mars/msimcamera/MSimTrigger.cc	(revision 19695)
@@ -112,6 +112,6 @@
       fMinMultiplicity(-1),
       fCableDelay(21),
-      fCableDamping(0.)     // default Damping Set to zero, so users, who do not set
-                            // the CableDamoing in the ceres.rc do not see a difference.
+      fCableDamping(0.),    // default Damping Set to zero, so users, who do not set
+      fDebugTrigger(kFALSE) // the CableDamoing in the ceres.rc do not see a difference.
 
 {
@@ -301,5 +301,5 @@
         return kFALSE;
 
-    if (!fSimulateElectronics)
+    if (!fSimulateElectronics && !fDebugTrigger)
     {
         *fLog << inf << "Simulation of electronics switched off... first photon will trigger." << endl;
@@ -400,4 +400,7 @@
     *fLog << "Using fCableDelay " << fCableDelay << " samples" << endl;
     *fLog << "Using fCableDamping " << fCableDamping << endl;
+
+    if (!fSimulateElectronics)
+        *fLog << inf << "Simulation of electronics switched off... first photon will trigger." << endl;
 
     ////////////////////////////////
@@ -516,5 +519,8 @@
     const Float_t max = fCamera->GetValidRangeMax()-(nsamp-pulspos);
 
-    if (!fSimulateElectronics)
+    // Check if routing should be done
+    const Bool_t empty = fRouteAC.IsEmpty();
+
+    if (!fSimulateElectronics && (empty || (!empty && !fDebugTrigger)))
     {
         SetTrigger(min, -1);
@@ -526,7 +532,4 @@
     // FIXME: Before we can bundle the channels we have to make a copy
     //        and simulate clipping
-
-    // Check if routing should be done
-    const Bool_t empty = fRouteAC.IsEmpty();
 
     // If no channels are summed the number of patches stays the same
@@ -560,4 +563,24 @@
             }
         }
+
+        if (fDebugTrigger)
+        {
+            for (UInt_t patch_id=0; patch_id<npatch; patch_id++)
+            {
+                const MArrayI &row = fRouteAC.GetRow(patch_id);
+                for (UInt_t pxl_in_patch=0; pxl_in_patch<row.GetSize(); pxl_in_patch++)
+                {
+                    const UInt_t pixel_id = row[pxl_in_patch];
+                    if (pixel_id<fCamera->GetNumChannels())
+                        (*fCamera)[pixel_id].CopySignal((*patches)[patch_id]);
+                }
+            }
+        }
+    }
+
+    if (!fSimulateElectronics)
+    {
+        SetTrigger(min, -1);
+        return kTRUE;
     }
 
@@ -865,5 +888,9 @@
     }
 
-
+    if (IsEnvDefined(env, prefix, "DebugTrigger", print))
+    {
+        rc = kTRUE;
+        fDebugTrigger = GetEnvValue(env, prefix, "DebugTrigger", fDebugTrigger);
+    }
 
     return rc;
Index: trunk/Mars/msimcamera/MSimTrigger.h
===================================================================
--- trunk/Mars/msimcamera/MSimTrigger.h	(revision 19683)
+++ trunk/Mars/msimcamera/MSimTrigger.h	(revision 19695)
@@ -53,4 +53,7 @@
     Float_t fCableDamping;              // the signal is damped a bit when reflecting at the end of the cable and is inverted as well.
                                         // Damping factor in [-1..0]. In short tests by Kai Schennetten it looked like -0.96.
+
+    Bool_t fDebugTrigger;               // Copy the sum signal back to the camera for debugging purpose
+
 #if 0
     // debugging
