'''
Description: 
Author: Ming Fang
Date: 2022-09-20 19:29:43
LastEditors: Ming Fang
LastEditTime: 2022-09-20 22:41:16
'''
import tkinter

# import the parser to use it
from sources.py_BinFileParser import CITIROCEvent, DT5550WBinFile
from sources.utilities import Histogram, ImagerSetup, SiPMEvent, CrystalEvent, CoincidenceEvent
from sources.selectCoincidence import processCITIROCEventChunk
from sources.plotSpectra import plotSpectra
import config


########### Data processing
# Read the file in chunks of 100k events until end of file (EOF)
# Depending on available memory size, chunkSize can be made smaller/larger
fileHandle = DT5550WBinFile(b'test_data/test.data', True)
chunkSize = 100000
# Max number of events to process
maxN = 1000000
numberOfPulsesRead = 0

while numberOfPulsesRead < maxN and fileHandle.isGood():
    newChunk = fileHandle.readNextNEvents(chunkSize)
    numberOfPulsesRead += len(newChunk)
    print("Read {} events.".format(len(newChunk)))
    processCITIROCEventChunk(newChunk)

########## Plot spectra
root = tkinter.Tk()
plotSpectra(root)
root.mainloop()