Index: branches/Mars_MC/msimcamera/MSimCamera.cc
===================================================================
--- branches/Mars_MC/msimcamera/MSimCamera.cc	(revision 17056)
+++ branches/Mars_MC/msimcamera/MSimCamera.cc	(revision 17083)
@@ -43,4 +43,5 @@
 #include <TF1.h>
 #include <TRandom.h>
+#include <TRandom3.h>
 
 #include "MLog.h"
@@ -63,4 +64,6 @@
 #include "MMcEvt.hxx"            // To be replaced by a CheObs class
 #include "MRawRunHeader.h"
+
+#include "math.h"
 
 ClassImp(MSimCamera);
@@ -75,5 +78,6 @@
     : fEvt(0), fStat(0), fRunHeader(0), fElectronicNoise(0), fGain(0),
     fCamera(0), fMcEvt(0), fSpline(0), fBaselineGain(kFALSE),
-    fDefaultOffset(-1), fDefaultNoise(-1), fDefaultGain(-1)
+      fDefaultOffset(-1), fDefaultNoise(-1), fDefaultGain(-1), fACFudgeFactor(0),
+      fACTimeConstant(0)
 
 {
@@ -260,4 +264,15 @@
         MPedestalPix &accPhoPix         = (*fAccidentalPhotons)[i];
         accidentalPhotonRate            = accPhoPix.GetPedestal() * 1E3;
+        Double_t currentAccidentalPhotonRate = accidentalPhotonRate;
+
+        if(fACTimeConstant!=0)
+        {
+            Double_t accidentalPhotons      = fACTimeConstant * accidentalPhotonRate;
+            Double_t sigmaAccidentalPhotons = sqrt(accidentalPhotons);
+
+            TRandom3 *random = new TRandom3(0);
+            Double_t gaus = random->Gaus(accidentalPhotons,sigmaAccidentalPhotons);
+            currentAccidentalPhotonRate = gaus / timeconst;
+        }
 
         // I don't know how to get the variable fCrosstalkProb from
@@ -277,5 +292,6 @@
         samplingRate                    = fRunHeader->GetFreqSampling();
 
-        Double_t accouplingPerSlice = accidentalPhotonRate  * (1 + crossTalkProb)
+        Double_t accouplingPerSlice = currentAccidentalPhotonRate
+                * (1 + crossTalkProb + fACFudgeFactor)
                 * areaOfOnePulse / samplingRate;
 
@@ -369,4 +385,14 @@
         fDefaultGain = GetEnvValue(env, prefix, "DefaultGain", fDefaultGain);
     }
+    if (IsEnvDefined(env, prefix, "fACFudgeFactor", print))
+    {
+        rc = kTRUE;
+        fACFudgeFactor = GetEnvValue(env, prefix, "fACFudgeFactor", fACFudgeFactor);
+    }
+    if (IsEnvDefined(env, prefix, "fACTimeConstant", print))
+    {
+        rc = kTRUE;
+        fACTimeConstant = GetEnvValue(env, prefix, "fACTimeConstant", fACTimeConstant);
+    }
 
     return rc;
