source: sasview/sansview/perspectives/fitting/fitproblem.py @ 9853ad0

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

setting default model value on combobox

  • Property mode set to 100644
File size: 4.4 KB
RevLine 
[d89f09b]1
2class FitProblem:
3    """ 
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.
7    """
8   
9    def __init__(self):
10       
11        """
[2140e68]12           contains information about data and model to fit
[d89f09b]13        """
[925a30e]14        ## data used for fitting
[2a8fac1]15        self.fit_data=None
[2140e68]16        ## the current model
17        self.model = None
[925a30e]18        ## if 1 this fit problem will be selected to fit , if 0
19        ## it will not be selected for fit
[948add7]20        self.schedule=0
[925a30e]21        ##list containing parameter name and value
[8e81af0]22        self.list_param=[]
[925a30e]23        ## smear object to smear or not data1D
[08b9c6c8]24        self.smearer= None
[925a30e]25        ## same as fit_data but with more info for plotting
26        ## axis unit info and so on see plottables definition
[2a8fac1]27        self.plotted_data=None
[2140e68]28        ## fitting range
29        self.qmin = None
30        self.qmax = None
[08b9c6c8]31       
[9853ad0]32    def clone(self):
33        """
34            copy fitproblem
35        """
36        import copy 
37        obj          = FitProblem( self.parent,model= model )
38        obj.fit_data = copy.deepcopy(self.fit_data)
39        obj.model = copy.deepcopy(self.model)
40        obj.schedule = copy.deepcopy(self.schedule)
41        obj.list_param = copy.deepcopy(self.list_param)
42        obj.smearer = copy.deepcopy(self.smearer)
43        obj.plotted_data = copy.deepcopy(self.plotted_data)
44        obj.qmin = copy.deepcopy(self.qmin)
45        obj.qmax = copy.deepcopy(self.qmax)
46       
47        return obj
48       
[925a30e]49       
[08b9c6c8]50    def set_smearer(self, smearer):
[925a30e]51        """
52          save reference of  smear object on fitdata
53          @param smear : smear object from DataLoader
54        """
[08b9c6c8]55        self.smearer= smearer
[925a30e]56       
[08b9c6c8]57    def get_smearer(self):
[925a30e]58        """
59            return smear object
60        """
[08b9c6c8]61        return self.smearer
62   
[bb18ef1]63    def save_model_name(self, name): 
64        self.name_per_page= name
65       
66       
67    def get_name(self):
68        return self.name_per_page
[08b9c6c8]69   
[2140e68]70    def set_model(self,model):
[d89f09b]71        """
72             associates each model with its new created name
73             @param model: model selected
74             @param name: name created for model
75        """
[2140e68]76        self.model= model
[bb18ef1]77       
[2140e68]78       
79    def get_model(self):
80        """ @return: saved model """
81        return self.model
82 
[d89f09b]83 
[2a8fac1]84    def add_plotted_data(self,data):
[d89f09b]85        """
86            save a copy of the data select to fit
87            @param data: data selected
88        """
[2a8fac1]89        self.plotted_data = data
[925a30e]90       
[2140e68]91
92    def get_plotted_data(self):
93        """ @return:  list of data dList"""
94        return self.plotted_data
95   
96   
[2a8fac1]97    def add_fit_data(self,data):
98        """
99            save a copy of the data select to fit
100            @param data: data selected
101        """
102        self.fit_data = data
[d89f09b]103           
[2140e68]104   
[2a8fac1]105    def get_fit_data(self):
106        return self.fit_data
107   
[d89f09b]108       
[2140e68]109    def set_model_param(self,name,value=None):
[d89f09b]110        """
[925a30e]111            Store the name and value of a parameter of this fitproblem's model
[d89f09b]112            @param name: name of the given parameter
113            @param value: value of that parameter
114        """
[8e81af0]115        self.list_param.append([name,value])
[925a30e]116       
117       
[00561739]118    def get_model_param(self):
119        """
[925a30e]120            @return list of couple of parameter name and value
[00561739]121        """
[8e81af0]122        return self.list_param
[d89f09b]123       
[925a30e]124       
[948add7]125    def schedule_tofit(self, schedule=0):
[3b19ac9]126        """
127             set schedule to true to decide if this fit  must be performed
128        """
129        self.schedule=schedule
[6bcdad1]130       
[2140e68]131       
[3b19ac9]132    def get_scheduled(self):
133        """ return true or false if a problem as being schedule for fitting"""
134        return self.schedule
[925a30e]135   
[2140e68]136
137    def set_range(self, qmin=None, qmax=None):
138        """
139            set fitting range
140        """
141        self.qmin = qmin
142        self.qmax = qmax
143       
144       
145    def get_range(self):
146        """
147            @return fitting range:
148        """
149        return self.qmin, self.qmax
[925a30e]150   
[9e27de9]151    def clear_model_param(self):
152        """
153        clear constraint info
154        """
[925a30e]155        self.list_param=[]
156       
[2140e68]157   
158   
[925a30e]159       
Note: See TracBrowser for help on using the repository browser.