Currently, ALARAJOYWrapper/xs_plotting.py extracts continuous cross-sections according to MT values that have been reformatted as integers, but may have otherwise included isomeric flags (i.e. '*' for a reaction specifying the first excited state of a daughter nuclide). Accordingly, continuous cross-sections are only extracted from MF 3 of the unmodified TENDL files, which necessarily excludes state-specific cross-sections or multiplicities that may be contained in MF9/10 (and from which the flagged-MT cross-sections were extracted during the ALARAJOY processing).
In order to avoid unnecessarily suppressing/overwriting these reactions when producing cross-section plots, xs_plotting.extract_continuous_data() should be updated to handle MT values containing isomeric flags by first checking to see if the MF10/MT combination exists, and then secondarily looking for MF9/MT if the former does not. MF10 contains cross-section values, so they can be extracted directly, but MF9 contains energy-dependent reaction multiplicities, which would need to be multiplied by the cumulative cross-sections from MF3 to properly capture the state-specific cross-section values.
Currently, this method uses tendl_processing.create_endf_file_obj(), which itself is built around ENDFtk. ENDFtk does not contain capabilities to parse the multiplicity tables from MF9 beyond just reading in the section from the file. Alternatively, endf-parserpy does have this capability, but would necessitate the re-incorporation of another domain-specific software package for only a narrow application.
Regardless of the ENDF parsing software used, I am thinking that the best way to calculate the cross-sections from MF9 will be to create energy-keyed dictionaries from both MF3 and MF9, valued by the cross-section or multiplicity respectively. Each cross-section can then be multiplied for each matching energy, with all other values being 0 (this is necessary because there can be different energies /numbers of energies in MF3/9 for a given reaction).
Currently,
ALARAJOYWrapper/xs_plotting.pyextracts continuous cross-sections according to MT values that have been reformatted as integers, but may have otherwise included isomeric flags (i.e.'*'for a reaction specifying the first excited state of a daughter nuclide). Accordingly, continuous cross-sections are only extracted from MF 3 of the unmodified TENDL files, which necessarily excludes state-specific cross-sections or multiplicities that may be contained in MF9/10 (and from which the flagged-MT cross-sections were extracted during the ALARAJOY processing).In order to avoid unnecessarily suppressing/overwriting these reactions when producing cross-section plots,
xs_plotting.extract_continuous_data()should be updated to handle MT values containing isomeric flags by first checking to see if the MF10/MT combination exists, and then secondarily looking for MF9/MT if the former does not. MF10 contains cross-section values, so they can be extracted directly, but MF9 contains energy-dependent reaction multiplicities, which would need to be multiplied by the cumulative cross-sections from MF3 to properly capture the state-specific cross-section values.Currently, this method uses
tendl_processing.create_endf_file_obj(), which itself is built aroundENDFtk.ENDFtkdoes not contain capabilities to parse the multiplicity tables from MF9 beyond just reading in the section from the file. Alternatively,endf-parserpydoes have this capability, but would necessitate the re-incorporation of another domain-specific software package for only a narrow application.Regardless of the ENDF parsing software used, I am thinking that the best way to calculate the cross-sections from MF9 will be to create energy-keyed dictionaries from both MF3 and MF9, valued by the cross-section or multiplicity respectively. Each cross-section can then be multiplied for each matching energy, with all other values being 0 (this is necessary because there can be different energies /numbers of energies in MF3/9 for a given reaction).