def main(): arguments = docopt(__doc__, version='Dragon Data Browser 0.1alpha') folder = arguments["<folder>"] xdata = dict() ydata = dict() for pix in range(num_channels): xdata[pix] = list() ydata[pix] = list() for (dirpath, dirnames, filenames) in os.walk(folder): for filename in filenames: path = os.path.join(dirpath,filename) if not path.endswith(".dat"): continue print path generator = read(path) nEvents = len(generator) ratios = np.zeros((num_channels,nEvents)) pulsePositionsLow = np.zeros((num_channels,nEvents)) pulsePositionsHigh = np.zeros((num_channels,nEvents)) pulseMaxLow = np.zeros((num_channels,nEvents)) pulseMaxHigh = np.zeros((num_channels,nEvents)) for i,event in enumerate(generator): for pix in range(num_channels): dataLow = event.data["low"][pix].astype(float) dataLow -= estimateBaseline(dataLow,0,20) dataHigh = event.data["high"][pix].astype(float) dataHigh -= estimateBaseline(dataHigh,0,20) pulsePositionsLow[pix][i], pulseMaxLow[pix][i] = find_max_amplitude(dataLow,0,90) pulsePositionsHigh[pix][i], pulseMaxHigh[pix][i] = find_max_amplitude(dataHigh,0,90) ratios[pix][i] = float(pulseMaxHigh[pix][i])/pulseMaxLow[pix][i] averagedRatios = np.zeros(num_channels) averagedMaxHigh = np.zeros(num_channels) averagedMaxLow = np.zeros(num_channels) for pix in range(num_channels): averagedRatios[pix] = np.mean(ratios[pix]) averagedMaxHigh[pix] = np.mean(pulseMaxHigh[pix]) averagedMaxLow[pix] = np.mean(pulseMaxLow[pix]) xdata[pix].append(averagedMaxHigh[pix]) ydata[pix].append(averagedRatios[pix]) for pix in range(num_channels): plt.plot(xdata[pix],ydata[pix],'*') plt.title("Pixel: {}".format(pix)) plt.show()
from profilehooks import profile from dragonboard import read read = profile(read) l = read('./Ped444706_1.dat')