source: sasview/sansview/perspectives/fitting/fitproblem.py @ aae7a8d

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since aae7a8d was 6bbeacd4, checked in by Gervaise Alina <gervyh@…>, 14 years ago

remove other type of data

  • Property mode set to 100644
File size: 5.0 KB
RevLine 
[d89f09b]1
2class FitProblem:
3    """ 
[5062bbf]4    FitProblem class allows to link a model with the new name created in _on_model,
5    a name theory created with that model  and the data fitted with the model.
6    FitProblem is mostly used  as value of the dictionary by fitting module.
[d89f09b]7    """
8    def __init__(self):
9        """
[5062bbf]10        contains information about data and model to fit
[d89f09b]11        """
[925a30e]12        ## data used for fitting
[6bbeacd4]13        self.fit_data = None
14        self.theory_data = None
[2140e68]15        ## the current model
16        self.model = None
[2f189dc]17        self.model_index = None
[925a30e]18        ## if 1 this fit problem will be selected to fit , if 0
19        ## it will not be selected for fit
[6bbeacd4]20        self.schedule = 0
[925a30e]21        ##list containing parameter name and value
[6bbeacd4]22        self.list_param = []
[925a30e]23        ## smear object to smear or not data1D
[6bbeacd4]24        self.smearer = None
25        self.fit_tab_caption = ''
[2140e68]26        ## fitting range
27        self.qmin = None
28        self.qmax = None
[08b9c6c8]29       
[9853ad0]30    def clone(self):
31        """
[5062bbf]32        copy fitproblem
[9853ad0]33        """
34        import copy 
[7c845cb]35        obj          = FitProblem()
36        model= None
37        if self.model!=None:
38            model = self.model.clone()
39        obj.model = model
[9853ad0]40        obj.fit_data = copy.deepcopy(self.fit_data)
[6bbeacd4]41        obj.theory_data = copy.deepcopy(self.theory_data)
[9853ad0]42        obj.model = copy.deepcopy(self.model)
43        obj.schedule = copy.deepcopy(self.schedule)
44        obj.list_param = copy.deepcopy(self.list_param)
45        obj.smearer = copy.deepcopy(self.smearer)
46        obj.plotted_data = copy.deepcopy(self.plotted_data)
47        obj.qmin = copy.deepcopy(self.qmin)
48        obj.qmax = copy.deepcopy(self.qmax)
49        return obj
50       
[08b9c6c8]51    def set_smearer(self, smearer):
[925a30e]52        """
[5062bbf]53        save reference of  smear object on fitdata
54       
55        :param smear: smear object from DataLoader
56       
[925a30e]57        """
[08b9c6c8]58        self.smearer= smearer
[925a30e]59       
[08b9c6c8]60    def get_smearer(self):
[925a30e]61        """
[5062bbf]62        return smear object
[925a30e]63        """
[08b9c6c8]64        return self.smearer
65   
[5062bbf]66    def save_model_name(self, name):
67        """
68        """ 
[bb18ef1]69        self.name_per_page= name
70       
71    def get_name(self):
[5062bbf]72        """
73        """
[bb18ef1]74        return self.name_per_page
[08b9c6c8]75   
[2140e68]76    def set_model(self,model):
[d89f09b]77        """
[5062bbf]78        associates each model with its new created name
79       
80        :param model: model selected
81        :param name: name created for model
82       
[d89f09b]83        """
[2140e68]84        self.model= model
[bb18ef1]85       
[2140e68]86    def get_model(self):
[5062bbf]87        """
88        :return: saved model
89       
90        """
[2140e68]91        return self.model
92 
[2f189dc]93    def set_index(self, index):
94        """
[5062bbf]95        set index of the model name
[2f189dc]96        """
97        self.model_index = index
98       
99    def get_index(self):
100        """
[5062bbf]101        get index of the model name
[2f189dc]102        """
103        return self.model_index
104   
[6bbeacd4]105    def set_theory_data(self, data):
[d89f09b]106        """
[5062bbf]107        save a copy of the data select to fit
108       
109        :param data: data selected
110       
[d89f09b]111        """
[6bbeacd4]112        self.theory_data = data
[925a30e]113       
[2140e68]114
[6bbeacd4]115    def get_theory_data(self):
[5062bbf]116        """
117        :return: list of data dList
118       
119        """
[6bbeacd4]120        return self.theory_data
[5062bbf]121
[6bbeacd4]122    def set_fit_data(self,data):
[2a8fac1]123        """
[5062bbf]124        save a copy of the data select to fit
125       
126        :param data: data selected
127       
[2a8fac1]128        """
129        self.fit_data = data
[d89f09b]130           
[2a8fac1]131    def get_fit_data(self):
[5062bbf]132        """
133        """
[2a8fac1]134        return self.fit_data
135   
[2140e68]136    def set_model_param(self,name,value=None):
[d89f09b]137        """
[5062bbf]138        Store the name and value of a parameter of this fitproblem's model
139       
140        :param name: name of the given parameter
141        :param value: value of that parameter
142       
[d89f09b]143        """
[8e81af0]144        self.list_param.append([name,value])
[925a30e]145       
[00561739]146    def get_model_param(self):
147        """
[5062bbf]148        return list of couple of parameter name and value
[00561739]149        """
[8e81af0]150        return self.list_param
[d89f09b]151       
[948add7]152    def schedule_tofit(self, schedule=0):
[3b19ac9]153        """
[5062bbf]154        set schedule to true to decide if this fit  must be performed
[3b19ac9]155        """
156        self.schedule=schedule
[6bcdad1]157       
[3b19ac9]158    def get_scheduled(self):
[5062bbf]159        """
160        return true or false if a problem as being schedule for fitting
161        """
[3b19ac9]162        return self.schedule
[925a30e]163   
[2140e68]164    def set_range(self, qmin=None, qmax=None):
165        """
[5062bbf]166        set fitting range
[2140e68]167        """
168        self.qmin = qmin
169        self.qmax = qmax
170       
171    def get_range(self):
172        """
[5062bbf]173        :return: fitting range
174       
[2140e68]175        """
176        return self.qmin, self.qmax
[925a30e]177   
[9e27de9]178    def clear_model_param(self):
179        """
180        clear constraint info
181        """
[925a30e]182        self.list_param=[]
[6bbeacd4]183       
184    def set_fit_tab_caption(self, caption):
185        """
186        """
187        self.fit_tab_caption = str(caption)
188       
189    def get_fit_tab_caption(self):
190        """
191        """
192        return self.fit_tab_caption
193   
[5062bbf]194   
Note: See TracBrowser for help on using the repository browser.