Index: trunk/FACT++/src/DrsCalib.h
===================================================================
--- trunk/FACT++/src/DrsCalib.h	(revision 11744)
+++ trunk/FACT++/src/DrsCalib.h	(revision 11745)
@@ -169,7 +169,8 @@
     static void Apply(int16_t *val, const int16_t *start, uint32_t roi,
                       const int32_t *offset, const uint32_t scaleabs,
-                      const int32_t *gain,   const uint32_t scalegain,
-                      const int32_t *trgoff, const uint32_t scalerel)
-    {
+                      const int64_t *gain,   const uint32_t scalegain,
+                      const int64_t *trgoff, const uint32_t scalerel)
+    {
+        return ;// "FIXME: scalegain exceeds valid range..."
         for (size_t ch=0; ch<1440; ch++)
         {
@@ -194,8 +195,8 @@
                     ;
 
+                // The gain value is multiplied by fNumOffset and fNumGain
                 const int64_t div = int64_t(gain[abs])*scaleabs*scalerel;
-
                 val[rel] = (v*scalegain)/div;
-            }
+             }
         }
     }
@@ -203,6 +204,6 @@
     static void Apply(float *vec, const int16_t *val, const int16_t *start, uint32_t roi,
                       const int32_t *offset, const uint32_t scaleabs,
-                      const int32_t *gain,   const uint32_t scalegain,
-                      const int32_t *trgoff, const uint32_t scalerel)
+                      const int64_t *gain,   const uint64_t scalegain,
+                      const int64_t *trgoff, const uint32_t scalerel)
     {
         for (size_t ch=0; ch<1440; ch++)
@@ -233,5 +234,5 @@
                 const int64_t div = int64_t(gain[abs])*scaleabs*scalerel;
 
-                vec[rel] = double(v*scalegain)/div;
+                vec[rel] = double(v)*scalegain/div;
             }
         }
