00001 #ifndef DTDeadFlag_H
00002 #define DTDeadFlag_H
00003
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "DataFormats/MuonDetId/interface/DTWireId.h"
00023
00024
00025
00026
00027 #include <string>
00028 #include <vector>
00029
00030
00031
00032
00033
00034 class DTDeadFlagId {
00035
00036 public:
00037
00038 DTDeadFlagId();
00039 ~DTDeadFlagId();
00040
00041 int wheelId;
00042 int stationId;
00043 int sectorId;
00044 int slId;
00045 int layerId;
00046 int cellId;
00047
00048 };
00049
00050
00051 class DTDeadFlagData {
00052
00053 public:
00054
00055 DTDeadFlagData();
00056 ~DTDeadFlagData();
00057
00058 bool dead_HV;
00059 bool dead_TP;
00060 bool dead_RO;
00061 bool discCat;
00062
00063 };
00064
00065
00066 class DTDeadFlag {
00067
00068 public:
00069
00072 DTDeadFlag();
00073 DTDeadFlag( const std::string& version );
00074
00077 ~DTDeadFlag();
00078
00081
00082 int cellStatus( int wheelId,
00083 int stationId,
00084 int sectorId,
00085 int slId,
00086 int layerId,
00087 int cellId,
00088 bool& dead_HV,
00089 bool& dead_TP,
00090 bool& dead_RO,
00091 bool& discCat ) const
00092 { return get( wheelId, stationId, sectorId, slId, layerId, cellId,
00093 dead_HV, dead_TP, dead_RO, discCat ); };
00094 int cellStatus( const DTWireId& id,
00095 bool& dead_HV,
00096 bool& dead_TP,
00097 bool& dead_RO,
00098 bool& discCat ) const
00099 { return get( id, dead_HV, dead_TP, dead_RO, discCat ); };
00100 int get( int wheelId,
00101 int stationId,
00102 int sectorId,
00103 int slId,
00104 int layerId,
00105 int cellId,
00106 bool& dead_HV,
00107 bool& dead_TP,
00108 bool& dead_RO,
00109 bool& discCat ) const;
00110 int get( const DTWireId& id,
00111 bool& dead_HV,
00112 bool& dead_TP,
00113 bool& dead_RO,
00114 bool& discCat ) const;
00115
00117 const
00118 std::string& version() const;
00119 std::string& version();
00120
00122 void clear();
00123
00124 int setCellStatus( int wheelId,
00125 int stationId,
00126 int sectorId,
00127 int slId,
00128 int layerId,
00129 int cellId,
00130 bool dead_HV,
00131 bool dead_TP,
00132 bool dead_RO,
00133 bool discCat );
00134 int setCellStatus( const DTWireId& id,
00135 bool dead_HV,
00136 bool dead_TP,
00137 bool dead_RO,
00138 bool discCat );
00139
00140 int setCellDead_HV( int wheelId,
00141 int stationId,
00142 int sectorId,
00143 int slId,
00144 int layerId,
00145 int cellId,
00146 bool flag );
00147 int setCellDead_HV( const DTWireId& id,
00148 bool flag );
00149
00150 int setCellDead_TP( int wheelId,
00151 int stationId,
00152 int sectorId,
00153 int slId,
00154 int layerId,
00155 int cellId,
00156 bool flag );
00157 int setCellDead_TP( const DTWireId& id,
00158 bool flag );
00159
00160 int setCellDead_RO( int wheelId,
00161 int stationId,
00162 int sectorId,
00163 int slId,
00164 int layerId,
00165 int cellId,
00166 bool flag );
00167 int setCellDead_RO( const DTWireId& id,
00168 bool flag );
00169
00170 int setCellDiscCat( int wheelId,
00171 int stationId,
00172 int sectorId,
00173 int slId,
00174 int layerId,
00175 int cellId,
00176 bool flag );
00177 int setCellDiscCat( const DTWireId& id,
00178 bool flag );
00179
00181 typedef std::vector< std::pair<DTDeadFlagId,
00182 DTDeadFlagData> >::const_iterator
00183 const_iterator;
00184 const_iterator begin() const;
00185 const_iterator end() const;
00186
00187 private:
00188
00189 std::string dataVersion;
00190
00191 std::vector< std::pair<DTDeadFlagId,DTDeadFlagData> > dataList;
00192
00194 void cacheMap() const;
00195 std::string mapName() const;
00196
00197 };
00198
00199
00200 #endif // DTDeadFlag_H
00201