def __init__(self): super(HandlesProc, self).__init__() self.handles: dict = {} self.handle_descr: dict = {} self.orbit_rma_knob = {} self.cell_col: dict = {0: 'name', 1: 'descr'} self.client_list: list = ['handle', 'rm_proc', 'inj_vs_handles', 'orbitd'] self.cmd_table: dict = { 'add_handle': self.add_handle_, 'handle_complete': self.handle_complete_, 'add_cor': self.add_cor_, 'delete_handle': self.delete_handle_, 'edit_item': self.edit_item_, 'step_up': self.step_up_, 'cst_step_up': self.cst_step_up_, 'step_down': self.step_down_, 'cst_step_down': self.cst_step_down_, 'add_orbit_rma_knob': self.add_orbit_rma_knob_, 'orbit_rma_step_up': self.orbit_rma_step_up_, 'orbit_rma_step_down': self.orbit_rma_step_down_, 'add_orbit_rma_corr': self.add_orbit_rma_corr_, 'orbit_rma_knob_complete': self.orbit_rma_knob_complete_ } self.knob_is_adding: bool = False self.knob_orbit_is_adding: bool = False self.tmp = {} self.i = 0 soft_conf = load_config_knob(CONF + '/knobd_conf.txt') chan_conf = soft_conf['chans_conf'] for chan in ['res', 'cmd']: if chan not in chan_conf: print(chan + ' is absent in knobd_conf') self.chan_cmd = cda.StrChan(**chan_conf['cmd']) self.chan_cmd.valueMeasured.connect(self.cmd) self.chan_res = cda.StrChan(**chan_conf['res']) self.load_handles() print('start')
def __init__(self, bpm, collect_orbit, collect_tunes, send_current, send_fft, send_coor, CONF): super(BPM, self).__init__() self.collect_orbit, self.collect_tunes, self.send_current, self.send_fft, self.send_coor = \ collect_orbit, collect_tunes, send_current, send_fft, send_coor chans_conf = load_config_bpm(CONF + '/bpm_conf.txt', bpm) for chan in ['datatxzi', 'numpts', 'tunes_range']: if chan not in chans_conf: print(bpm + ' ' + chan + ' is absent in bpm_conf') self.last_data_upd: int = 0 self.no_connection: bool = False self.name: str = bpm self.turns_mes: int = 0 self.act_state: int = 1 self.marker: int = 0 self.turn_num: int = 1 self.data_len: int = 1024 self.turn_slice: tuple = (100.0, 100.0) self.starting: bool = True self.coor: tuple = (0, 0) self.sigma: tuple = (0, 0) self.turn_arrays: nparray = np.ndarray([]) self.x_bound: list = [0.345, 0.365] self.z_bound: list = [0.2, 0.4] self.chan_datatxzi = cda.VChan(**chans_conf['datatxzi']) self.chan_datatxzi.valueMeasured.connect(self.data_proc) self.chan_numpts = cda.DChan(**chans_conf['numpts']) self.chan_tunes_range = cda.StrChan(**chans_conf['tunes_range']) self.chan_tunes_range.valueMeasured.connect(self.tunes_range)
def __init__(self, bpm, collect_orbit, chan_tunes, chan_turns, chan_fft, chan_coor, collect_act_bpm, CONF): super(BPM, self).__init__() self.collect_orbit, self.chan_tunes, self.chan_turns, self.chan_fft, self.chan_coor, self.collect_act_bpm = \ collect_orbit, chan_tunes, chan_turns, chan_fft, chan_coor, collect_act_bpm chans_conf = load_config_bpm(CONF + '/bpm_conf.txt', bpm) for chan in ['datatxzi', 'numpts', 'tunes_range', 'is_on', 'x', 'xstd', 'z', 'zstd']: if chan not in chans_conf: print(bpm + ' ' + chan + ' is absent in bpm_conf') self.chan_is_on = cda.DChan(**chans_conf['is_on']) self.chan_is_on.valueMeasured.connect(self.is_on) self.chan_x = cda.DChan(**chans_conf['x']) self.chan_xstd = cda.DChan(**chans_conf['xstd']) self.chan_z = cda.DChan(**chans_conf['z']) self.chan_zstd = cda.DChan(**chans_conf['zstd']) self.chan_tunes_range = cda.StrChan(**chans_conf['tunes_range']) self.chan_tunes_range.valueMeasured.connect(self.tunes_range) self.chan_datatxzi = cda.VChan(**chans_conf['datatxzi']) self.chan_datatxzi.valueMeasured.connect(self.data_proc) self.name: str = bpm self.turns_mes: int = 0 self.act_state: int = 1 self.data_len: int = 1024 self.coor: tuple = (0.0, 0.0) self.std: tuple = (0.0, 0.0) self.x_bound: list = [0.345, 0.365] self.z_bound: list = [0.2, 0.4] self.marker = 1
def __init__(self): super(KickerDaem, self).__init__() self.cmd_chan = cda.StrChan("cxhw:2.kickADCproc.inj.cmd", on_update=1, max_nelems=1024) self.res_chan = cda.StrChan("cxhw:2.kickADCproc.inj.res", on_update=1, max_nelems=1024) self.inj = InfWorkMode("inj", DIR + '/aux_mod/inj_adc_conf.txt', self.data_proc, DIR) self.ext = InfWorkMode("ext", DIR + '/aux_mod/ext_adc_conf.txt', self.data_proc, DIR) self.n_interp = 20 self.STEP = 5.6 / self.n_interp # = 0.28, I need 0.25 for start self.time_stamp = 0 self.cmd_chan.valueMeasured.connect(self.daemon_cmd) print("prog_start")
def __init__(self, cycle_part, conf_name, data_proc, dir_d): super(InfWorkMode, self).__init__() self.dir = dir_d + '/km_' self.ic_mode = '' self.active_tab = {'p': 1, 'e': 0} self.data_proc = data_proc self.cycle_part = cycle_part adc_list, p_names, e_names = load_config(conf_name) self.adcs = [ADC(self.data_receiver, name) for name in adc_list] self.inflectors = { "p": {key: InfDef(cycle_part, val) for key, val in p_names.items()}, "e": {key: InfDef(cycle_part, val) for key, val in e_names.items()} } self.chan_ic_mode = cda.StrChan("cxhw:0.k500.modet", max_nelems=4) self.chan_sel_all = cda.DChan("cxhw:18.kkr_sel_all.0") self.chan_ic_mode.valueChanged.connect(self.kkr_sel)
def __init__(self): self.c_v2k_regime = cda.StrChan(v2k_cas + '.Regime', on_update=True) self.c_bep_state = cda.StrChan(v2k_cas + '.BEP.State', on_update=True) self.c_v2k_inflector = cda.StrChan(v2k_cas + '.B-3M.BEP_Inflektor', on_update=True) self.c_v2k_probros = cda.StrChan(v2k_cas + '.BEP.RF.Probros', on_update=True) self.c_v2k_auto_state = cda.StrChan(v2k_cas + '.BEP.Injection.State', on_opdate=True) self.c_bep_is_busy = cda.IChan('bep.is_busy', on_update=True) self.c_bep_offline = cda.IChan('bep.offline', on_update=True) self.c_v2k_particles = cda.StrChan('bep.particles', max_nelems=50, on_update=True) self.c_v2k_regime.valueMeasured.connect(self.requested_particles_check) self.c_bep_state.valueMeasured.connect(self.bep_busy_check) self.c_v2k_inflector.valueMeasured.connect(self.offline_check) self.c_v2k_probros.valueMeasured.connect(self.offline_check) self.c_v2k_auto_state.valueMeasured.connect(self.offline_check)
#!/usr/bin/env python import signal import pycx4.pycda as cda signal.signal(signal.SIGINT, signal.SIG_DFL) def printval(chan): print chan.val text_c = cda.StrChan("localhost:0.msg.1") text_c.valueMeasured.connect(printval) cda.main_loop()
def __init__(self): super(BpmPreproc, self).__init__() self.DIVIDER = 10 soft_conf = load_config_orbit(CONF + '/orbitd_conf.txt', DIR) chans_conf = soft_conf['chans_conf'] bpms_list = soft_conf['bpm_conf'] self.client_list = soft_conf['client_conf'] self.mode_d = soft_conf['mode_d'] # checking config for chan in [ 'tunes', 'control_tunes', 'fft', 'coor', 'cmd', 'res', 'orbit', 'one_turn', 'control_orbit', 'turns', 'turns_matrix', 'modet' ]: if chan not in chans_conf: print(chan + ' is absent in orbitd_conf') self.bpms_zeros = np.zeros(2 * len(bpms_list), ) self.bpms_deviation = np.zeros(2 * len(bpms_list), ) self.ic_mode: str self.turn_bpm: str = 'bpm01' self.bckgr_proc: bool = False self.bckrg_counter: int = 0 self.bckgr_it_num: int = 0 self.current_orbit = np.empty(0) self.ctrl_orbit = np.empty(0) self.rev_rm = np.empty(0) self.rm_info: dict = {} self.current_tunes = np.empty(0) self.chan_tunes = cda.VChan(**chans_conf['tunes']) self.chan_tunes.valueMeasured.connect(self.collect_tunes) self.chan_ctrl_tunes = cda.StrChan(**chans_conf['control_tunes']) # order: p2v2, e2v2, p2v4, e2v4 self.chan_act_bpm = cda.StrChan(**chans_conf['act_bpm']) self.chan_fft = cda.VChan(**chans_conf['fft']) self.chan_coor = cda.VChan(**chans_conf['coor']) self.chan_cmd = cda.StrChan(**chans_conf['cmd']) self.chan_cmd.valueMeasured.connect(self.cmd) self.chan_res = cda.StrChan(**chans_conf['res']) self.chan_res.valueMeasured.connect(self.cmd_res) self.chan_orbit = cda.VChan(**chans_conf['orbit']) self.chan_one_turn = cda.VChan(**chans_conf['one_turn']) self.chan_ctrl_orbit = cda.VChan(**chans_conf['control_orbit']) self.chan_turns = cda.VChan(**chans_conf['turns']) self.chan_turns_matrix = cda.VChan(**chans_conf['turns_matrix']) self.chan_mode = cda.StrChan(**chans_conf['modet']) self.chan_mode.valueMeasured.connect(self.mode_changed) self.bpms: list = [ BPM(bpm, self.collect_orbit, self.chan_tunes, self.chan_turns, self.chan_fft, self.chan_coor, self.collect_act_bpm, CONF) for bpm in bpms_list ] self.cmd_table = { 'load_orbit': self.load_file_, 'load_tunes': self.load_file_, 'load_inj_matrix': self.load_file_, 'save_orbit': self.save_file_, 'save_tunes': self.save_file_, 'turn_bpm': self.turn_bpm_, 'no_cmd': self.no_cmd_, 'start_tunes': self.start_tunes_, 'bckgr': self.bckgr_start_, 'bckgr_discard': self.bckgr_discard_, 'status': self.status_, 'load_rresp_mat': self.load_rresp_mat_, 'step_dn': self.step_down_, 'step_up': self.step_up_, 'knob_recalc': self.knob_recalc_ } self.start_tunes_() print('start')
def init_chans(self): self.chan_adc200_ptsofs_1 = cda.DChan("cxhw:18.adc200_kkr1.ptsofs") self.chan_adc200_ptsofs_2 = cda.DChan("cxhw:18.adc200_kkr2.ptsofs") self.chan_adc200_numpts_1 = cda.DChan("cxhw:18.adc200_kkr1.numpts") self.chan_adc200_numpts_2 = cda.DChan("cxhw:18.adc200_kkr2.numpts") self.chan_adc200_timing_1 = cda.DChan("cxhw:18.adc200_kkr1.timing") self.chan_adc200_timing_2 = cda.DChan("cxhw:18.adc200_kkr2.timing") self.chan_adc200_frq_div_1 = cda.DChan("cxhw:18.adc200_kkr1.frqdiv") self.chan_adc200_frq_div_2 = cda.DChan("cxhw:18.adc200_kkr2.frqdiv") self.chan_adc200_range_1_1 = cda.DChan("cxhw:18.adc200_kkr1.range1") self.chan_adc200_range_1_2 = cda.DChan("cxhw:18.adc200_kkr1.range2") self.chan_adc200_range_2_1 = cda.DChan("cxhw:18.adc200_kkr2.range1") self.chan_adc200_range_2_2 = cda.DChan("cxhw:18.adc200_kkr2.range2") self.chan_pp = cda.VChan("cxhw:18.adc200_kkr1.line1", max_nelems=424) self.chan_pn = cda.VChan("cxhw:18.adc200_kkr1.line2", max_nelems=424) self.chan_kp = cda.VChan("cxhw:18.adc200_kkr2.line1", max_nelems=424) self.chan_kn = cda.VChan("cxhw:18.adc200_kkr2.line2", max_nelems=424) self.chan_sel_all = cda.DChan("cxhw:18.kkr_sel_all.0") self.cmd_chan = cda.StrChan("cxhw:2.kickADCproc.inj.cmd@u") self.res_chan = cda.StrChan("cxhw:2.kickADCproc.inj.res@u") self.chan_ic_mode = cda.StrChan("cxhw:0.k500.modet", max_nelems=4) self.chan_Tgood_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.Tgood", max_nelems=1024) # positrons "-" prekick self.chan_Ugood_ppn = cda.VChan("cxhw:2.inj.prekick.p.neg.Ugood", max_nelems=1024) self.chan_Ttemp_ppn = cda.VChan("cxhw:2.inj.prekick.p.neg.Ttemp", max_nelems=1024) self.chan_Utemp_ppn = cda.VChan("cxhw:2.inj.prekick.p.neg.Utemp", max_nelems=1024) self.chan_delta_a_ppn = cda.DChan("cxhw:2.inj.prekick.p.neg.delta_a") self.chan_delta_t_ppn = cda.DChan("cxhw:2.inj.prekick.p.neg.delta_t") self.chan_n_interp_ppn = cda.DChan("cxhw:2.inj.prekick.p.neg.n_interp") self.chan_sigma_t_ppn = cda.DChan("cxhw:2.inj.prekick.p.neg.sigma_cur") self.chan_delta_arr_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.delta_t_array", max_nelems=100) self.chan_t_peak_ppn = cda.DChan("cxhw:2.inj.prekick.p.neg.t_peak") self.chan_histo_range_ppn = cda.DChan( "cxhw:2.inj.prekick.p.neg.histo_range") self.chan_histo_x_all_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.histo_x_all", max_nelems=100) self.chan_histo_y_all_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.histo_y_all", max_nelems=100) self.chan_histo_x_1_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.histo_x_1", max_nelems=101) self.chan_histo_y_1_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.histo_y_1", max_nelems=101) self.chan_histo_x_2_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.histo_x_2", max_nelems=101) self.chan_histo_y_2_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.histo_y_2", max_nelems=101) self.chan_histo_x_3_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.histo_x_3", max_nelems=101) self.chan_histo_y_3_ppn = cda.VChan( "cxhw:2.inj.prekick.p.neg.histo_y_3", max_nelems=101) self.chan_abs_a_good_ppn = cda.DChan( "cxhw:2.inj.prekick.p.neg.abs_a_good") self.chan_Tgood_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.Tgood", max_nelems=1024) # positrons "-" kick self.chan_Ugood_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.Ugood", max_nelems=1024) self.chan_Ttemp_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.Ttemp", max_nelems=1024) self.chan_Utemp_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.Utemp", max_nelems=1024) self.chan_delta_a_kpn = cda.DChan("cxhw:2.inj.kick.p.neg.delta_a") self.chan_delta_t_kpn = cda.DChan("cxhw:2.inj.kick.p.neg.delta_t") self.chan_n_interp_kpn = cda.DChan("cxhw:2.inj.kick.p.neg.n_interp") self.chan_sigma_t_kpn = cda.DChan("cxhw:2.inj.kick.p.neg.sigma_cur") self.chan_delta_arr_kpn = cda.VChan( "cxhw:2.inj.kick.p.neg.delta_t_array", max_nelems=200) self.chan_t_peak_kpn = cda.DChan("cxhw:2.inj.kick.p.neg.t_peak") self.chan_histo_x_all_kpn = cda.VChan( "cxhw:2.inj.kick.p.neg.histo_x_all", max_nelems=100) self.chan_histo_y_all_kpn = cda.VChan( "cxhw:2.inj.kick.p.neg.histo_y_all", max_nelems=100) self.chan_histo_x_1_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.histo_x_1", max_nelems=101) self.chan_histo_y_1_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.histo_y_1", max_nelems=101) self.chan_histo_x_2_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.histo_x_2", max_nelems=101) self.chan_histo_y_2_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.histo_y_2", max_nelems=101) self.chan_histo_x_3_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.histo_x_3", max_nelems=101) self.chan_histo_y_3_kpn = cda.VChan("cxhw:2.inj.kick.p.neg.histo_y_3", max_nelems=101) self.chan_abs_a_good_kpn = cda.DChan( "cxhw:2.inj.kick.p.neg.abs_a_good") self.chan_Tgood_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.Tgood", max_nelems=1024) # positrons "+" prekick self.chan_Ugood_ppp = cda.VChan("cxhw:2.inj.prekick.p.pos.Ugood", max_nelems=1024) self.chan_Ttemp_ppp = cda.VChan("cxhw:2.inj.prekick.p.pos.Ttemp", max_nelems=1024) self.chan_Utemp_ppp = cda.VChan("cxhw:2.inj.prekick.p.pos.Utemp", max_nelems=1024) self.chan_delta_a_ppp = cda.DChan("cxhw:2.inj.prekick.p.pos.delta_a") self.chan_delta_t_ppp = cda.DChan("cxhw:2.inj.prekick.p.pos.delta_t") self.chan_n_interp_ppp = cda.DChan("cxhw:2.inj.prekick.p.pos.n_interp") self.chan_sigma_t_ppp = cda.DChan("cxhw:2.inj.prekick.p.pos.sigma_cur") self.chan_delta_arr_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.delta_t_array", max_nelems=200) self.chan_t_peak_ppp = cda.DChan("cxhw:2.inj.prekick.p.pos.t_peak") self.chan_histo_x_all_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.histo_x_all", max_nelems=100) self.chan_histo_y_all_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.histo_y_all", max_nelems=100) self.chan_histo_x_1_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.histo_x_1", max_nelems=101) self.chan_histo_y_1_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.histo_y_1", max_nelems=101) self.chan_histo_x_2_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.histo_x_2", max_nelems=101) self.chan_histo_y_2_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.histo_y_2", max_nelems=101) self.chan_histo_x_3_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.histo_x_3", max_nelems=101) self.chan_histo_y_3_ppp = cda.VChan( "cxhw:2.inj.prekick.p.pos.histo_y_3", max_nelems=101) self.chan_abs_a_good_ppp = cda.DChan( "cxhw:2.inj.prekick.p.pos.abs_a_good") self.chan_Tgood_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.Tgood", max_nelems=1024) # positrons "+" kick self.chan_Ugood_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.Ugood", max_nelems=1024) self.chan_Ttemp_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.Ttemp", max_nelems=1024) self.chan_Utemp_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.Utemp", max_nelems=1024) self.chan_delta_a_kpp = cda.DChan("cxhw:2.inj.kick.p.pos.delta_a") self.chan_delta_t_kpp = cda.DChan("cxhw:2.inj.kick.p.pos.delta_t") self.chan_n_interp_kpp = cda.DChan("cxhw:2.inj.kick.p.pos.n_interp") self.chan_sigma_t_kpp = cda.DChan("cxhw:2.inj.kick.p.pos.sigma_cur") self.chan_delta_arr_kpp = cda.VChan( "cxhw:2.inj.kick.p.pos.delta_t_array", max_nelems=200) self.chan_t_peak_kpp = cda.DChan("cxhw:2.inj.kick.p.pos.t_peak") self.chan_histo_x_all_kpp = cda.VChan( "cxhw:2.inj.kick.p.pos.histo_x_all", max_nelems=100) self.chan_histo_y_all_kpp = cda.VChan( "cxhw:2.inj.kick.p.pos.histo_y_all", max_nelems=100) self.chan_histo_x_1_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.histo_x_1", max_nelems=101) self.chan_histo_y_1_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.histo_y_1", max_nelems=101) self.chan_histo_x_2_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.histo_x_2", max_nelems=101) self.chan_histo_y_2_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.histo_y_2", max_nelems=101) self.chan_histo_x_3_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.histo_x_3", max_nelems=101) self.chan_histo_y_3_kpp = cda.VChan("cxhw:2.inj.kick.p.pos.histo_y_3", max_nelems=101) self.chan_abs_a_good_kpp = cda.DChan( "cxhw:2.inj.kick.p.pos.abs_a_good") self.chan_Tgood_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.Tgood", max_nelems=1024) # electrons "-" prekick self.chan_Ugood_pen = cda.VChan("cxhw:2.inj.prekick.e.neg.Ugood", max_nelems=1024) self.chan_Ttemp_pen = cda.VChan("cxhw:2.inj.prekick.e.neg.Ttemp", max_nelems=1024) self.chan_Utemp_pen = cda.VChan("cxhw:2.inj.prekick.e.neg.Utemp", max_nelems=1024) self.chan_delta_a_pen = cda.DChan("cxhw:2.inj.prekick.e.neg.delta_a") self.chan_delta_t_pen = cda.DChan("cxhw:2.inj.prekick.e.neg.delta_t") self.chan_n_interp_pen = cda.DChan("cxhw:2.inj.prekick.e.neg.n_interp") self.chan_sigma_t_pen = cda.DChan("cxhw:2.inj.prekick.e.neg.sigma_cur") self.chan_delta_arr_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.delta_t_array", max_nelems=200) self.chan_t_peak_pen = cda.DChan("cxhw:2.inj.prekick.e.neg.t_peak") self.chan_histo_x_all_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.histo_x_all", max_nelems=100) self.chan_histo_y_all_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.histo_y_all", max_nelems=100) self.chan_histo_x_1_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.histo_x_1", max_nelems=101) self.chan_histo_y_1_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.histo_y_1", max_nelems=101) self.chan_histo_x_2_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.histo_x_2", max_nelems=101) self.chan_histo_y_2_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.histo_y_2", max_nelems=101) self.chan_histo_x_3_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.histo_x_3", max_nelems=101) self.chan_histo_y_3_pen = cda.VChan( "cxhw:2.inj.prekick.e.neg.histo_y_3", max_nelems=101) self.chan_abs_a_good_pen = cda.DChan( "cxhw:2.inj.prekick.e.neg.abs_a_good") self.chan_Tgood_ken = cda.VChan("cxhw:2.inj.kick.e.neg.Tgood", max_nelems=1024) # electrons "-" kick self.chan_Ugood_ken = cda.VChan("cxhw:2.inj.kick.e.neg.Ugood", max_nelems=1024) self.chan_Ttemp_ken = cda.VChan("cxhw:2.inj.kick.e.neg.Ttemp", max_nelems=1024) self.chan_Utemp_ken = cda.VChan("cxhw:2.inj.kick.e.neg.Utemp", max_nelems=1024) self.chan_delta_a_ken = cda.DChan("cxhw:2.inj.kick.e.neg.delta_a") self.chan_delta_t_ken = cda.DChan("cxhw:2.inj.kick.e.neg.delta_t") self.chan_n_interp_ken = cda.DChan("cxhw:2.inj.kick.e.neg.n_interp") self.chan_sigma_t_ken = cda.DChan("cxhw:2.inj.kick.e.neg.sigma_cur") self.chan_delta_arr_ken = cda.VChan( "cxhw:2.inj.kick.e.neg.delta_t_array", max_nelems=200) self.chan_t_peak_ken = cda.DChan("cxhw:2.inj.kick.e.neg.t_peak") self.chan_histo_x_all_ken = cda.VChan( "cxhw:2.inj.kick.e.neg.histo_x_all", max_nelems=100) self.chan_histo_y_all_ken = cda.VChan( "cxhw:2.inj.kick.e.neg.histo_y_all", max_nelems=100) self.chan_histo_x_1_ken = cda.VChan("cxhw:2.inj.kick.e.neg.histo_x_1", max_nelems=101) self.chan_histo_y_1_ken = cda.VChan("cxhw:2.inj.kick.e.neg.histo_y_1", max_nelems=101) self.chan_histo_x_2_ken = cda.VChan("cxhw:2.inj.kick.e.neg.histo_x_2", max_nelems=101) self.chan_histo_y_2_ken = cda.VChan("cxhw:2.inj.kick.e.neg.histo_y_2", max_nelems=101) self.chan_histo_x_3_ken = cda.VChan("cxhw:2.inj.kick.e.neg.histo_x_3", max_nelems=101) self.chan_histo_y_3_ken = cda.VChan("cxhw:2.inj.kick.e.neg.histo_y_3", max_nelems=101) self.chan_abs_a_good_ken = cda.DChan( "cxhw:2.inj.kick.e.neg.abs_a_good") self.chan_Tgood_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.Tgood", max_nelems=1024) # electrons "+" prekick self.chan_Ugood_pep = cda.VChan("cxhw:2.inj.prekick.e.pos.Ugood", max_nelems=1024) self.chan_Ttemp_pep = cda.VChan("cxhw:2.inj.prekick.e.pos.Ttemp", max_nelems=1024) self.chan_Utemp_pep = cda.VChan("cxhw:2.inj.prekick.e.pos.Utemp", max_nelems=1024) self.chan_delta_a_pep = cda.DChan("cxhw:2.inj.prekick.e.pos.delta_a") self.chan_delta_t_pep = cda.DChan("cxhw:2.inj.prekick.e.pos.delta_t") self.chan_n_interp_pep = cda.DChan("cxhw:2.inj.prekick.e.pos.n_interp") self.chan_sigma_t_pep = cda.DChan("cxhw:2.inj.prekick.e.pos.sigma_cur") self.chan_delta_arr_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.delta_t_array", max_nelems=200) self.chan_t_peak_pep = cda.DChan("cxhw:2.inj.prekick.e.pos.t_peak") self.chan_histo_x_all_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.histo_x_all", max_nelems=100) self.chan_histo_y_all_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.histo_y_all", max_nelems=100) self.chan_histo_x_1_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.histo_x_1", max_nelems=101) self.chan_histo_y_1_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.histo_y_1", max_nelems=101) self.chan_histo_x_2_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.histo_x_2", max_nelems=101) self.chan_histo_y_2_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.histo_y_2", max_nelems=101) self.chan_histo_x_3_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.histo_x_3", max_nelems=101) self.chan_histo_y_3_pep = cda.VChan( "cxhw:2.inj.prekick.e.pos.histo_y_3", max_nelems=101) self.chan_abs_a_good_pep = cda.DChan( "cxhw:2.inj.prekick.e.pos.abs_a_good") self.chan_Tgood_kep = cda.VChan("cxhw:2.inj.kick.e.pos.Tgood", max_nelems=1024) # electrons "+" kick self.chan_Ugood_kep = cda.VChan("cxhw:2.inj.kick.e.pos.Ugood", max_nelems=1024) self.chan_Ttemp_kep = cda.VChan("cxhw:2.inj.kick.e.pos.Ttemp", max_nelems=1024) self.chan_Utemp_kep = cda.VChan("cxhw:2.inj.kick.e.pos.Utemp", max_nelems=1024) self.chan_delta_a_kep = cda.DChan("cxhw:2.inj.kick.e.pos.delta_a") self.chan_delta_t_kep = cda.DChan("cxhw:2.inj.kick.e.pos.delta_t") self.chan_n_interp_kep = cda.DChan("cxhw:2.inj.kick.e.pos.n_interp") self.chan_sigma_t_kep = cda.DChan("cxhw:2.inj.kick.e.pos.sigma_cur") self.chan_delta_arr_kep = cda.VChan( "cxhw:2.inj.kick.e.pos.delta_t_array", max_nelems=200) self.chan_t_peak_kep = cda.DChan("cxhw:2.inj.kick.e.pos.t_peak") self.chan_histo_x_all_kep = cda.VChan( "cxhw:2.inj.kick.e.pos.histo_x_all", max_nelems=100) self.chan_histo_y_all_kep = cda.VChan( "cxhw:2.inj.kick.e.pos.histo_y_all", max_nelems=100) self.chan_histo_x_1_kep = cda.VChan("cxhw:2.inj.kick.e.pos.histo_x_1", max_nelems=101) self.chan_histo_y_1_kep = cda.VChan("cxhw:2.inj.kick.e.pos.histo_y_1", max_nelems=101) self.chan_histo_x_2_kep = cda.VChan("cxhw:2.inj.kick.e.pos.histo_x_2", max_nelems=101) self.chan_histo_y_2_kep = cda.VChan("cxhw:2.inj.kick.e.pos.histo_y_2", max_nelems=101) self.chan_histo_x_3_kep = cda.VChan("cxhw:2.inj.kick.e.pos.histo_x_3", max_nelems=101) self.chan_histo_y_3_kep = cda.VChan("cxhw:2.inj.kick.e.pos.histo_y_3", max_nelems=101) self.chan_abs_a_good_kep = cda.DChan( "cxhw:2.inj.kick.e.pos.abs_a_good") self.list_hist_ppp = [ self.chan_histo_x_all_ppp, self.chan_histo_y_all_ppp, self.chan_histo_x_1_ppp, self.chan_histo_y_1_ppp, self.chan_histo_x_2_ppp, self.chan_histo_y_2_ppp, self.chan_histo_x_3_ppp, self.chan_histo_y_3_ppp ] self.list_hist_ppn = [ self.chan_histo_x_all_ppn, self.chan_histo_y_all_ppn, self.chan_histo_x_1_ppn, self.chan_histo_y_1_ppn, self.chan_histo_x_2_ppn, self.chan_histo_y_2_ppn, self.chan_histo_x_3_ppn, self.chan_histo_y_3_ppn ] self.list_hist_kpp = [ self.chan_histo_x_all_kpp, self.chan_histo_y_all_kpp, self.chan_histo_x_1_kpp, self.chan_histo_y_1_kpp, self.chan_histo_x_2_kpp, self.chan_histo_y_2_kpp, self.chan_histo_x_3_kpp, self.chan_histo_y_3_kpp ] self.list_hist_kpn = [ self.chan_histo_x_all_kpn, self.chan_histo_y_all_kpn, self.chan_histo_x_1_kpn, self.chan_histo_y_1_kpn, self.chan_histo_x_2_kpn, self.chan_histo_y_2_kpn, self.chan_histo_x_3_kpn, self.chan_histo_y_3_kpn ] self.list_hist_pep = [ self.chan_histo_x_all_pep, self.chan_histo_y_all_pep, self.chan_histo_x_1_pep, self.chan_histo_y_1_pep, self.chan_histo_x_2_pep, self.chan_histo_y_2_pep, self.chan_histo_x_3_ppp, self.chan_histo_y_3_ppp ] self.list_hist_pen = [ self.chan_histo_x_all_pen, self.chan_histo_y_all_pen, self.chan_histo_x_1_pen, self.chan_histo_y_1_pen, self.chan_histo_x_2_pen, self.chan_histo_y_2_pen, self.chan_histo_x_3_pen, self.chan_histo_y_3_pen ] self.list_hist_kep = [ self.chan_histo_x_all_kep, self.chan_histo_y_all_kep, self.chan_histo_x_1_kep, self.chan_histo_y_1_kep, self.chan_histo_x_2_kep, self.chan_histo_y_2_kep, self.chan_histo_x_3_kep, self.chan_histo_y_3_kep ] self.list_hist_ken = [ self.chan_histo_x_all_ken, self.chan_histo_y_all_ken, self.chan_histo_x_1_ken, self.chan_histo_y_1_ken, self.chan_histo_x_2_ken, self.chan_histo_y_2_ken, self.chan_histo_x_3_ken, self.chan_histo_y_3_ken ] self.dict_hist = { 'cxhw:18.adc200_kkr1.line1p': self.list_hist_ppp, 'cxhw:18.adc200_kkr1.line2p': self.list_hist_ppn, 'cxhw:18.adc200_kkr2.line1p': self.list_hist_kpp, 'cxhw:18.adc200_kkr2.line2p': self.list_hist_kpn, 'cxhw:18.adc200_kkr1.line1e': self.list_hist_pep, 'cxhw:18.adc200_kkr1.line2e': self.list_hist_pen, 'cxhw:18.adc200_kkr2.line1e': self.list_hist_kep, 'cxhw:18.adc200_kkr2.line2e': self.list_hist_ken } self.dict_good_chans = { 'cxhw:18.adc200_kkr1.line1p': self.chan_Ugood_ppp, 'cxhw:18.adc200_kkr1.line2p': self.chan_Ugood_ppn, 'cxhw:18.adc200_kkr2.line1p': self.chan_Ugood_kpp, 'cxhw:18.adc200_kkr2.line2p': self.chan_Ugood_kpn, 'cxhw:18.adc200_kkr1.line1e': self.chan_Ugood_pep, 'cxhw:18.adc200_kkr1.line2e': self.chan_Ugood_pen, 'cxhw:18.adc200_kkr2.line1e': self.chan_Ugood_kep, 'cxhw:18.adc200_kkr2.line2e': self.chan_Ugood_ken } self.dict_temp_chans = { 'cxhw:18.adc200_kkr1.line1p': self.chan_Utemp_ppp, 'cxhw:18.adc200_kkr1.line2p': self.chan_Utemp_ppn, 'cxhw:18.adc200_kkr2.line1p': self.chan_Utemp_kpp, 'cxhw:18.adc200_kkr2.line2p': self.chan_Utemp_kpn, 'cxhw:18.adc200_kkr1.line1e': self.chan_Utemp_pep, 'cxhw:18.adc200_kkr1.line2e': self.chan_Utemp_pen, 'cxhw:18.adc200_kkr2.line1e': self.chan_Utemp_kep, 'cxhw:18.adc200_kkr2.line2e': self.chan_Utemp_ken } self.dict_delta_t = { 'cxhw:18.adc200_kkr1.line1p': self.chan_delta_t_ppp, 'cxhw:18.adc200_kkr1.line2p': self.chan_delta_t_ppn, 'cxhw:18.adc200_kkr2.line1p': self.chan_delta_t_kpp, 'cxhw:18.adc200_kkr2.line2p': self.chan_delta_t_kpn, 'cxhw:18.adc200_kkr1.line1e': self.chan_delta_t_pep, 'cxhw:18.adc200_kkr1.line2e': self.chan_delta_t_pen, 'cxhw:18.adc200_kkr2.line1e': self.chan_delta_t_kep, 'cxhw:18.adc200_kkr2.line2e': self.chan_delta_t_ken } self.dict_delta_arr = { 'cxhw:18.adc200_kkr1.line1p': self.chan_delta_arr_ppp, 'cxhw:18.adc200_kkr1.line2p': self.chan_delta_arr_ppn, 'cxhw:18.adc200_kkr2.line1p': self.chan_delta_arr_kpp, 'cxhw:18.adc200_kkr2.line2p': self.chan_delta_arr_kpn, 'cxhw:18.adc200_kkr1.line1e': self.chan_delta_arr_pep, 'cxhw:18.adc200_kkr1.line2e': self.chan_delta_arr_pen, 'cxhw:18.adc200_kkr2.line1e': self.chan_delta_arr_kep, 'cxhw:18.adc200_kkr2.line2e': self.chan_delta_arr_ken } self.dict_sigma_t = { 'cxhw:18.adc200_kkr1.line1p': self.chan_sigma_t_ppp, 'cxhw:18.adc200_kkr1.line2p': self.chan_sigma_t_ppn, 'cxhw:18.adc200_kkr2.line1p': self.chan_sigma_t_kpp, 'cxhw:18.adc200_kkr2.line2p': self.chan_sigma_t_kpn, 'cxhw:18.adc200_kkr1.line1e': self.chan_sigma_t_pep, 'cxhw:18.adc200_kkr1.line2e': self.chan_sigma_t_pen, 'cxhw:18.adc200_kkr2.line1e': self.chan_sigma_t_kep, 'cxhw:18.adc200_kkr2.line2e': self.chan_sigma_t_ken } self.dict_t_peak = { 'cxhw:18.adc200_kkr1.line1p': self.chan_t_peak_ppp, 'cxhw:18.adc200_kkr1.line2p': self.chan_t_peak_ppn, 'cxhw:18.adc200_kkr2.line1p': self.chan_t_peak_kpp, 'cxhw:18.adc200_kkr2.line2p': self.chan_t_peak_kpn, 'cxhw:18.adc200_kkr1.line1e': self.chan_t_peak_pep, 'cxhw:18.adc200_kkr1.line2e': self.chan_t_peak_pen, 'cxhw:18.adc200_kkr2.line1e': self.chan_t_peak_kep, 'cxhw:18.adc200_kkr2.line2e': self.chan_t_peak_ken }