コード例 #1
0
    def fit_gaussian_radius(self, spectra):
        """ Fits a gausian to the radius of a spectrum.

        Args:
          spectra (core.spectra): Spectrum to be smeared

        Returns:
          mean (float), sigma (float) and integral (float)
        """
        entries = []
        radii = []
        radial_width = (spectra._radial_high - spectra._radial_low)/spectra._radial_bins
        spectra_proj = spectra.project(1)
        for i in range(len(spectra_proj)):
            entries.append(spectra_proj[i])
            radii.append(spectra._radial_low+radial_width*(i+0.5))
        pars0 = [400., 1000., 100.]
        coeff, var_mtrx = curve_fit(self.gaussian, radii, entries, p0=pars0)
        return coeff[1], coeff[2], numpy.array(entries).sum()
コード例 #2
0
ファイル: test_smear.py プロジェクト: Mark--S/echidna
    def fit_gaussian_radius(self, spectra):
        """ Fits a gausian to the radius of a spectrum.

        Args:
          spectra (core.spectra): Spectrum to be smeared

        Returns:
          mean (float), sigma (float) and integral (float)
        """
        entries = []
        radii = []
        radial_width = (spectra._radial_high - spectra._radial_low) / spectra._radial_bins
        spectra_proj = spectra.project(1)
        for i in range(len(spectra_proj)):
            entries.append(spectra_proj[i])
            radii.append(spectra._radial_low + radial_width * (i + 0.5))
        pars0 = [400.0, 1000.0, 100.0]
        coeff, var_mtrx = curve_fit(self.gaussian, radii, entries, p0=pars0)
        return coeff[1], coeff[2], numpy.array(entries).sum()
コード例 #3
0
    def fit_gaussian_energy(self, spectra):
        """ Fits a gausian to the energy of a spectrum.

        Args:
          spectra (core.spectra): Spectrum to be smeared

        Returns:
          mean (float), sigma (float) and integral (float) of the spectrum.
        """
        entries = []
        energies = []
        energy_width = (spectra._energy_high-spectra._energy_low)/spectra._energy_bins
        spectra_proj = spectra.project(0)
        for i in range(len(spectra_proj)):
            entries.append(spectra_proj[i])
            energies.append(spectra._energy_low+energy_width*(i+0.5))
        pars0 = [300., 2.5, 0.1]
        coeff, var_mtrx = curve_fit(self.gaussian, energies, entries, p0=pars0)
        return coeff[1], coeff[2], numpy.array(entries).sum()
コード例 #4
0
ファイル: test_smear.py プロジェクト: Mark--S/echidna
    def fit_gaussian_energy(self, spectra):
        """ Fits a gausian to the energy of a spectrum.

        Args:
          spectra (core.spectra): Spectrum to be smeared

        Returns:
          mean (float), sigma (float) and integral (float) of the spectrum.
        """
        entries = []
        energies = []
        energy_width = (spectra._energy_high - spectra._energy_low) / spectra._energy_bins
        spectra_proj = spectra.project(0)
        for i in range(len(spectra_proj)):
            entries.append(spectra_proj[i])
            energies.append(spectra._energy_low + energy_width * (i + 0.5))
        pars0 = [300.0, 2.5, 0.1]
        coeff, var_mtrx = curve_fit(self.gaussian, energies, entries, p0=pars0)
        return coeff[1], coeff[2], numpy.array(entries).sum()