def __init__(self, parent, counter, modelid, active_parms, tau=None): """ Initialize with given parameters. """ wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY) self.parent = parent self.corr = Correlation(fit_model=modelid) if tau is not None: self.corr.lag_time = tau # active_parameters: # [0] labels # [1] values # [2] bool values to fit self.corr.fit_parameters = active_parms[1] self.corr.fit_parameters_variable = active_parms[2] self._bgselected = None self._bg2selected = None self.FitKnots = 5 # number of knots for spline fit or similiars self.weighted_fittype_id = 0 # integer (drop down item) self.weighted_nuvar = 3 # bins for std-dev. (left and rigth) # The weights that are plotted in the page # This is set by the PlotAll function self.weights_plot_fill_area = None # A list containing page numbers that share parameters with this page. # This parameter is defined by the global fitting tool and is saved in # sessions. self.GlobalParameterShare = [] # Counts number of Pages already created: self.counter = counter # Has inital plot been performed? # Call PlotAll("init") to set this to true. If it is true, then # nothing will be plotted if called with "init" self.InitialPlot = False # Model we are using # Tool statistics uses this list: self.StatisticsCheckboxes = None # Splitter window # Sizes size = parent.notebook.GetSize() tabsize = 33 size[1] = size[1] - tabsize self.sizepanelx = 270 canvasx = size[0] - self.sizepanelx + 5 sizepanel = (self.sizepanelx, size[1]) sizecanvas = (canvasx, size[1]) self.sp = wx.SplitterWindow(self, size=size, style=wx.SP_3DSASH) # This is necessary to prevent "Unsplit" of the SplitterWindow: self.sp.SetMinimumPaneSize(1) # Settings Section (left side) #self.panelsettings = wx.Panel(self.sp, size=sizepanel) self.panelsettings = scrolled.ScrolledPanel(self.sp, size=sizepanel) self.panelsettings.SetupScrolling(scroll_x=False) # Setting up Plot (correlation + chi**2) self.spcanvas = wx.SplitterWindow(self.sp, size=sizecanvas, style=wx.SP_3DSASH) # This is necessary to prevent "Unsplit" of the SplitterWindow: self.spcanvas.SetMinimumPaneSize(1) # y difference in pixels between Auocorrelation and Residuals cupsizey = size[1] * 4 / 5 # Calculate initial data self.calculate_corr() # Draw the settings section self.settings() # Load default values self.apply_parameters_reverse() # Upper Plot for plotting of Correlation Function self.canvascorr = plot.PlotCanvas(self.spcanvas) self.canvascorr.logScale = (True, False) self.canvascorr.enableZoom = True self.PlotAll(event="init", trigger="tab_init") self.canvascorr.SetSize((canvasx, cupsizey)) # Lower Plot for plotting of the residuals self.canvaserr = plot.PlotCanvas(self.spcanvas) self.canvaserr.logScale = (True, False) self.canvaserr.enableZoom = True self.canvaserr.SetSize((canvasx, size[1] - cupsizey)) self.spcanvas.SplitHorizontally(self.canvascorr, self.canvaserr, cupsizey) self.sp.SplitVertically(self.panelsettings, self.spcanvas, self.sizepanelx) # Bind resizing to resizing function. wx.EVT_SIZE(self, self.OnSize)