CMS 3D CMS Logo

DDSpecParRegistry.h
Go to the documentation of this file.
1 #ifndef DETECTOR_DESCRIPTION_DD_SPECPAR_REGISTRY_H
2 #define DETECTOR_DESCRIPTION_DD_SPECPAR_REGISTRY_H
3 
4 #include <string>
5 #include <string_view>
6 #include "tbb/concurrent_unordered_map.h"
7 #include "tbb/concurrent_vector.h"
8 
9 namespace cms {
10  using DDPaths = tbb::concurrent_vector<std::string>;
11  using DDPartSelectionMap = tbb::concurrent_unordered_map< std::string, tbb::concurrent_vector<std::string>>;
12  using DDVectorsMap = tbb::concurrent_unordered_map< std::string, tbb::concurrent_vector<double>>;
13 
14  struct DDSpecPar {
15  std::string_view strValue(const char*) const;
16  bool hasValue(const char* key) const;
17  double dblValue(const char*) const;
18 
22  };
23 
24  using DDSpecParMap = tbb::concurrent_unordered_map<std::string, DDSpecPar>;
25  using DDSpecParRefs = std::vector<const DDSpecPar*>;
26 
28  void filter(DDSpecParRefs&, std::string_view, std::string_view) const;
29 
31  };
32 }
33 
34 #endif
tbb::concurrent_unordered_map< std::string, tbb::concurrent_vector< std::string >> DDPartSelectionMap
std::string_view strValue(const char *) const
bool hasValue(const char *key) const
tbb::concurrent_unordered_map< std::string, tbb::concurrent_vector< double >> DDVectorsMap
tbb::concurrent_vector< std::string > DDPaths
Namespace of DDCMS conversion namespace.
double dblValue(const char *) const
DDVectorsMap numpars
std::vector< const DDSpecPar * > DDSpecParRefs
tbb::concurrent_unordered_map< std::string, DDSpecPar > DDSpecParMap
DDPartSelectionMap spars