1 #ifndef DETECTOR_DESCRIPTION_DD_ERROR_DETECTION_H
2 #define DETECTOR_DESCRIPTION_DD_ERROR_DETECTION_H
33 using ns_type = std::map<std::string, std::set<std::string>>;
34 using ns_nm_type = std::map<std::string, std::set<DDName>>;
38 typename std::set<T>::const_iterator it(
v.begin()), ed(
v.end());
39 for (; it != ed; ++it) {
40 o << it->ddname() <<
' ';
47 typedef typename std::map<std::string, std::set<T>>::const_iterator c_it;
48 c_it it(
m.begin()), ed(
m.end());
49 for (; it != ed; ++it) {
50 o << it->first <<
": " << it->second;
56 template <
class T,
class N>
58 typedef typename std::map<N, std::set<T>>::const_iterator c_it;
59 c_it it(
m.begin()), ed(
m.end());
60 for (; it != ed; ++it) {
61 o << it->first.ddname() <<
": " << it->second;
72 for (; it != ed; ++it) {
73 result = it->isDefined().second;
76 m[it->name().ns()].insert(it->name().name());
86 for (; it != ed; ++it) {
87 result = it->isDefined().second;
90 m[it->name().ns()].insert(it->name().name());
97 typedef std::map<std::string, std::set<C>> error_type;
98 static error_type result_;
101 for (; it != ed; ++it) {
102 if (!it->isDefined().second) {
103 result_[it->name().ns()].insert(*it);
121 const std::map<DDMaterial, std::set<DDLogicalPart>>&
ma_lp();
122 const std::map<DDSolid, std::set<DDLogicalPart>>&
so_lp();
123 const std::map<DDSolid, std::set<DDSolid>>&
so();
127 const std::vector<std::pair<std::string, std::string>>&
ma();