More reconstruction fixes

This commit is contained in:
Isaac Meyer 2018-07-19 13:22:27 -05:00
parent c22b36e0c8
commit e48521184b
3 changed files with 38 additions and 29 deletions

File diff suppressed because one or more lines are too long

View file

@ -203,7 +203,7 @@ class ResonanceRange(object):
return cls(target_spin, energy_min, energy_max, {0: a}, {0: ap})
def reconstruct(self, energies, use_sample=False, sample_parameters=None):
def reconstruct(self, energies):
"""Evaluate cross section at specified energies.
Parameters
@ -222,8 +222,8 @@ class ResonanceRange(object):
raise RuntimeError("Resonance reconstruction not available.")
# Pre-calculate penetrations and shifts for resonances
if not self._prepared or use_sample:
self._prepare_resonances(use_sample, sample_parameters)
if not self._prepared:
self._prepare_resonances()
if isinstance(energies, Iterable):
elastic = np.zeros_like(energies)
@ -395,11 +395,8 @@ class MultiLevelBreitWigner(ResonanceRange):
return mlbw
def _prepare_resonances(self, use_sample=False, sample_parameters=None):
if not use_sample:
df = self.parameters.copy()
else:
df = sample_parameters.copy()
def _prepare_resonances(self):
df = self.parameters.copy()
# Penetration and shift factors
p = np.zeros(len(df))
@ -657,11 +654,8 @@ class ReichMoore(ResonanceRange):
return rm
def _prepare_resonances(self, use_sample=False, sample_parameters=None):
if not use_sample:
df = self.parameters.copy()
else:
df = sample_parameters.copy()
def _prepare_resonances(self):
df = self.parameters.copy()
# Penetration and shift factors
p = np.zeros(len(df))

View file

@ -257,6 +257,9 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidth', 'competitiveWidth']
sample_params = pd.DataFrame.from_records(records, columns=columns)
res_range = copy.copy(resonances)
res_range._prepared = False # Set prepared to False to ensure
# the sampled parameters are used
# in reconstruction
res_range.parameters = sample_params
samples.append(res_range)
@ -282,6 +285,9 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidth', 'competitiveWidth']
sample_params = pd.DataFrame.from_records(records, columns=columns)
res_range = copy.copy(resonances)
res_range._prepared = False # Set prepared to False to ensure
# the sampled parameters are used
# in reconstruction
res_range.parameters = sample_params
samples.append(res_range)
@ -308,6 +314,9 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidth', 'competitveWidth']
sample_params = pd.DataFrame.from_records(records, columns=columns)
res_range = copy.copy(resonances)
res_range._prepared = False # Set prepared to False to ensure
# the sampled parameters are used
# in reconstruction
res_range.parameters = sample_params
samples.append(res_range)
@ -334,6 +343,9 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidthA', 'fissionWidthB']
sample_params = pd.DataFrame.from_records(records, columns=columns)
res_range = copy.copy(resonances)
res_range._prepared = False # Set prepared to False to ensure
# the sampled parameters are used
# in reconstruction
res_range.parameters = sample_params
samples.append(res_range)
@ -359,6 +371,9 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidthA', 'fissionWidthB']
sample_params = pd.DataFrame.from_records(records, columns=columns)
res_range = copy.copy(resonances)
res_range._prepared = False # Set prepared to False to ensure
# the sampled parameters are used
# in reconstruction
res_range.parameters = sample_params
samples.append(res_range)