diff --git a/pykat/detectors.py b/pykat/detectors.py index a24d4d98a4951bb482243c60fd0fe957149cb51c..149b7a39494cc43e0ac0034eedc0b2b120d5110c 100644 --- a/pykat/detectors.py +++ b/pykat/detectors.py @@ -10,6 +10,8 @@ import pykat.gui.resources from pykat.utils import * from pykat.gui.graphics import * from pykat.node_network import * +from pykat.param import Param, ScaleParam + class Detector(object) : def __init__(self, name,node): @@ -22,6 +24,7 @@ class Detector(object) : self.__node = None self._params = [] self._mask = {} + self.__scale = ScaleParam("scale", self, SIfloat(1.0)) if node.find('*'): self._alternate_beam = True @@ -46,6 +49,13 @@ class Detector(object) : def getQGraphicsItem(self): return None + + @property + def scale(self): return self.__scale + @scale.setter + def sclae(self, value): + self.__scale = SIfloat(value) + @property def node(self): return self.__node @node.setter diff --git a/pykat/param.py b/pykat/param.py index 058a5330936f481250d8677981a847c779b0045e..f535d88f60a2392daffd50267c20176360350107 100644 --- a/pykat/param.py +++ b/pykat/param.py @@ -165,3 +165,24 @@ class AttrParam(Param): rtn.extend(super(AttrParam, self).getFinesseText()) return rtn + +class ScaleParam(Param): + """ + The scale parameter of a detector is set using the Finesse `scale` command. + + This inherits directly from a Param object so can be set whether this attribute + is putable or a putter. + + If the value pf the parameter is not 1.0 the scale command will be printed. + """ + def getFinesseText(self): + rtn = [] + + if self.value != 1.0: + rtn.append("scale {0} {1}".format(self._owner.name, self.value)) + + rtn.extend(super(ScaleParam, self).getFinesseText()) + + return rtn + +