diff --git a/pykat/detectors.py b/pykat/detectors.py index 004662179e73a9f5c946ff090b90c8d4a0a0874c..8e7ec5add156757190ccff9ae51c2e8fd41cc491 100644 --- a/pykat/detectors.py +++ b/pykat/detectors.py @@ -341,7 +341,7 @@ class pd(Detector): return getattr(self, '_pd__' + name) def __set_f(self, num, value): - setattr(self, '_pd__f' + num, float(value)) + setattr(self, '_pd__f' + num, value) def __set_phi(self, num, value): if value == None and num != self.num_demods: @@ -434,11 +434,14 @@ class pd(Detector): alt_str = "*" for n in range(1, 1+self.num_demods): - fphi_str += " " + str(self.__getattribute__("f"+str(n))) + fphi_str += " {0:.16g}".format(float(self.__getattribute__("f"+str(n)))) phi_val = self.__getattribute__("phi"+str(n)) if phi_val != None: - fphi_str += " " + str(phi_val) + if type(phi_val) == float: + fphi_str += " {0:.16g}".format(float(phi_val)) + else: + fphi_str += " {0}".format(phi_val) senstype = self.senstype @@ -448,7 +451,7 @@ class pd(Detector): rtn.append("pd{0}{1} {2}{3} {4}{5}".format(senstype, self.num_demods, self.name, fphi_str, self.node.name, alt_str)) if self.scale != None: - rtn.append("scale {1} {0}".format(self.name, self.scale)) + rtn.append("scale {1} {0:.16g}".format(self.name, self.scale)) if self.pdtype != None: rtn.append("pdtype {0} {1}".format(self.name, self.pdtype)) @@ -536,13 +539,16 @@ class qnoised(pd): if self.alternate_beam: alt_str = "*" - + for n in range(1, 1+self.num_demods): - fphi_str += " " + str(self.__getattribute__("f"+str(n))) + fphi_str += " {0:.16g}".format(float(self.__getattribute__("f"+str(n)))) phi_val = self.__getattribute__("phi"+str(n)) if phi_val != None: - fphi_str += " " + str(phi_val) + if type(phi_val) == float: + fphi_str += " {0:.16g}".format(float(phi_val)) + else: + fphi_str += " " + str(phi_val) senstype = self.senstype @@ -552,7 +558,7 @@ class qnoised(pd): rtn.append("qnoised{5} {0} {1} {2} {3}{4}".format(self.name, self.num_demods, fphi_str, self.node.name, alt_str, senstype)) if self.scale != None: - rtn.append("scale {1} {0}".format(self.name, self.scale)) + rtn.append("scale {1} {0:.16g}".format(self.name, self.scale)) for p in self._params: rtn.extend(p.getFinesseText()) @@ -628,11 +634,14 @@ class qshot(pd): alt_str = "*" for n in range(1, 1+self.num_demods): - fphi_str += " " + str(self.__getattribute__("f"+str(n))) + fphi_str += " {0:.16g}".format(float(self.__getattribute__("f"+str(n)))) phi_val = self.__getattribute__("phi"+str(n)) if phi_val != None: - fphi_str += " " + str(phi_val) + if type(phi_val) == float: + fphi_str += " {0:.16g}".format(float(phi_val)) + else: + fphi_str += " " + str(phi_val) senstype = self.senstype @@ -642,7 +651,7 @@ class qshot(pd): rtn.append("qshot{5} {0} {1} {2} {3}{4}".format(self.name, self.num_demods, fphi_str, self.node.name, alt_str,senstype)) if self.scale != None: - rtn.append("scale {1} {0}".format(self.name, self.scale)) + rtn.append("scale {1} {0:.16g}".format(self.name, self.scale)) for p in self._params: rtn.extend(p.getFinesseText()) @@ -679,7 +688,7 @@ def xd(Detector): rtn.append("xd {0} {1} {2}".format(self.name, self.component, self.motion)) if self.scale != None: - rtn.append("scale {1} {0}".format(self.name, self.scale)) + rtn.append("scale {1} {0:.16g}".format(self.name, self.scale)) for p in self._params: rtn.extend(p.getFinesseText())