00001 // $Id: DedxCurSvc.h,v 1.11 2013/04/18 03:10:52 dengzy Exp $ // -*-c++-*- 00002 // header file for a class called "DedxCurSvc" 00003 #ifndef DEDXCURSVC_H 00004 #define DEDXCURSVC_H 00005 00006 #include "GaudiKernel/Service.h" 00007 #include "GaudiKernel/IInterface.h" 00008 #include "GaudiKernel/Property.h" 00009 #include "GaudiKernel/IIncidentListener.h" 00010 #include "GaudiKernel/IDataProviderSvc.h" 00011 #include "DedxCurSvc/IDedxCurSvc.h" 00012 #include <mysql.h> 00013 #include <vector> 00014 #include "DatabaseSvc/IDatabaseSvc.h" 00015 00016 class DedxCurSvc : public Service, virtual public IDedxCurSvc,virtual public IIncidentListener 00017 { 00018 public: 00019 // Constructors and destructors 00020 DedxCurSvc( const std::string& name, ISvcLocator* svcloc ); 00021 ~DedxCurSvc(); 00022 00023 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown); 00024 virtual StatusCode initialize ( ); 00025 virtual StatusCode finalize ( ); 00026 00027 void handle(const Incident&); 00028 void getDedxCurveInfo(); 00029 00030 00031 const double getCurve(int i){return m_curve[i];} 00032 const double getSigma(int i){return m_sigma[i];} 00033 const int getCurveSize(){return m_curve_size;} 00034 const int getSigmaSize(){return m_sigma_size;} 00035 00036 private: 00037 00038 double m_curve[50]; 00039 double m_sigma[50]; 00040 int m_curve_size; 00041 int m_sigma_size; 00042 std::string m_bossRelease; 00043 std::string m_calParVer; 00044 std::string m_sftver; 00045 std::string m_dbStatus; 00046 std::string m_type; // "Sim" will reverse the sign of RunNo because we want to use the curve from data 00047 00048 MYSQL *conn; 00049 IDataProviderSvc* m_eventSvc; 00050 IDatabaseSvc* m_dbsvc; 00051 00052 int m_runFromMax; 00053 int m_runToMin; 00054 }; 00055 00056 #endif