00001 #ifndef DaqRunInfoSvc_h
00002 #define DaqRunInfoSvc_h
00003
00004 #include "DaqRunInfoSvc/IDaqRunInfoSvc.h"
00005 #include "GaudiKernel/Service.h"
00006
00007 using namespace std;
00008
00009 class IDatabaseSvc;
00010 class DaqRawDataFileInfo;
00011 class DaqRunInfo;
00012 class DaqCalibRunInfo;
00013
00014 class DaqRunInfoSvc : public Service, virtual public IDaqRunInfoSvc
00015 {
00016
00017 public:
00018
00019 DaqRunInfoSvc(const string& name, ISvcLocator *svc);
00020 virtual StatusCode initialize();
00021 virtual StatusCode finalize();
00022 virtual StatusCode queryInterface(const InterfaceID& riid,
00023 void** ppvInterface);
00024
00025
00026
00027 int runNumber( const string fileName);
00028
00029
00030 const DaqRawDataFileInfo* GetFileInfo( const string filename);
00031
00032
00033 const DaqRunInfo* GetRunInfo( const int runNo);
00034
00035
00036 const DaqCalibRunInfo* GetCalibRunInfo( const int runNo);
00037
00038
00039 int dbRecordVector(const int runNo, DatabaseRecordVector& vec);
00040
00041
00042 int fullRunConfigList(const int runNo, vector<DayaBay::DaqRunConfig>& vec);
00043
00044
00045 int simpRunConfigList(const int runNo, vector<DayaBay::DaqRunConfig>& vec);
00046
00047
00048 int findHWList(vector<DayaBay::DaqRunConfig> cV, vector<string>& dets, vector<string>& crates, vector<string>& ltbs, vector<string>& fees);
00049
00050
00051 int findFEEThreshold(string runType, vector<DayaBay::DaqRunConfig> cv, vector<string> fees, map<string, string>& th_obj, map<string, bool>& isuni, map<string, int>& thres_uni, map<string, map<string, int> >& thres );
00052
00053
00054 int findLtbTrigger(string runType, vector<DayaBay::DaqRunConfig> cv, vector<string> ltbs, map<string, string>& mode, map<string, int>& source, map<string, string>& trig_name, map<string, map<string, int> >& trig_thres);
00055
00056 string GetRunType(const int runNo);
00057
00058 private:
00059
00060 int findHWList(DatabaseRecordVector dbRV, vector<string>& dets, vector<string>& crates, vector<string>& ltbs, vector<string>& fees);
00061 int stringInVector(string str, vector<string> vec);
00062
00063
00064 IDatabaseSvc* m_dbSvc;
00065
00066 string m_dbSvcName;
00067 string m_dbName;
00068
00069 };
00070
00071 #endif //DaqRunInfoSvc_h