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
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
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)
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)
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
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
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)