Index: trunk/Mars/fact/processing/ontime.C
===================================================================
--- trunk/Mars/fact/processing/ontime.C	(revision 15602)
+++ trunk/Mars/fact/processing/ontime.C	(revision 15603)
@@ -35,6 +35,13 @@
     int     counter             = 0;    //cnt the number of non zero ElTime datapoints
 
-    double  TriggerTimeOver125  = 0.;   //this will be the time  in sec the Trigger
-                                        //is above 125Hz
+    double  TriggerTimeOver100  = 0.;   //this will be the time  in sec the Trigger
+    double  TriggerTimeOver125  = 0.;   //is above 100Hz,125Hz,...
+    double  TriggerTimeOver150  = 0.;
+    double  TriggerTimeOver175  = 0.;
+
+    double  SumRate             = 0.;   //for calculating the sqrt(var) of the trigger rate
+    double  SumRate2            = 0.;   //same
+    double  TriggerRateRms      = 0.;
+    int     ratecounter         = 0;
 
     //loop over all rows in slow-file
@@ -66,7 +73,25 @@
         }
 
-        //sum the time the trigger is over 125Hz
-        if (TriggerRate>125.){
-            TriggerTimeOver125 += ElTime;
+        //to calculate the sqrt(var) of the rate
+        SumRate     +=TriggerRate;
+        SumRate2    +=TriggerRate*TriggerRate;
+        ratecounter +=1;
+
+        //sum the time the triggerate is over 100Hz, 125Hz,...
+        if (TriggerRate>100.){
+            TriggerTimeOver100 += ElTime;
+
+            if (TriggerRate>125.){
+                TriggerTimeOver125 += ElTime;
+
+                if (TriggerRate>1500.){
+                    TriggerTimeOver150 += ElTime;
+
+                    if (TriggerRate>175.){
+                        TriggerTimeOver175 += ElTime;
+
+                    }
+                }
+            }
         }
 
@@ -80,11 +105,25 @@
                                        (SumOnEl/counter*SumOnEl/counter)) : 0.;
     EffectiveOnRMS      = EffectiveOnRMS>0 ? sqrt(EffectiveOnRMS) : 0;
+    TriggerRateRms      = ratecounter>0? (SumRate2/ratecounter-
+                                          (SumRate/ratecounter*SumRate/ratecounter)) : 0.;
+    TriggerRateRms      = TriggerRateRms>0 ? sqrt(TriggerRateRms) : 0;
 
     //check for crap data, which happenes sometimes...
     if (EffectiveOn>1.) EffectiveOn = 1.;
     if (EffectiveOnRMS>0.5) EffectiveOnRMS = 0.5;
+    if (TriggerRateRms>1000) TriggerRateRms = 0.;
 
     //return fun. The style from daniela (grep the output) requires an non scientific notation,
     //i.e. withour exponential+ therefore set the precision to ~double with fixed width after decimal point
-    cout << setiosflags(ios::fixed) << setprecision(12) << "result " << EffectiveOn << " " << EffectiveOnRMS << " " << SumOnTime << " " << TriggerTimeOver125 << endl;
+    cout << setiosflags(ios::fixed) << setprecision(12)
+         << "result "
+         << EffectiveOn         << " "
+         << EffectiveOnRMS      << " "
+         << SumOnTime           << " "
+         << TriggerTimeOver100  << " "
+         << TriggerTimeOver125  << " "
+         << TriggerTimeOver150  << " "
+         << TriggerTimeOver175  << " "
+         << TriggerRateRms  << " "
+         << endl;
 }
