def main(): thl_calib_files = [ CONFIG_DIR + '/THLCalib_%d.hck' % CHIP for CHIP in CHIP_NUMS ] dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_DIR + '/' + CONFIG_FN, thl_calib_files=thl_calib_files) dpx.measureToT(slot=[1, 2, 3], intPlot=True, storeEmpty=False, logTemp=False) # dpx.TPtoToT(slot=1, column='all') # dpx.ADCWatch(1, ['I_krum', 'Temperature'], cnt=0) # dpx.measureADC(1, AnalogOut='V_fbk', perc=False, ADChigh=8191, ADClow=0, ADCstep=1, N=1, fn=None, plot=True) # dpx.energySpectrumTHL(1, THLhigh=8000, THLlow=int(dpx.THLs[0], 16) - 500, THLstep=25, timestep=1, intPlot=True) # dpx.measureADC(1, AnalogOut='V_cascode_bias', perc=True, ADChigh=0.06, ADClow=0., ADCstep=0.00001, N=1) # dpx.ToTtoTHL_pixelDAC(slot=1, THLstep=1, I_pixeldac=0.0001, valueLow=200, valueHigh=200, valueCount=1, energy=False, plot=False) # dpx.ToTtoTHL(slot=1, column='all', THLstep=1, valueLow=1.5e3, valueHigh=30e3, valueCount=20, energy=True, plot=False, outFn='ToTtoTHL.p') # dpx.energySpectrumTHL(1) # dpx.testPulseDosi(1, column='all') # dpx.testPulseToT(1, 10, column=0, DAC='I_krum', DACRange=range(3, 25) + range(25, 50, 5) + range(50, 120, 10), perc=False) # dpx.measureDose(slot=2, measurement_time=0, freq=False, frames=1000, logTemp=False, intPlot=True, conversion_factors=None) # ('conversion_factors/conversionFit_wSim_10.csv', 'conversion_factors/conversionFit_wSim_10.csv')) # dpx.measureIntegration() # dpx.temperatureWatch(slot=1, column='all', frames=1000, energyRange=(50.e3, 50.e3), fn='TemperatureToT_DPX22_Ikrum_50keV.hck', intplot=True) # dpx.measureTHL(1, fn='THLCalib_22.p', plot=False) # dpx.measurePulseShape(1, column=1) dpx.close()
def main(): # Establish connection thl_calib_files = [ CONFIG_DIR + '/THLCalib_%d.hck' % CHIP for CHIP in CHIP_NUMS ] dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_DIR + '/' + CONFIG_FN, thl_calib_files=thl_calib_files) # Change Ikrum values for chip_idx in range(3): d = dpx.splitPerihperyDACs(dpx.peripherys + dpx.THLs[chip_idx], perc=False) d['I_krum'] = IKRUM[chip_idx] code = dpx.periheryDACsDictToCode(d, perc=False) dpx.peripherys = code[:-4] dpx.DPXWritePeripheryDACCommand(chip_idx + 1, code) print dpx.DPXReadPeripheryDACCommand(chip_idx + 1) print dpx.DPXReadOMRCommand(chip_idx + 1) THLList = np.arange(4000, 4800) for slot in range(1, 4): print dpx.DPXReadPeripheryDACCommand(slot) THLListCorr = [dpx.getVoltFromTHLFit(elm, slot) for elm in THLList] plt.plot(THLList, THLListCorr) plt.show() # Close connection dpx.close()
def main(): # Establish connection thl_calib_files = None # [CONFIG_DIR + '/THLCalib_%d.hck' % CHIP for CHIP in CHIP_NUMS] dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_DIR + '/' + CONFIG_FN, thl_calib_files=thl_calib_files) # Change Ikrum values new_peripherys = [] for chip_idx in range(3): d = dpx.splitPerihperyDACs(dpx.peripherys + dpx.THLs[chip_idx], perc=False) d['I_krum'] = IKRUM[chip_idx] code = dpx.periheryDACsDictToCode(d, perc=False) code = code[:-4] + '%04x' % (int(dpx.THLs[chip_idx], 16) - THL_SHIFT) dpx.THLs[chip_idx] = '%04x' % (int(dpx.THLs[chip_idx], 16) - THL_SHIFT) dpx.peripherys = code[:-4] new_peripherys.append(code[:-4]) dpx.DPXWritePeripheryDACCommand(chip_idx + 1, code) print dpx.DPXReadPeripheryDACCommand(chip_idx + 1) print dpx.DPXReadOMRCommand(chip_idx + 1) for slot in range(1, 4): print dpx.DPXReadPeripheryDACCommand(slot) # THL scan THL = int(dpx.THLs[0], 16) THLlow = THL - 500 THLhigh = THL + 500 # dpx.energySpectrumTHL(slot=3, THLhigh=THLhigh, THLlow=THLlow, THLstep=1, timestep=0, intPlot=False) dpx.findNoise(slot=1, THLlow=THLlow, THLhigh=THLhigh, THLstep=1, timestep=0) return # XRT THLlow = 5700 # THL THLhigh = 6500 # 8000 # THLlow + 1000 for voltage in [40]: for current in [20, 25, 30, 40, 50]: print 'Processing %d kV at %d mA' % (voltage, current) dpx.findNoise(slot=1, THLlow=THLlow, THLhigh=THLhigh, THLstep=10, timestep=0, outFn='noise_%d_%d.hck' % (voltage, current), megalix_port='/dev/ttyUSB1', megalix_settings=(voltage, current)) raw_input('Done! Press any key to continue') print # Close connection dpx.close()
def main(): # Establish connection thl_calib_files = None dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=thl_calib_files) # Measure ToT dpx.measurePC(slot=[1, 2, 3], measurement_time=0, frames=10000, intPlot=True) # Close connection dpx.close()
def main(): if REUSE_CONFIG: CONFIG_FN = [ CONFIG_DIR + '%d/DPXConfig_%d_Ikrum%d.conf' % (CHIP, CHIP, 20) if CHIP is not None else None for CHIP in CHIP_NUMS ] # Loop over different Ikrum values and perform measurements for Ikrum in IKRUMS: if not REUSE_CONFIG: CONFIG_FN = [ CONFIG_DIR + '%d/DPXConfig_%d_Ikrum%d.conf' % (CHIP, CHIP, Ikrum) if CHIP is not None else None for CHIP in CHIP_NUMS ] print('=== Starting ToT Measurement for Ikrum %d ===' % Ikrum) # Establish connection thl_calib_files = None dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=thl_calib_files, params_file=PARAMS_FILES, bin_edges_file=BIN_EDGES_FILES) # Change Ikrum if REUSE_CONFIG: # Ikrum is changed in this section, else it is changed via configuration file for chip_idx in range(3): d = dpx.splitPerihperyDACs(dpx.peripherys[chip_idx] + dpx.THLs[chip_idx], perc=False, show=True) d['I_krum'] = Ikrum code = dpx.periheryDACsDictToCode(d, perc=False) code = code[:-4] + '%04x' % (int(dpx.THLs[chip_idx], 16)) dpx.peripherys[chip_idx] = code[:-4] dpx.DPXWritePeripheryDACCommand(chip_idx + 1, code) # Measure ToT dpx.measureToT(slot=[1, 2, 3], intPlot=False, cnt=10000, storeEmpty=False, logTemp=True, meas_time=MEAS_TIME, outDir='ToTMeasurement_%s_Ikrum%d/' % ('_'.join([str(chip) for chip in CHIP_NUMS]), Ikrum)) # Close connection dpx.close() print()
def main(): # Establish connection thl_calib_files = None dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=thl_calib_files, params_file=PARAMS_FILES, bin_edges_file=BIN_EDGES_FILES) # Measure Dose outFn = 'doseMeasurementShift_AmMo' doseDict, timeDict = dpx.measureDoseEnergyShift(slot=[1, 2, 3], measurement_time=30., freq=False, frames=1, logTemp=True, intPlot=False, fast=True, mlx=None, regions=1, outFn=outFn + '.json') bin_width = (120 - 10) / (15. * 4) besh.histogram_data(doseDict, timeDict, PARAMS_FILES, BIN_EDGES_FILES, rb=100, bw=bin_width, multi=True, split=4, out=outFn + '_hist.json') dpx.close()
def main(): dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, bin_edges_file=BIN_EDGES, params_file=PARAMS_FILE, thl_calib_files=THL_CALIB_FILES) dpx.measureDose(slot=1, measurement_time=0, freq=False, frames=1000, logTemp=False, intPlot=True, conversion_factors=None) dpx.close()
def main(): # Establish connection thl_calib_files = None # [CONFIG_DIR + '/THLCalib_%d.hck' % CHIP for CHIP in CHIP_NUMS] dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_DIR + '/' + CONFIG_FN, thl_calib_files=thl_calib_files) # Change Ikrum values for chip_idx in range(3): # Type d = dpx.splitPerihperyDACs(dpx.peripherys + dpx.THLs[chip_idx], perc=False) d['I_krum'] = IKRUM[chip_idx] # d['I_tpbufin'] = 255 # d['I_tpbufout'] = 255 code = dpx.periheryDACsDictToCode(d, perc=False) code = code[:-4] + '%04x' % (int(dpx.THLs[chip_idx], 16) - THL_SHIFT) dpx.THLs[chip_idx] = '%04x' % (int(dpx.THLs[chip_idx], 16) - THL_SHIFT) print code dpx.peripherys = code[:-4] dpx.DPXWritePeripheryDACCommand(chip_idx + 1, code) dpx.splitPerihperyDACs(dpx.DPXReadPeripheryDACCommand(chip_idx + 1), perc=False) print dpx.DPXReadOMRCommand(chip_idx + 1) # Measure Test Pulses # import time # import numpy as np # dpx.TPtoToT(slot=chip_idx+1, column=0, low=460, high=505, step=2, outFn='TPpixel_THL%d.hck' % THL_SHIFT) dpx.TPtoToT( slot=chip_idx + 1, column='all', low=250, high=512, step=5, outFn='TP_Slot%d.hck' % (chip_idx + 1) ) # outFn='TPpixelTemperature/TPpixelTemperature_t%d.hck' % time.time()) # dpx.TPfindMax(slot=chip_idx + 1, column=0) # for voltage in [100, 200, 300, 400]: # dpx.TPTime(slot=chip_idx + 1, column=0, voltage=voltage, timeRange=np.linspace(0, 100, 100), outFn='TPTime/TPTime%d_Slot%d.hck' % (voltage, chip_idx + 1)) # time.sleep(60) # dpx.ToTtoTHL(slot=1, column=0, THLstep=1, valueLow=460, valueHigh=512, valueStep=1, energy=False, plot=False, outFn='ToTtoTHL_slot1_test.hck') # Close connection dpx.close()
def main(): # Establish connection thl_calib_files = None dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=thl_calib_files, params_file=PARAMS_FILES, bin_edges_file=BIN_EDGES_FILES) mlx = dpx.megalix_connect('/dev/ttyUSB1') voltage, current = 40, 10 # out_dir= 'doseMeasurementShift_edges_10_120_4splits/' out_dir = '/home/pi/GoogleDrive/dosepix/DennisSpectra_shiftedBins/' outFn = 'test_%dkV_%dmA' # == Start Measurement == print('Setting megalix to (%d, %d)' % (voltage, current)) # Set mlx characteristics dpx.megalix_set_kvpmA(mlx, voltage, current) time.sleep(1) # Measure Dose doseDict, timeDict = dpx.measureDoseEnergyShift( slot=[1, 2, 3], measurement_time=10., freq=False, frames=3, logTemp=True, intPlot=False, fast=True, outFn=out_dir + outFn % (voltage, current) + '.json', mlx=mlx, regions=1) bin_width = 0 # (120 - 10) / (15. * 4) besh.histogram_data( doseDict, timeDict, PARAMS_FILES, BIN_EDGES_FILES, rb=100, bw=bin_width, multi=True, split=4, out=out_dir + outFn % (voltage, current) + '_hist.json', plot=out_dir + 'plots/' + outFn % (voltage, current) + '.pdf') dpx.close()
def main(): # Establish connection dpxObjects = [] for idx in range(N_DET): print(CONFIG_FN[idx]) dpxObjects.append( dpx_func_python.Dosepix(PORT[idx], 2e6, CONFIG_FN[idx], thl_calib_files=thl_calib_files)) dpx_multi = mu.DosepixMulti(dpxObjects, [[1, 2, 3], [1, 2]]) dpx_multi.measureToT(frames=None, sync=True) # Close connection for dpx in dpxObjects: dpx.close()
def main(): # Establish connection thl_calib_files = None dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=thl_calib_files, params_file=PARAMS_FILES, bin_edges_file=BIN_EDGES_FILES) # dpx.measureADC(slot=1, AnalogOut='I_krum', perc=False, ADChigh=4096, ADClow=0, ADCstep=1, N=1, fn='Ikrum_meas.json', plot=True) dpx.ADCWatch(slot=1, OMRAnalogOutList=['I_krum'], cnt=0, fn='ADCWatch.json') # Close connection dpx.close()
def main(): # Establish connection thl_calib_files = None dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=thl_calib_files, params_file=PARAMS_FILES, bin_edges_file=BIN_EDGES_FILES) # Measure Dose dpx.measureDose(slot=[1], intPlot=False, frames=1, logTemp=True, frame_time=10) # Close connection dpx.close()
def main(): # Create config dir if not already existing if not os.path.exists(CONFIG_DIR): os.makedirs(CONFIG_DIR) # THL measurements print('Ensure that detector %d is inserted at slot 1' % CHIP_NUMS[0]) raw_input('Press any key to proceed') for chip_idx in range(len(CHIP_NUMS)): print 'Measuring THL of chip %d' % CHIP_NUMS[chip_idx] dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_DIR + CONFIG_FN) dpx.measureTHL(1, fn=CONFIG_DIR + 'THLCalib_%d.hck' % CHIP_NUMS[chip_idx], plot=False) dpx.close() if chip_idx != len(CHIP_NUMS): print('Please disconnect board and insert detector %d into slot 1' % CHIP_NUMS[chip_idx+1]) raw_input('Reconnect and press any key to proceed') dpx.close()
def main(): # Create config dir if not already existing if not os.path.exists(CONFIG_DIR): os.makedirs(CONFIG_DIR) # THL measurements ''' print('Ensure that detector %d is inserted at slot 1' % CHIP_NUMS[0]) input('Press any key to proceed') for chip_idx in range(len(CHIP_NUMS)): print('Measuring THL of chip %d' % CHIP_NUMS[chip_idx]) dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_DIR + '/' + CONFIG_FN) dpx.measureTHL(1, fn=CONFIG_DIR + 'THLCalib_%d.json' % CHIP_NUMS[chip_idx], plot=False) dpx.close() if chip_idx != len(CHIP_NUMS): print('Please disconnect board and insert detector %d into slot 1' % CHIP_NUMS[chip_idx]) input('Reconnect and press any key to proceed') print() ''' # Threshold equalization thl_calib_files = [ CONFIG_DIR + '/THLCalib_%d.json' % CHIP for CHIP in CHIP_NUMS ] dpx = dpx_func_python.Dosepix(PORT, 2e6, thl_calib_files=thl_calib_files) # Change Ikrum values for chip_idx in range(3): d = dpx.splitPerihperyDACs(dpx.peripherys[chip_idx] + dpx.THLs[chip_idx], perc=False) d['I_krum'] = IKRUM[chip_idx] code = dpx.periheryDACsDictToCode(d, perc=False) dpx.peripherys[chip_idx] = code[:-4] dpx.DPXWritePeripheryDACCommand(chip_idx + 1, code) dpx.thresholdEqualizationConfig(CONFIG_FN, I_pixeldac=None, reps=1, intPlot=False, resPlot=True) dpx.close()
def main(): # Establish connection thl_calib_files = None dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=thl_calib_files, params_file=PARAMS_FILES, bin_edges_file=BIN_EDGES_FILES) # Measure ToT dpx.measureToT(slot=[1], intPlot=True, cnt=10000, storeEmpty=False, logTemp=True, meas_time=60 * 60) # Close connection dpx.close()
def main(): # Establish connection thl_calib_files = [ CONFIG_DIR + '/THLCalib_%d.hck' % CHIP for CHIP in CHIP_NUMS ] dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=thl_calib_files) # Change Ikrum values new_peripherys = [] for chip_idx in range(3): d = dpx.splitPerihperyDACs(dpx.peripherys[chip_idx] + dpx.THLs[chip_idx], perc=False, show=True) d['I_krum'] = IKRUM[chip_idx] code = dpx.periheryDACsDictToCode(d, perc=False) code = code[:-4] + '%04x' % (int(dpx.THLs[chip_idx], 16) - THL_SHIFT) dpx.THLs[chip_idx] = '%04x' % (int(dpx.THLs[chip_idx], 16) - THL_SHIFT) dpx.peripherys[chip_idx] = code[:-4] new_peripherys.append(code[:-4]) dpx.DPXWritePeripheryDACCommand(chip_idx + 1, code) for slot in range(1, 4): print(dpx.DPXReadPeripheryDACCommand(slot)) dpx.measureToT( slot=[1], intPlot=True, cnt=10, storeEmpty=False, logTemp=True, meas_time=None, external_THL=False ) # , paramsDict=hck.load('config/paramsDict_22_6_109_Ikrum_10_30_50_THLShift_10_slot2_fail.hck')) # Close connection dpx.close()
def main(): # Establish connection dpx = dpx_func_python.Dosepix(PORT, 2e6, CONFIG_FN, thl_calib_files=THL_CALIB_FILES, params_file=PARAMS_FILES, bin_edges_file=BIN_EDGES_FILES) peripherys = [] for chip_idx in range(3): d = dpx.splitPerihperyDACs(dpx.peripherys[chip_idx] + dpx.THLs[chip_idx], perc=False) code = dpx.periheryDACsDictToCode(d, perc=False) peripherys.append(code[:-4]) THL0 = np.array(dpx.THLs, copy=True) for THLshift in range(-50, 11, 10): print(THLshift) for slot in [0]: # range(3): THL = int(THL0[slot], 16) THL_idx = list(dpx.THLEdges[slot]).index(THL) THL = '%04x' % int(dpx.THLEdges[slot][THL_idx + THLshift]) dpx.DPXWritePeripheryDACCommand(slot + 1, peripherys[slot] + THL) # Measure ToT dpx.measureToT(slot=[1], intPlot=False, cnt=10000, storeEmpty=False, logTemp=True, meas_time=60 * 5, outDir='ToTMeasurement_THLShift_%d_Ikrum_%d_det_22/' % (THLshift, IKRUM)) # Close connection dpx.close()
def connectDPX(self): self.dpxObj = dpx.Dosepix('/dev/ttyUSB0', 2e6, 'DPXConfig.conf') self.dpxObj.setGUI() return str('Success!')