Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ReadBeamInfFromDb Class Reference

#include <ReadBeamInfFromDb.h>

List of all members.

Public Member Functions

double getbeamE (int run, double defaultbeamE)
double getbeamE (int run, double defaultbeamE)
double getbeamE (int run)
double getbeamE (int run)
bool isRunValid (int run)
bool isRunValid (int run)
bool isRunValid (int run)
bool isRunValid (int run)
 ReadBeamInfFromDb ()
 ReadBeamInfFromDb ()
 ReadBeamInfFromDb ()
 ReadBeamInfFromDb ()
 ~ReadBeamInfFromDb ()
 ~ReadBeamInfFromDb ()
 ~ReadBeamInfFromDb ()
 ~ReadBeamInfFromDb ()

Private Member Functions

void CloseDb (MYSQL *mysql) const
void CloseDb (MYSQL *mysql) const
void CloseDb (MYSQL *mysql) const
void CloseDb (MYSQL *mysql) const
MYSQLOpenDb () const
MYSQLOpenDb () const
MYSQLOpenDb () const
MYSQLOpenDb () const
double ReadDb (int run)
double ReadDb (int run)
void ReadDb (int run)
void ReadDb (int run)

Private Attributes

double m_beamE
bool m_isRunValid
int m_run


Constructor & Destructor Documentation

ReadBeamInfFromDb::ReadBeamInfFromDb  ) 
 

00003                                      :
00004   m_run(-1),
00005   m_isRunValid(false),
00006   m_beamE(0){
00007   }

ReadBeamInfFromDb::~ReadBeamInfFromDb  )  [inline]
 

00014 {}

ReadBeamInfFromDb::ReadBeamInfFromDb  ) 
 

ReadBeamInfFromDb::~ReadBeamInfFromDb  )  [inline]
 

00014 {}

ReadBeamInfFromDb::ReadBeamInfFromDb  ) 
 

ReadBeamInfFromDb::~ReadBeamInfFromDb  )  [inline]
 

00013 {}

ReadBeamInfFromDb::ReadBeamInfFromDb  ) 
 

ReadBeamInfFromDb::~ReadBeamInfFromDb  )  [inline]
 

00013 {}


Member Function Documentation

void ReadBeamInfFromDb::CloseDb MYSQL mysql  )  const [private]
 

void ReadBeamInfFromDb::CloseDb MYSQL mysql  )  const [private]
 

void ReadBeamInfFromDb::CloseDb MYSQL mysql  )  const [private]
 

void ReadBeamInfFromDb::CloseDb MYSQL mysql  )  const [private]
 

00030                                                   {
00031   mysql_close(mysql);
00032 }

double ReadBeamInfFromDb::getbeamE int  run,
double  defaultbeamE
 

double ReadBeamInfFromDb::getbeamE int  run,
double  defaultbeamE
 

00088                                                               {
00089   if (!isRunValid(run)){
00090     return defaultbeamE;
00091     fprintf(stderr, "ERROR in ReadBeamInfFromDb: runNo is invalid!\n");
00092   }
00093   return m_beamE;
00094 }

double ReadBeamInfFromDb::getbeamE int  run  ) 
 

double ReadBeamInfFromDb::getbeamE int  run  ) 
 

00082                                          {
00083   if (!isRunValid(run)){
00084     fprintf(stderr, "ERROR in ReadBeamInfFromDb: runNo is invalid!\n");
00085   }
00086   return m_beamE;
00087 }

bool ReadBeamInfFromDb::isRunValid int  run  ) 
 

bool ReadBeamInfFromDb::isRunValid int  run  ) 
 

bool ReadBeamInfFromDb::isRunValid int  run  ) 
 

bool ReadBeamInfFromDb::isRunValid int  run  ) 
 

00073                                           {
00074   if (run == -1 || m_run != run) {
00075     ReadDb(run);
00076   }
00077 
00078   return m_isRunValid;
00079 }

MYSQL* ReadBeamInfFromDb::OpenDb  )  const [private]
 

MYSQL* ReadBeamInfFromDb::OpenDb  )  const [private]
 

MYSQL* ReadBeamInfFromDb::OpenDb  )  const [private]
 

MYSQL * ReadBeamInfFromDb::OpenDb  )  const [private]
 

00009                                        {
00010   
00011   const char host[]     = "bes3db2.ihep.ac.cn";
00012   const char user[]     = "guest";
00013   const char passwd[]   = "guestpass";
00014   const char db[]       = "run";
00015   unsigned int port_num = 3306;
00016 
00017   MYSQL* mysql = mysql_init(NULL);
00018   mysql = mysql_real_connect(mysql, host, user, passwd, db, port_num,
00019                              NULL,  // socket
00020                              0);    // client_flag
00021 
00022   if (mysql == NULL) {
00023     fprintf(stderr, "can not open database: offlinedb\n");
00024   }
00025 
00026   return mysql;
00027 }

double ReadBeamInfFromDb::ReadDb int  run  )  [private]
 

double ReadBeamInfFromDb::ReadDb int  run  )  [private]
 

void ReadBeamInfFromDb::ReadDb int  run  )  [private]
 

double ReadBeamInfFromDb::ReadDb int  run  )  [private]
 

00035                                      {
00036   
00037   m_run=run;
00038   m_isRunValid = false;
00039   
00040   MYSQL* mysql=OpenDb();
00041   
00042   char stmt[1024];
00043   snprintf(stmt, 1024,
00044            "select BER_PRB, BPR_PRB "
00045           "from RunParams where run_number = %d", run);
00046   if (mysql_real_query(mysql, stmt, strlen(stmt))) {
00047     fprintf(stderr, "query error\n");
00048     return ;
00049   }
00050   
00051   
00052   MYSQL_RES* result_set = mysql_store_result(mysql);
00053   MYSQL_ROW row = mysql_fetch_row(result_set);
00054   if (!row) {
00055     fprintf(stderr, "cannot find data for RunNo %d\n", run);
00056     return ;
00057   }
00058   
00059   m_isRunValid = true;
00060 
00061   double E_E=0, E_P=0;
00062   sscanf(row[0], "%lf", &E_E);
00063   sscanf(row[1], "%lf", &E_P);
00064   
00065   m_beamE=(E_E+E_P)/2.0;
00066   
00067   // Free the memory to prevent memory leak!
00068   mysql_free_result(result_set);
00069   
00070   CloseDb(mysql);
00071 }


Member Data Documentation

double ReadBeamInfFromDb::m_beamE [private]
 

bool ReadBeamInfFromDb::m_isRunValid [private]
 

int ReadBeamInfFromDb::m_run [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:43:24 2011 for BOSS6.5.5 by  doxygen 1.3.9.1