def plot_eff_vs_wave_meta(self): """plots the efficiency for a set of wavelengths, Args: sigma: Full sigma calculation fo the detector ranges: Ranges calculation blades: detector blades result: Efficiency figure: figure to plot in Returns: plotted figure reference: figure 3.13 On Francesco's Thesis """ sigmalist = np.arange(0.0011, 20, 0.1) sigmaeq = [] for sigma in sigmalist: # transformation for meeting requirements of functions sigma = [[sigma], ] sigmaeq.append(B10.B10().full_sigma_calculation(sigma, self.angle)) ranges = self.calculate_ranges() blades = self.blades result = self.calculate_eff() wavelength = self.wavelength y = efftools.metadata_diffthick_vs_wave(sigmaeq, blades, ranges, len(blades)) self.metadata.update({'effVsWave': [sigmalist, y]}) print("plot_eff_vs_wave_meta")
def plot_eff_vs_wave(self): """plots the efficiency for a set of wavelengths, Args: sigma: Full sigma calculation fo the detector ranges: Ranges calculation blades: detector blades result: Efficiency figure: figure to plot in Returns: plotted figure reference: figure 3.13 On Francesco's Thesis """ sigmalist = np.arange(0.0011, 20, 0.1) sigmaeq = [] for sigma in sigmalist: # transformation for meeting requirements of functions sigma = [ [sigma], ] sigmaeq.append(B10.B10().full_sigma_calculation(sigma, self.angle)) ranges = self.calculate_ranges() blades = self.blades result = self.calculate_eff() wavelength = self.wavelength y = efftools.metadata_diffthick_vs_wave(sigmaeq, blades, ranges, len(blades)) cx = plt.figure(1) plt.subplot(111) self.metadata.update({'effVsWave': [sigmalist, y]}) plt.plot(sigmalist, np.array(y), color='g') if len(self.wavelength) == 1: if self.single: plt.plot([wavelength[0][0], wavelength[0][1]], [0, result[0][1]], '--', color='k') plt.plot([0, wavelength[0][0]], [result[0][1], result[0][1]], '--', color='k') else: plt.plot([wavelength[0][0], wavelength[0][0]], [0, np.array(result[1])], '--', color='k') plt.plot([0, wavelength[0][0]], [np.array(result[1]), np.array(result[1])], '--', color='k') plt.grid(True) plt.xlabel(r'Neutron wavelength ($\AA$)') plt.ylabel('Detector efficiency (%)') # ticks = cx.get_yticks() * 100 # cx.set_yticklabels(ticks) return cx
def plot_wave_vs_eff(self, sigmaeq, sigmalist, ranges, blades, result, wavelength, figure): """plots the efficiency for a set of wavelengths, Args: sigma: Full sigma calculation fo the detector ranges: Ranges calculation blades: detector blades result: Efficiency figure: figure to plot in Returns: plotted figure reference: figure 3.13 On Francesco's Thesis """ if sigmaeq == None: sigmaeq = self.calculate_sigma() if ranges == None: sigmaeq = self.calculate_ranges() if self.single: y = efftools.metadata_singleLayer_vs_wave(sigmaeq, blades[0].backscatter, ranges, len(blades)) else: y = efftools.metadata_diffthick_vs_wave(sigmaeq, blades, ranges, len(blades)) cx = figure.add_subplot(111) self.metadata.update({'effVsWave': [sigmalist, y]}) cx.plot(sigmalist, y, color='g') if self.single: cx.plot([wavelength[0][0], wavelength[0][0]], [0, result[1][0]], '--', color='k') cx.plot([0, wavelength[0][0]], [result[1][0], result[1][0]], '--', color='k') else: cx.plot([wavelength[0][0], wavelength[0][0]], [0, result[1]], '--', color='k') cx.plot([0, wavelength[0][0]], [result[1], result[1]], '--', color='k') cx.grid(True) cx.set_xlabel('Neutron wavelength (Angstrom)') cx.set_ylabel('Detector efficiency (%)') # ticks = cx.get_yticks() * 100 # cx.set_yticklabels(ticks) return cx