00001
00002
00003 #ifndef TOFQCORRSVC_H
00004 #define TOFQCORRSVC_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 "TofQCorrSvc/ITofQCorrSvc.h"
00012 #include <mysql.h>
00013 #include <vector>
00014 #include "DatabaseSvc/IDatabaseSvc.h"
00015
00016 class TofQCorrSvc : public Service, virtual public ITofQCorrSvc,virtual public IIncidentListener
00017 {
00018 public:
00019
00020 TofQCorrSvc( const std::string& name, ISvcLocator* svcloc );
00021 ~TofQCorrSvc();
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 getTofQCorrInfo();
00029
00030 const double getBarEast(int layer,int no);
00031 const double getBarWest(int layer,int no);
00032 const double getEndcap(int layer,int no);
00033
00034 const double BQRaw1(int id, double q);
00035 const double BQRaw2(int id, double q);
00036 const double EQRaw(int id, double q);
00037
00038 private:
00039
00040 double m_Bar_East[176][3];
00041 double m_Bar_West[176][3];
00042 double m_Endcap[96][3];
00043
00044 MYSQL *conn;
00045 IDataProviderSvc* m_eventSvc;
00046 int m_runNo;
00047 IDatabaseSvc* m_dbsvc;
00048 };
00049
00050 #endif