Beispiel #1
0
    def _get_fitInput(self):

        fitPairs = Pairs(conv_func=exp)

        for p in self._fitInput:
            fitPairs.add(p[0], p[1])

        return fitPairs
Beispiel #2
0
    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)
Beispiel #3
0
 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
Beispiel #4
0
Datei: fit.py Projekt: op3/hdtv
    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)