File indexing completed on 2025-03-08 03:04:15
0001 #include "Geometry/MTDNumberingBuilder/interface/CmsMTDStringToEnum.h"
0002
0003 const CmsMTDStringToEnum::Impl CmsMTDStringToEnum::m_impl;
0004
0005 CmsMTDStringToEnum::Impl::Impl() {
0006 map_.emplace("FastTimerRegion", GeometricTimingDet::MTD);
0007 map_.emplace("FastTimerRegionBTL", GeometricTimingDet::MTD);
0008 map_.emplace("FastTimerRegionETL", GeometricTimingDet::MTD);
0009 map_.emplace("BarrelTimingLayer", GeometricTimingDet::BTL);
0010 map_.emplace("Layer1", GeometricTimingDet::BTLLayer);
0011 map_.emplace("Layer1Timing", GeometricTimingDet::BTLLayer);
0012 map_.emplace("LayerTiming", GeometricTimingDet::BTLLayer);
0013 map_.emplace("BModule", GeometricTimingDet::BTLModule);
0014 map_.emplace("BTLModu", GeometricTimingDet::BTLModule);
0015 map_.emplace("EndcapTimingLayer", GeometricTimingDet::ETL);
0016 map_.emplace("Disc1Timing", GeometricTimingDet::ETLDisc);
0017 map_.emplace("Disc2Timing", GeometricTimingDet::ETLDisc);
0018 map_.emplace("SensorM", GeometricTimingDet::ETLModule);
0019 map_.emplace("Module_", GeometricTimingDet::ETLModule);
0020 map_.emplace("EModule", GeometricTimingDet::ETLSensor);
0021 map_.emplace("LGAD_ac", GeometricTimingDet::ETLSensor);
0022 }
0023
0024 GeometricTimingDet::GeometricTimingEnumType CmsMTDStringToEnum::type(std::string const& s) const {
0025
0026 std::string_view v = s;
0027 auto first = v.find_first_of(':');
0028 v.remove_prefix(std::min(first + 1, v.size()));
0029 MapEnumType::const_iterator p = map().find({v.data(), v.size()});
0030 if (p != map().end())
0031 return p->second;
0032 return GeometricTimingDet::unknown;
0033 }