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

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 e88ebfd was e88ebfd, checked in by Gervaise Alina <gervyh@…>, 13 years ago

working on guiframe

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