00001 #ifndef DTHVStatus_H
00002 #define DTHVStatus_H
00003
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "CondFormats/DTObjects/interface/DTBufferTree.h"
00024 class DTWireId;
00025 class DTLayerId;
00026 class DTChamberId;
00027
00028
00029
00030
00031 #include <string>
00032 #include <vector>
00033
00034
00035
00036
00037
00038 class DTHVStatusId {
00039
00040 public:
00041
00042 DTHVStatusId();
00043 ~DTHVStatusId();
00044
00045 int wheelId;
00046 int stationId;
00047 int sectorId;
00048 int slId;
00049 int layerId;
00050 int partId;
00051
00052 };
00053
00054
00055 class DTHVStatusData {
00056
00057 public:
00058
00059 DTHVStatusData();
00060 ~DTHVStatusData();
00061
00062 int fCell;
00063 int lCell;
00064 int flagA;
00065 int flagC;
00066 int flagS;
00067
00068 };
00069
00070
00071 class DTHVStatus {
00072
00073 public:
00074
00077 DTHVStatus();
00078 DTHVStatus( const std::string& version );
00079
00082 ~DTHVStatus();
00083
00086
00087 int get( int wheelId,
00088 int stationId,
00089 int sectorId,
00090 int slId,
00091 int layerId,
00092 int partId,
00093 int& fCell,
00094 int& lCell,
00095 int& flagA,
00096 int& flagC,
00097 int& flagS ) const;
00098 int get( const DTLayerId& id,
00099 int partId,
00100 int& fCell,
00101 int& lCell,
00102 int& flagA,
00103 int& flagC,
00104 int& flagS ) const;
00105 int get( const DTWireId& id,
00106 int& flagA,
00107 int& flagC,
00108 int& flagS ) const;
00109 int offChannelsNumber() const;
00110 int offChannelsNumber( const DTChamberId& id ) const;
00111 int badChannelsNumber() const;
00112 int badChannelsNumber( const DTChamberId& id ) const;
00114 const
00115 std::string& version() const;
00116 std::string& version();
00117
00119 void clear();
00120
00121 int set( int wheelId,
00122 int stationId,
00123 int sectorId,
00124 int slId,
00125 int layerId,
00126 int partId,
00127 int fCell,
00128 int lCell,
00129 int flagA,
00130 int flagC,
00131 int flagS );
00132 int set( const DTLayerId& id,
00133 int partId,
00134 int fCell,
00135 int lCell,
00136 int flagA,
00137 int flagC,
00138 int flagS );
00139 int setFlagA( int wheelId,
00140 int stationId,
00141 int sectorId,
00142 int slId,
00143 int layerId,
00144 int partId,
00145 int flag );
00146 int setFlagA( const DTLayerId& id,
00147 int partId,
00148 int flag );
00149 int setFlagC( int wheelId,
00150 int stationId,
00151 int sectorId,
00152 int slId,
00153 int layerId,
00154 int partId,
00155 int flag );
00156 int setFlagC( const DTLayerId& id,
00157 int partId,
00158 int flag );
00159 int setFlagS( int wheelId,
00160 int stationId,
00161 int sectorId,
00162 int slId,
00163 int layerId,
00164 int partId,
00165 int flag );
00166 int setFlagS( const DTLayerId& id,
00167 int partId,
00168 int flag );
00169
00171 typedef std::vector< std::pair<DTHVStatusId,
00172 DTHVStatusData> >::const_iterator
00173 const_iterator;
00174 const_iterator begin() const;
00175 const_iterator end() const;
00176
00177 private:
00178
00179 std::string dataVersion;
00180
00181 std::vector< std::pair<DTHVStatusId,DTHVStatusData> > dataList;
00182
00183 DTBufferTree<int,int>* dBuf;
00184
00186 void cacheMap() const;
00187 std::string mapName() const;
00188
00189 };
00190
00191 #endif // DTHVStatus_H
00192