Index: trunk/MagicSoft/Mars/msimcamera/MSimAPD.cc
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/MSimAPD.cc	(revision 9465)
+++ trunk/MagicSoft/Mars/msimcamera/MSimAPD.cc	(revision 9518)
@@ -173,4 +173,11 @@
         break;
 
+    case 3:
+        ncells    = 60;
+        crosstalk = 0.15;
+        deadtime  = 3;
+        recovery  = 8.75;
+        break;
+
     default:
         *fLog << err << "ERROR - APD type " << fType << " undefined." << endl;
Index: trunk/MagicSoft/Mars/msimcamera/MSimBundlePhotons.cc
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/MSimBundlePhotons.cc	(revision 9465)
+++ trunk/MagicSoft/Mars/msimcamera/MSimBundlePhotons.cc	(revision 9518)
@@ -173,5 +173,5 @@
         const Int_t &idx = row[0];
 
-        // Check if we were routed to a valid entry
+        // Check if we were routed to a valid entry ("not connected")
         // if not throw away this photon.
         if (idx<0)
Index: trunk/MagicSoft/Mars/msimcamera/MSimExcessNoise.cc
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/MSimExcessNoise.cc	(revision 9465)
+++ trunk/MagicSoft/Mars/msimcamera/MSimExcessNoise.cc	(revision 9518)
@@ -59,5 +59,5 @@
 //
 MSimExcessNoise::MSimExcessNoise(const char* name, const char *title)
-: fEvt(0)
+: fEvt(0), fExcessNoise(0.2)
 {
     fName  = name  ? name  : "MSimExcessNoise";
@@ -77,4 +77,6 @@
         return kFALSE;
     }
+
+    *fLog << inf << "Excess Noise Factor in use " << fExcessNoise << "%" << endl;
 
     return kTRUE;
@@ -96,5 +98,5 @@
             continue;
 
-        const Float_t neww = gRandom->Gaus(oldw, 0.2*TMath::Sqrt(oldw));
+        const Float_t neww = gRandom->Gaus(oldw, fExcessNoise*TMath::Sqrt(oldw));
         ph.SetWeight(neww);
     }
@@ -102,2 +104,18 @@
     return kTRUE;
 }
+
+// --------------------------------------------------------------------------
+//
+// ExcessNoise: 0.2
+//
+Int_t MSimExcessNoise::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
+{
+    Bool_t rc = kFALSE;
+    if (IsEnvDefined(env, prefix, "ExcessNoise", print))
+    {
+        rc = kTRUE;
+        fExcessNoise = GetEnvValue(env, prefix, "ExcessNoise", fExcessNoise);
+    }
+
+    return rc;
+}
Index: trunk/MagicSoft/Mars/msimcamera/MSimExcessNoise.h
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/MSimExcessNoise.h	(revision 9465)
+++ trunk/MagicSoft/Mars/msimcamera/MSimExcessNoise.h	(revision 9518)
@@ -14,4 +14,9 @@
     MPhotonEvent *fEvt;     //! Event storing the photons
 
+    Double_t fExcessNoise;
+
+    // MParContainer
+    Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print=kFALSE);
+
     // MTask
     Int_t PreProcess(MParList *pList);
Index: trunk/MagicSoft/Mars/msimcamera/MSimTrigger.cc
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/MSimTrigger.cc	(revision 9465)
+++ trunk/MagicSoft/Mars/msimcamera/MSimTrigger.cc	(revision 9518)
@@ -277,28 +277,4 @@
     }
 
-    fElectronicNoise = 0;
-    if (fShiftBaseline)
-    {
-        fElectronicNoise = (MPedestalCam*)pList->FindObject("ElectronicNoise", "MPedestalCam");
-        if (!fElectronicNoise)
-        {
-            *fLog << err << "ElectronicNoise [MPedestalCam] not found... aborting." << endl;
-            return kFALSE;
-        }
-        *fLog << inf << "Baseline will be shifted back to 0 for discriminator." << endl;
-    }
-
-    fGain = 0;
-    if (fUngainSignal)
-    {
-        fGain = (MPedestalCam*)pList->FindObject("Gain", "MPedestalCam");
-        if (!fGain)
-        {
-            *fLog << err << "Gain [MPedestalCam] not found... aborting." << endl;
-            return kFALSE;
-        }
-        *fLog << inf << "Discriminator will be multiplied by applied gain." << endl;
-    }
-
     fRunHeader = (MRawRunHeader*)pList->FindObject("MRawRunHeader");
     if (!fRunHeader)
@@ -311,4 +287,34 @@
     if (!fEvtHeader)
         return kFALSE;
+
+    if (!fSimulateElectronics)
+    {
+        *fLog << inf << "Simulation of electronics switched off... first photon will trigger." << endl;
+        return kTRUE;
+    }
+
+    fElectronicNoise = 0;
+    if (fShiftBaseline)
+    {
+        fElectronicNoise = (MPedestalCam*)pList->FindObject("ElectronicNoise", "MPedestalCam");
+        if (!fElectronicNoise)
+        {
+            *fLog << err << "ElectronicNoise [MPedestalCam] not found... aborting." << endl;
+            return kFALSE;
+        }
+        *fLog << inf << "Baseline will be shifted back to 0 for discriminator." << endl;
+    }
+
+    fGain = 0;
+    if (fUngainSignal)
+    {
+        fGain = (MPedestalCam*)pList->FindObject("Gain", "MPedestalCam");
+        if (!fGain)
+        {
+            *fLog << err << "Gain [MPedestalCam] not found... aborting." << endl;
+            return kFALSE;
+        }
+        *fLog << inf << "Discriminator will be multiplied by applied gain." << endl;
+    }
 
     fRouteAC.Delete();
Index: trunk/MagicSoft/Mars/msimcamera/Makefile
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/Makefile	(revision 9465)
+++ trunk/MagicSoft/Mars/msimcamera/Makefile	(revision 9518)
@@ -6,6 +6,6 @@
 #
 ##################################################################
+include ../Makefile.conf.general
 include ../Makefile.conf.$(OSTYPE)
-include ../Makefile.conf.general
 
 #------------------------------------------------------------------------------
