00001 #ifndef IDaqRunInfoSvc_h
00002 #define IDaqRunInfoSvc_h
00003
00004 #include "GaudiKernel/IInterface.h"
00005 #include "DatabaseSvc/IDatabaseSvc.h"
00006 #include <string>
00007 #include <vector>
00008 #include <map>
00009
00010 using namespace std;
00011
00012 class DaqRawDataFileInfo;
00013 class DaqRunInfo;
00014 class DaqCalibRunInfo;
00015
00016 namespace DayaBay{
00017
00018 class DaqRunConfig {
00019 public:
00020 DaqRunConfig(){m_SchemaVersion=0; m_DataVersion=0; m_CreationVersion=0; m_ClassName=""; m_ObjectId=""; m_Name=""; m_ParentPosition=0; m_IntValue=0; m_FloatValue=0; m_StringValue=""; }
00021 ~DaqRunConfig(){;}
00022 public:
00023 int m_SchemaVersion;
00024 int m_DataVersion;
00025 int m_CreationVersion;
00026 string m_ClassName;
00027 string m_ObjectId;
00028 string m_Name;
00029 int m_ParentPosition;
00030 int m_IntValue;
00031 double m_FloatValue;
00032 string m_StringValue;
00033 };
00034
00035 }
00036
00037
00038 static const InterfaceID IID_IDaqRunInfoSvc("IDaqRunInfoSvc",1,0);
00039
00040 class IDaqRunInfoSvc : virtual public IInterface
00041 {
00042 public:
00043
00044 static const InterfaceID& interfaceID(){
00045 return IID_IDaqRunInfoSvc;
00046 }
00047
00048
00049 virtual int runNumber( const string fileName) = 0;
00050
00051
00052 virtual const DaqRawDataFileInfo* GetFileInfo( const string filename) = 0;
00053
00054
00055 virtual const DaqRunInfo* GetRunInfo( const int runNo) = 0;
00056
00057
00058 virtual const DaqCalibRunInfo* GetCalibRunInfo( const int runNo) = 0;
00059
00060
00061 virtual int dbRecordVector(const int runNo, DatabaseRecordVector& vec) = 0;
00062
00063
00064 virtual int fullRunConfigList(const int runNo, vector<DayaBay::DaqRunConfig>& vec) = 0;
00065
00066
00067 virtual int simpRunConfigList(const int runNo, vector<DayaBay::DaqRunConfig>& vec) = 0;
00068
00069
00070 virtual int findHWList(vector<DayaBay::DaqRunConfig> cV, vector<string>& dets, vector<string>& crates, vector<string>& ltbs, vector<string>& fees) = 0;
00071
00072
00073 virtual 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 ) = 0;
00074
00075
00076 virtual 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) = 0;
00077
00078 virtual string GetRunType(const int runNo) = 0;
00079
00080 };
00081
00082 #endif //IDaqRunInfoSvc_h