00001 #ifndef DTReadOutMapping_H
00002 #define DTReadOutMapping_H
00003
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "DataFormats/MuonDetId/interface/DTWireId.h"
00023
00024
00025
00026
00027 #include <vector>
00028 #include <string>
00029
00030
00031
00032
00033
00034 class DTReadOutGeometryLink {
00035
00036 public:
00037
00038 DTReadOutGeometryLink();
00039 ~DTReadOutGeometryLink();
00040
00041 int dduId;
00042 int rosId;
00043 int robId;
00044 int tdcId;
00045 int channelId;
00046 int wheelId;
00047 int stationId;
00048 int sectorId;
00049 int slId;
00050 int layerId;
00051 int cellId;
00052
00053 };
00054
00055
00056 class DTReadOutMapping {
00057
00058 public:
00059
00062 DTReadOutMapping();
00063 DTReadOutMapping( const std::string& cell_map_version,
00064 const std::string& rob_map_version );
00065
00068 ~DTReadOutMapping();
00069
00072
00073 int readOutToGeometry( int dduId,
00074 int rosId,
00075 int robId,
00076 int tdcId,
00077 int channelId,
00078 DTWireId& wireId ) const;
00079
00080 int readOutToGeometry( int dduId,
00081 int rosId,
00082 int robId,
00083 int tdcId,
00084 int channelId,
00085 int& wheelId,
00086 int& stationId,
00087 int& sectorId,
00088 int& slId,
00089 int& layerId,
00090 int& cellId ) const;
00091
00092 int geometryToReadOut( int wheelId,
00093 int stationId,
00094 int sectorId,
00095 int slId,
00096 int layerId,
00097 int cellId,
00098 int& dduId,
00099 int& rosId,
00100 int& robId,
00101 int& tdcId,
00102 int& channelId ) const;
00103 int geometryToReadOut( const DTWireId& wireId,
00104 int& dduId,
00105 int& rosId,
00106 int& robId,
00107 int& tdcId,
00108 int& channelId ) const;
00109
00111 const
00112 std::string& mapCellTdc() const;
00113 std::string& mapCellTdc();
00114 const
00115 std::string& mapRobRos() const;
00116 std::string& mapRobRos();
00117
00119 void clear();
00120
00122 int insertReadOutGeometryLink( int dduId,
00123 int rosId,
00124 int robId,
00125 int tdcId,
00126 int channelId,
00127 int wheelId,
00128 int stationId,
00129 int sectorId,
00130 int slId,
00131 int layerId,
00132 int cellId );
00133
00135 typedef std::vector<DTReadOutGeometryLink>::const_iterator const_iterator;
00136 const_iterator begin() const;
00137 const_iterator end() const;
00138
00139 private:
00140
00141 public:
00142 std::string cellMapVersion;
00143 std::string robMapVersion;
00144
00145 std::vector<DTReadOutGeometryLink> readOutChannelDriftTubeMap;
00146
00148 void cacheMap() const;
00149 std::string mapNameRG() const;
00150 std::string mapNameGR() const;
00151
00152 };
00153
00154
00155 #endif // DTReadOutMapping_H
00156