File indexing completed on 2024-04-06 12:21:00
0001
0002
0003 import os
0004
0005 in_path = 'L1Trigger/L1TMuonEndCap/test/tools/pc_luts/firmware_data/'
0006
0007
0008 def main():
0009 full_path = os.environ['CMSSW_BASE'] + '/src/' + in_path + '%s'
0010 out_dir = os.environ['CMSSW_BASE'] + '/src/' + in_path.replace('firmware', 'emulator')
0011
0012 if not os.path.exists(out_dir):
0013 os.makedirs(out_dir)
0014
0015 all_files = []
0016
0017 ph_init_array = []
0018 ph_disp_array = []
0019 th_init_array = []
0020 th_disp_array = []
0021 th_lut_array = []
0022 th_corr_lut_array = []
0023
0024
0025 def read_file_into_array(fn, arr, resize=0):
0026 old_size = len(arr)
0027 with open(fn) as f:
0028 for line in f:
0029 for s in line.split():
0030 x = int(s, 16)
0031 arr.append(x)
0032
0033 new_size = len(arr)
0034 if resize:
0035 for i in xrange(new_size-old_size, resize):
0036 arr.append(0)
0037 return
0038
0039 def dump_array_into_file(arr, fn):
0040 with open(fn, 'w') as f:
0041 s = ""
0042 for i in xrange(len(arr)):
0043 x = arr[i]
0044 s += ("%i " % x)
0045 if (i+1)%30 == 0:
0046 s += "\n"
0047 f.write(s)
0048
0049
0050 for endcap in [1,2]:
0051 for sector in [1,2,3,4,5,6]:
0052
0053
0054 for st in [0,1,2,3,4]:
0055 ph_init_filename = 'ph_init_full_endcap_%i_sect_%i_st_%i.lut' % (endcap, sector, st)
0056 read_file_into_array((full_path % ph_init_filename), ph_init_array)
0057 all_files.append(ph_init_filename)
0058
0059
0060 ph_disp_filename = 'ph_disp_endcap_%i_sect_%i.lut' % (endcap, sector)
0061 read_file_into_array((full_path % ph_disp_filename), ph_disp_array)
0062 all_files.append(ph_disp_filename)
0063
0064
0065 th_init_filename = 'th_init_endcap_%i_sect_%i.lut' % (endcap, sector)
0066 read_file_into_array((full_path % th_init_filename), th_init_array)
0067 all_files.append(th_init_filename)
0068
0069
0070 th_disp_filename = 'th_disp_endcap_%i_sect_%i.lut' % (endcap, sector)
0071 read_file_into_array((full_path % th_disp_filename), th_disp_array)
0072 all_files.append(th_disp_filename)
0073
0074
0075 for sub in [1]:
0076 for st in [1]:
0077 for ch in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]:
0078 th_lut_filename = 'vl_th_lut_endcap_%i_sec_%i_sub_%i_st_%i_ch_%i.lut' % (endcap, sector, sub, st, ch)
0079 read_file_into_array((full_path % th_lut_filename), th_lut_array, resize=128)
0080 all_files.append(th_lut_filename)
0081
0082 for sub in [2]:
0083 for st in [1]:
0084 for ch in [1,2,3,4,5,6,7,8,9,10,11,12]:
0085 th_lut_filename = 'vl_th_lut_endcap_%i_sec_%i_sub_%i_st_%i_ch_%i.lut' % (endcap, sector, sub, st, ch)
0086 read_file_into_array((full_path % th_lut_filename), th_lut_array, resize=128)
0087 all_files.append(th_lut_filename)
0088
0089 for st in [2,3,4]:
0090 for ch in [1,2,3,4,5,6,7,8,9,10,11]:
0091 th_lut_filename = 'vl_th_lut_endcap_%i_sec_%i_st_%i_ch_%i.lut' % (endcap, sector, st, ch)
0092 read_file_into_array((full_path % th_lut_filename), th_lut_array, resize=128)
0093 all_files.append(th_lut_filename)
0094
0095
0096 for sub in [1]:
0097 for st in [1]:
0098 for ch in [1,2,3,13]:
0099 th_corr_lut_filename = 'vl_th_corr_lut_endcap_%i_sec_%i_sub_%i_st_%i_ch_%i.lut' % (endcap, sector, sub, st, ch)
0100 read_file_into_array((full_path % th_corr_lut_filename), th_corr_lut_array, resize=128)
0101 all_files.append(th_corr_lut_filename)
0102
0103 for sub in [2]:
0104 for st in [1]:
0105 for ch in [1,2,3]:
0106 th_corr_lut_filename = 'vl_th_corr_lut_endcap_%i_sec_%i_sub_%i_st_%i_ch_%i.lut' % (endcap, sector, sub, st, ch)
0107 read_file_into_array((full_path % th_corr_lut_filename), th_corr_lut_array, resize=128)
0108 all_files.append(th_corr_lut_filename)
0109
0110 pass
0111 pass
0112
0113
0114 assert(len(all_files) == 12*76)
0115 assert(len(ph_init_array) == 12*61)
0116 assert(len(ph_disp_array) == 12*61)
0117 assert(len(th_init_array) == 12*61)
0118 assert(len(th_disp_array) == 12*61)
0119 assert(len(th_lut_array) == 12*61*128)
0120 assert(len(th_corr_lut_array) == 12*7*128)
0121
0122 dump_array_into_file(ph_init_array, out_dir+"ph_init_neighbor.txt")
0123 dump_array_into_file(ph_disp_array, out_dir+"ph_disp_neighbor.txt")
0124 dump_array_into_file(th_init_array, out_dir+"th_init_neighbor.txt")
0125 dump_array_into_file(th_disp_array, out_dir+"th_disp_neighbor.txt")
0126 dump_array_into_file(th_lut_array, out_dir+"th_lut_neighbor.txt")
0127 dump_array_into_file(th_corr_lut_array, out_dir+"th_corr_lut_neighbor.txt")
0128
0129 return
0130
0131
0132
0133 if __name__ == '__main__':
0134
0135 main()