Warning, file /include/celeritas/ext/detail/GeantOpticalModelImporter.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include <optional>
0010 #include <string>
0011 #include <vector>
0012
0013 #include "corecel/OpaqueId.hh"
0014 #include "celeritas/Types.hh"
0015 #include "celeritas/io/ImportOpticalModel.hh"
0016
0017 #include "GeoOpticalIdMap.hh"
0018
0019 class G4VProcess;
0020 class G4MaterialPropertiesTable;
0021
0022 namespace celeritas
0023 {
0024 namespace detail
0025 {
0026
0027
0028
0029
0030 class GeantOpticalModelImporter
0031 {
0032 public:
0033
0034
0035 using IMC = optical::ImportModelClass;
0036
0037
0038 public:
0039
0040 GeantOpticalModelImporter(GeoOpticalIdMap const& geo_to_opt);
0041
0042
0043 ImportOpticalModel operator()(IMC imc) const;
0044
0045
0046 explicit operator bool() const { return !opt_to_mat_.empty(); }
0047
0048 private:
0049 std::vector<G4MaterialPropertiesTable const*> opt_to_mat_;
0050
0051
0052 std::vector<inp::Grid>
0053 import_mfps(std::string const& mfp_property_name) const;
0054 };
0055
0056
0057 }
0058 }