Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-06-04 04:34:51

0001 #ifndef Fireworks_Core_FWViewType_h
0002 #define Fireworks_Core_FWViewType_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWViewType
0007 //
0008 /**\class FWViewType FWViewType.h Fireworks/Core/interface/FWViewType.h
0009 
0010  Description: [one line class summary]
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Alja Mrak-Tadel
0018 //         Created:  Mon Mar 22 12:08:40 CET 2010
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   // shortcuts
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