Index: trunk/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.cxx
===================================================================
--- trunk/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.cxx	(revision 2291)
+++ trunk/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.cxx	(revision 2292)
@@ -337,4 +337,5 @@
     PixelsSecond[i] = -1;
   }
+
   cout << " end of MTrigger::MTrigger()" << endl ; 
 } 
@@ -852,4 +853,22 @@
 }
 
+void MTrigger::SetElecNoise(Float_t factor){
+
+  UInt_t i;
+  Float_t rausch ; 
+
+  rausch = RESPONSE_AMPLITUDE * factor ; 
+ 
+  cout<<"MTrigger::SetElecNoise ... generating database for electroni noise."
+      <<endl;
+
+  for (i=0;i<TRIGGER_PIXELS*TRIGGER_TIME_SLICES*101;i++){
+    noise[i]=GenElec->Gaus(0., rausch  );
+      }
+
+  cout<<"MTrigger::SetElecNoise ... done"<<endl;
+
+}
+
 void MTrigger::ElecNoise(Float_t factor) {
   // ============================================================
@@ -861,4 +880,10 @@
 
   rausch = RESPONSE_AMPLITUDE * factor ; 
+
+  UInt_t startslice;
+
+  startslice=GenElec->Integer(TRIGGER_PIXELS*TRIGGER_TIME_SLICES*100);
+
+
  
   for ( Int_t i=0 ; i < TRIGGER_PIXELS; i++  ) {
@@ -867,21 +892,26 @@
       //  hitted the first time
       //
+
+    if ( used[i] == FALSE ) {
+	used [i] = TRUE ; 
+	
+	memcpy( (Float_t*)a_sig[i],
+		(Float_t*)&noise[startslice+TRIGGER_TIME_SLICES*i], 
+		TRIGGER_TIME_SLICES*sizeof(Float_t));
+	memset( (Float_t*)d_sig[i],
+		0, 
+		TRIGGER_TIME_SLICES*sizeof(Float_t));
+	
+    }
+    //      
+    //  Then the noise is introduced for each time slice
+    //
+    else
+      for ( Int_t ii=1 ; ii<TRIGGER_TIME_SLICES; ii++ ) { 
       
-      if ( used[i] == FALSE ) {
-	  used [i] = TRUE ; 
-	  
-	  for (Int_t ii=0; ii < TRIGGER_TIME_SLICES; ii++ ) {
-	      a_sig[i][ii] = 0. ; 
-	      d_sig[i][ii] = 0. ; 
-	  }
-      }
-      //      
-      //  Then the noise is introduced for each time slice
-      //
-      for ( Int_t ii=1 ; ii<TRIGGER_TIME_SLICES; ii++ ) { 
-	  
-	  a_sig [i][ii] +=  GenElec->Gaus(0., rausch  ) ; 
-	  
-      }
+	a_sig [i][ii] +=  noise[startslice+TRIGGER_TIME_SLICES*i+ii] ; 
+	
+      }
+    
   }
 }
