File indexing completed on 2023-03-17 11:01:13
0001 #ifndef Fireworks_Core_FWViewType_h
0002 #define Fireworks_Core_FWViewType_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <string>
0021
0022 class FWViewType {
0023 public:
0024 class static_initializer {
0025 public:
0026 static_initializer();
0027 };
0028
0029 static static_initializer init_statics;
0030
0031 enum EType {
0032 kRhoPhi,
0033 kRhoZ,
0034 k3D,
0035 kISpy,
0036 kLego,
0037 kLegoHF,
0038 kGlimpse,
0039 kTable,
0040 kTableL1,
0041 kTableHLT,
0042 kRhoPhiPF,
0043 kLegoPFECAL,
0044 kGeometryTable,
0045 kOverlapTable,
0046 kTypeSize
0047 };
0048
0049 enum EBit {
0050 k3DBit = 1 << k3D,
0051 kRhoPhiBit = 1 << kRhoPhi,
0052 kRhoZBit = 1 << kRhoZ,
0053 kRhoPhiPFBit = 1 << kRhoPhiPF,
0054 kISpyBit = 1 << kISpy,
0055 kLegoBit = 1 << kLego,
0056 kLegoHFBit = 1 << kLegoHF,
0057 kLegoPFECALBit = 1 << kLegoPFECAL,
0058 kGlimpseBit = 1 << kGlimpse,
0059 kTableBit = 1 << kTable,
0060 kTableHLTBit = 1 << kTableHLT,
0061 kTableL1Bit = 1 << kTableL1,
0062 kGeometryBit = 1 << kGeometryTable,
0063 kOverlapBit = 1 << kOverlapTable
0064 };
0065
0066
0067 static const int kAllRPZBits;
0068 static const int kAll3DBits;
0069 static const int kAllLegoBits;
0070
0071 static std::string sName[kTypeSize];
0072
0073 static const std::string& idToName(int);
0074 static bool isProjected(int);
0075 static bool isLego(int);
0076
0077 static const std::string& checkNameWithViewVersion(const std::string& name, unsigned int viewVersion);
0078
0079 FWViewType(EType);
0080 virtual ~FWViewType();
0081
0082 const std::string& name() const;
0083 EType id() const;
0084
0085 private:
0086 const EType m_id;
0087 };
0088
0089 #endif