def decode_reference(ref_dict, ref_vector, flg): reference = YouReference(None) # TODO: We can't set get_ub method yet (tangles!) if ref_dict: nhkl = ref_dict.get('n_hkl_configured', None) nphi = ref_dict.get('n_phi_configured', None) if nhkl: reference._set_n_hkl_configured(matrix([eval(nhkl)]).T) elif nphi: reference._set_n_phi_configured(matrix([eval(nphi)]).T) elif flg: reference._set_n_hkl_configured(ref_vector) else: reference._set_n_phi_configured(ref_vector) return reference
def _clear(self, name=None): # NOTE the Diffraction calculator is expecting this object to exist in # the long run. We can't remove this entire object, and recreate it. # It also contains a required link to the angle calculator. reflist = ReflectionList( settings.geometry, self._get_diffractometer_axes_names(), multiplier=settings.hardware.energyScannableMultiplierToGetKeV) orientlist = OrientationList(settings.geometry, self._get_diffractometer_axes_names()) reference = YouReference(self._get_UB) reference._set_n_hkl_configured(settings.reference_vector) surface = YouReference(self._get_UB) surface._set_n_phi_configured(settings.surface_vector) self._state = UBCalcState(name=name, reflist=reflist, orientlist=orientlist, reference=reference, surface=surface) self._U = None self._UB = None self._state.configure_calc_type()