diff --git a/pymule/errortools.py b/pymule/errortools.py
index acb36c1223ab315db55346d1cdea4bc5ecb8f0b4..acfb162867a300bf9d8aceab2d49be85a4fe0f5f 100644
--- a/pymule/errortools.py
+++ b/pymule/errortools.py
@@ -44,6 +44,19 @@ def timesnumbers(a, b):
     ])
 
 
+def integratehistogram(hist):
+    ans = 0
+    if hist[0,0] == -np.inf:
+        ans += hist[0,1]
+        hist = hist[1:]
+    if hist[-1,0] == +np.inf:
+        ans += hist[-1,1]
+        hist = hist[:-1]
+
+    ans += np.mean(np.diff(hist[:,0])) * sum(hist[:,1])
+    return ans
+
+
 def mergeplots(ps, returnchi=False):
     if type(ps) == list:
         ps = np.array(ps)
@@ -93,6 +106,13 @@ def combineNplots(func, plots):
     return accum
 
 
+def scaleplot(a, sx, sy=None):
+    if sy is None:
+        return np.array((1./sx, sx, sx)) * a
+    else:
+        return np.array((1./sx, sy, sy)) * a
+
+
 def mergebins(p, n):
     if p[0,0] == -np.inf:
         return np.concatenate([
diff --git a/pymule/loader.py b/pymule/loader.py
index 39ac2fc4653315672b7624e03278c813b4298c11..a7960d01d0f90bcfa8c01346939b5205b7360453 100644
--- a/pymule/loader.py
+++ b/pymule/loader.py
@@ -102,6 +102,17 @@ def addsets(s):
     return dic
 
 
+def scaleset(s, v):
+    dic = {
+        'time': s['time'],
+        'chi2a': s['chi2a'],
+        'value': v * s['value']
+    }
+    for plot in getplots(s):
+        dic[plot] = scaleplot(s[plot], 1., v)
+    return dic
+
+
 def multiintersect(lists):
     if len(lists) == 0:
         return []