00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "CondTools/DT/interface/DTPosNeg.h"
00014
00015
00016
00017
00018 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00019
00020
00021
00022
00023 #include <iostream>
00024
00025
00026
00027
00028 bool DTPosNeg::initRequest = true;
00029 std::map<int,int> DTPosNeg::geomMap;
00030
00031
00032
00033
00034 DTPosNeg::DTPosNeg() {
00035 }
00036
00037
00038
00039
00040 DTPosNeg::~DTPosNeg() {
00041 }
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 void DTPosNeg::dump() {
00055
00056 if ( initRequest ) fillMap();
00057 std::map<int,int>::const_iterator iter = geomMap.begin();
00058 std::map<int,int>::const_iterator iend = geomMap.end();
00059 while ( iter != iend ) {
00060 const std::pair<int,int>& entry = *iter++;
00061 int cha = entry.first;
00062 int pnt = entry.second;
00063 int whe;
00064 int sec;
00065 int sta;
00066 decode( cha, whe, sec, sta );
00067 int p_n;
00068 int c_t;
00069 decode( pnt, p_n, c_t );
00070 if ( whe >= 0 ) std::cout << " ";
00071 std::cout << whe << " ";
00072 if ( sec < 10 ) std::cout << " ";
00073 std::cout << sec << " "
00074 << sta << " "
00075 << p_n << " "
00076 << c_t << std::endl;
00077 int pnc = getPN( whe, sec, sta );
00078 int ctc = getCT( whe, sec, sta );
00079 if ( ( pnc != p_n ) ||
00080 ( ctc != c_t ) ) std::cout << "****************** "
00081 << pnc << " " << ctc << std::endl;
00082 }
00083 return;
00084
00085 }
00086
00087
00088 int DTPosNeg::getPN( int whe, int sec, int sta ) {
00089 int p_n;
00090 int c_t;
00091 decode( getData( whe, sec, sta ), p_n, c_t );
00092 return p_n;
00093 }
00094
00095
00096 int DTPosNeg::getPN( const DTChamberId& cha ) {
00097 return getPN( cha.wheel(),
00098 cha.sector(),
00099 cha.station() );
00100 }
00101
00102
00103 int DTPosNeg::getCT( int whe, int sec, int sta ) {
00104 int p_n;
00105 int c_t;
00106 decode( getData( whe, sec, sta ), p_n, c_t );
00107 return c_t;
00108 }
00109
00110
00111 int DTPosNeg::getCT( const DTChamberId& cha ) {
00112 return getCT( cha.wheel(),
00113 cha.sector(),
00114 cha.station() );
00115 }
00116
00117
00118 void DTPosNeg::fillMap() {
00119
00120 geomMap.clear();
00121
00122
00123
00124
00125
00126 geomMap.insert( std::pair<int,int>( idCode( -2, 1, 1 ), pnCode( 1, 1 ) ) );
00127 geomMap.insert( std::pair<int,int>( idCode( -2, 1, 2 ), pnCode( 2, 2 ) ) );
00128 geomMap.insert( std::pair<int,int>( idCode( -2, 1, 3 ), pnCode( 0, 3 ) ) );
00129 geomMap.insert( std::pair<int,int>( idCode( -2, 1, 4 ), pnCode( 2, 4 ) ) );
00130 geomMap.insert( std::pair<int,int>( idCode( -2, 2, 1 ), pnCode( 1, 1 ) ) );
00131 geomMap.insert( std::pair<int,int>( idCode( -2, 2, 2 ), pnCode( 2, 2 ) ) );
00132 geomMap.insert( std::pair<int,int>( idCode( -2, 2, 3 ), pnCode( 0, 3 ) ) );
00133 geomMap.insert( std::pair<int,int>( idCode( -2, 2, 4 ), pnCode( 2, 4 ) ) );
00134 geomMap.insert( std::pair<int,int>( idCode( -2, 3, 1 ), pnCode( 1, 1 ) ) );
00135 geomMap.insert( std::pair<int,int>( idCode( -2, 3, 2 ), pnCode( 2, 2 ) ) );
00136 geomMap.insert( std::pair<int,int>( idCode( -2, 3, 3 ), pnCode( 0, 3 ) ) );
00137 geomMap.insert( std::pair<int,int>( idCode( -2, 3, 4 ), pnCode( 2, 4 ) ) );
00138 geomMap.insert( std::pair<int,int>( idCode( -2, 4, 1 ), pnCode( 1, 1 ) ) );
00139 geomMap.insert( std::pair<int,int>( idCode( -2, 4, 2 ), pnCode( 2, 2 ) ) );
00140 geomMap.insert( std::pair<int,int>( idCode( -2, 4, 3 ), pnCode( 0, 3 ) ) );
00141 geomMap.insert( std::pair<int,int>( idCode( -2, 4, 4 ), pnCode( 0, 6 ) ) );
00142 geomMap.insert( std::pair<int,int>( idCode( -2, 5, 1 ), pnCode( 1, 1 ) ) );
00143 geomMap.insert( std::pair<int,int>( idCode( -2, 5, 2 ), pnCode( 2, 2 ) ) );
00144 geomMap.insert( std::pair<int,int>( idCode( -2, 5, 3 ), pnCode( 0, 3 ) ) );
00145 geomMap.insert( std::pair<int,int>( idCode( -2, 5, 4 ), pnCode( 1, 4 ) ) );
00146 geomMap.insert( std::pair<int,int>( idCode( -2, 6, 1 ), pnCode( 1, 1 ) ) );
00147 geomMap.insert( std::pair<int,int>( idCode( -2, 6, 2 ), pnCode( 2, 2 ) ) );
00148 geomMap.insert( std::pair<int,int>( idCode( -2, 6, 3 ), pnCode( 0, 3 ) ) );
00149 geomMap.insert( std::pair<int,int>( idCode( -2, 6, 4 ), pnCode( 1, 4 ) ) );
00150 geomMap.insert( std::pair<int,int>( idCode( -2, 7, 1 ), pnCode( 1, 1 ) ) );
00151 geomMap.insert( std::pair<int,int>( idCode( -2, 7, 2 ), pnCode( 2, 2 ) ) );
00152 geomMap.insert( std::pair<int,int>( idCode( -2, 7, 3 ), pnCode( 0, 3 ) ) );
00153 geomMap.insert( std::pair<int,int>( idCode( -2, 7, 4 ), pnCode( 1, 4 ) ) );
00154 geomMap.insert( std::pair<int,int>( idCode( -2, 8, 1 ), pnCode( 1, 1 ) ) );
00155 geomMap.insert( std::pair<int,int>( idCode( -2, 8, 2 ), pnCode( 2, 2 ) ) );
00156 geomMap.insert( std::pair<int,int>( idCode( -2, 8, 3 ), pnCode( 0, 3 ) ) );
00157 geomMap.insert( std::pair<int,int>( idCode( -2, 8, 4 ), pnCode( 1, 4 ) ) );
00158 geomMap.insert( std::pair<int,int>( idCode( -2, 9, 1 ), pnCode( 1, 1 ) ) );
00159 geomMap.insert( std::pair<int,int>( idCode( -2, 9, 2 ), pnCode( 2, 2 ) ) );
00160 geomMap.insert( std::pair<int,int>( idCode( -2, 9, 3 ), pnCode( 0, 3 ) ) );
00161 geomMap.insert( std::pair<int,int>( idCode( -2, 9, 4 ), pnCode( 0, 5 ) ) );
00162 geomMap.insert( std::pair<int,int>( idCode( -2, 10, 1 ), pnCode( 1, 1 ) ) );
00163 geomMap.insert( std::pair<int,int>( idCode( -2, 10, 2 ), pnCode( 2, 2 ) ) );
00164 geomMap.insert( std::pair<int,int>( idCode( -2, 10, 3 ), pnCode( 0, 3 ) ) );
00165 geomMap.insert( std::pair<int,int>( idCode( -2, 10, 4 ), pnCode( 2, 7 ) ) );
00166 geomMap.insert( std::pair<int,int>( idCode( -2, 11, 1 ), pnCode( 1, 1 ) ) );
00167 geomMap.insert( std::pair<int,int>( idCode( -2, 11, 2 ), pnCode( 2, 2 ) ) );
00168 geomMap.insert( std::pair<int,int>( idCode( -2, 11, 3 ), pnCode( 0, 3 ) ) );
00169 geomMap.insert( std::pair<int,int>( idCode( -2, 11, 4 ), pnCode( 0, 5 ) ) );
00170 geomMap.insert( std::pair<int,int>( idCode( -2, 12, 1 ), pnCode( 1, 1 ) ) );
00171 geomMap.insert( std::pair<int,int>( idCode( -2, 12, 2 ), pnCode( 2, 2 ) ) );
00172 geomMap.insert( std::pair<int,int>( idCode( -2, 12, 3 ), pnCode( 0, 3 ) ) );
00173 geomMap.insert( std::pair<int,int>( idCode( -2, 12, 4 ), pnCode( 2, 4 ) ) );
00174 geomMap.insert( std::pair<int,int>( idCode( -2, 13, 4 ), pnCode( 0, 6 ) ) );
00175 geomMap.insert( std::pair<int,int>( idCode( -2, 14, 4 ), pnCode( 1, 7 ) ) );
00176 geomMap.insert( std::pair<int,int>( idCode( -1, 1, 1 ), pnCode( 1, 1 ) ) );
00177 geomMap.insert( std::pair<int,int>( idCode( -1, 1, 2 ), pnCode( 2, 2 ) ) );
00178 geomMap.insert( std::pair<int,int>( idCode( -1, 1, 3 ), pnCode( 0, 3 ) ) );
00179 geomMap.insert( std::pair<int,int>( idCode( -1, 1, 4 ), pnCode( 2, 4 ) ) );
00180 geomMap.insert( std::pair<int,int>( idCode( -1, 2, 1 ), pnCode( 1, 1 ) ) );
00181 geomMap.insert( std::pair<int,int>( idCode( -1, 2, 2 ), pnCode( 2, 2 ) ) );
00182 geomMap.insert( std::pair<int,int>( idCode( -1, 2, 3 ), pnCode( 0, 3 ) ) );
00183 geomMap.insert( std::pair<int,int>( idCode( -1, 2, 4 ), pnCode( 2, 4 ) ) );
00184 geomMap.insert( std::pair<int,int>( idCode( -1, 3, 1 ), pnCode( 1, 1 ) ) );
00185 geomMap.insert( std::pair<int,int>( idCode( -1, 3, 2 ), pnCode( 2, 2 ) ) );
00186 geomMap.insert( std::pair<int,int>( idCode( -1, 3, 3 ), pnCode( 0, 3 ) ) );
00187 geomMap.insert( std::pair<int,int>( idCode( -1, 3, 4 ), pnCode( 2, 4 ) ) );
00188 geomMap.insert( std::pair<int,int>( idCode( -1, 4, 1 ), pnCode( 1, 1 ) ) );
00189 geomMap.insert( std::pair<int,int>( idCode( -1, 4, 2 ), pnCode( 2, 2 ) ) );
00190 geomMap.insert( std::pair<int,int>( idCode( -1, 4, 3 ), pnCode( 0, 3 ) ) );
00191 geomMap.insert( std::pair<int,int>( idCode( -1, 4, 4 ), pnCode( 0, 6 ) ) );
00192 geomMap.insert( std::pair<int,int>( idCode( -1, 5, 1 ), pnCode( 1, 1 ) ) );
00193 geomMap.insert( std::pair<int,int>( idCode( -1, 5, 2 ), pnCode( 2, 2 ) ) );
00194 geomMap.insert( std::pair<int,int>( idCode( -1, 5, 3 ), pnCode( 0, 3 ) ) );
00195 geomMap.insert( std::pair<int,int>( idCode( -1, 5, 4 ), pnCode( 1, 4 ) ) );
00196 geomMap.insert( std::pair<int,int>( idCode( -1, 6, 1 ), pnCode( 1, 1 ) ) );
00197 geomMap.insert( std::pair<int,int>( idCode( -1, 6, 2 ), pnCode( 2, 2 ) ) );
00198 geomMap.insert( std::pair<int,int>( idCode( -1, 6, 3 ), pnCode( 0, 3 ) ) );
00199 geomMap.insert( std::pair<int,int>( idCode( -1, 6, 4 ), pnCode( 1, 4 ) ) );
00200 geomMap.insert( std::pair<int,int>( idCode( -1, 7, 1 ), pnCode( 1, 1 ) ) );
00201 geomMap.insert( std::pair<int,int>( idCode( -1, 7, 2 ), pnCode( 2, 2 ) ) );
00202 geomMap.insert( std::pair<int,int>( idCode( -1, 7, 3 ), pnCode( 0, 3 ) ) );
00203 geomMap.insert( std::pair<int,int>( idCode( -1, 7, 4 ), pnCode( 1, 4 ) ) );
00204 geomMap.insert( std::pair<int,int>( idCode( -1, 8, 1 ), pnCode( 1, 1 ) ) );
00205 geomMap.insert( std::pair<int,int>( idCode( -1, 8, 2 ), pnCode( 2, 2 ) ) );
00206 geomMap.insert( std::pair<int,int>( idCode( -1, 8, 3 ), pnCode( 0, 3 ) ) );
00207 geomMap.insert( std::pair<int,int>( idCode( -1, 8, 4 ), pnCode( 1, 4 ) ) );
00208 geomMap.insert( std::pair<int,int>( idCode( -1, 9, 1 ), pnCode( 1, 1 ) ) );
00209 geomMap.insert( std::pair<int,int>( idCode( -1, 9, 2 ), pnCode( 2, 2 ) ) );
00210 geomMap.insert( std::pair<int,int>( idCode( -1, 9, 3 ), pnCode( 0, 3 ) ) );
00211 geomMap.insert( std::pair<int,int>( idCode( -1, 9, 4 ), pnCode( 0, 5 ) ) );
00212 geomMap.insert( std::pair<int,int>( idCode( -1, 10, 1 ), pnCode( 1, 1 ) ) );
00213 geomMap.insert( std::pair<int,int>( idCode( -1, 10, 2 ), pnCode( 2, 2 ) ) );
00214 geomMap.insert( std::pair<int,int>( idCode( -1, 10, 3 ), pnCode( 0, 3 ) ) );
00215 geomMap.insert( std::pair<int,int>( idCode( -1, 10, 4 ), pnCode( 2, 7 ) ) );
00216 geomMap.insert( std::pair<int,int>( idCode( -1, 11, 1 ), pnCode( 1, 1 ) ) );
00217 geomMap.insert( std::pair<int,int>( idCode( -1, 11, 2 ), pnCode( 2, 2 ) ) );
00218 geomMap.insert( std::pair<int,int>( idCode( -1, 11, 3 ), pnCode( 0, 3 ) ) );
00219 geomMap.insert( std::pair<int,int>( idCode( -1, 11, 4 ), pnCode( 0, 5 ) ) );
00220 geomMap.insert( std::pair<int,int>( idCode( -1, 12, 1 ), pnCode( 1, 1 ) ) );
00221 geomMap.insert( std::pair<int,int>( idCode( -1, 12, 2 ), pnCode( 2, 2 ) ) );
00222 geomMap.insert( std::pair<int,int>( idCode( -1, 12, 3 ), pnCode( 0, 3 ) ) );
00223 geomMap.insert( std::pair<int,int>( idCode( -1, 12, 4 ), pnCode( 2, 4 ) ) );
00224 geomMap.insert( std::pair<int,int>( idCode( -1, 13, 4 ), pnCode( 0, 6 ) ) );
00225 geomMap.insert( std::pair<int,int>( idCode( -1, 14, 4 ), pnCode( 1, 7 ) ) );
00226 geomMap.insert( std::pair<int,int>( idCode( 0, 1, 1 ), pnCode( 1, 1 ) ) );
00227 geomMap.insert( std::pair<int,int>( idCode( 0, 1, 2 ), pnCode( 2, 2 ) ) );
00228 geomMap.insert( std::pair<int,int>( idCode( 0, 1, 3 ), pnCode( 0, 3 ) ) );
00229 geomMap.insert( std::pair<int,int>( idCode( 0, 1, 4 ), pnCode( 2, 4 ) ) );
00230 geomMap.insert( std::pair<int,int>( idCode( 0, 2, 1 ), pnCode( 2, 1 ) ) );
00231 geomMap.insert( std::pair<int,int>( idCode( 0, 2, 2 ), pnCode( 1, 2 ) ) );
00232 geomMap.insert( std::pair<int,int>( idCode( 0, 2, 3 ), pnCode( 0, 3 ) ) );
00233 geomMap.insert( std::pair<int,int>( idCode( 0, 2, 4 ), pnCode( 1, 4 ) ) );
00234 geomMap.insert( std::pair<int,int>( idCode( 0, 3, 1 ), pnCode( 2, 1 ) ) );
00235 geomMap.insert( std::pair<int,int>( idCode( 0, 3, 2 ), pnCode( 1, 2 ) ) );
00236 geomMap.insert( std::pair<int,int>( idCode( 0, 3, 3 ), pnCode( 0, 3 ) ) );
00237 geomMap.insert( std::pair<int,int>( idCode( 0, 3, 4 ), pnCode( 1, 4 ) ) );
00238 geomMap.insert( std::pair<int,int>( idCode( 0, 4, 1 ), pnCode( 1, 1 ) ) );
00239 geomMap.insert( std::pair<int,int>( idCode( 0, 4, 2 ), pnCode( 2, 2 ) ) );
00240 geomMap.insert( std::pair<int,int>( idCode( 0, 4, 3 ), pnCode( 0, 3 ) ) );
00241 geomMap.insert( std::pair<int,int>( idCode( 0, 4, 4 ), pnCode( 0, 6 ) ) );
00242 geomMap.insert( std::pair<int,int>( idCode( 0, 5, 1 ), pnCode( 1, 1 ) ) );
00243 geomMap.insert( std::pair<int,int>( idCode( 0, 5, 2 ), pnCode( 2, 2 ) ) );
00244 geomMap.insert( std::pair<int,int>( idCode( 0, 5, 3 ), pnCode( 0, 3 ) ) );
00245 geomMap.insert( std::pair<int,int>( idCode( 0, 5, 4 ), pnCode( 1, 4 ) ) );
00246 geomMap.insert( std::pair<int,int>( idCode( 0, 6, 1 ), pnCode( 2, 1 ) ) );
00247 geomMap.insert( std::pair<int,int>( idCode( 0, 6, 2 ), pnCode( 1, 2 ) ) );
00248 geomMap.insert( std::pair<int,int>( idCode( 0, 6, 3 ), pnCode( 0, 3 ) ) );
00249 geomMap.insert( std::pair<int,int>( idCode( 0, 6, 4 ), pnCode( 2, 4 ) ) );
00250 geomMap.insert( std::pair<int,int>( idCode( 0, 7, 1 ), pnCode( 2, 1 ) ) );
00251 geomMap.insert( std::pair<int,int>( idCode( 0, 7, 2 ), pnCode( 1, 2 ) ) );
00252 geomMap.insert( std::pair<int,int>( idCode( 0, 7, 3 ), pnCode( 0, 3 ) ) );
00253 geomMap.insert( std::pair<int,int>( idCode( 0, 7, 4 ), pnCode( 2, 4 ) ) );
00254 geomMap.insert( std::pair<int,int>( idCode( 0, 8, 1 ), pnCode( 1, 1 ) ) );
00255 geomMap.insert( std::pair<int,int>( idCode( 0, 8, 2 ), pnCode( 2, 2 ) ) );
00256 geomMap.insert( std::pair<int,int>( idCode( 0, 8, 3 ), pnCode( 0, 3 ) ) );
00257 geomMap.insert( std::pair<int,int>( idCode( 0, 8, 4 ), pnCode( 1, 4 ) ) );
00258 geomMap.insert( std::pair<int,int>( idCode( 0, 9, 1 ), pnCode( 1, 1 ) ) );
00259 geomMap.insert( std::pair<int,int>( idCode( 0, 9, 2 ), pnCode( 2, 2 ) ) );
00260 geomMap.insert( std::pair<int,int>( idCode( 0, 9, 3 ), pnCode( 0, 3 ) ) );
00261 geomMap.insert( std::pair<int,int>( idCode( 0, 9, 4 ), pnCode( 0, 5 ) ) );
00262 geomMap.insert( std::pair<int,int>( idCode( 0, 10, 1 ), pnCode( 2, 1 ) ) );
00263 geomMap.insert( std::pair<int,int>( idCode( 0, 10, 2 ), pnCode( 1, 2 ) ) );
00264 geomMap.insert( std::pair<int,int>( idCode( 0, 10, 3 ), pnCode( 0, 3 ) ) );
00265 geomMap.insert( std::pair<int,int>( idCode( 0, 10, 4 ), pnCode( 2, 7 ) ) );
00266 geomMap.insert( std::pair<int,int>( idCode( 0, 11, 1 ), pnCode( 2, 1 ) ) );
00267 geomMap.insert( std::pair<int,int>( idCode( 0, 11, 2 ), pnCode( 1, 2 ) ) );
00268 geomMap.insert( std::pair<int,int>( idCode( 0, 11, 3 ), pnCode( 0, 3 ) ) );
00269 geomMap.insert( std::pair<int,int>( idCode( 0, 11, 4 ), pnCode( 0, 5 ) ) );
00270 geomMap.insert( std::pair<int,int>( idCode( 0, 12, 1 ), pnCode( 1, 1 ) ) );
00271 geomMap.insert( std::pair<int,int>( idCode( 0, 12, 2 ), pnCode( 2, 2 ) ) );
00272 geomMap.insert( std::pair<int,int>( idCode( 0, 12, 3 ), pnCode( 0, 3 ) ) );
00273 geomMap.insert( std::pair<int,int>( idCode( 0, 12, 4 ), pnCode( 2, 4 ) ) );
00274 geomMap.insert( std::pair<int,int>( idCode( 0, 13, 4 ), pnCode( 0, 6 ) ) );
00275 geomMap.insert( std::pair<int,int>( idCode( 0, 14, 4 ), pnCode( 1, 7 ) ) );
00276 geomMap.insert( std::pair<int,int>( idCode( 1, 1, 1 ), pnCode( 2, 1 ) ) );
00277 geomMap.insert( std::pair<int,int>( idCode( 1, 1, 2 ), pnCode( 1, 2 ) ) );
00278 geomMap.insert( std::pair<int,int>( idCode( 1, 1, 3 ), pnCode( 0, 3 ) ) );
00279 geomMap.insert( std::pair<int,int>( idCode( 1, 1, 4 ), pnCode( 1, 4 ) ) );
00280 geomMap.insert( std::pair<int,int>( idCode( 1, 2, 1 ), pnCode( 2, 1 ) ) );
00281 geomMap.insert( std::pair<int,int>( idCode( 1, 2, 2 ), pnCode( 1, 2 ) ) );
00282 geomMap.insert( std::pair<int,int>( idCode( 1, 2, 3 ), pnCode( 0, 3 ) ) );
00283 geomMap.insert( std::pair<int,int>( idCode( 1, 2, 4 ), pnCode( 1, 4 ) ) );
00284 geomMap.insert( std::pair<int,int>( idCode( 1, 3, 1 ), pnCode( 2, 1 ) ) );
00285 geomMap.insert( std::pair<int,int>( idCode( 1, 3, 2 ), pnCode( 1, 2 ) ) );
00286 geomMap.insert( std::pair<int,int>( idCode( 1, 3, 3 ), pnCode( 0, 3 ) ) );
00287 geomMap.insert( std::pair<int,int>( idCode( 1, 3, 4 ), pnCode( 1, 4 ) ) );
00288 geomMap.insert( std::pair<int,int>( idCode( 1, 4, 1 ), pnCode( 2, 1 ) ) );
00289 geomMap.insert( std::pair<int,int>( idCode( 1, 4, 2 ), pnCode( 1, 2 ) ) );
00290 geomMap.insert( std::pair<int,int>( idCode( 1, 4, 3 ), pnCode( 0, 3 ) ) );
00291 geomMap.insert( std::pair<int,int>( idCode( 1, 4, 4 ), pnCode( 0, 6 ) ) );
00292 geomMap.insert( std::pair<int,int>( idCode( 1, 5, 1 ), pnCode( 2, 1 ) ) );
00293 geomMap.insert( std::pair<int,int>( idCode( 1, 5, 2 ), pnCode( 1, 2 ) ) );
00294 geomMap.insert( std::pair<int,int>( idCode( 1, 5, 3 ), pnCode( 0, 3 ) ) );
00295 geomMap.insert( std::pair<int,int>( idCode( 1, 5, 4 ), pnCode( 2, 4 ) ) );
00296 geomMap.insert( std::pair<int,int>( idCode( 1, 6, 1 ), pnCode( 2, 1 ) ) );
00297 geomMap.insert( std::pair<int,int>( idCode( 1, 6, 2 ), pnCode( 1, 2 ) ) );
00298 geomMap.insert( std::pair<int,int>( idCode( 1, 6, 3 ), pnCode( 0, 3 ) ) );
00299 geomMap.insert( std::pair<int,int>( idCode( 1, 6, 4 ), pnCode( 2, 4 ) ) );
00300 geomMap.insert( std::pair<int,int>( idCode( 1, 7, 1 ), pnCode( 2, 1 ) ) );
00301 geomMap.insert( std::pair<int,int>( idCode( 1, 7, 2 ), pnCode( 1, 2 ) ) );
00302 geomMap.insert( std::pair<int,int>( idCode( 1, 7, 3 ), pnCode( 0, 3 ) ) );
00303 geomMap.insert( std::pair<int,int>( idCode( 1, 7, 4 ), pnCode( 2, 4 ) ) );
00304 geomMap.insert( std::pair<int,int>( idCode( 1, 8, 1 ), pnCode( 2, 1 ) ) );
00305 geomMap.insert( std::pair<int,int>( idCode( 1, 8, 2 ), pnCode( 1, 2 ) ) );
00306 geomMap.insert( std::pair<int,int>( idCode( 1, 8, 3 ), pnCode( 0, 3 ) ) );
00307 geomMap.insert( std::pair<int,int>( idCode( 1, 8, 4 ), pnCode( 1, 4 ) ) );
00308 geomMap.insert( std::pair<int,int>( idCode( 1, 9, 1 ), pnCode( 2, 1 ) ) );
00309 geomMap.insert( std::pair<int,int>( idCode( 1, 9, 2 ), pnCode( 1, 2 ) ) );
00310 geomMap.insert( std::pair<int,int>( idCode( 1, 9, 3 ), pnCode( 0, 3 ) ) );
00311 geomMap.insert( std::pair<int,int>( idCode( 1, 9, 4 ), pnCode( 0, 5 ) ) );
00312 geomMap.insert( std::pair<int,int>( idCode( 1, 10, 1 ), pnCode( 2, 1 ) ) );
00313 geomMap.insert( std::pair<int,int>( idCode( 1, 10, 2 ), pnCode( 1, 2 ) ) );
00314 geomMap.insert( std::pair<int,int>( idCode( 1, 10, 3 ), pnCode( 0, 3 ) ) );
00315 geomMap.insert( std::pair<int,int>( idCode( 1, 10, 4 ), pnCode( 2, 7 ) ) );
00316 geomMap.insert( std::pair<int,int>( idCode( 1, 11, 1 ), pnCode( 2, 1 ) ) );
00317 geomMap.insert( std::pair<int,int>( idCode( 1, 11, 2 ), pnCode( 1, 2 ) ) );
00318 geomMap.insert( std::pair<int,int>( idCode( 1, 11, 3 ), pnCode( 0, 3 ) ) );
00319 geomMap.insert( std::pair<int,int>( idCode( 1, 11, 4 ), pnCode( 0, 5 ) ) );
00320 geomMap.insert( std::pair<int,int>( idCode( 1, 12, 1 ), pnCode( 2, 1 ) ) );
00321 geomMap.insert( std::pair<int,int>( idCode( 1, 12, 2 ), pnCode( 1, 2 ) ) );
00322 geomMap.insert( std::pair<int,int>( idCode( 1, 12, 3 ), pnCode( 0, 3 ) ) );
00323 geomMap.insert( std::pair<int,int>( idCode( 1, 12, 4 ), pnCode( 2, 4 ) ) );
00324 geomMap.insert( std::pair<int,int>( idCode( 1, 13, 4 ), pnCode( 0, 6 ) ) );
00325 geomMap.insert( std::pair<int,int>( idCode( 1, 14, 4 ), pnCode( 1, 7 ) ) );
00326 geomMap.insert( std::pair<int,int>( idCode( 2, 1, 1 ), pnCode( 2, 1 ) ) );
00327 geomMap.insert( std::pair<int,int>( idCode( 2, 1, 2 ), pnCode( 1, 2 ) ) );
00328 geomMap.insert( std::pair<int,int>( idCode( 2, 1, 3 ), pnCode( 0, 3 ) ) );
00329 geomMap.insert( std::pair<int,int>( idCode( 2, 1, 4 ), pnCode( 1, 4 ) ) );
00330 geomMap.insert( std::pair<int,int>( idCode( 2, 2, 1 ), pnCode( 2, 1 ) ) );
00331 geomMap.insert( std::pair<int,int>( idCode( 2, 2, 2 ), pnCode( 1, 2 ) ) );
00332 geomMap.insert( std::pair<int,int>( idCode( 2, 2, 3 ), pnCode( 0, 3 ) ) );
00333 geomMap.insert( std::pair<int,int>( idCode( 2, 2, 4 ), pnCode( 1, 4 ) ) );
00334 geomMap.insert( std::pair<int,int>( idCode( 2, 3, 1 ), pnCode( 2, 1 ) ) );
00335 geomMap.insert( std::pair<int,int>( idCode( 2, 3, 2 ), pnCode( 1, 2 ) ) );
00336 geomMap.insert( std::pair<int,int>( idCode( 2, 3, 3 ), pnCode( 0, 3 ) ) );
00337 geomMap.insert( std::pair<int,int>( idCode( 2, 3, 4 ), pnCode( 1, 4 ) ) );
00338 geomMap.insert( std::pair<int,int>( idCode( 2, 4, 1 ), pnCode( 2, 1 ) ) );
00339 geomMap.insert( std::pair<int,int>( idCode( 2, 4, 2 ), pnCode( 1, 2 ) ) );
00340 geomMap.insert( std::pair<int,int>( idCode( 2, 4, 3 ), pnCode( 0, 3 ) ) );
00341 geomMap.insert( std::pair<int,int>( idCode( 2, 4, 4 ), pnCode( 0, 6 ) ) );
00342 geomMap.insert( std::pair<int,int>( idCode( 2, 5, 1 ), pnCode( 2, 1 ) ) );
00343 geomMap.insert( std::pair<int,int>( idCode( 2, 5, 2 ), pnCode( 1, 2 ) ) );
00344 geomMap.insert( std::pair<int,int>( idCode( 2, 5, 3 ), pnCode( 0, 3 ) ) );
00345 geomMap.insert( std::pair<int,int>( idCode( 2, 5, 4 ), pnCode( 2, 4 ) ) );
00346 geomMap.insert( std::pair<int,int>( idCode( 2, 6, 1 ), pnCode( 2, 1 ) ) );
00347 geomMap.insert( std::pair<int,int>( idCode( 2, 6, 2 ), pnCode( 1, 2 ) ) );
00348 geomMap.insert( std::pair<int,int>( idCode( 2, 6, 3 ), pnCode( 0, 3 ) ) );
00349 geomMap.insert( std::pair<int,int>( idCode( 2, 6, 4 ), pnCode( 2, 4 ) ) );
00350 geomMap.insert( std::pair<int,int>( idCode( 2, 7, 1 ), pnCode( 2, 1 ) ) );
00351 geomMap.insert( std::pair<int,int>( idCode( 2, 7, 2 ), pnCode( 1, 2 ) ) );
00352 geomMap.insert( std::pair<int,int>( idCode( 2, 7, 3 ), pnCode( 0, 3 ) ) );
00353 geomMap.insert( std::pair<int,int>( idCode( 2, 7, 4 ), pnCode( 2, 4 ) ) );
00354 geomMap.insert( std::pair<int,int>( idCode( 2, 8, 1 ), pnCode( 2, 1 ) ) );
00355 geomMap.insert( std::pair<int,int>( idCode( 2, 8, 2 ), pnCode( 1, 2 ) ) );
00356 geomMap.insert( std::pair<int,int>( idCode( 2, 8, 3 ), pnCode( 0, 3 ) ) );
00357 geomMap.insert( std::pair<int,int>( idCode( 2, 8, 4 ), pnCode( 2, 4 ) ) );
00358 geomMap.insert( std::pair<int,int>( idCode( 2, 9, 1 ), pnCode( 2, 1 ) ) );
00359 geomMap.insert( std::pair<int,int>( idCode( 2, 9, 2 ), pnCode( 1, 2 ) ) );
00360 geomMap.insert( std::pair<int,int>( idCode( 2, 9, 3 ), pnCode( 0, 3 ) ) );
00361 geomMap.insert( std::pair<int,int>( idCode( 2, 9, 4 ), pnCode( 0, 5 ) ) );
00362 geomMap.insert( std::pair<int,int>( idCode( 2, 10, 1 ), pnCode( 2, 1 ) ) );
00363 geomMap.insert( std::pair<int,int>( idCode( 2, 10, 2 ), pnCode( 1, 2 ) ) );
00364 geomMap.insert( std::pair<int,int>( idCode( 2, 10, 3 ), pnCode( 0, 3 ) ) );
00365 geomMap.insert( std::pair<int,int>( idCode( 2, 10, 4 ), pnCode( 2, 7 ) ) );
00366 geomMap.insert( std::pair<int,int>( idCode( 2, 11, 1 ), pnCode( 2, 1 ) ) );
00367 geomMap.insert( std::pair<int,int>( idCode( 2, 11, 2 ), pnCode( 1, 2 ) ) );
00368 geomMap.insert( std::pair<int,int>( idCode( 2, 11, 3 ), pnCode( 0, 3 ) ) );
00369 geomMap.insert( std::pair<int,int>( idCode( 2, 11, 4 ), pnCode( 0, 5 ) ) );
00370 geomMap.insert( std::pair<int,int>( idCode( 2, 12, 1 ), pnCode( 2, 1 ) ) );
00371 geomMap.insert( std::pair<int,int>( idCode( 2, 12, 2 ), pnCode( 1, 2 ) ) );
00372 geomMap.insert( std::pair<int,int>( idCode( 2, 12, 3 ), pnCode( 0, 3 ) ) );
00373 geomMap.insert( std::pair<int,int>( idCode( 2, 12, 4 ), pnCode( 1, 4 ) ) );
00374 geomMap.insert( std::pair<int,int>( idCode( 2, 13, 4 ), pnCode( 0, 6 ) ) );
00375 geomMap.insert( std::pair<int,int>( idCode( 2, 14, 4 ), pnCode( 1, 7 ) ) );
00376
00377 initRequest = false;
00378 }
00379
00380
00381 int DTPosNeg::idCode( int whe, int sec, int sta ) {
00382 return ( ( ( ( whe + 3 ) * 100 ) + sec ) * 10 ) + sta;
00383 }
00384
00385
00386 int DTPosNeg::pnCode( int p, int t ) {
00387 return ( p * 1000 ) + t;
00388 }
00389
00390
00391 void DTPosNeg::decode( int code, int& whe, int& sec, int& sta ) {
00392 whe = ( code / 1000 ) - 3;
00393 sec = ( code / 10 ) % 100;
00394 sta = code % 10;
00395 return;
00396 }
00397
00398
00399 void DTPosNeg::decode( int code, int& p, int& t ) {
00400 p = code / 1000;
00401 t = code % 1000;
00402 return;
00403 }
00404
00405 int DTPosNeg::getData( int whe, int sec, int sta ) {
00406 if ( initRequest ) fillMap();
00407 std::map<int,int>::const_iterator iter = geomMap.find( idCode( whe, sec, sta ) );
00408 std::map<int,int>::const_iterator iend = geomMap.end();
00409 if ( iter == iend ) return 999999;
00410 return iter->second;
00411 }
00412