Go to the documentation of this file.00001 #ifndef Fireworks_Core_FWViewType_h
00002 #define Fireworks_Core_FWViewType_h
00003
00004
00005
00006
00007
00016
00017
00018
00019
00020
00021 #include <string>
00022
00023 class FWViewType
00024 {
00025 public:
00026 class static_initializer
00027 {
00028 public:
00029 static_initializer();
00030 };
00031
00032 static static_initializer init_statics;
00033
00034 enum EType { kRhoPhi, kRhoZ, k3D, kISpy, kLego, kLegoHF, kGlimpse,
00035 kTable, kTableL1, kTableHLT,
00036 kRhoPhiPF, kLegoPFECAL,
00037 kGeometryTable,
00038 kTypeSize };
00039
00040 enum EBit
00041 {
00042 k3DBit = 1 << k3D,
00043 kRhoPhiBit = 1 << kRhoPhi,
00044 kRhoZBit = 1 << kRhoZ,
00045 kRhoPhiPFBit = 1 << kRhoPhiPF,
00046 kISpyBit = 1 << kISpy,
00047 kLegoBit = 1 << kLego,
00048 kLegoHFBit = 1 << kLegoHF,
00049 kLegoPFECALBit = 1 << kLegoPFECAL,
00050 kGlimpseBit = 1 << kGlimpse,
00051 kTableBit = 1 << kTable,
00052 kTableHLTBit = 1 << kTableHLT,
00053 kTableL1Bit = 1 << kTableL1,
00054 kGeometryBit = 1 << kGeometryTable
00055 };
00056
00057
00058 static const int kAllRPZBits;
00059 static const int kAll3DBits;
00060 static const int kAllLegoBits;
00061
00062 static std::string sName[kTypeSize];
00063
00064 static const std::string& idToName(int);
00065 static bool isProjected(int);
00066 static bool isLego(int);
00067
00068 static const std::string& checkNameWithViewVersion(const std::string& name, unsigned int viewVersion);
00069
00070 FWViewType(EType);
00071 virtual ~FWViewType();
00072
00073 const std::string& name() const;
00074 EType id() const;
00075
00076
00077 private:
00078 const EType m_id;
00079 };
00080
00081 #endif