CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/CondFormats/DTObjects/interface/DTCCBConfig.h

Go to the documentation of this file.
00001 #ifndef DTCCBConfig_H
00002 #define DTCCBConfig_H
00003 
00014 //----------------------
00015 // Base Class Headers --
00016 //----------------------
00017 
00018 
00019 //------------------------------------
00020 // Collaborating Class Declarations --
00021 //------------------------------------
00022 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00023 #include "CondFormats/DTObjects/interface/DTBufferTree.h"
00024 
00025 //---------------
00026 // C++ Headers --
00027 //---------------
00028 #include <string>
00029 #include <vector>
00030 #include <map>
00031 
00032 //              ---------------------
00033 //              -- Class Interface --
00034 //              ---------------------
00035 
00036 class DTCCBId {
00037 
00038  public:
00039 
00040   DTCCBId();
00041   ~DTCCBId();
00042 
00043   int   wheelId;
00044   int stationId;
00045   int  sectorId;
00046 
00047 };
00048 
00049 
00050 class DTConfigKey {
00051 
00052  public:
00053 
00054   DTConfigKey();
00055   ~DTConfigKey();
00056 
00057   int confType;
00058   int confKey;
00059 
00060 };
00061 
00062 
00063 class DTCCBConfig {
00064 
00065  public:
00066 
00069   DTCCBConfig();
00070   DTCCBConfig( const std::string& version );
00071 
00074   virtual ~DTCCBConfig();
00075 
00078 
00079   std::vector<DTConfigKey> fullKey() const;
00080   int stamp() const;
00081   int configKey( int   wheelId,
00082                  int stationId,
00083                  int  sectorId,
00084                  std::vector<int>& confKey ) const;
00085   int configKey( const DTChamberId& id,
00086                  std::vector<int>& confKey ) const;
00087   typedef std::vector< std::pair< DTCCBId,std::vector<int> > > ccb_config_map;
00088   typedef ccb_config_map::const_iterator ccb_config_iterator;
00089   ccb_config_map configKeyMap() const;
00090 
00092   const
00093   std::string& version() const;
00094   std::string& version();
00095 
00097   void clear();
00098 
00099   void setFullKey( std::vector<DTConfigKey> );
00100   void setStamp( int s );
00101 
00102   int setConfigKey( int   wheelId,
00103                     int stationId,
00104                     int  sectorId,
00105                     const std::vector<int>& confKey );
00106   int setConfigKey( const DTChamberId& id,
00107                     const std::vector<int>& confKey );
00108 
00109   int appendConfigKey( int   wheelId,
00110                        int stationId,
00111                        int  sectorId,
00112                        const std::vector<int>& confKey );
00113   int appendConfigKey( const DTChamberId& id,
00114                        const std::vector<int>& confKey );
00115 
00117   typedef std::vector< std::pair<DTCCBId,int> >::const_iterator
00118                                                  const_iterator;
00119   const_iterator begin() const;
00120   const_iterator end() const;
00121 
00122  private:
00123 
00124   int timeStamp;
00125   std::string dataVersion;
00126   std::vector<DTConfigKey> fullConfigKey;
00127   std::vector< std::pair<DTCCBId,int> > dataList;
00128 
00129   DTBufferTree< int,std::vector<int>* >* dBuf;
00130 
00132   void cacheMap() const;
00133   void resetMap() const;
00134 //  std::string mapName() const;
00135 
00136 };
00137 
00138 
00139 #endif // DTCCBConfig_H
00140