00001 #ifndef TOFENERGYCALIBSVC_H_ 00002 #define TOFENERGYCALIBSVC_H_ 00003 00004 #include "GaudiKernel/IInterface.h" 00005 #include "GaudiKernel/Kernel.h" 00006 #include "GaudiKernel/Service.h" 00007 #include "GaudiKernel/IIncidentListener.h" 00008 #include "GaudiKernel/IDataProviderSvc.h" 00009 #include "TofEnergyCalibSvc/TofEnergyCalibSvc.h" 00010 #include "TofEnergyCalibSvc/ITofEnergyCalibSvc.h" 00011 #include <mysql.h> 00012 #include <map> 00013 #include <vector> 00014 #include "DatabaseSvc/IDatabaseSvc.h" 00015 #include "GaudiKernel/IService.h" 00016 //#include "rdbModel/Db/Connection.h" 00017 //#include "rdbModel/Tables/Assertion.h" 00018 #include "CLHEP/Matrix/Vector.h" 00019 #include "DatabaseSvc/IDatabaseSvc.h" 00020 using CLHEP::HepVector; 00021 #include <string> 00022 #include "DatabaseSvc/DatabaseSvc.h" 00023 00024 class TofEnergyCalibSvc: public Service, virtual public ITofEnergyCalibSvc, 00025 virtual public IIncidentListener 00026 { 00027 public: 00028 TofEnergyCalibSvc( const std::string& name, ISvcLocator* svcloc ); 00029 //TofEnergyCalibSvc(); 00030 ~TofEnergyCalibSvc(); 00031 00032 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown); 00033 virtual StatusCode initialize(); 00034 virtual StatusCode finalize(); 00035 00036 // Incident handler 00037 void handle(const Incident&); 00038 00039 00040 00041 IDatabaseSvc* m_dbsvc; 00042 00043 //static TofEnergyCalibSvc* m_vdb; 00044 //static TofEnergyCalibSvc* instance() { 00045 // return (m_vdb) ? m_vdb : (m_vdb = new TofEnergyCalibSvc()); 00046 //} 00047 //const DatabaseSvc* GetDatabaseSvc() const {return dynamic_cast<DatabaseSvc*>(m_dbsvc);} 00048 00049 void SetIsData(const std::string& _IsData) {m_IsData = _IsData;} 00050 std::string GetIsData() const {return m_IsData;} 00051 void SetBossRelease(const std::string& _bossrelease) {m_bossRelease = _bossrelease;} 00052 std::string GetBossRelease() const {return m_bossRelease;} 00053 double getCalibConst() const { return m_CalibConst;} 00054 double getPara1() const{ return m_Para1;} 00055 double getPara2() const{ return m_Para2;} 00056 double getPara3() const{ return m_Para3;} 00057 double getPara4() const{ return m_Para4;} 00058 double getPara5() const{ return m_Para5;} 00059 void setCalibConst(double _CalibConst) {m_CalibConst=_CalibConst;} 00060 void setPara1(double _Para1) {m_Para1=_Para1;} 00061 void setPara2(double _Para2) {m_Para2=_Para2;} 00062 void setPara3(double _Para3) {m_Para3=_Para3;} 00063 void setPara4(double _Para4) {m_Para4=_Para4;} 00064 void setPara5(double _Para5) {m_Para5=_Para5;} 00065 00066 00067 bool getTofEnergyCalibSvcInfo(); 00068 private: 00069 // common variables for BOSS & BEAN 00070 double m_CalibConst; 00071 double m_Para1; 00072 double m_Para2; 00073 double m_Para3; 00074 double m_Para4; 00075 double m_Para5; 00076 std::string dbName; 00077 std::string m_bossRelease; 00078 std::string m_IsData; 00079 00080 std::string host; 00081 std::string table; 00082 std::string userName; 00083 std::string password; 00084 unsigned int serialNo; 00085 00086 00087 IDataProviderSvc* m_eventSvc; 00088 00089 }; 00090 #endif /* TOFENERGYCALIBSVC_H_ */