File indexing completed on 2023-10-25 09:49:48
0001 #include "Geometry/HGCalCommonData/interface/HGCalGeometryMode.h"
0002 #include "DetectorDescription/Core/interface/DDutils.h"
0003
0004 template <>
0005 HGCalStringToEnumParser<HGCalGeometryMode::GeometryMode>::HGCalStringToEnumParser() {
0006 enumMap["HGCalGeometryMode::Square"] = HGCalGeometryMode::Square;
0007 enumMap["HGCalGeometryMode::Hexagon"] = HGCalGeometryMode::Hexagon;
0008 enumMap["HGCalGeometryMode::HexagonFull"] = HGCalGeometryMode::HexagonFull;
0009 enumMap["HGCalGeometryMode::Hexagon8"] = HGCalGeometryMode::Hexagon8;
0010 enumMap["HGCalGeometryMode::Hexagon8Full"] = HGCalGeometryMode::Hexagon8Full;
0011 enumMap["HGCalGeometryMode::Trapezoid"] = HGCalGeometryMode::Trapezoid;
0012 enumMap["HGCalGeometryMode::Hexagon8File"] = HGCalGeometryMode::Hexagon8File;
0013 enumMap["HGCalGeometryMode::TrapezoidFile"] = HGCalGeometryMode::TrapezoidFile;
0014 enumMap["HGCalGeometryMode::Hexagon8Module"] = HGCalGeometryMode::Hexagon8Module;
0015 enumMap["HGCalGeometryMode::TrapezoidModule"] = HGCalGeometryMode::TrapezoidModule;
0016 enumMap["HGCalGeometryMode::Hexagon8Cassette"] = HGCalGeometryMode::Hexagon8Cassette;
0017 enumMap["HGCalGeometryMode::TrapezoidCassette"] = HGCalGeometryMode::TrapezoidCassette;
0018 enumMap["HGCalGeometryMode::Hexagon8CalibCell"] = HGCalGeometryMode::Hexagon8CalibCell;
0019 }
0020
0021 template <>
0022 HGCalStringToEnumParser<HGCalGeometryMode::WaferMode>::HGCalStringToEnumParser() {
0023 enumMap["HGCalGeometryMode::Polyhedra"] = HGCalGeometryMode::Polyhedra;
0024 enumMap["HGCalGeometryMode::ExtrudedPolygon"] = HGCalGeometryMode::ExtrudedPolygon;
0025 }
0026
0027 HGCalGeometryMode::GeometryMode HGCalGeometryMode::getGeometryMode(const char* s, const DDsvalues_type& sv) {
0028 DDValue val(s);
0029 if (DDfetch(&sv, val)) {
0030 const std::vector<std::string>& fvec = val.strings();
0031 if (fvec.empty()) {
0032 throw cms::Exception("HGCalGeom") << "getGeometryMode::Failed to get " << s << " tag.";
0033 }
0034
0035 HGCalStringToEnumParser<HGCalGeometryMode::GeometryMode> eparser;
0036 HGCalGeometryMode::GeometryMode result = (HGCalGeometryMode::GeometryMode)eparser.parseString(fvec[0]);
0037 return result;
0038 } else {
0039 throw cms::Exception("HGCalGeom") << "getGeometryMode::Failed to fetch " << s << " tag";
0040 }
0041 };
0042
0043 HGCalGeometryMode::GeometryMode HGCalGeometryMode::getGeometryMode(const std::string& s) {
0044 HGCalStringToEnumParser<HGCalGeometryMode::GeometryMode> eparser;
0045 HGCalGeometryMode::GeometryMode result = (HGCalGeometryMode::GeometryMode)eparser.parseString(s);
0046 return result;
0047 };
0048
0049 HGCalGeometryMode::WaferMode HGCalGeometryMode::getGeometryWaferMode(const char* s, const DDsvalues_type& sv) {
0050 DDValue val(s);
0051 if (DDfetch(&sv, val)) {
0052 const std::vector<std::string>& fvec = val.strings();
0053 if (fvec.empty()) {
0054 throw cms::Exception("HGCalGeom") << "getGeometryWaferMode::Failed to get " << s << " tag.";
0055 }
0056
0057 HGCalStringToEnumParser<HGCalGeometryMode::WaferMode> eparser;
0058 HGCalGeometryMode::WaferMode result = (HGCalGeometryMode::WaferMode)eparser.parseString(fvec[0]);
0059 return result;
0060 } else {
0061 throw cms::Exception("HGCalGeom") << "getGeometryWaferMode::Failed to fetch " << s << " tag";
0062 }
0063 };
0064
0065 HGCalGeometryMode::WaferMode HGCalGeometryMode::getGeometryWaferMode(std::string& s) {
0066 HGCalStringToEnumParser<HGCalGeometryMode::WaferMode> eparser;
0067 HGCalGeometryMode::WaferMode result = (HGCalGeometryMode::WaferMode)eparser.parseString(s);
0068 return result;
0069 };