![]() |
![]() |
00001 #ifndef GUARD_cscmap_H 00002 #define GUARD_cscmap_H 00003 00004 #include <iostream> 00005 #include "OnlineDB/Oracle/interface/Oracle.h" 00006 #include <string> 00007 00008 class cscmap 00009 { 00010 private: 00011 00012 oracle::occi::Environment *env; 00013 oracle::occi::Connection *con; 00014 00015 public : 00019 cscmap () throw (oracle::occi::SQLException); 00023 ~cscmap () throw (oracle::occi::SQLException); 00024 00025 /* Method 'crate0_chamber' returns for a given logical crate 00026 | number 'crate0' (values 0-59) and DMB number 'dmb' 00027 | (1-5,7-10; for station 4 (no ring 2) DMB No 1-3) 00028 | chamber identifiers: 'chamber_id' is a string like 'ME+2/2/27' 00029 | and 'chamber_num' - a corresponding numeric identifier: 00030 | 'ME+2/2/27' => 220122270. Digits from left to right mean: 00031 | 2 - Muon system, 2 - CSC (1=DT,3=RPC), 0 - to separate from further 00032 | digits, 1 - +Endcap (2 - -Endcap), 2 - station number, 2 - ring number, 00033 | 27 - chamber number, 0 - digit reserved for layer number (=0 for 00034 | the whole chamber). 'sector' - returns trigger sector number. 00035 | If 'chamber_num' and 'sector' return -100, it means that 'crate0' 00036 | is outside the permitted range; -10 means that 'dmb' is outside 00037 | the permitted range. 00038 */ 00039 void crate0_chamber (int crate0, int dmb, std::string *chamber_id, 00040 int *chamber_num, int *sector, 00041 int *first_strip_index, int *strips_per_layer, 00042 int *chamber_index); 00043 /* Method 'crate_chamber' returns similar to previous information, 00044 | but for physical (installed) 'crate' number. By now (2005/11/16) 00045 | only 2 crates are installed (0 and 1). 00046 | -1 returned means that infor mation for non-installed crate is requested. 00047 */ 00048 void crate_chamber (int crate, int dmb, std::string *chamber_id, 00049 int *chamber_num, int *sector, 00050 int *first_strip_index, int *strips_per_layer, 00051 int *chamber_index); 00052 /* Method 'chamber_crate' returns information for a given chamber, 00053 | 'chamber_id', (like 'ME+2/2/27'). 'crate' - physical (installed) 00054 | crate number (-1 means that crate for the given chamber is not 00055 | installed), 'dmb' - DMB number (1-5,7-10), 'sector' - trigger sector 00056 | number, 'chamber_num' - numeric chamber identifier (see above), 00057 | 'crate0' - logical crate number. 00058 | -100 returned means that 'chamber_id' format is incorrect. 00059 */ 00060 void chamber_crate (std::string chamber_id, int *crate, int *dmb, 00061 int *sector, int *chamber_num, int *crate0, 00062 int *first_strip_index, int *strips_per_layer, 00063 int *chamber_index); 00064 00065 }; // end of class cscmap 00066 #endif