예제 #1
0
    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
예제 #2
0
 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