Back to home page

Project CMSSW displayed by LXR

 
 

    


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