CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/CondTools/DT/src/DTPosNeg.cc

Go to the documentation of this file.
00001 /*
00002  *  See header file for a description of this class.
00003  *
00004  *  $Date: 2008/12/15 10:53:21 $
00005  *  $Revision: 1.2 $
00006  *  \author Paolo Ronchese INFN Padova
00007  *
00008  */
00009 
00010 //-----------------------
00011 // This Class' Header --
00012 //-----------------------
00013 #include "CondTools/DT/interface/DTPosNeg.h"
00014 
00015 //-------------------------------
00016 // Collaborating Class Headers --
00017 //-------------------------------
00018 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00019 
00020 //---------------
00021 // C++ Headers --
00022 //---------------
00023 #include <iostream>
00024 
00025 //-------------------
00026 // Initializations --
00027 //-------------------
00028 bool DTPosNeg::initRequest = true;
00029 std::map<int,int> DTPosNeg::geomMap;
00030 
00031 //----------------
00032 // Constructors --
00033 //----------------
00034 DTPosNeg::DTPosNeg() {
00035 }
00036 
00037 //--------------
00038 // Destructor --
00039 //--------------
00040 DTPosNeg::~DTPosNeg() {
00041 }
00042 
00043 //--------------
00044 // Operations --
00045 //--------------
00046 /*
00047 DTPosNegCompare::operator()( const DTCCBId& idl,
00048                              const DTCCBId& idr ) {
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   //std::cout << "DTPosNeg::fillMap()" << std::endl;
00120   geomMap.clear();
00121 //  DTChamberId().rawId() , 
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