Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
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()
Exemple #7
0
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()
Exemple #8
0
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()
Exemple #9
0
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()
Exemple #10
0
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()
Exemple #11
0
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()
Exemple #15
0
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()
Exemple #16
0
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()
Exemple #18
0
 def connectDPX(self):
     self.dpxObj = dpx.Dosepix('/dev/ttyUSB0', 2e6, 'DPXConfig.conf')
     self.dpxObj.setGUI()
     return str('Success!')