def __init__(self, accel_inst, variable_categories, varmap_or_path, at_elements='bpms'): LOG.debug("Initializing TwissResponse.") with timeit(lambda t: LOG.debug(" Time initializing TwissResponse: {:f}s".format(t))): # Get input self._twiss = self._get_model_twiss(accel_inst) self._variables = accel_inst.get_variables(classes=variable_categories) self._var_to_el = self._get_variable_mapping(varmap_or_path) self._elements_in = self._get_input_elements() self._elements_out = self._get_output_elements(at_elements) self._direction = self._get_direction(accel_inst) # calculate all phase advances self._phase_advances = get_phase_advances(self._twiss) # All responses are calcluated as needed, see getters below! # slots for response matrices self._beta = None self._dispersion = None self._phase = None self._phase_adv = None self._tune = None self._coupling = None self._beta_beat = None self._norm_dispersion = None # slots for mapped response matrices self._coupling_mapped = None self._beta_mapped = None self._dispersion_mapped = None self._phase_mapped = None self._phase_adv_mapped = None self._tune_mapped = None self._beta_beat_mapped = None self._norm_dispersion_mapped = None
def get_phase_adv(self): if self._phase_advance is None: self._phase_advance = get_phase_advances(self.twiss_df) return self._phase_advance
def get_phase_adv(self): """ Wrapper for returning the matrix of phase-advances. """ if self._phase_advance is None: self._phase_advance = get_phase_advances(self.twiss_df) return self._phase_advance