File indexing completed on 2024-04-06 12:30:22
0001 #ifndef SimG4Core_SensitiveDetectorCatalog_h
0002 #define SimG4Core_SensitiveDetectorCatalog_h
0003
0004 #include <map>
0005 #include <string>
0006 #include <string_view>
0007 #include <vector>
0008 #include <unordered_set>
0009
0010 class SensitiveDetectorCatalog {
0011 public:
0012 using MapType = std::map<std::string, std::unordered_set<std::string>>;
0013 void insert(const std::string &, const std::string &, const std::string &);
0014 const std::vector<std::string_view> logicalNames(const std::string &readoutName) const;
0015 const std::vector<std::string_view> readoutNames(const std::string &className) const;
0016 std::vector<std::string_view> readoutNames() const;
0017 std::string_view className(const std::string &readoutName) const;
0018 void printMe() const;
0019
0020 private:
0021 std::vector<std::string_view> logicalNamesFromClassName(const std::string &className) const;
0022 std::vector<std::string_view> classNames() const;
0023
0024 MapType theClassNameMap;
0025 MapType theROUNameMap;
0026 };
0027
0028 #endif