Index: trunk/MagicSoft/Mars/msimcamera/MSimTrigger.cc
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/MSimTrigger.cc	(revision 9261)
+++ trunk/MagicSoft/Mars/msimcamera/MSimTrigger.cc	(revision 9264)
@@ -78,5 +78,6 @@
 //
 MSimTrigger::MSimTrigger(const char *name, const char *title)
-    : fCamera(0), fPulsePos(0), fTrigger(0), fRunHeader(0), fEvtHeader(0)
+    : fCamera(0), fPulsePos(0), fTrigger(0), fRunHeader(0), fEvtHeader(0),
+    fDiscriminatorThreshold(-1)
 {
     fName  = name  ? name  : "MSimTrigger";
@@ -169,4 +170,12 @@
     if (fCoincidenceMap.ReadFile(fNameCoincidenceMap)<0)
         return kFALSE;
+
+    if (fDiscriminatorThreshold<=0)
+    {
+        *fLog << err << "ERROR - Discriminator threshold " << fDiscriminatorThreshold << " invalid." << endl;
+        return kFALSE;
+    }
+
+    *fLog << inf << "Using discriminator threshold of " << fDiscriminatorThreshold << endl;
 
     return kTRUE;
@@ -260,4 +269,7 @@
                 delete arr->Remove(ttl);
 
+        // Remove the empty slots
+        arr->Compress();
+
         // If we have at least one trigger keep the earliest one.
         // FIXME: The triggers should be ordered in time automatically: To be checked!
@@ -280,10 +292,12 @@
     triggers.Sort();
 
+    // inf2?
+    *fLog << all;
+    *gLog << triggers.GetEntriesFast() << " triggers in " << triggers.GetEntriesFast() << " patches.";
+    *fLog << endl;
+
     // FIXME: Jitter! (Own class?)
     fTrigger->SetVal(static_cast<MDigitalSignal*>(triggers[0])->GetStart());
 
-
-    // inf2?
-    *fLog << all << triggers.GetEntriesFast() << " triggers in " << triggers.GetEntriesFast() << " patches." << endl;
 
     return kTRUE;
