예제 #1
0
파일: pileup.py 프로젝트: pgjones/snopy
def spectra(bg1, bg2, bg3, activity, rejection):
    """ Return the pileup spectra of 1 + 2 + [3] with the activity specified given the rejection."""
    name = bg1.GetName() + "+" + bg2.GetName()
    spectra1 = spectrum_util.flattern(_new_spectra(bg1))
    spectra2 = spectrum_util.flattern(_new_spectra(bg2))
    convolved = _convolve_reject(spectra1, spectra2, rejection)
    if bg3 is not None:
        spectra3 = spectrum_util.flattern(_new_spectra(bg3))
        convolved = _convolve_reject(convolved, spectra3, rejection)
        name = name + "+" + bg3.GetName()
    convolved.Scale(activity / convolved.GetSumOfWeights())
    result = spectrum_util.apply_radial_spectrum(convolved, spectrum_util.internal(6000.0)) #Need to think about radial dependence
    result.SetName(name)
    return result
예제 #2
0
파일: pileup.py 프로젝트: arushanova/snopy
def spectra(bg1, bg2, bg3, activity, rejection):
    """ Return the pileup spectra of 1 + 2 + [3] with the activity specified given the rejection."""
    name = bg1.GetName() + "+" + bg2.GetName()
    spectra1 = spectrum_util.flattern(_new_spectra(bg1))
    spectra2 = spectrum_util.flattern(_new_spectra(bg2))
    convolved = _convolve_reject(spectra1, spectra2, rejection)
    if bg3 is not None:
        spectra3 = spectrum_util.flattern(_new_spectra(bg3))
        convolved = _convolve_reject(convolved, spectra3, rejection)
        name = name + "+" + bg3.GetName()
    convolved.Scale(activity / convolved.GetSumOfWeights())
    result = spectrum_util.apply_radial_spectrum(
        convolved,
        spectrum_util.internal(6000.0))  #Need to think about radial dependence
    result.SetName(name)
    return result
예제 #3
0
    def _apply_processes(self, data):
        """ Apply the rejection, energy resolution, and return the detected data set."""
        fiducial_data = self._fiducial.apply(data)
        rejected_data = self._signal.apply(fiducial_data)

 #       energy_res_data = rejected_data #this is for NOT applying energy resolution
        energy_res_data=self._energy_resolution.apply(rejected_data)
        return spectrum_util.flattern(energy_res_data)
예제 #4
0
 def __init__(self, raw_data_set, colour_scheme, line_style):
     """ Initialise with a raw data set and a colour scheme."""
     backgrounds = []
     for data in raw_data_set.iter_backgrounds():
         backgrounds.append(spectrum_util.flattern(data))
     super(RawDataPlotter, self).__init__(backgrounds,
                                          raw_data_set.get_signal(),
                                          colour_scheme, line_style)
예제 #5
0
파일: simulation.py 프로젝트: pgjones/snopy
 def _calculate_pileup(self):
     """ Calculate the pileup backgrounds, then apply fiducial and energy resolution, 
     then flattern."""
     pileup_backgrounds = []
     for data1 in self._raw_data.iter_backgrounds():
         print data1.GetName()
         for data2 in self._raw_data.iter_backgrounds():
             print "\t", data2.GetName()
             activity = pileup.activity(data1, data2, None, self._pileup_window)
             if activity > 1:
                 pileup_backgrounds.append(pileup.spectra(data1, data2, None, activity, self._rejection))
             for data3 in self._raw_data.iter_backgrounds():
                 print "\t\t", data3.GetName()
                 activity = pileup.activity(data1, data2, data3, self._pileup_window)
                 if activity > 1:
                     pileup_backgrounds.append(pileup.spectra(data1, data2, data3, activity, self._rejection))
     pileup_backgrounds = set(pileup_backgrounds)
     detected_pileup = []
     for data in pileup_backgrounds:
         fiducial_data = self._fiducial.apply(data)
         energy_res_data = self._energy_resolution.apply(fiducial_data)
         detected_pileup.append(spectrum_util.flattern(energy_res_data))
     return detected_pileup
예제 #6
0
 def _calculate_pileup(self):
     """ Calculate the pileup backgrounds, then apply fiducial and energy resolution, 
     then flattern."""
     pileup_backgrounds = []
     for data1 in self._raw_data.iter_backgrounds():
         print data1.GetName() + " 1"
         for data2 in self._raw_data.iter_backgrounds():
             print "\t", data2.GetName() + " 2"
             activity = pileup.activity(data1, data2, None, self._pileup_window)
             if activity > 1:
                 pileup_backgrounds.append(pileup.spectra(data1, data2, None, activity, self._rejection))
             for data3 in self._raw_data.iter_backgrounds():
                 print "\t\t", data3.GetName() + " 3"
                 activity = pileup.activity(data1, data2, data3, self._pileup_window)
                 if activity > 1:
                     pileup_backgrounds.append(pileup.spectra(data1, data2, data3, activity, self._rejection))
     pileup_backgrounds = set(pileup_backgrounds)
     detected_pileup = []
     for data in pileup_backgrounds:
    #     fiducial_data = self._fiducial.apply(data)
         rejected_data = self._signal.apply(data)
         energy_res_data = self._energy_resolution.apply(rejected_data)
         detected_pileup.append(spectrum_util.flattern(energy_res_data))
     return detected_pileup
예제 #7
0
파일: simulation.py 프로젝트: pgjones/snopy
 def _apply_processes(self, data):
     """ Apply the rejection, energy resolution, and return the detected data set."""
     fiducial_data = self._fiducial.apply(data)
     rejected_data = self._rejection.apply(fiducial_data)
     energy_res_data = self._energy_resolution.apply(rejected_data)
     return spectrum_util.flattern(energy_res_data)
예제 #8
0
파일: plot_data.py 프로젝트: pgjones/snopy
 def __init__(self, raw_data_set, colour_scheme, line_style):
     """ Initialise with a raw data set and a colour scheme."""
     backgrounds = []
     for data in raw_data_set.iter_backgrounds():
         backgrounds.append(spectrum_util.flattern(data))
     super(RawDataPlotter, self).__init__(backgrounds, raw_data_set.get_signal(), colour_scheme, line_style)