File indexing completed on 2024-06-04 04:34:51
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 static constexpr unsigned int k3DBit = 1 << k3D, kRhoPhiBit = 1 << kRhoPhi, kRhoZBit = 1 << kRhoZ,
0050 kRhoPhiPFBit = 1 << kRhoPhiPF, kISpyBit = 1 << kISpy, kLegoBit = 1 << kLego,
0051 kLegoHFBit = 1 << kLegoHF, kLegoPFECALBit = 1 << kLegoPFECAL,
0052 kGlimpseBit = 1 << kGlimpse, kTableBit = 1 << kTable, kTableHLTBit = 1 << kTableHLT,
0053 kTableL1Bit = 1 << kTableL1, kGeometryBit = 1 << kGeometryTable,
0054 kOverlapBit = 1 << kOverlapTable;
0055
0056
0057 static const int kAllRPZBits;
0058 static const int kAll3DBits;
0059 static const int kAllLegoBits;
0060
0061 static std::string sName[kTypeSize];
0062
0063 static const std::string& idToName(int);
0064 static bool isProjected(int);
0065 static bool isLego(int);
0066
0067 static const std::string& checkNameWithViewVersion(const std::string& name, unsigned int viewVersion);
0068
0069 FWViewType(EType);
0070 virtual ~FWViewType();
0071
0072 const std::string& name() const;
0073 EType id() const;
0074
0075 private:
0076 const EType m_id;
0077 };
0078
0079 #endif