Skip to content
Snippets Groups Projects
Commit 6ce55242 authored by Johannes Schumann's avatar Johannes Schumann
Browse files

Return overall mean xsection from file for mean_xsec

parent 0751bd47
No related branches found
No related tags found
1 merge request!10Single energy runs
Pipeline #20701 failed
...@@ -258,33 +258,34 @@ class GiBUUOutput: ...@@ -258,33 +258,34 @@ class GiBUUOutput:
@property @property
def mean_xsec(self): def mean_xsec(self):
if self.flux_data is None: if self.flux_data is None
return lambda energy: self.energy_max return lambda energy: self.xsection["sum"]
root_tupledata = self.arrays else
energies = np.array(root_tupledata.lepIn_E) root_tupledata = self.arrays
weights = self._event_xsec(root_tupledata) energies = np.array(root_tupledata.lepIn_E)
Emin = np.min(energies) weights = self._event_xsec(root_tupledata)
Emax = np.max(energies) Emin = np.min(energies)
xsec, energy_bins = np.histogram(energies, Emax = np.max(energies)
weights=weights, xsec, energy_bins = np.histogram(energies,
bins=np.logspace( weights=weights,
np.log10(Emin), np.log10(Emax), bins=np.logspace(
15)) np.log10(Emin), np.log10(Emax),
deltaE = np.mean(self.flux_data["energy"][1:] - 15))
self.flux_data["energy"][:-1]) deltaE = np.mean(self.flux_data["energy"][1:] -
bin_events = np.array([ self.flux_data["energy"][:-1])
self.flux_interpolation.integral(energy_bins[i], bin_events = np.array([
energy_bins[i + 1]) / deltaE self.flux_interpolation.integral(energy_bins[i],
for i in range(len(energy_bins) - 1) energy_bins[i + 1]) / deltaE
]) for i in range(len(energy_bins) - 1)
x = (energy_bins[1:] + energy_bins[:-1]) / 2 ])
y = xsec / bin_events / x x = (energy_bins[1:] + energy_bins[:-1]) / 2
xsec_interp = interp1d(x, y = xsec / bin_events / x
y, xsec_interp = interp1d(x,
kind="linear", y,
fill_value=(y[0], y[-1]), kind="linear",
bounds_error=False) fill_value=(y[0], y[-1]),
return lambda e: xsec_interp(e) * e bounds_error=False)
return lambda e: xsec_interp(e) * e
def w2weights(self, volume, target_density, solid_angle): def w2weights(self, volume, target_density, solid_angle):
""" """
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment