Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-10-12 04:20:55

0001 #include "OnlineDB/CSCCondDB/interface/CSCMap1.h"
0002 #include <cstdlib>
0003 #include <cassert>
0004 
0005 /**
0006    * Constructor for cscmap1
0007    */
0008 cscmap1::cscmap1() noexcept(false) {
0009   std::string db_user;
0010   std::string db_pass;
0011   env = oracle::occi::Environment::createEnvironment(oracle::occi::Environment::DEFAULT);
0012   char *c_user = std::getenv("CSCMAP_AUTH_USER");
0013   char *c_pass = std::getenv("CSCMAP_AUTH_PASSWORD");
0014   assert(c_user);
0015   assert(c_pass);
0016   db_user = std::string(c_user);
0017   db_pass = std::string(c_pass);
0018   con = env->createConnection(db_user, db_pass, "cms_orcoff_prod");
0019   std::cout << "Connection to mapping DB is done." << std::endl;
0020 }  // end of constructor cscmap1 ()
0021 
0022 /**
0023    * Destructor for cscmap1.
0024    */
0025 cscmap1::~cscmap1() noexcept(false) {
0026   env->terminateConnection(con);
0027   oracle::occi::Environment::terminateEnvironment(env);
0028 }  // end of ~cscmap1 ()
0029 
0030 void cscmap1::chamber(int chamberid, CSCMapItem::MapItem *item) {
0031   oracle::occi::Statement *stmt = con->createStatement();
0032 
0033   stmt->setSQL(
0034       "begin cms_emu_cern.cscmap.chamberid_crate(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, "
0035       ":16, :17, :18, :19, :20); end;");
0036 
0037   stmt->setInt(1, chamberid);
0038   stmt->registerOutParam(2, oracle::occi::OCCISTRING, 10);
0039   stmt->registerOutParam(3, oracle::occi::OCCIINT);
0040   stmt->registerOutParam(4, oracle::occi::OCCIINT);
0041   stmt->registerOutParam(5, oracle::occi::OCCIINT);
0042   stmt->registerOutParam(6, oracle::occi::OCCIINT);
0043   stmt->registerOutParam(7, oracle::occi::OCCIINT);
0044   stmt->registerOutParam(8, oracle::occi::OCCIINT);
0045   stmt->registerOutParam(9, oracle::occi::OCCIINT);
0046   stmt->registerOutParam(10, oracle::occi::OCCISTRING, 10);
0047   stmt->registerOutParam(11, oracle::occi::OCCIINT);
0048   stmt->registerOutParam(12, oracle::occi::OCCIINT);
0049   stmt->registerOutParam(13, oracle::occi::OCCIINT);
0050   stmt->registerOutParam(14, oracle::occi::OCCIINT);
0051   stmt->registerOutParam(15, oracle::occi::OCCIINT);
0052   stmt->registerOutParam(16, oracle::occi::OCCIINT);
0053   stmt->registerOutParam(17, oracle::occi::OCCIINT);
0054   stmt->registerOutParam(18, oracle::occi::OCCIINT);
0055   stmt->registerOutParam(19, oracle::occi::OCCIINT);
0056   stmt->registerOutParam(20, oracle::occi::OCCIINT);
0057 
0058   stmt->execute();  //execute procedure
0059 
0060   item->chamberLabel = stmt->getString(10);
0061   item->chamberId = chamberid;
0062   int chamber = chamberid / 10 % 100;
0063   int rest = (chamberid - chamber * 10) / 1000;
0064   int ring = rest % 10;
0065   rest = (rest - ring) / 10;
0066   int station = rest % 10;
0067   int endcap = (rest - station) / 10;
0068   item->endcap = endcap;
0069   item->station = station;
0070   item->ring = ring;
0071   item->chamber = chamber;
0072   item->cscIndex = stmt->getInt(13);
0073   item->layerIndex = stmt->getInt(14);
0074   item->stripIndex = stmt->getInt(15);
0075   item->anodeIndex = stmt->getInt(16);
0076   item->strips = stmt->getInt(11);
0077   item->anodes = stmt->getInt(12);
0078   item->crateLabel = stmt->getString(2);
0079   item->crateid = stmt->getInt(3);
0080   item->sector = stmt->getInt(8);
0081   item->trig_sector = stmt->getInt(9);
0082   item->dmb = stmt->getInt(5);
0083   item->cscid = stmt->getInt(7);
0084 
0085   stmt->setSQL(
0086       "begin cms_emu_cern.ddumap.chamberid_ddu(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, "
0087       ":17, :18, :19); end;");
0088 
0089   stmt->setInt(1, chamberid);
0090   stmt->registerOutParam(2, oracle::occi::OCCIINT);
0091   stmt->registerOutParam(3, oracle::occi::OCCIINT);
0092   stmt->registerOutParam(4, oracle::occi::OCCIINT);
0093   stmt->registerOutParam(5, oracle::occi::OCCIINT);
0094   stmt->registerOutParam(6, oracle::occi::OCCISTRING, 10);
0095   stmt->registerOutParam(7, oracle::occi::OCCIINT);
0096   stmt->registerOutParam(8, oracle::occi::OCCIINT);
0097   stmt->registerOutParam(9, oracle::occi::OCCIINT);
0098   stmt->registerOutParam(10, oracle::occi::OCCISTRING, 10);
0099   stmt->registerOutParam(11, oracle::occi::OCCIINT);
0100   stmt->registerOutParam(12, oracle::occi::OCCISTRING, 10);
0101   stmt->registerOutParam(13, oracle::occi::OCCIINT);
0102   stmt->registerOutParam(14, oracle::occi::OCCISTRING, 10);
0103   stmt->registerOutParam(15, oracle::occi::OCCIINT);
0104   stmt->registerOutParam(16, oracle::occi::OCCIINT);
0105   stmt->registerOutParam(17, oracle::occi::OCCIINT);
0106   stmt->registerOutParam(18, oracle::occi::OCCIINT);
0107   stmt->registerOutParam(19, oracle::occi::OCCIINT);
0108 
0109   stmt->execute();  //execute procedure
0110 
0111   item->ddu = stmt->getInt(2);
0112   item->ddu_input = stmt->getInt(5);
0113   item->slink = stmt->getInt(7);
0114 
0115   item->fed_crate = stmt->getInt(3);
0116   item->ddu_slot = stmt->getInt(4);
0117   item->dcc_fifo = stmt->getString(6);
0118   item->fiber_crate = stmt->getInt(8);
0119   item->fiber_pos = stmt->getInt(9);
0120   item->fiber_socket = stmt->getString(10);
0121 
0122   con->terminateStatement(stmt);
0123 }  //end of chamber
0124 
0125 void cscmap1::cratedmb(int crate, int dmb, CSCMapItem::MapItem *item) {
0126   oracle::occi::Statement *stmt = con->createStatement();
0127 
0128   stmt->setSQL(
0129       "begin cms_emu_cern.cscmap.crateid_chamber(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, "
0130       ":16, :17); end;");
0131 
0132   stmt->setInt(1, crate);
0133   stmt->setInt(2, dmb);
0134   stmt->registerOutParam(3, oracle::occi::OCCISTRING, 10);
0135   stmt->registerOutParam(4, oracle::occi::OCCIINT);
0136   stmt->registerOutParam(5, oracle::occi::OCCIINT);
0137   stmt->registerOutParam(6, oracle::occi::OCCIINT);
0138   stmt->registerOutParam(7, oracle::occi::OCCIINT);
0139   stmt->registerOutParam(8, oracle::occi::OCCIINT);
0140   stmt->registerOutParam(9, oracle::occi::OCCIINT);
0141   stmt->registerOutParam(10, oracle::occi::OCCIINT);
0142   stmt->registerOutParam(11, oracle::occi::OCCISTRING, 10);
0143   stmt->registerOutParam(12, oracle::occi::OCCIINT);
0144   stmt->registerOutParam(13, oracle::occi::OCCIINT);
0145   stmt->registerOutParam(14, oracle::occi::OCCIINT);
0146   stmt->registerOutParam(15, oracle::occi::OCCIINT);
0147   stmt->registerOutParam(16, oracle::occi::OCCIINT);
0148   stmt->registerOutParam(17, oracle::occi::OCCIINT);
0149 
0150   stmt->execute();  //execute procedure
0151 
0152   item->chamberLabel = stmt->getString(3);
0153   item->chamberId = stmt->getInt(4);
0154   int chamberid = item->chamberId;
0155   int chamber = chamberid / 10 % 100;
0156   int rest = (chamberid - chamber * 10) / 1000;
0157   int ring = rest % 10;
0158   rest = (rest - ring) / 10;
0159   int station = rest % 10;
0160   int endcap = (rest - station) / 10;
0161   item->endcap = endcap;
0162   item->station = station;
0163   item->ring = ring;
0164   item->chamber = chamber;
0165   item->cscIndex = stmt->getInt(14);
0166   item->layerIndex = stmt->getInt(15);
0167   item->stripIndex = stmt->getInt(16);
0168   item->anodeIndex = stmt->getInt(17);
0169   item->strips = stmt->getInt(12);
0170   item->anodes = stmt->getInt(13);
0171   item->crateLabel = stmt->getString(11);
0172   item->crateid = stmt->getInt(9);
0173   item->sector = stmt->getInt(7);
0174   item->trig_sector = stmt->getInt(8);
0175   item->dmb = dmb;
0176   item->cscid = stmt->getInt(5);
0177 
0178   stmt->setSQL(
0179       "begin cms_emu_cern.ddumap.chamberid_ddu(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, "
0180       ":17, :18, :19); end;");
0181 
0182   stmt->setInt(1, chamberid);
0183   stmt->registerOutParam(2, oracle::occi::OCCIINT);
0184   stmt->registerOutParam(3, oracle::occi::OCCIINT);
0185   stmt->registerOutParam(4, oracle::occi::OCCIINT);
0186   stmt->registerOutParam(5, oracle::occi::OCCIINT);
0187   stmt->registerOutParam(6, oracle::occi::OCCISTRING, 10);
0188   stmt->registerOutParam(7, oracle::occi::OCCIINT);
0189   stmt->registerOutParam(8, oracle::occi::OCCIINT);
0190   stmt->registerOutParam(9, oracle::occi::OCCIINT);
0191   stmt->registerOutParam(10, oracle::occi::OCCISTRING, 10);
0192   stmt->registerOutParam(11, oracle::occi::OCCIINT);
0193   stmt->registerOutParam(12, oracle::occi::OCCISTRING, 10);
0194   stmt->registerOutParam(13, oracle::occi::OCCIINT);
0195   stmt->registerOutParam(14, oracle::occi::OCCISTRING, 10);
0196   stmt->registerOutParam(15, oracle::occi::OCCIINT);
0197   stmt->registerOutParam(16, oracle::occi::OCCIINT);
0198   stmt->registerOutParam(17, oracle::occi::OCCIINT);
0199   stmt->registerOutParam(18, oracle::occi::OCCIINT);
0200   stmt->registerOutParam(19, oracle::occi::OCCIINT);
0201 
0202   stmt->execute();  //execute procedure
0203 
0204   item->ddu = stmt->getInt(2);
0205   item->ddu_input = stmt->getInt(5);
0206   item->slink = stmt->getInt(7);
0207 
0208   item->fed_crate = stmt->getInt(3);
0209   item->ddu_slot = stmt->getInt(4);
0210   item->dcc_fifo = stmt->getString(6);
0211   item->fiber_crate = stmt->getInt(8);
0212   item->fiber_pos = stmt->getInt(9);
0213   item->fiber_socket = stmt->getString(10);
0214 
0215   con->terminateStatement(stmt);
0216 }  //end of cratedmb
0217 
0218 void cscmap1::ruiddu(int rui, int ddu_input, CSCMapItem::MapItem *item) {
0219   oracle::occi::Statement *stmt = con->createStatement();
0220 
0221   stmt->setSQL(
0222       "begin cms_emu_cern.ddumap.ddu_chamber(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, "
0223       ":17, :18, :19); end;");
0224 
0225   stmt->setInt(1, rui);
0226   stmt->setInt(2, ddu_input);
0227   stmt->registerOutParam(3, oracle::occi::OCCIINT);
0228   stmt->registerOutParam(4, oracle::occi::OCCIINT);
0229   stmt->registerOutParam(5, oracle::occi::OCCISTRING, 10);
0230   stmt->registerOutParam(6, oracle::occi::OCCIINT);
0231   stmt->registerOutParam(7, oracle::occi::OCCIINT);
0232   stmt->registerOutParam(8, oracle::occi::OCCIINT);
0233   stmt->registerOutParam(9, oracle::occi::OCCISTRING, 10);
0234   stmt->registerOutParam(10, oracle::occi::OCCIINT);
0235   stmt->registerOutParam(11, oracle::occi::OCCISTRING, 10);
0236   stmt->registerOutParam(12, oracle::occi::OCCIINT);
0237   stmt->registerOutParam(13, oracle::occi::OCCISTRING, 10);
0238   stmt->registerOutParam(14, oracle::occi::OCCIINT);
0239   stmt->registerOutParam(15, oracle::occi::OCCIINT);
0240   stmt->registerOutParam(16, oracle::occi::OCCIINT);
0241   stmt->registerOutParam(17, oracle::occi::OCCIINT);
0242   stmt->registerOutParam(18, oracle::occi::OCCIINT);
0243   stmt->registerOutParam(19, oracle::occi::OCCIINT);
0244 
0245   stmt->execute();  //execute procedure
0246 
0247   item->ddu = rui;
0248   item->ddu_input = ddu_input;
0249   item->slink = stmt->getInt(6);
0250 
0251   item->fed_crate = stmt->getInt(3);
0252   item->ddu_slot = stmt->getInt(4);
0253   item->dcc_fifo = stmt->getString(5);
0254   item->fiber_crate = stmt->getInt(7);
0255   item->fiber_pos = stmt->getInt(8);
0256   item->fiber_socket = stmt->getString(9);
0257   int chamberid = stmt->getInt(14);
0258 
0259   stmt->setSQL(
0260       "begin cms_emu_cern.cscmap.chamberid_crate(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, "
0261       ":16, :17, :18, :19, :20); end;");
0262 
0263   stmt->setInt(1, chamberid);
0264   stmt->registerOutParam(2, oracle::occi::OCCISTRING, 10);
0265   stmt->registerOutParam(3, oracle::occi::OCCIINT);
0266   stmt->registerOutParam(4, oracle::occi::OCCIINT);
0267   stmt->registerOutParam(5, oracle::occi::OCCIINT);
0268   stmt->registerOutParam(6, oracle::occi::OCCIINT);
0269   stmt->registerOutParam(7, oracle::occi::OCCIINT);
0270   stmt->registerOutParam(8, oracle::occi::OCCIINT);
0271   stmt->registerOutParam(9, oracle::occi::OCCIINT);
0272   stmt->registerOutParam(10, oracle::occi::OCCISTRING, 10);
0273   stmt->registerOutParam(11, oracle::occi::OCCIINT);
0274   stmt->registerOutParam(12, oracle::occi::OCCIINT);
0275   stmt->registerOutParam(13, oracle::occi::OCCIINT);
0276   stmt->registerOutParam(14, oracle::occi::OCCIINT);
0277   stmt->registerOutParam(15, oracle::occi::OCCIINT);
0278   stmt->registerOutParam(16, oracle::occi::OCCIINT);
0279   stmt->registerOutParam(17, oracle::occi::OCCIINT);
0280   stmt->registerOutParam(18, oracle::occi::OCCIINT);
0281   stmt->registerOutParam(19, oracle::occi::OCCIINT);
0282   stmt->registerOutParam(20, oracle::occi::OCCIINT);
0283 
0284   stmt->execute();  //execute procedure
0285 
0286   item->chamberLabel = stmt->getString(10);
0287   item->chamberId = chamberid;
0288   int chamber = chamberid / 10 % 100;
0289   int rest = (chamberid - chamber * 10) / 1000;
0290   int ring = rest % 10;
0291   rest = (rest - ring) / 10;
0292   int station = rest % 10;
0293   int endcap = (rest - station) / 10;
0294   item->endcap = endcap;
0295   item->station = station;
0296   item->ring = ring;
0297   item->chamber = chamber;
0298   item->cscIndex = stmt->getInt(13);
0299   item->layerIndex = stmt->getInt(14);
0300   item->stripIndex = stmt->getInt(15);
0301   item->anodeIndex = stmt->getInt(16);
0302   item->strips = stmt->getInt(11);
0303   item->anodes = stmt->getInt(12);
0304   item->crateLabel = stmt->getString(2);
0305   item->crateid = stmt->getInt(3);
0306   item->sector = stmt->getInt(8);
0307   item->trig_sector = stmt->getInt(9);
0308   item->dmb = stmt->getInt(5);
0309   item->cscid = stmt->getInt(7);
0310 
0311   stmt->execute();  //execute procedure
0312 
0313   con->terminateStatement(stmt);
0314 }  //end of ruiddu