CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/CondFormats/DTObjects/interface/DTReadOutMapping.h

Go to the documentation of this file.
00001 #ifndef DTReadOutMapping_H
00002 #define DTReadOutMapping_H
00003 
00014 //----------------------
00015 // Base Class Headers --
00016 //----------------------
00017 
00018 
00019 //------------------------------------
00020 // Collaborating Class Declarations --
00021 //------------------------------------
00022 #include "CondFormats/DTObjects/interface/DTBufferTree.h"
00023 #include "DataFormats/MuonDetId/interface/DTWireId.h"
00024 
00025 //---------------
00026 // C++ Headers --
00027 //---------------
00028 #include <vector>
00029 #include <string>
00030 
00031 //              ---------------------
00032 //              -- Class Interface --
00033 //              ---------------------
00034 
00035 class DTReadOutGeometryLink {
00036 
00037  public:
00038 
00039   DTReadOutGeometryLink();
00040   ~DTReadOutGeometryLink();
00041 
00042   int     dduId;
00043   int     rosId;
00044   int     robId;
00045   int     tdcId;
00046   int channelId;
00047   int   wheelId;
00048   int stationId;
00049   int  sectorId;
00050   int      slId;
00051   int   layerId;
00052   int    cellId;
00053 
00054 };
00055 
00056 
00057 class DTReadOutMapping {
00058 
00059  public:
00060 
00063   DTReadOutMapping();
00064   DTReadOutMapping( const std::string& cell_map_version,
00065                     const std::string&  rob_map_version );
00066 
00069   ~DTReadOutMapping();
00070 
00073 
00074   int readOutToGeometry( int      dduId,
00075                          int      rosId,
00076                          int      robId,
00077                          int      tdcId,
00078                          int  channelId,
00079                          DTWireId& wireId ) const;
00080 
00081   int readOutToGeometry( int      dduId,
00082                          int      rosId,
00083                          int      robId,
00084                          int      tdcId,
00085                          int  channelId,
00086                          int&   wheelId,
00087                          int& stationId,
00088                          int&  sectorId,
00089                          int&      slId,
00090                          int&   layerId,
00091                          int&    cellId ) const;
00092 
00093   int geometryToReadOut( int    wheelId,
00094                          int  stationId,
00095                          int   sectorId,
00096                          int       slId,
00097                          int    layerId,
00098                          int     cellId,
00099                          int&     dduId,
00100                          int&     rosId,
00101                          int&     robId,
00102                          int&     tdcId,
00103                          int& channelId ) const;
00104   int geometryToReadOut( const DTWireId& wireId,
00105                          int&     dduId,
00106                          int&     rosId,
00107                          int&     robId,
00108                          int&     tdcId,
00109                          int& channelId ) const;
00110 
00112   const
00113   std::string& mapCellTdc() const;
00114   std::string& mapCellTdc();
00115   const
00116   std::string& mapRobRos() const;
00117   std::string& mapRobRos();
00118 
00120   void clear();
00121 
00123   int insertReadOutGeometryLink( int     dduId,
00124                                  int     rosId,
00125                                  int     robId,
00126                                  int     tdcId,
00127                                  int channelId,
00128                                  int   wheelId,
00129                                  int stationId,
00130                                  int  sectorId,
00131                                  int      slId,
00132                                  int   layerId,
00133                                  int    cellId );
00134 
00136   typedef std::vector<DTReadOutGeometryLink>::const_iterator const_iterator;
00137   const_iterator begin() const;
00138   const_iterator end() const;
00139 
00140  private:
00141 
00142  public:
00143   std::string cellMapVersion;
00144   std::string  robMapVersion;
00145 
00146   std::vector<DTReadOutGeometryLink> readOutChannelDriftTubeMap;
00147 
00148   DTBufferTree<int,int>* mType;
00149   DTBufferTree<int,int>* rgBuf;
00150   DTBufferTree<int,int>* rgROB;
00151   DTBufferTree<int,int>* rgROS;
00152   DTBufferTree<int,int>* rgDDU;
00153   DTBufferTree<int,int>* grBuf;
00154   DTBufferTree<int,
00155      std::vector<int>*>* grROB;
00156   DTBufferTree<int,
00157      std::vector<int>*>* grROS;
00158   DTBufferTree<int,
00159      std::vector<int>*>* grDDU;
00160 
00162   void cacheMap() const;
00163   std::string mapNameRG() const;
00164   std::string mapNameGR() const;
00165 
00166 };
00167 
00168 
00169 #endif // DTReadOutMapping_H
00170