00001 #ifndef DTCCBConfig_H
00002 #define DTCCBConfig_H
00003
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00023
00024
00025
00026
00027 #include <string>
00028 #include <vector>
00029 #include <map>
00030
00031
00032
00033
00034
00035 class DTCCBId {
00036
00037 public:
00038
00039 DTCCBId();
00040 ~DTCCBId();
00041
00042 int wheelId;
00043 int stationId;
00044 int sectorId;
00045
00046 };
00047
00048
00049 class DTCCBConfig {
00050
00051 public:
00052
00055 DTCCBConfig();
00056 DTCCBConfig( const std::string& version );
00057
00060 virtual ~DTCCBConfig();
00061
00064
00065 int fullKey() const;
00066 int stamp() const;
00067 int configKey( int wheelId,
00068 int stationId,
00069 int sectorId,
00070 std::vector<int>& confKey ) const;
00071 int configKey( const DTChamberId& id,
00072 std::vector<int>& confKey ) const;
00073 typedef std::vector< std::pair< DTCCBId,std::vector<int> > > ccb_config_map;
00074 typedef ccb_config_map::const_iterator ccb_config_iterator;
00075 ccb_config_map configKeyMap() const;
00076
00078 const
00079 std::string& version() const;
00080 std::string& version();
00081
00083 void clear();
00084
00085 void setFullKey( int key );
00086 void setStamp( int s );
00087
00088 int setConfigKey( int wheelId,
00089 int stationId,
00090 int sectorId,
00091 const std::vector<int>& confKey );
00092 int setConfigKey( const DTChamberId& id,
00093 const std::vector<int>& confKey );
00094
00096 typedef std::vector< std::pair<DTCCBId,int> >::const_iterator
00097 const_iterator;
00098 const_iterator begin() const;
00099 const_iterator end() const;
00100
00101 private:
00102
00103 int timeStamp;
00104 std::string dataVersion;
00105 int fullConfigKey;
00106 std::vector< std::pair<DTCCBId,int> > dataList;
00107
00109 void cacheMap() const;
00110 void resetMap() const;
00111 std::string mapName() const;
00112
00113 };
00114
00115
00116 #endif // DTCCBConfig_H
00117