def _get_fitInput(self): fitPairs = Pairs(conv_func=exp) for p in self._fitInput: fitPairs.add(p[0], p[1]) return fitPairs
def _set_fitInput(self, fitPairs): ln_fitPairs = Pairs(conv_func=log) for p in fitPairs: ln_fitPairs.add(p[0], p[1]) _Efficiency._set_fitInput(self, ln_fitPairs)
def _get_background_pairs(self): if self.bgMarkers.IsPending(): hdtv.ui.warning("Not all background regions are closed.") backgrounds = Pairs() for m in self.bgMarkers: try: backgrounds.add(m.p1.pos_uncal, m.p2.pos_uncal) except AttributeError: pos = m.p1.pos_cal if m.p1.pos_cal else m.p2.pos_cal hdtv.ui.warning("Background region at {:.2f} without second marker was ignored".format(pos)) return backgrounds
def Restore(self, spec): # do not call Erase() while setting spec! self._spec = weakref(spec) self.cal = spec.cal self.color = spec.color self.FixMarkerInUncal() if len(self.bgMarkers) > 0 and not self.bgMarkers.IsPending(): backgrounds = Pairs() for m in self.bgMarkers: backgrounds.add(m.p1.pos_uncal, m.p2.pos_uncal) self.fitter.RestoreBackground(backgrounds=backgrounds, params=self.bgParams, chisquare=self.bgChi) region = sorted([ self.regionMarkers[0].p1.pos_uncal, self.regionMarkers[0].p2.pos_uncal ]) print(self.bgParams) if self.peaks: self.fitter.RestorePeaks( cal=self.cal, region=region, peaks=self.peaks, chisquare=self.chi, coeffs=self.bgParams, ) # get background function func = self.fitter.peakFitter.GetBgFunc() self.dispBgFunc = ROOT.HDTV.Display.DisplayFunc(func, self.color) self.dispBgFunc.SetCal(self.cal) # get peak function func = self.fitter.peakFitter.GetSumFunc() self.dispPeakFunc = ROOT.HDTV.Display.DisplayFunc(func, self.color) self.dispPeakFunc.SetCal(self.cal) # restore display functions of single peaks for i in range(0, self.fitter.peakFitter.GetNumPeaks()): cpeak = self.fitter.peakFitter.GetPeak(i) func = cpeak.GetPeakFunc() self.peaks[i].displayObj = ROOT.HDTV.Display.DisplayFunc( func, self.color) self.peaks[i].displayObj.SetCal(self.cal) # create non-existant integral if not self.integral: self.integral = hdtv.integral.Integrate( self.spec, self.fitter.bgFitter, region)