import UsefulFuncs import imp from glob import glob from ROOT import * import numpy as np from array import array import matplotlib.pyplot as plt imp.reload(UsefulFuncs) exptime = 50 gain = 'g4' moenchCode = 'Moench040' date = '250423' hv = 150 Folder = f'/mnt/sls_det_storage/moench_data/xiangyu/{date}_BP_cali_{moenchCode}_{hv}V_{gain}_{exptime}us' RootFileName = f'{moenchCode}_AduToKevMapping_{gain}_{exptime}us_{hv}V_{date}.root' CaliLut3DFileName = f'/home/xie_x1/MLED/data-process/utils/BacksidePulsing_Calibration/Moench040/{moenchCode}_AduToKevMapping_{gain}_{exptime}us_{hv}V_{date}.npy' XrayFolder = f'/mnt/sls_det_storage/moench_data/2504_SoleilBeamtime/{moenchCode}_g4_SimonStars_150V_50us' Roi = [140, 230, 120, 210] Energy = 15 measurementConfig = { 'caliFile': np.load(CaliLut3DFileName), 'pedestalFileName': f'{XrayFolder}/{Energy}keV_pedestal_d0_f0_0.raw', 'signalFileNames': glob(f'{XrayFolder}/{Energy}keV_signal_d0_f*_0.raw'), 'etaxLUT': '/mnt/sls_det_storage/moench_data/MLXID/EtaInterpolation/Moench040_EtaxLUT_g4_50us_150V_250423.npy', 'etayLUT': '/mnt/sls_det_storage/moench_data/MLXID/EtaInterpolation/Moench040_EtayLUT_g4_50us_150V_250423.npy', 'Roi': Roi, 'NX': 400, 'NY': 400, 'energy': Energy, # keV 'selectionRange': 2, 'NFrame': 20_000_000, ### 20_000_000 in total 'NThread': 16, 'headerSize': 56, 'clusterWidth': 3, ### cluster width, must be odd number 'write3x3Cluster': True, 'NChunks': 200, } UsefulFuncs.init(measurementConfig) UsefulFuncs.getPedestalAndNoise_simplified() UsefulFuncs.getHists() nBinX = UsefulFuncs.h2_interpolated.GetXaxis().GetNbins() nBinY = UsefulFuncs.h2_interpolated.GetYaxis().GetNbins() frame_intepolated = np.zeros((nBinY, nBinX)) for ix in range(nBinX): for iy in range(nBinY): frame_intepolated[iy, ix] = UsefulFuncs.h2_interpolated.GetBinContent(ix+1, iy+1) np.save('SiemenStar_interpolatedFrame.npy', frame_intepolated)