9#include "GaudiKernel/Bootstrap.h"
10#include "GaudiKernel/ISvcLocator.h"
11#include "GaudiKernel/PropertyMgr.h"
17int ReadEb::previousRun = -1;
18double ReadEb::m_Ecms = 3.773;
19double ReadEb::m_xangle = 0.011;
21MYSQL* ReadEb::OpenDb()
const {
23 const char host[] =
"bes3db2.ihep.ac.cn";
24 const char user[] =
"guest";
25 const char passwd[] =
"guestpass";
27 const char db[] =
"offlinedb";
28 unsigned int port_num = 3306;
30 MYSQL* mysql = mysql_init( NULL );
31 mysql = mysql_real_connect( mysql, host, user, passwd, db, port_num,
35 if ( mysql == NULL ) { fprintf( stderr,
"can not open database: offlinedb\n" ); }
40void ReadEb::CloseDb(
MYSQL* mysql )
const { mysql_close( mysql ); }
42void ReadEb::ReadDb(
int run ) {
45 Gaudi::svcLocator()->service(
"DatabaseSvc", m_dbsvc,
true );
50 snprintf( stmt1, 1024,
51 "select beam_energy, px, py, pz "
52 "from RunParams664 where run_number = %d",
54 DatabaseRecordVector res;
55 int row_no = m_dbsvc->query(
"offlinedb", stmt1, res );
58 std::cout <<
"Failed to read offline database" << std::endl;
62 DatabaseRecord* records = res[0];
83 snprintf( stmt1, 1024,
84 "select BER_PRB, BPR_PRB "
85 "from RunParams where run_number = %d",
87 DatabaseRecordVector res;
88 int row_no = m_dbsvc->query(
"run", stmt1, res );
91 std::cout <<
"Failed to read online database" << std::endl;
95 DatabaseRecord* records = res[0];
96 double E_E = 0, E_P = 0;
99 m_beamE = ( E_E + E_P ) / 2.0;
100 m_Ecms = m_beamE * 2;
double GetDouble(std::string key)