CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/CondFormats/DTObjects/interface/DTHVStatus.h

Go to the documentation of this file.
00001 #ifndef DTHVStatus_H
00002 #define DTHVStatus_H
00003 
00015 //----------------------
00016 // Base Class Headers --
00017 //----------------------
00018 
00019 
00020 //------------------------------------
00021 // Collaborating Class Declarations --
00022 //------------------------------------
00023 #include "CondFormats/DTObjects/interface/DTBufferTree.h"
00024 class DTWireId;
00025 class DTLayerId;
00026 class DTChamberId;
00027 
00028 //---------------
00029 // C++ Headers --
00030 //---------------
00031 #include <string>
00032 #include <vector>
00033 
00034 //              ---------------------
00035 //              -- Class Interface --
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