File indexing completed on 2025-08-05 08:11:20
0001 import numpy as np
0002 import math
0003
0004 def sigmaEff(v, threshold, xmin, xmax):
0005 v = np.sort(v)
0006
0007 total = np.size(v)
0008 max = threshold * total
0009
0010 start = []
0011 stop = []
0012 width = []
0013
0014 i = 0
0015 while i != np.size(v)-1:
0016 count = 0
0017 j = i
0018 while j != np.size(v)-1 and count < max:
0019 count +=1
0020 j += 1
0021
0022 if j != np.size(v)-1:
0023 start.append(v[i])
0024 stop.append(v[j])
0025 width.append(v[j] - v[i])
0026
0027 i += 1
0028
0029 npminwidth = np.array(width)
0030
0031 minwidth = np.amin(npminwidth)
0032 pos = np.argmin(npminwidth)
0033
0034 xmin += [start[pos]]
0035 xmax += [stop[pos]]
0036
0037 return minwidth
0038
0039
0040 def minimum_size_range(file_sizes, percentage):
0041
0042 window_size = math.ceil(len(file_sizes) * percentage / 100)
0043
0044 sorted_sizes = sorted(file_sizes)
0045
0046
0047 min_size, max_size = sorted_sizes[0], sorted_sizes[-1]
0048 min_interval = max_size - min_size
0049
0050
0051 for i in range(len(sorted_sizes) - (window_size - 1)):
0052 lower, upper = sorted_sizes[i], sorted_sizes[i + (window_size - 1)]
0053 interval = upper - lower
0054
0055
0056 if interval < min_interval:
0057 min_interval = interval
0058 min_size, max_size = lower, upper
0059
0060 return min_size, max_size