157 Eigen::Matrix<double, Eigen::Dynamic, 2> incoherent_cs_matrix_;
159 Eigen::Matrix<double, Eigen::Dynamic, 2> coherent_cs_matrix_;
161 Eigen::Matrix<double, Eigen::Dynamic, 2> photoelectric_cs_matrix_;
163 Eigen::Matrix<double, Eigen::Dynamic, 2> total_cs_matrix_;
165 Eigen::Matrix<double, Eigen::Dynamic, 2> incoherent_scattering_function_matrix_;
167 Eigen::Matrix<double, Eigen::Dynamic, 2> coherent_form_factor_matrix_;
169 Eigen::Matrix<double, Eigen::Dynamic, 2> mass_energy_absorption_coefficient_matrix_;
173 void initializeData();
175 void setInteractionCrossSectionsAndInterpolators();
176 void setTotalCrossSectionsAndInterpolator();
177 void setIncoherentScatteringFunctionAndInterpolator();
178 void setCoherentScatteringFormFactorAndInterpolator();
179 void setMassEnergyAbsorptionCoefficientsAndInterpolator();
181 void setIncoherentScatteringCrossSectionAndInterpolator();
182 void setCoherentScatteringCrossSectionAndInterpolator();
183 void setPhotoelectricCrossSectionAndInterpolator();
185 void setCoherentScatteringDCSDistribution();
187 Eigen::Matrix<double, Eigen::Dynamic, 2> getTotalCrossSectionsMatrixFromInteractionData();
188 Eigen::Matrix<double, Eigen::Dynamic, 2> calculateWeightedAverageOfColumns(
const std::string &tableName,
const std::string &dataColumnName,
189 bool scale_to_macroscopic =
false);
191 void fillTotalCrossSectionsMatrix(Eigen::MatrixXd& total_cross_sections_matrix,
const Eigen::MatrixXd& merged_energy_matrix);
192 std::unordered_map<int, Eigen::Matrix<double, Eigen::Dynamic, 2>> getTableMatrixForAllElements(
const std::string &tableName,
const std::string &dataColumnName);
193 std::unordered_map<int, std::shared_ptr<Interpolator::Interpolator>> getInterpolatorsForAllElements(
const std::string &tableName,
194 const std::unordered_map<
int, Eigen::Matrix<double, Eigen::Dynamic, 2>>& table_matrix_map);
196 static std::shared_ptr<Interpolator::Interpolator> getInterpolatorForElement(
const std::string& tableName,
const Eigen::Matrix<double, Eigen::Dynamic, 2>& matrix);
198 Eigen::Matrix<double, Eigen::Dynamic, 2> getTableMatrix(
const std::string& tableName,
const std::string& dataColumnName,
int element);