#include <ConnectionDB.h>
Public Types | |
RETOk = 0 | |
RETBadCnfFile = 1 | |
RETBadHost = 2 | |
RETNoConnect = 3 | |
RETWrongState = 4 | |
RETBadValue = 5 | |
RETMySQLError = 6 | |
RETNoSchemaMatch = 7 | |
LEVELProd = 1 | |
LEVELDev = 2 | |
LEVELTest = 4 | |
LEVELSuperseded = 8 | |
enum | eRet { RETOk = 0, RETBadCnfFile = 1, RETBadHost = 2, RETNoConnect = 3, RETWrongState = 4, RETBadValue = 5, RETMySQLError = 6, RETNoSchemaMatch = 7 } |
enum | eLevel { LEVELProd = 1, LEVELDev = 2, LEVELTest = 4, LEVELSuperseded = 8 } |
Used to form bit masks for dbs queries. More... | |
Public Member Functions | |
ConnectionDB () | |
Constructor keeps track of table of interest. | |
~ConnectionDB () | |
ConnectionDB::eRet | getReadSC_MagnetInfo (std::vector< double > ¤t, int runNo) |
ConnectionDB::eRet | getBeamEnergy (std::vector< double > &beamE, int runNo) |
Private Attributes | |
IDatabaseSvc * | m_dbsvc |
Definition at line 13 of file ConnectionDB.h.
Used to form bit masks for dbs queries.
Definition at line 36 of file ConnectionDB.h.
00036 { 00037 LEVELProd = 1, 00038 LEVELDev = 2, 00039 LEVELTest = 4, 00040 LEVELSuperseded = 8 00041 };
RETOk | |
RETBadCnfFile | |
RETBadHost | |
RETNoConnect | |
RETWrongState | |
RETBadValue | |
RETMySQLError | |
RETNoSchemaMatch |
Definition at line 25 of file ConnectionDB.h.
00025 { 00026 RETOk = 0, 00027 RETBadCnfFile = 1, 00028 RETBadHost = 2, 00029 RETNoConnect = 3, 00030 RETWrongState = 4, 00031 RETBadValue = 5, 00032 RETMySQLError = 6, 00033 RETNoSchemaMatch = 7 00034 };
FieldDBUtil::ConnectionDB::ConnectionDB | ( | ) |
Constructor keeps track of table of interest.
Definition at line 24 of file ConnectionDB.cxx.
References m_dbsvc.
00024 { 00025 StatusCode sc = Gaudi::svcLocator()->service("DatabaseSvc", m_dbsvc, true); 00026 if (sc .isFailure() ) { 00027 std::cout << "ERROR: In ConnectionDB()--> Unable to find DatabaseSvc " << std::endl; 00028 } 00029 }
FieldDBUtil::ConnectionDB::~ConnectionDB | ( | ) | [inline] |
ConnectionDB::eRet FieldDBUtil::ConnectionDB::getBeamEnergy | ( | std::vector< double > & | beamE, | |
int | runNo | |||
) |
Definition at line 77 of file ConnectionDB.cxx.
References abs, DatabaseRecordVector::clear(), m_dbsvc, IDatabaseSvc::query(), RETMySQLError, and RETOk.
Referenced by MagneticFieldSvc::init_params().
00077 { 00078 //Read magnetic field map 00079 char stmt1[200]; 00080 int run_No = std::abs(runNo); 00081 00082 sprintf(stmt1,"select BPR_PRB,BER_PRB from RunParams where run_number = %d ",run_No); 00083 00084 DatabaseRecordVector results; 00085 results.clear(); 00086 int status = m_dbsvc->query("run",stmt1,results); 00087 if(status<0){ 00088 std::cout << "ERROR Read the beam energy from the Database" << endreq; 00089 exit(1); 00090 } 00091 00092 int RowNumber = results.size(); 00093 00094 if(RowNumber == 0) { 00095 beamE.push_back(1.843); // for positron 00096 beamE.push_back(1.843); // for electron 00097 00098 return RETOk; 00099 } 00100 00101 if(RowNumber!=1){ 00102 std::cout<<"ERROR:error searching beam energy in the database, check your selection criterions"<<std::endl; 00103 return RETMySQLError; 00104 } 00105 00106 beamE.push_back(atof((*results[0])["BPR_PRB"])); // for positron 00107 beamE.push_back(atof((*results[0])["BER_PRB"])); // for electron 00108 00109 return RETOk; 00110 }
ConnectionDB::eRet FieldDBUtil::ConnectionDB::getReadSC_MagnetInfo | ( | std::vector< double > & | current, | |
int | runNo | |||
) |
Definition at line 32 of file ConnectionDB.cxx.
References abs, DatabaseRecordVector::clear(), DatabaseRecord::GetDouble(), m_dbsvc, IDatabaseSvc::query(), RETMySQLError, and RETOk.
Referenced by MagneticFieldSvc::init_params().
00032 { 00033 00034 #ifdef BEAN 00035 static DatabaseSvc* m_dbsvc = 0; 00036 00037 if( !m_dbsvc ) { 00038 m_dbsvc = DatabaseSvc::instance(); 00039 } 00040 #endif 00041 00042 //Read magnetic field map 00043 char stmt1[200]; 00044 int run_No = std::abs(runNo); 00045 00046 sprintf(stmt1,"select Magnet_Current,SCQL,SCQR from SC_magnet where run_number = %d ",run_No); 00047 00048 DatabaseRecordVector results; 00049 results.clear(); 00050 int status = m_dbsvc->query("run",stmt1,results); 00051 00052 if(status<0){ 00053 std::cout << "ERROR Read the SSM and SCQ current from the Database" << endl; 00054 exit(1); 00055 } 00056 00057 int RowNumber = results.size(); 00058 if(RowNumber!=1){ 00059 std::cout<<"ERROR:error searching SC_Magnet Data in the database, check your selection criterions"<<std::endl; 00060 return RETMySQLError; 00061 } 00062 00063 DatabaseRecord& rec = *results[0]; 00064 double ssm_curr = rec.GetDouble("Magnet_Current"); 00065 double scql_curr = rec.GetDouble("SCQL"); 00066 double scqr_curr = rec.GetDouble("SCQR"); 00067 00068 // save results in vector 00069 current.resize(3); 00070 current[0] = ssm_curr; 00071 current[1] = scql_curr; 00072 current[2] = scqr_curr; 00073 00074 return RETOk; 00075 }
IDatabaseSvc* FieldDBUtil::ConnectionDB::m_dbsvc [private] |
Definition at line 48 of file ConnectionDB.h.
Referenced by ConnectionDB(), getBeamEnergy(), and getReadSC_MagnetInfo().