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 []