CMS 3D CMS Logo

HcalTopologyMode.h
Go to the documentation of this file.
1 #ifndef Geometry_HcalCommonData_HcalTopologyMode_H
2 #define Geometry_HcalCommonData_HcalTopologyMode_H
3 
5 #include <map>
6 #include <string>
7 #include <algorithm>
8 
9 template< typename T >
10 class StringToEnumParser {
11  std::map< std::string, T > enumMap;
12 public:
13 
14  StringToEnumParser( void );
15 
17  typename std::map<std::string, T>::const_iterator iValue = enumMap.find( value );
18  if (iValue == enumMap.end())
19  throw cms::Exception( "Configuration" )
20  << "the value " << value << " is not defined.";
21 
22  return iValue->second;
23  }
24 };
25 
26 namespace HcalTopologyMode {
27  enum Mode { LHC=0, H2=1, SLHC=2, H2HE=3 };
28 
29  enum TriggerMode {
30  TriggerMode_2009=0, // HF is summed in 3x2 regions
31  TriggerMode_2016=1, // HF is summed in both 3x2 and 1x1 regions
32  TriggerMode_2018legacy=2, // For the database, before 2017 and 2017plan1 was introduced
33  TriggerMode_2017=3, // HF upgraded to QIE10
34  TriggerMode_2017plan1=4, // HF upgraded to QIE10, 1 RBX of HE to QIE11
35  TriggerMode_2018=5, // HF upgraded to QIE10, HE to QIE11
36  TriggerMode_2021=6 // HF upgraded to QIE10, HBHE to QIE11
37  };
38 }
39 
40 #endif // Geometry_HcalCommonData_HcalTopologyMode_H
std::map< std::string, T > enumMap
Definition: value.py:1
long double T
T parseString(const std::string &value)