-
Notifications
You must be signed in to change notification settings - Fork 0
6. Large ROOT files
Chloé Legué edited this page Aug 17, 2023
·
4 revisions
If you need to get the TOF data from large .root files, it is very likely that the GUI will crash. In order to avoid such problems, it is possible to run the TOF manually.
Note that even if you run the code manually, it is possible for the code to still crash. In this case, the most probable error would be that
numpyis unable to allocate enough memory for the arrays containing your data. It will be preferable in this case to take multiple runs in order to avoid such a problem.
>>> import pint
>>> from ReadROOT import read_root as r
>>> from ReadROOT import merge as m
>>> file0 = "Full path to the start channel root file"
>>> file1 = "Full path to the stop channel root file"
>>> csv_file = r.generate_csv_name(file0, 0, 1, pint.Quantity(1,"us")) #Note that 0 and 1 are the channel numbers and can be changed.
>>> #The pint.Quantity is also something that can be changed.
>>>
>>> merger = m.Merger(file_ch0=file0, file_ch1=file1, window=int(1e6), tree="Data_R") #The window has to be an integer.
>>> data = merger.merge()
>>>
>>> convert = m.Converter(data)
>>> convert.save(csv_file)
Note that it is possible to plot other histograms, not just the 2D ones. 1D TOF histograms can also be made if needed using the functions mentioned in General functions of read_root.
>>> import ReadROOT as r
>>> from ReadROOT import read_root as re
>>> data = re.get_cpp_evse_hist("CSV file path", 16384, 16384) #16384 is the number of bins.
>>> graph = r.plotter((10,10)) #(10,10) is the window size.
>>> graph.plot(data[3][0], data[3][1], 16384)
>>> graph.show()