00001 #ifndef RPCREADOUTMAPPINGSOURCEHANDLER
00002 #define RPCREADOUTMAPPINGSOURCEHANDLER
00003
00004 #include <vector>
00005 #include <string>
00006 #include <iostream>
00007 #include <typeinfo>
00008
00009 #include "OnlineDB/Oracle/interface/Oracle.h"
00010 #include "FWCore/Framework/interface/MakerMacros.h"
00011 #include "CondCore/PopCon/interface/PopConSourceHandler.h"
00012
00013 #include "FWCore/Framework/interface/ESHandle.h"
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "DataFormats/Common/interface/Handle.h"
00016 #include "FWCore/Framework/interface/EventSetup.h"
00017 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
00018
00019 #include "CondFormats/RPCObjects/interface/RPCReadOutMapping.h"
00020 #include "CondFormats/DataRecord/interface/RPCReadOutMappingRcd.h"
00021 #include "CondFormats/RPCObjects/interface/DccSpec.h"
00022 #include "CondFormats/RPCObjects/interface/TriggerBoardSpec.h"
00023 #include "CondFormats/RPCObjects/interface/LinkConnSpec.h"
00024 #include "CondFormats/RPCObjects/interface/LinkBoardSpec.h"
00025 #include "CondFormats/RPCObjects/interface/ChamberLocationSpec.h"
00026 #include "CondFormats/RPCObjects/interface/FebLocationSpec.h"
00027 #include "CondFormats/RPCObjects/interface/FebConnectorSpec.h"
00028 #include "CondFormats/RPCObjects/interface/ChamberStripSpec.h"
00029 #include "CondFormats/RPCObjects/interface/DBSpecToDetUnit.h"
00030
00031 using namespace std;
00032 using namespace oracle::occi;
00033
00034 namespace popcon
00035 {
00036 class RPCReadOutMappingSourceHandler : public popcon::PopConSourceHandler<RPCReadOutMapping>
00037 {
00038
00039 public:
00040 RPCReadOutMappingSourceHandler(const edm::ParameterSet& ps);
00041 ~RPCReadOutMappingSourceHandler();
00042 void getNewObjects();
00043 std::string id() const {return m_name;}
00044 void ConnectOnlineDB(string host, string sid, string user, string pass, int port);
00045 void DisconnectOnlineDB();
00046 void readCablingMap();
00047 int Compare2Cablings(const RPCReadOutMapping* map1, RPCReadOutMapping* map2);
00048
00049 private:
00050 RPCReadOutMapping * cabling;
00051 Environment* env;
00052 Connection* conn;
00053 std::string m_name;
00054 int m_validate;
00055 std::string m_host;
00056 std::string m_sid;
00057 std::string m_user;
00058 std::string m_pass;
00059 int m_port;
00060
00061
00062 string IntToString(int num)
00063 {
00064 stringstream snum;
00065 snum << num << flush;
00066 return(snum.str());
00067 }
00068
00069 typedef struct{int febId,chamberId,connectorId,lbInputNum,posInLocalEtaPart,posInCmsEtaPart;string localEtaPart,cmsEtaPart;} FEBStruct;
00070 };
00071 }
00072 #endif