BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
calibUtil::Metadata Class Reference

#include <Metadata.h>

Public Types

enum  eRet {
  RETOk = 0 , RETBadCnfFile = 1 , RETBadHost = 2 , RETNoConnect = 3 ,
  RETWrongState = 4 , RETBadValue = 5 , RETMySQLError = 6 , RETNoSchemaMatch = 7 ,
  RETOk = 0 , RETBadCnfFile = 1 , RETBadHost = 2 , RETNoConnect = 3 ,
  RETWrongState = 4 , RETBadValue = 5 , RETMySQLError = 6 , RETNoSchemaMatch = 7 ,
  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 ,
  LEVELProd = 1 , LEVELDev = 2 , LEVELTest = 4 , LEVELSuperseded = 8 ,
  LEVELProd = 1 , LEVELDev = 2 , LEVELTest = 4 , LEVELSuperseded = 8
}
 Used to form bit masks for dbs queries. More...
enum  eRet {
  RETOk = 0 , RETBadCnfFile = 1 , RETBadHost = 2 , RETNoConnect = 3 ,
  RETWrongState = 4 , RETBadValue = 5 , RETMySQLError = 6 , RETNoSchemaMatch = 7 ,
  RETOk = 0 , RETBadCnfFile = 1 , RETBadHost = 2 , RETNoConnect = 3 ,
  RETWrongState = 4 , RETBadValue = 5 , RETMySQLError = 6 , RETNoSchemaMatch = 7 ,
  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 ,
  LEVELProd = 1 , LEVELDev = 2 , LEVELTest = 4 , LEVELSuperseded = 8 ,
  LEVELProd = 1 , LEVELDev = 2 , LEVELTest = 4 , LEVELSuperseded = 8
}
 Used to form bit masks for dbs queries. More...
enum  eRet {
  RETOk = 0 , RETBadCnfFile = 1 , RETBadHost = 2 , RETNoConnect = 3 ,
  RETWrongState = 4 , RETBadValue = 5 , RETMySQLError = 6 , RETNoSchemaMatch = 7 ,
  RETOk = 0 , RETBadCnfFile = 1 , RETBadHost = 2 , RETNoConnect = 3 ,
  RETWrongState = 4 , RETBadValue = 5 , RETMySQLError = 6 , RETNoSchemaMatch = 7 ,
  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 ,
  LEVELProd = 1 , LEVELDev = 2 , LEVELTest = 4 , LEVELSuperseded = 8 ,
  LEVELProd = 1 , LEVELDev = 2 , LEVELTest = 4 , LEVELSuperseded = 8
}
 Used to form bit masks for dbs queries. More...

Public Member Functions

 Metadata (const std::string &host="bes3db2.ihep.ac.cn", const std::string &table="*", const std::string &dbName="calib")
 Constructor keeps track of table of interest.
 ~Metadata ()
eRet findBest (unsigned int *ser, const std::string &calibType, const std::string &sft_ver, const std::string &cal_ver, const std::string &cal_par, const std::string &rec_alg, const std::string &rec_par, const std::string &machine, const std::string &flavor="VANILLA")
eRet findSoonAfter (unsigned int *ser, const std::string &calibType, const std::string &sft_ver, const std::string &cal_ver, const std::string &cal_par, const std::string &rec_alg, const std::string &rec_par, const std::string &machine, const std::string &flavor="VANILLA")
eRet getInterval (unsigned int serialNo, facilities::Timestamp *&since, facilities::Timestamp *&till)
 Get validity interval for a particular calibration.
eRet getReadInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &dataFmt, std::string &dataIdent)
eRet getReadTOFInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEMCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadDedxInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMDCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadInjSigIntervalInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadInjSigTimeInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadOffEvtFilterInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadCorrectedETSInfo (unsigned int serialNo, int runNo, int FirstEvent, std::string &Version, DatabaseRecordVector &res)
eRet getReadMUCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEsTimeInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEstTofInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMdcAlignInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMdcDataConstInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadTofQElecInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadTofSimInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadDedxSimInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
int registerCalib (const std::string &inst, const std::string &flavor, const std::string &calib_type, const std::string &data_ident, const std::string &data_format, unsigned int &runfrm, unsigned int &runto, const std::string &input_desc, const std::string &notes, const std::string &proc_level, const std::string &locale, const std::string &fmt_version="", const std::string &completion="OK")
bool connectRead (eRet &err)
bool checkValues (const rdbModel::StringVector &cols, const rdbModel::StringVector &vals) const
bool checkNulls (const rdbModel::StringVector &cols) const
rdbModel::ConnectiongetReadConnection ()
rdbModel::RdbgetRdb ()
const std::string & getTable ()
void disconnectRead ()
void disconnectWrite ()
 Metadata (const std::string &host="bes3db2.ihep.ac.cn", const std::string &table="*", const std::string &dbName="calib")
 Constructor keeps track of table of interest.
 ~Metadata ()
eRet findBest (unsigned int *ser, const std::string &calibType, const std::string &sft_ver, const std::string &cal_ver, const std::string &cal_par, const std::string &rec_alg, const std::string &rec_par, const std::string &machine, const std::string &flavor="VANILLA")
eRet findSoonAfter (unsigned int *ser, const std::string &calibType, const std::string &sft_ver, const std::string &cal_ver, const std::string &cal_par, const std::string &rec_alg, const std::string &rec_par, const std::string &machine, const std::string &flavor="VANILLA")
eRet getInterval (unsigned int serialNo, facilities::Timestamp *&since, facilities::Timestamp *&till)
 Get validity interval for a particular calibration.
eRet getReadInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &dataFmt, std::string &dataIdent)
eRet getReadTOFInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEMCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadDedxInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMDCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadInjSigIntervalInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadInjSigTimeInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadOffEvtFilterInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadCorrectedETSInfo (unsigned int serialNo, int runNo, int FirstEvent, std::string &Version, DatabaseRecordVector &res)
eRet getReadMUCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEsTimeInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEstTofInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMdcAlignInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMdcDataConstInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadTofQElecInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadTofSimInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadDedxSimInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
int registerCalib (const std::string &inst, const std::string &flavor, const std::string &calib_type, const std::string &data_ident, const std::string &data_format, unsigned int &runfrm, unsigned int &runto, const std::string &input_desc, const std::string &notes, const std::string &proc_level, const std::string &locale, const std::string &fmt_version="", const std::string &completion="OK")
bool connectRead (eRet &err)
bool checkValues (const rdbModel::StringVector &cols, const rdbModel::StringVector &vals) const
bool checkNulls (const rdbModel::StringVector &cols) const
rdbModel::ConnectiongetReadConnection ()
rdbModel::RdbgetRdb ()
const std::string & getTable ()
void disconnectRead ()
void disconnectWrite ()
 Metadata (const std::string &host="bes3db2.ihep.ac.cn", const std::string &table="*", const std::string &dbName="calib")
 Constructor keeps track of table of interest.
 ~Metadata ()
eRet findBest (unsigned int *ser, const std::string &calibType, const std::string &sft_ver, const std::string &cal_ver, const std::string &cal_par, const std::string &rec_alg, const std::string &rec_par, const std::string &machine, const std::string &flavor="VANILLA")
eRet findSoonAfter (unsigned int *ser, const std::string &calibType, const std::string &sft_ver, const std::string &cal_ver, const std::string &cal_par, const std::string &rec_alg, const std::string &rec_par, const std::string &machine, const std::string &flavor="VANILLA")
eRet getInterval (unsigned int serialNo, facilities::Timestamp *&since, facilities::Timestamp *&till)
 Get validity interval for a particular calibration.
eRet getReadInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &dataFmt, std::string &dataIdent)
eRet getReadTOFInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEMCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadDedxInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMDCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadInjSigIntervalInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadInjSigTimeInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadOffEvtFilterInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadCorrectedETSInfo (unsigned int serialNo, int runNo, int FirstEvent, std::string &Version, DatabaseRecordVector &res)
eRet getReadMUCInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEsTimeInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadEstTofInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMdcAlignInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadMdcDataConstInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadTofQElecInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadTofSimInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
eRet getReadDedxSimInfo (unsigned int serialNo, int *runFrm, int *runTo, std::string &calParVer, DatabaseRecordVector &res, int runNo, std::string &sftver)
int registerCalib (const std::string &inst, const std::string &flavor, const std::string &calib_type, const std::string &data_ident, const std::string &data_format, unsigned int &runfrm, unsigned int &runto, const std::string &input_desc, const std::string &notes, const std::string &proc_level, const std::string &locale, const std::string &fmt_version="", const std::string &completion="OK")
bool connectRead (eRet &err)
bool checkValues (const rdbModel::StringVector &cols, const rdbModel::StringVector &vals) const
bool checkNulls (const rdbModel::StringVector &cols) const
rdbModel::ConnectiongetReadConnection ()
rdbModel::RdbgetRdb ()
const std::string & getTable ()
void disconnectRead ()
void disconnectWrite ()

Detailed Description

Provide interface between calibration clients and the MySQL database for calibration metadata. Supported operations include writing a new record, looking for the serial number of a "best match" record (findBest), and a method for retrieving the information necessary to read the data set corresponding to a particular metadata record (getReadInfo). Writing a record is done in stages: open the record (openRecord), add certain fields (addValidInterval, addNotes, etc.), and finally to write the full record to the database (insertRecord).

The class contains definitions for several enumerated types, corresponding to possible entries for columns in a metadata record. Within the MySQL database the values are kept as strings. The enumerated types are provided to insulate clients from these details; enumerations are easier to document and to check for validity.

Definition at line 33 of file Calibration/calibUtil/include/calibUtil/Metadata.h.

Member Enumeration Documentation

◆ eLevel [1/3]

Used to form bit masks for dbs queries.

Enumerator
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 

Definition at line 46 of file Calibration/calibUtil/include/calibUtil/Metadata.h.

◆ eLevel [2/3]

Used to form bit masks for dbs queries.

Enumerator
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 

Definition at line 46 of file InstallArea/x86_64-el9-gcc13-dbg/include/calibUtil/Metadata.h.

46{ LEVELProd = 1, LEVELDev = 2, LEVELTest = 4, LEVELSuperseded = 8 };

◆ eLevel [3/3]

Used to form bit masks for dbs queries.

Enumerator
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 
LEVELProd 
LEVELDev 
LEVELTest 
LEVELSuperseded 

Definition at line 46 of file InstallArea/x86_64-el9-gcc13-opt/include/calibUtil/Metadata.h.

46{ LEVELProd = 1, LEVELDev = 2, LEVELTest = 4, LEVELSuperseded = 8 };

◆ eRet [1/3]

Enumerator
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 

Definition at line 35 of file Calibration/calibUtil/include/calibUtil/Metadata.h.

◆ eRet [2/3]

Enumerator
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 

Definition at line 35 of file InstallArea/x86_64-el9-gcc13-dbg/include/calibUtil/Metadata.h.

35 {
36 RETOk = 0,
37 RETBadCnfFile = 1,
38 RETBadHost = 2,
39 RETNoConnect = 3,
40 RETWrongState = 4,
41 RETBadValue = 5,
42 RETMySQLError = 6,
44 };

◆ eRet [3/3]

Enumerator
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 
RETOk 
RETBadCnfFile 
RETBadHost 
RETNoConnect 
RETWrongState 
RETBadValue 
RETMySQLError 
RETNoSchemaMatch 

Definition at line 35 of file InstallArea/x86_64-el9-gcc13-opt/include/calibUtil/Metadata.h.

35 {
36 RETOk = 0,
37 RETBadCnfFile = 1,
38 RETBadHost = 2,
39 RETNoConnect = 3,
40 RETWrongState = 4,
41 RETBadValue = 5,
42 RETMySQLError = 6,
44 };

Constructor & Destructor Documentation

◆ Metadata() [1/3]

calibUtil::Metadata::Metadata ( const std::string & host = "bes3db2.ihep.ac.cn",
const std::string & table = "*",
const std::string & dbName = "calib" )

Constructor keeps track of table of interest.

Definition at line 38 of file Metadata.cxx.

40 : m_readCxt( 0 )
41 , m_writeCxt( 0 )
42 , // m_row(""), m_rowStatus(0),
43 m_host( host )
44 , m_table( table )
45 , m_dbName( dbName )
46 , m_man( 0 )
47 , m_rdb( 0 )
48 , m_match( false ) {
49 if ( table.compare( "*" ) == 0 ) m_table = std::string( "$(MYSQL_METATABLE)" );
50 if ( host.compare( "*" ) == 0 ) m_host = std::string( "$(MYSQL_HOST)" );
51
52 int nsub = facilities::Util::expandEnvVar( &m_table );
53 // If this doesn't work, use default
54 if ( nsub < 0 ) m_table = std::string( "metadata" );
55 StatusCode sc = Gaudi::svcLocator()->service( "DatabaseSvc", m_dbsvc, true );
56 if ( !sc.isSuccess() )
57 {
58 std::cout << "Metadata ERROR ::Could not retrieve the DataBaseSvc" << std::endl;
59 ;
60 exit( 1 );
61 }
62 }
static int expandEnvVar(std::string *toExpand, const std::string &openDel=std::string("$("), const std::string &closeDel=std::string(")"))

◆ ~Metadata() [1/3]

calibUtil::Metadata::~Metadata ( )

Definition at line 64 of file Metadata.cxx.

64 {
67 if ( m_man ) delete m_man;
68 }

◆ Metadata() [2/3]

calibUtil::Metadata::Metadata ( const std::string & host = "bes3db2.ihep.ac.cn",
const std::string & table = "*",
const std::string & dbName = "calib" )

Constructor keeps track of table of interest.

◆ ~Metadata() [2/3]

calibUtil::Metadata::~Metadata ( )

◆ Metadata() [3/3]

calibUtil::Metadata::Metadata ( const std::string & host = "bes3db2.ihep.ac.cn",
const std::string & table = "*",
const std::string & dbName = "calib" )

Constructor keeps track of table of interest.

◆ ~Metadata() [3/3]

calibUtil::Metadata::~Metadata ( )

Member Function Documentation

◆ checkNulls() [1/3]

bool calibUtil::Metadata::checkNulls ( const rdbModel::StringVector & cols) const

Definition at line 1366 of file Metadata.cxx.

1366 {
1367 unsigned nCol = cols.size();
1368 rdbModel::Table* table = m_rdb->getTable( m_table );
1369
1370 for ( unsigned iCol = 0; iCol < nCol; iCol++ )
1371 {
1372 rdbModel::Column* col = table->getColumnByName( cols[iCol] );
1373 if ( !col->nullAllowed() )
1374 {
1375 std::cerr << "Column " << cols[iCol] << " in table " << m_table << " is not nullable"
1376 << std::endl;
1377 return false;
1378 }
1379 }
1380 return true;
1381 }
bool nullAllowed() const
Returns true if column may take on value NULL.
Column * getColumnByName(const std::string &name) const
Definition Table.cxx:67

Referenced by registerCalib().

◆ checkNulls() [2/3]

bool calibUtil::Metadata::checkNulls ( const rdbModel::StringVector & cols) const

◆ checkNulls() [3/3]

bool calibUtil::Metadata::checkNulls ( const rdbModel::StringVector & cols) const

◆ checkValues() [1/3]

bool calibUtil::Metadata::checkValues ( const rdbModel::StringVector & cols,
const rdbModel::StringVector & vals ) const

Definition at line 1348 of file Metadata.cxx.

1349 {
1350 unsigned nCol = cols.size();
1351 rdbModel::Table* table = m_rdb->getTable( m_table );
1352
1353 for ( unsigned iCol = 0; iCol < nCol; iCol++ )
1354 {
1355 rdbModel::Column* col = table->getColumnByName( cols[iCol] );
1356 if ( !col->okValue( vals[iCol] ) )
1357 {
1358 std::cerr << "Value " << vals[iCol] << " not allowed for column " << cols[iCol]
1359 << " in table " << m_table << std::endl;
1360 return false;
1361 }
1362 }
1363 return true;
1364 }
bool okValue(const std::string &val, bool set=true) const
Definition Column.cxx:18

Referenced by registerCalib().

◆ checkValues() [2/3]

bool calibUtil::Metadata::checkValues ( const rdbModel::StringVector & cols,
const rdbModel::StringVector & vals ) const

◆ checkValues() [3/3]

bool calibUtil::Metadata::checkValues ( const rdbModel::StringVector & cols,
const rdbModel::StringVector & vals ) const

◆ connectRead() [1/3]

bool calibUtil::Metadata::connectRead ( eRet & err)

Definition at line 114 of file Metadata.cxx.

114 {
115 if ( m_readCxt == 0 )
116 {
117 // for now use std::cout, std::cerr
118 m_readCxt = new rdbModel::MysqlConnection();
119 // bool ok = connect(m_readCxt, m_host, std::string("maqm"),
120 // std::string("maqm_offline"), err, m_dbName);
121 bool ok = connect( m_readCxt, m_host, std::string( "guest" ), std::string( "guestpass" ),
122 err, m_dbName );
123 if ( !ok )
124 {
125 delete m_readCxt;
126 m_readCxt = 0;
127 } /* else { // look for compatible schema
128 std::string schema =
129 std::string("$(RDBMODELROOT)/xml/")+ m_dbName + ".xml";
130 err = compareSchema(m_readCxt, schema);
131 }*/
132 return ok;
133 }
134
135 else return true;
136 }

Referenced by findBest(), findSoonAfter(), and getReadInfo().

◆ connectRead() [2/3]

bool calibUtil::Metadata::connectRead ( eRet & err)

◆ connectRead() [3/3]

bool calibUtil::Metadata::connectRead ( eRet & err)

◆ disconnectRead() [1/3]

void calibUtil::Metadata::disconnectRead ( )

Definition at line 169 of file Metadata.cxx.

169 {
170 if ( m_readCxt )
171 {
172 m_readCxt->close();
173 delete m_readCxt;
174 m_readCxt = 0;
175 }
176 }

Referenced by ~Metadata().

◆ disconnectRead() [2/3]

void calibUtil::Metadata::disconnectRead ( )

◆ disconnectRead() [3/3]

void calibUtil::Metadata::disconnectRead ( )

◆ disconnectWrite() [1/3]

void calibUtil::Metadata::disconnectWrite ( )

Definition at line 178 of file Metadata.cxx.

178 {
179 if ( m_writeCxt )
180 {
181 m_writeCxt->close();
182 delete m_writeCxt;
183 m_writeCxt = 0;
184 }
185 }

Referenced by ~Metadata().

◆ disconnectWrite() [2/3]

void calibUtil::Metadata::disconnectWrite ( )

◆ disconnectWrite() [3/3]

void calibUtil::Metadata::disconnectWrite ( )

◆ findBest() [1/3]

Metadata::eRet calibUtil::Metadata::findBest ( unsigned int * ser,
const std::string & calibType,
const std::string & sft_ver,
const std::string & cal_ver,
const std::string & cal_par,
const std::string & rec_alg,
const std::string & rec_par,
const std::string & machine,
const std::string & flavor = "VANILLA" )

Return serial number for calibration which is best match to criteria, using strings for calibType and instrument arguments. This method may be useful for development when a particular instrument or calibration type is not officially supported.

Parameters
serserial number of best match as integer or zero if no matches (output)
calibTypetype of data, must match
timestampmust be within validity interval; closer to center is better
levelMaskacceptable levels ("production" better than "dev" better than "test" better than "superseded")
instrumente.g. LAT, EM, CU,...
flavoroptionally specify non-standard calibration flavor
Returns
status. Should be RETOk.

If there are multiple calibrations which are not distinguished by the above, pick the one most recently written.

Definition at line 252 of file Metadata.cxx.

256 {
257 using namespace rdbModel;
258
259 eRet ret;
260 *ser = 0;
261 if ( !m_readCxt )
262 {
263 connectRead( ret );
264 if ( ret != RETOk ) return ret;
265 }
266
267 // Sort rows by timestamp. Would like most recent first
268 StringVector orderBy;
269
270 std::vector<Assertion::Operator*> conditions;
271 conditions.reserve( 8 );
272 Assertion::Operator completeOp( OPTYPEequal, "status", "OK", FIELDTYPEold, FIELDTYPElit );
273 // false, true);
274
275 Assertion::Operator calibTypeOp( OPTYPEequal, "calib_type", calibType, FIELDTYPEold,
276 FIELDTYPElit );
277 // false, true);
278 // Assertion::Operator flavorOp(OPTYPEequal, "flavor", flavor,
279 // FIELDTYPEold, FIELDTYPElit);
280 // false, true);
281 Assertion::Operator sftverOp( OPTYPEequal, "SftVer", SftVer, FIELDTYPEold, FIELDTYPElit );
282 Assertion::Operator calverOp( OPTYPEequal, "cal_ver", cal_ver, FIELDTYPEold,
283 FIELDTYPElit );
284 Assertion::Operator calparOp( OPTYPEequal, "cal_par", cal_par, FIELDTYPEold,
285 FIELDTYPElit );
286 Assertion::Operator recalgOp( OPTYPEequal, "rec_alg", rec_alg, FIELDTYPEold,
287 FIELDTYPElit );
288 Assertion::Operator recparOp( OPTYPEequal, "rec_par", rec_par, FIELDTYPEold,
289 FIELDTYPElit );
290 Assertion::Operator machineOp( OPTYPEequal, "machine", machine, FIELDTYPEold,
291 FIELDTYPElit );
292 int run = 10005;
293 std::string s_run;
294 facilities::Util::itoa( run, s_run );
295 Assertion::Operator runfrmOp( OPTYPElessOrEqual, "RunFrom", s_run, FIELDTYPEold,
296 FIELDTYPElit );
297
298 Assertion::Operator runtoOp( OPTYPEgreaterOrEqual, "RunTo", s_run, FIELDTYPEold,
299 FIELDTYPElit );
300
301 conditions.push_back( &completeOp );
302 conditions.push_back( &calibTypeOp );
303 // conditions.push_back(&flavorOp);
304 conditions.push_back( &sftverOp );
305 conditions.push_back( &calverOp );
306 conditions.push_back( &calparOp );
307 conditions.push_back( &recalgOp );
308 conditions.push_back( &recparOp );
309 conditions.push_back( &machineOp );
310 conditions.push_back( &runfrmOp );
311 conditions.push_back( &runtoOp );
312 // Finally, set a value for PROC_LEVEL and make the query (ies)
313 return doSelect( conditions, orderBy, ser );
314 }
std::vector< std::string > StringVector
Simple algorithm to test functioning of "the other" TDS.
Definition CheckMySQL.h:48
char * SftVer
Definition DQA_TO_DB.cxx:19
bool connectRead(eRet &err)
Definition Metadata.cxx:114
static const char * itoa(int val, std::string &outStr)

◆ findBest() [2/3]

eRet calibUtil::Metadata::findBest ( unsigned int * ser,
const std::string & calibType,
const std::string & sft_ver,
const std::string & cal_ver,
const std::string & cal_par,
const std::string & rec_alg,
const std::string & rec_par,
const std::string & machine,
const std::string & flavor = "VANILLA" )

Return serial number for calibration which is best match to criteria, using strings for calibType and instrument arguments. This method may be useful for development when a particular instrument or calibration type is not officially supported.

Parameters
serserial number of best match as integer or zero if no matches (output)
calibTypetype of data, must match
timestampmust be within validity interval; closer to center is better
levelMaskacceptable levels ("production" better than "dev" better than "test" better than "superseded")
instrumente.g. LAT, EM, CU,...
flavoroptionally specify non-standard calibration flavor
Returns
status. Should be RETOk.

If there are multiple calibrations which are not distinguished by the above, pick the one most recently written.

◆ findBest() [3/3]

eRet calibUtil::Metadata::findBest ( unsigned int * ser,
const std::string & calibType,
const std::string & sft_ver,
const std::string & cal_ver,
const std::string & cal_par,
const std::string & rec_alg,
const std::string & rec_par,
const std::string & machine,
const std::string & flavor = "VANILLA" )

Return serial number for calibration which is best match to criteria, using strings for calibType and instrument arguments. This method may be useful for development when a particular instrument or calibration type is not officially supported.

Parameters
serserial number of best match as integer or zero if no matches (output)
calibTypetype of data, must match
timestampmust be within validity interval; closer to center is better
levelMaskacceptable levels ("production" better than "dev" better than "test" better than "superseded")
instrumente.g. LAT, EM, CU,...
flavoroptionally specify non-standard calibration flavor
Returns
status. Should be RETOk.

If there are multiple calibrations which are not distinguished by the above, pick the one most recently written.

◆ findSoonAfter() [1/3]

Metadata::eRet calibUtil::Metadata::findSoonAfter ( unsigned int * ser,
const std::string & calibType,
const std::string & sft_ver,
const std::string & cal_ver,
const std::string & cal_par,
const std::string & rec_alg,
const std::string & rec_par,
const std::string & machine,
const std::string & flavor = "VANILLA" )

Similar to findBest above, but here caller constrains the update_time of the calibration by specifying an earliest and (optional) latest time for it. The serial number of the calibration meeting all other conditions, and with the earliest update_time, will be returned.

Parameters
serserial number of best match as integer or zero if no matches (output)
calibTypetype of data, must match
update_startptr to time; early bound for update_time
update_endptr to late bound for update_time (may be 0)
levelMaskacceptable levels ("production" better than "dev" better than "test" better than "superseded")
instrumente.g. LAT, EM, CU,...
flavoroptionally specify non-standard calibration flavor
Returns
status. Should be RETOk.

Definition at line 187 of file Metadata.cxx.

190 {
191 using namespace rdbModel;
192
193 eRet ret;
194 *ser = 0;
195 if ( !m_readCxt )
196 {
197 connectRead( ret );
198 if ( ret != RETOk ) return ret;
199 }
200
201 StringVector orderBy;
202
203 std::vector<Assertion::Operator*> conditions;
204 conditions.reserve( 8 );
205
206 Assertion::Operator completeOp( OPTYPEequal, "status", "OK", FIELDTYPEold, FIELDTYPElit );
207 // false, true);
208 Assertion::Operator calibTypeOp( OPTYPEequal, "calib_type", calibType, FIELDTYPEold,
209 FIELDTYPElit );
210 // false, true);
211 // Assertion::Operator flavorOp(OPTYPEequal, "flavor", flavor,
212 // FIELDTYPEold, FIELDTYPElit);
213 // false, true);
214 Assertion::Operator sftverOp( OPTYPEequal, "SftVer", SftVer, FIELDTYPEold, FIELDTYPElit );
215 Assertion::Operator calverOp( OPTYPEequal, "cal_ver", cal_ver, FIELDTYPEold,
216 FIELDTYPElit );
217 Assertion::Operator calparOp( OPTYPEequal, "cal_par", cal_par, FIELDTYPEold,
218 FIELDTYPElit );
219 Assertion::Operator recalgOp( OPTYPEequal, "rec_alg", rec_alg, FIELDTYPEold,
220 FIELDTYPElit );
221 Assertion::Operator recparOp( OPTYPEequal, "rec_par", rec_par, FIELDTYPEold,
222 FIELDTYPElit );
223 Assertion::Operator machineOp( OPTYPEequal, "machine", machine, FIELDTYPEold,
224 FIELDTYPElit );
225
226 int run = 10005;
227 std::string s_run;
228 std::cout << "run no is::" << s_run << std::endl;
229 facilities::Util::itoa( run, s_run );
230 Assertion::Operator runfrmOp( OPTYPElessOrEqual, "RunFrom", s_run, FIELDTYPEold,
231 FIELDTYPElit );
232
233 Assertion::Operator runtoOp( OPTYPEgreaterOrEqual, "RunTo", s_run, FIELDTYPEold,
234 FIELDTYPElit );
235
236 conditions.push_back( &completeOp );
237 conditions.push_back( &calibTypeOp );
238 // conditions.push_back(&flavorOp);
239 conditions.push_back( &sftverOp );
240 conditions.push_back( &calverOp );
241 conditions.push_back( &calparOp );
242 conditions.push_back( &recalgOp );
243 conditions.push_back( &recparOp );
244 conditions.push_back( &machineOp );
245 conditions.push_back( &runfrmOp );
246 conditions.push_back( &runtoOp );
247 ret = doSelect( conditions, orderBy, ser );
248
249 return ret;
250 }

◆ findSoonAfter() [2/3]

eRet calibUtil::Metadata::findSoonAfter ( unsigned int * ser,
const std::string & calibType,
const std::string & sft_ver,
const std::string & cal_ver,
const std::string & cal_par,
const std::string & rec_alg,
const std::string & rec_par,
const std::string & machine,
const std::string & flavor = "VANILLA" )

Similar to findBest above, but here caller constrains the update_time of the calibration by specifying an earliest and (optional) latest time for it. The serial number of the calibration meeting all other conditions, and with the earliest update_time, will be returned.

Parameters
serserial number of best match as integer or zero if no matches (output)
calibTypetype of data, must match
update_startptr to time; early bound for update_time
update_endptr to late bound for update_time (may be 0)
levelMaskacceptable levels ("production" better than "dev" better than "test" better than "superseded")
instrumente.g. LAT, EM, CU,...
flavoroptionally specify non-standard calibration flavor
Returns
status. Should be RETOk.

◆ findSoonAfter() [3/3]

eRet calibUtil::Metadata::findSoonAfter ( unsigned int * ser,
const std::string & calibType,
const std::string & sft_ver,
const std::string & cal_ver,
const std::string & cal_par,
const std::string & rec_alg,
const std::string & rec_par,
const std::string & machine,
const std::string & flavor = "VANILLA" )

Similar to findBest above, but here caller constrains the update_time of the calibration by specifying an earliest and (optional) latest time for it. The serial number of the calibration meeting all other conditions, and with the earliest update_time, will be returned.

Parameters
serserial number of best match as integer or zero if no matches (output)
calibTypetype of data, must match
update_startptr to time; early bound for update_time
update_endptr to late bound for update_time (may be 0)
levelMaskacceptable levels ("production" better than "dev" better than "test" better than "superseded")
instrumente.g. LAT, EM, CU,...
flavoroptionally specify non-standard calibration flavor
Returns
status. Should be RETOk.

◆ getInterval() [1/3]

eRet calibUtil::Metadata::getInterval ( unsigned int serialNo,
facilities::Timestamp *& since,
facilities::Timestamp *& till )

Get validity interval for a particular calibration.

◆ getInterval() [2/3]

eRet calibUtil::Metadata::getInterval ( unsigned int serialNo,
facilities::Timestamp *& since,
facilities::Timestamp *& till )

Get validity interval for a particular calibration.

◆ getInterval() [3/3]

eRet calibUtil::Metadata::getInterval ( unsigned int serialNo,
facilities::Timestamp *& since,
facilities::Timestamp *& till )

Get validity interval for a particular calibration.

◆ getRdb() [1/3]

rdbModel::Rdb * calibUtil::Metadata::getRdb ( )
inline

Definition at line 222 of file Calibration/calibUtil/include/calibUtil/Metadata.h.

222{ return m_rdb; }

◆ getRdb() [2/3]

rdbModel::Rdb * calibUtil::Metadata::getRdb ( )
inline

Definition at line 222 of file InstallArea/x86_64-el9-gcc13-dbg/include/calibUtil/Metadata.h.

222{ return m_rdb; }

◆ getRdb() [3/3]

rdbModel::Rdb * calibUtil::Metadata::getRdb ( )
inline

Definition at line 222 of file InstallArea/x86_64-el9-gcc13-opt/include/calibUtil/Metadata.h.

222{ return m_rdb; }

◆ getReadConnection() [1/3]

rdbModel::Connection * calibUtil::Metadata::getReadConnection ( )
inline

Definition at line 219 of file Calibration/calibUtil/include/calibUtil/Metadata.h.

219{ return m_readCxt; }

◆ getReadConnection() [2/3]

rdbModel::Connection * calibUtil::Metadata::getReadConnection ( )
inline

Definition at line 219 of file InstallArea/x86_64-el9-gcc13-dbg/include/calibUtil/Metadata.h.

219{ return m_readCxt; }

◆ getReadConnection() [3/3]

rdbModel::Connection * calibUtil::Metadata::getReadConnection ( )
inline

Definition at line 219 of file InstallArea/x86_64-el9-gcc13-opt/include/calibUtil/Metadata.h.

219{ return m_readCxt; }

◆ getReadCorrectedETSInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadCorrectedETSInfo ( unsigned int serialNo,
int runNo,
int FirstEvent,
std::string & Version,
DatabaseRecordVector & res )

Definition at line 509 of file Metadata.cxx.

511 {
512 using namespace rdbModel;
513 eRet ret;
514 char sql[200];
515 const char* parVer = Version.c_str();
516 sprintf( sql,
517 "select Run,FinalETS,FileName,FilePath from CorrectedETS where Run= %d and "
518 "FirstEvent = %d and Version = %d",
519 run, FirstEvent, 1 );
520
521 int row_no = m_dbsvc->query( "offlinedb", sql, res );
522 string FileName;
523 FileName = ( *res[0] )["FileName"];
524 std::cout << "FileName is::::" << FileName << std::endl;
525 if ( row_no < 1 )
526 {
527 std::cout << "ERROR:error searching CorrectedETS calibration Data in the database with: "
528 << sql << std::endl;
529 return RETMySQLError;
530 }
531
532 return RETOk;
533 }
sprintf(cut, "kal_costheta0_em>-0.93&&kal_costheta0_em<0.93&&kal_pxy0_em>=0.05+%d*0.1&&kal_" "pxy0_em<0.15+%d*0.1&&NGch>=2", j, j)

◆ getReadCorrectedETSInfo() [2/3]

eRet calibUtil::Metadata::getReadCorrectedETSInfo ( unsigned int serialNo,
int runNo,
int FirstEvent,
std::string & Version,
DatabaseRecordVector & res )

◆ getReadCorrectedETSInfo() [3/3]

eRet calibUtil::Metadata::getReadCorrectedETSInfo ( unsigned int serialNo,
int runNo,
int FirstEvent,
std::string & Version,
DatabaseRecordVector & res )

◆ getReadDedxInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadDedxInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 736 of file Metadata.cxx.

738 {
739 using namespace rdbModel;
740 eRet ret;
741 char stmt1[400];
742 int run_No = runNo;
743 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
744 const char* SftVer = sftver.c_str();
745
746 if ( calParVer != "default" )
747 {
748 const char* calpar = calParVer.c_str();
749 sprintf( stmt1,
750 "select "
751 "DriftDist,EntranceAng,MeanGain,GasGain,LayerGain,Resolution,WireGain,ZDep,"
752 "RunGain,RunFrom,RunTo,"
753 "CalParVer,FileName,Status,SftVer from DedxCalConst where "
754 "SftVer = '%s' and RunFrom <= %d and RunTo >= %d and CalParVer = %s",
755 SftVer, run_No, run_No, calpar );
756 }
757 if ( calParVer == "default" )
758 {
759 // sprintf(stmt1,"select
760 // DriftDist,EntranceAng,MeanGain,GasGain,LayerGain,Resolution,WireGain,ZDep,RunGain,RunFrom,RunTo,max(CalParVer),FileName
761 // from DedxCalConst where SftVer = '%s' and RunFrom <= %d and RunTo >= %d group by
762 // CalParVer",SftVer,run_No,run_No);
763 sprintf( stmt1,
764 "select "
765 "DriftDist,EntranceAng,MeanGain,GasGain,LayerGain,Resolution,WireGain,ZDep,"
766 "RunGain,RunFrom,RunTo,"
767 "CalParVer,FileName,Status,SftVer from DedxCalConst where "
768 "SftVer = '%s' and RunFrom <= %d and RunTo >= %d order by CalParVer desc",
769 SftVer, run_No, run_No );
770 }
771
772 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
773 if ( row_no < 1 )
774 {
775 std::cout << "ERROR:error searching Dedx calibration Data in the database with: "
776 << stmt1 << std::endl;
777 return RETMySQLError;
778 }
779 int RunFrom, RunTo;
780 DatabaseRecord& records = *res[0];
781 sscanf( records["RunFrom"], "%d", &RunFrom );
782 sscanf( records["RunTo"], "%d", &RunTo );
783 cout << "@table Dedx: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
784 return RETOk;
785 }
int runNo
Definition DQA_TO_DB.cxx:13

◆ getReadDedxInfo() [2/3]

eRet calibUtil::Metadata::getReadDedxInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadDedxInfo() [3/3]

eRet calibUtil::Metadata::getReadDedxInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadDedxSimInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadDedxSimInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 937 of file Metadata.cxx.

940 {
941 using namespace rdbModel;
942 eRet ret;
943 char stmt1[200];
944 int run_No = runNo;
945 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
946 const char* SftVer = sftver.c_str();
947
948 if ( calParVer != "default" )
949 {
950 const char* calpar = calParVer.c_str();
951 sprintf( stmt1,
952 "select TH1F_Col,bin,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
953 "DedxSim where SftVer = '%s' "
954 "and RunFrom <= %d and RunTo >= %d and CalParVer = %s",
955 SftVer, run_No, run_No, calpar );
956 }
957 if ( calParVer == "default" )
958 {
959 sprintf( stmt1,
960 "select TH1F_Col,bin,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
961 "DedxSim where SftVer = '%s' "
962 "and RunFrom <= %d and RunTo >= %d order by CalParVer desc",
963 SftVer, run_No, run_No );
964 }
965
966 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
967 if ( row_no < 1 )
968 {
969 std::cout << "ERROR:error searching DedxSim calibration Data in the database with: "
970 << stmt1 << std::endl;
971 return RETMySQLError;
972 }
973 int RunFrom, RunTo;
974 DatabaseRecord& records = *res[0];
975 sscanf( records["RunFrom"], "%d", &RunFrom );
976 sscanf( records["RunTo"], "%d", &RunTo );
977 cout << "@table DedxSim: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
978 return RETOk;
979 }

◆ getReadDedxSimInfo() [2/3]

eRet calibUtil::Metadata::getReadDedxSimInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadDedxSimInfo() [3/3]

eRet calibUtil::Metadata::getReadDedxSimInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadEMCInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadEMCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 689 of file Metadata.cxx.

691 {
692 using namespace rdbModel;
693 eRet ret;
694 char stmt1[300];
695 int run_No = runNo;
696 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
697 const char* SftVer = sftver.c_str();
698
699 if ( calParVer != "default" )
700 {
701 const char* calpar = calParVer.c_str();
702 sprintf( stmt1,
703 "select DigiCalibConst,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
704 "EmcCalConst where SftVer = "
705 "'%s' and RunFrom <= %d and RunTo >= %d and CalParVer = %s",
706 SftVer, run_No, run_No, calpar );
707 }
708
709 if ( calParVer == "default" )
710 {
711 // sprintf(stmt1,"select DigiCalibConst,RunFrom,RunTo,max(CalParVer),FileName from
712 // EmcCalConst where SftVer = '%s' and RunFrom <= %d and RunTo >= %d group by
713 // CalParVer",SftVer,run_No,run_No);
714 sprintf( stmt1,
715 "select DigiCalibConst,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
716 "EmcCalConst where SftVer = "
717 "'%s' and RunFrom <= %d and RunTo >= %d order by CalParVer desc",
718 SftVer, run_No, run_No );
719 }
720
721 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
722 if ( row_no < 1 )
723 {
724 std::cout << "ERROR:error searching EMC calibration Data in the database with: " << stmt1
725 << std::endl;
726 return RETMySQLError;
727 }
728 int RunFrom, RunTo;
729 DatabaseRecord& records = *res[0];
730 sscanf( records["RunFrom"], "%d", &RunFrom );
731 sscanf( records["RunTo"], "%d", &RunTo );
732 cout << "@table Emc: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
733 return RETOk;
734 }

◆ getReadEMCInfo() [2/3]

eRet calibUtil::Metadata::getReadEMCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadEMCInfo() [3/3]

eRet calibUtil::Metadata::getReadEMCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadEsTimeInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadEsTimeInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 787 of file Metadata.cxx.

790 {
791 using namespace rdbModel;
792 eRet ret;
793 char stmt1[400];
794 int run_No = runNo;
795 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
796 const char* SftVer = sftver.c_str();
797
798 if ( calParVer != "default" )
799 {
800 const char* calpar = calParVer.c_str();
801 sprintf( stmt1,
802 "select EsTimeH2,EsTimeH9,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
803 "EsTimeCalConst where "
804 "SftVer = '%s' and RunFrom <= %d and RunTo >= %d and CalParVer = %s",
805 SftVer, run_No, run_No, calpar );
806 }
807
808 if ( calParVer == "default" )
809 {
810 sprintf( stmt1,
811 "select EsTimeH2,EsTimeH9,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
812 "EsTimeCalConst where "
813 "SftVer = '%s' and RunFrom <= %d and RunTo >= %d order by "
814 "CalParVer desc",
815 SftVer, run_No, run_No );
816 }
817 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
818 if ( row_no < 1 )
819 {
820 std::cout << "ERROR:error searching EsTime calibration Data in the database with: "
821 << stmt1 << std::endl;
822 return RETMySQLError;
823 }
824 int RunFrom, RunTo;
825 DatabaseRecord& records = *res[0];
826 sscanf( records["RunFrom"], "%d", &RunFrom );
827 sscanf( records["RunTo"], "%d", &RunTo );
828 cout << "@table EsTime: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
829 return RETOk;
830 }

◆ getReadEsTimeInfo() [2/3]

eRet calibUtil::Metadata::getReadEsTimeInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadEsTimeInfo() [3/3]

eRet calibUtil::Metadata::getReadEsTimeInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadEstTofInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadEstTofInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 833 of file Metadata.cxx.

836 {
837 using namespace rdbModel;
838 eRet ret;
839 char stmt1[200];
840 int run_No = runNo;
841 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
842 const char* SftVer = sftver.c_str();
843
844 if ( calParVer != "default" )
845 {
846 const char* calpar = calParVer.c_str();
847 sprintf( stmt1,
848 "select "
849 "BarTofPar,EndTofPar,TofConPar,BarTof,EtfTofPar,RunFrom,RunTo,CalParVer,"
850 "FileName,Status,SftVer "
851 "from EstTofCalConst where SftVer = '%s' and RunFrom <= %d and "
852 "RunTo >= %d and CalParVer = %s",
853 SftVer, run_No, run_No, calpar );
854 }
855 if ( calParVer == "default" )
856 {
857 // sprintf(stmt1,"select
858 // BarTofPar,EndTofPar,TofConPar,BarTof,RunFrom,RunTo,max(CalParVer),FileName from
859 // EstTofCalConst where SftVer = '%s' and RunFrom <= %d and RunTo >= %d group by
860 // CalParVer",SftVer,run_No,run_No);
861 sprintf( stmt1,
862 "select "
863 "BarTofPar,EndTofPar,TofConPar,BarTof,EtfTofPar,RunFrom,RunTo,CalParVer,"
864 "FileName,Status,SftVer "
865 "from EstTofCalConst where SftVer = '%s' and RunFrom <= %d and "
866 "RunTo >= %d order by CalParVer desc",
867 SftVer, run_No, run_No );
868 }
869
870 int row_no = m_dbsvc->query( "offlinedb", stmt1, res ); // calling DatabaseSvc::query
871 if ( row_no < 1 )
872 {
873 std::cout << "ERROR:error searching EstTOF calibration Data in the database with: "
874 << stmt1 << std::endl;
875 return RETMySQLError;
876 }
877 int RunFrom, RunTo;
878 DatabaseRecord& records = *res[0];
879 sscanf( records["RunFrom"], "%d", &RunFrom );
880 sscanf( records["RunTo"], "%d", &RunTo );
881 cout << "@table EstTof: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
882 return RETOk;
883 }

◆ getReadEstTofInfo() [2/3]

eRet calibUtil::Metadata::getReadEstTofInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadEstTofInfo() [3/3]

eRet calibUtil::Metadata::getReadEstTofInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & dataFmt,
std::string & dataIdent )

Given a calibration serial number, return information needed for caller to read in the data.

Parameters
serialNo[input]
dataFormat
fmtVersion
filename
Returns
true if serialNo exists in dbs and "filename" has non-null value; else false.

Definition at line 316 of file Metadata.cxx.

317 {
318 using namespace rdbModel;
319 eRet ret;
320 if ( !m_readCxt )
321 {
322 connectRead( ret );
323 if ( ret != RETOk ) { return ret; }
324 }
325 StringVector colNames( 4 );
326 colNames[0] = "data_fmt";
327 colNames[1] = "data_ident";
328 colNames[2] = "RunFrom";
329 colNames[3] = "RunTo";
330
331 std::string serNoVal;
332 facilities::Util::itoa( serialNo, serNoVal );
333 Assertion::Operator* serOp =
334 new Assertion::Operator( OPTYPEequal, "ser_no", serNoVal, FIELDTYPEold, FIELDTYPElit );
335 // false, true);
336 Assertion whereClause( serOp );
337 StringVector orderBy;
338 orderBy.clear();
339
340 // make the query
341 ResultHandle* results = 0;
342 try
343 {
344 results = m_readCxt->select( m_table, colNames, orderBy, &whereClause );
345 } catch ( RdbException ex )
346 {
347 std::cout << ex.getMsg();
348 return RETMySQLError;
349 }
350
351 if ( !results ) return RETMySQLError;
352 if ( !results->getNRows() ) return RETBadValue;
353
354 std::vector<std::string> fields;
355 std::cout << "test id \\" << std::endl;
356 results->getRow( fields );
357 dataFmt = fields[0];
358 filename = fields[1];
359 std::string runfrm, runto;
360 runfrm = fields[2];
361 runto = fields[3];
362 *runFrm = facilities::Util::atoi( runfrm );
363 *runTo = facilities::Util::atoi( runto );
364 delete results;
365 // runFrm=fields[2];
366 // runTo=fields[3];
367 // std::cout<<"runfrm is:"<<runFrm<<"runto is:"<<runTo<<std::endl;
368 if ( ( dataFmt == "" ) || ( filename == "" ) ) return RETBadValue;
369 return RETOk;
370 }
static int atoi(const std::string &InStr)
converts an std::string to an integer
virtual bool getRow(std::vector< std::string > &fields, unsigned int i=0, bool clear=true)=0
virtual unsigned int getNRows() const =0
Return number of rows in results.

◆ getReadInfo() [2/3]

eRet calibUtil::Metadata::getReadInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & dataFmt,
std::string & dataIdent )

Given a calibration serial number, return information needed for caller to read in the data.

Parameters
serialNo[input]
dataFormat
fmtVersion
filename
Returns
true if serialNo exists in dbs and "filename" has non-null value; else false.

◆ getReadInfo() [3/3]

eRet calibUtil::Metadata::getReadInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & dataFmt,
std::string & dataIdent )

Given a calibration serial number, return information needed for caller to read in the data.

Parameters
serialNo[input]
dataFormat
fmtVersion
filename
Returns
true if serialNo exists in dbs and "filename" has non-null value; else false.

◆ getReadInjSigIntervalInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadInjSigIntervalInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 373 of file Metadata.cxx.

376 {
377 using namespace rdbModel;
378 eRet ret;
379 char stmt1[200];
380 int run_No = runNo;
381
382 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
383 const char* SftVer = sftver.c_str();
384
385 if ( calParVer != "default" )
386 {
387 const char* calpar = calParVer.c_str();
388 sprintf( stmt1,
389 "select SigInterval,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
390 "InjSigInterval where SftVer = "
391 "'%s' and RunFrom <= %d and RunTo >= %d and CalParVer = '%s'",
392 SftVer, run_No, run_No, calpar );
393 }
394
395 if ( calParVer == "default" )
396 {
397 sprintf( stmt1,
398 "select SigInterval,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
399 "InjSigInterval where SftVer = "
400 "'%s' and RunFrom <= %d and RunTo >= %d order by CalParVer desc",
401 SftVer, run_No, run_No );
402 }
403 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
404 if ( row_no < 1 )
405 {
406 std::cout
407 << "ERROR:error searching InjSigInterval calibration Data in the database with: "
408 << stmt1 << std::endl;
409 return RETMySQLError;
410 }
411 int RunFrom, RunTo;
412 DatabaseRecord& records = *res[0];
413 sscanf( records["RunFrom"], "%d", &RunFrom );
414 sscanf( records["RunTo"], "%d", &RunTo );
415 cout << "@table SigInterval: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
416 return RETOk;
417 }

◆ getReadInjSigIntervalInfo() [2/3]

eRet calibUtil::Metadata::getReadInjSigIntervalInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadInjSigIntervalInfo() [3/3]

eRet calibUtil::Metadata::getReadInjSigIntervalInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadInjSigTimeInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadInjSigTimeInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 419 of file Metadata.cxx.

422 {
423 using namespace rdbModel;
424 eRet ret;
425 char stmt1[200];
426 int run_No = runNo;
427
428 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
429 const char* SftVer = sftver.c_str();
430 cout << "getReadInjSigTimeInfo start:::::" << endl;
431 if ( calParVer != "default" )
432 {
433 const char* calpar = calParVer.c_str();
434 sprintf( stmt1,
435 "select ist,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from InjSigTime "
436 "where SftVer = '%s' and "
437 "RunFrom <= %d and RunTo >= %d and CalParVer = '%s'",
438 SftVer, run_No, run_No, calpar );
439 }
440
441 if ( calParVer == "default" )
442 {
443 sprintf( stmt1,
444 "select ist,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from InjSigTime "
445 "where SftVer = '%s' and "
446 "RunFrom <= %d and RunTo >= %d order by CalParVer desc",
447 SftVer, run_No, run_No );
448 }
449 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
450 if ( row_no < 1 )
451 {
452 std::cout << "ERROR:error searching InjSigTime calibration Data in the database with: "
453 << stmt1 << std::endl;
454 return RETMySQLError;
455 }
456 int RunFrom, RunTo;
457 DatabaseRecord& records = *res[0];
458 sscanf( records["RunFrom"], "%d", &RunFrom );
459 sscanf( records["RunTo"], "%d", &RunTo );
460 cout << "@table InjSigTimeInfo: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
461 return RETOk;
462 }

◆ getReadInjSigTimeInfo() [2/3]

eRet calibUtil::Metadata::getReadInjSigTimeInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadInjSigTimeInfo() [3/3]

eRet calibUtil::Metadata::getReadInjSigTimeInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadMdcAlignInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadMdcAlignInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 981 of file Metadata.cxx.

984 {
985 using namespace rdbModel;
986 eRet ret;
987 char stmt1[200];
988 int run_No = runNo;
989 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
990 const char* SftVer = sftver.c_str();
991
992 if ( calParVer != "default" )
993 {
994 const char* calpar = calParVer.c_str();
995 sprintf( stmt1,
996 "select "
997 "AlignEndPlate,WirePos,WireTension,RunFrom,RunTo,MdcAlignVer,AlignEPFileName,"
998 "Status,SftVer from "
999 "MdcAlignment where SftVer = '%s' and RunFrom <= %d and RunTo "
1000 ">= %d and MdcAlignVer = %s",
1001 SftVer, run_No, run_No, calpar );
1002 }
1003 if ( calParVer == "default" )
1004 {
1005 // sprintf(stmt1,"select
1006 // AlignEndPlate,WirePos,WireTension,RunFrom,RunTo,max(MdcAlignVer),AlignEPFileName
1007 // from MdcAlignment where SftVer = '%s' and RunFrom <= %d and RunTo >= %d group by
1008 // MdcAlignVer",SftVer,run_No,run_No);
1009 sprintf( stmt1,
1010 "select "
1011 "AlignEndPlate,WirePos,WireTension,RunFrom,RunTo,MdcAlignVer,AlignEPFileName,"
1012 "Status,SftVer from "
1013 "MdcAlignment where SftVer = '%s' and RunFrom <= %d and RunTo "
1014 ">= %d order by MdcAlignVer desc",
1015 SftVer, run_No, run_No );
1016 }
1017
1018 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
1019 if ( row_no < 1 )
1020 {
1021 std::cout << "ERROR:error searching MdcAlignment calibration Data in the database with: "
1022 << stmt1 << std::endl;
1023 return RETMySQLError;
1024 }
1025 int RunFrom, RunTo;
1026 DatabaseRecord& records = *res[0];
1027 sscanf( records["RunFrom"], "%d", &RunFrom );
1028 sscanf( records["RunTo"], "%d", &RunTo );
1029 cout << "@table MdcAligment: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
1030 return RETOk;
1031 }

◆ getReadMdcAlignInfo() [2/3]

eRet calibUtil::Metadata::getReadMdcAlignInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadMdcAlignInfo() [3/3]

eRet calibUtil::Metadata::getReadMdcAlignInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadMdcDataConstInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadMdcDataConstInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 1033 of file Metadata.cxx.

1036 {
1037 using namespace rdbModel;
1038 eRet ret;
1039 char stmt1[200];
1040 int run_No = runNo;
1041 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
1042 const char* SftVer = sftver.c_str();
1043
1044 if ( calParVer != "default" )
1045 {
1046 const char* calpar = calParVer.c_str();
1047 sprintf( stmt1,
1048 "select WireEff,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
1049 "MdcDataConst where SftVer = '%s' "
1050 "and RunFrom <= %d and RunTo >= %d and CalParVer = %s",
1051 SftVer, run_No, run_No, calpar );
1052 }
1053 if ( calParVer == "default" )
1054 {
1055 sprintf( stmt1,
1056 "select WireEff,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
1057 "MdcDataConst where SftVer = '%s' "
1058 "and RunFrom <= %d and RunTo >= %d order by CalParVer desc",
1059 SftVer, run_No, run_No );
1060 }
1061
1062 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
1063 if ( row_no < 1 )
1064 {
1065 std::cout << "ERROR:error searching MdcDataConst Data in the database with: " << stmt1
1066 << std::endl;
1067 return RETMySQLError;
1068 }
1069 int RunFrom, RunTo;
1070 DatabaseRecord& records = *res[0];
1071 sscanf( records["RunFrom"], "%d", &RunFrom );
1072 sscanf( records["RunTo"], "%d", &RunTo );
1073 cout << "@table MdcData: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
1074 return RETOk;
1075 }

◆ getReadMdcDataConstInfo() [2/3]

eRet calibUtil::Metadata::getReadMdcDataConstInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadMdcDataConstInfo() [3/3]

eRet calibUtil::Metadata::getReadMdcDataConstInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadMDCInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadMDCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 635 of file Metadata.cxx.

637 {
638 using namespace rdbModel;
639 eRet ret;
640 char stmt1[200];
641 int run_No = runNo;
642
643 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
644 const char* SftVer = sftver.c_str();
645
646 if ( calParVer != "default" )
647 {
648 const char* calpar = calParVer.c_str();
649 sprintf( stmt1,
650 "select "
651 "NewXtTrees,XtTree,QtTree,T0Tree,SdTree,R2tTrees,RunFrom,RunTo,CalParVer,"
652 "FileName,Status,SftVer "
653 "from MdcCalConst where SftVer = '%s' and RunFrom <= %d and "
654 "RunTo >= %d and CalParVer = '%s'",
655 SftVer, run_No, run_No, calpar );
656 }
657
658 if ( calParVer == "default" )
659 {
660 // sprintf(stmt1,"select
661 // NewXtTrees,XtTree,QtTree,T0Tree,SdTree,R2tTrees,RunFrom,RunTo,max(CalParVer),FileName
662 // from MdcCalConst where SftVer = '%s' and RunFrom <= %d and RunTo >= %d group by
663 // CalParVer",SftVer,run_No,run_No);}
664 sprintf( stmt1,
665 "select "
666 "NewXtTrees,XtTree,QtTree,T0Tree,SdTree,R2tTrees,RunFrom,RunTo,CalParVer,"
667 "FileName,Status,SftVer "
668 "from MdcCalConst where SftVer = '%s' and RunFrom <= %d and "
669 "RunTo >= %d order by CalParVer desc",
670 SftVer, run_No, run_No );
671 }
672
673 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
674 if ( row_no < 1 )
675 {
676 std::cout << "ERROR:error searching Mdc calibration Data in the database with: " << stmt1
677 << std::endl;
678 return RETMySQLError;
679 }
680 int RunFrom, RunTo;
681 DatabaseRecord& records = *res[0];
682 sscanf( records["RunFrom"], "%d", &RunFrom );
683 sscanf( records["RunTo"], "%d", &RunTo );
684 cout << "@table Mdc: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
685
686 return RETOk;
687 }

◆ getReadMDCInfo() [2/3]

eRet calibUtil::Metadata::getReadMDCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadMDCInfo() [3/3]

eRet calibUtil::Metadata::getReadMDCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadMUCInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadMUCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 582 of file Metadata.cxx.

584 {
585 using namespace rdbModel;
586 eRet ret;
587 char stmt1[300];
588 int run_No = runNo;
589 // char* SftVer = getenv("BES_RELEASE");
590 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
591 const char* SftVer = sftver.c_str();
592
593 if ( calParVer != "default" )
594 {
595 const char* calpar = calParVer.c_str();
596 sprintf( stmt1,
597 "select "
598 "LayTree,BoxTree,StrTree,ResTree,ClsTree,RunFrom,RunTo,CalParVer,FileName,"
599 "Status,SftVer from "
600 "MucCalConst where SftVer = '%s' and RunFrom <= %d and RunTo >= "
601 "%d order by CalParVer desc",
602 SftVer, run_No, run_No );
603 }
604
605 if ( calParVer == "default" )
606 {
607 // sprintf(stmt1,"select
608 // SftVer,LayTree,BoxTree,StrTree,ResTree,ClsTree,RunFrom,RunTo,max(CalParVer),FileName
609 // from MucCalConst where SftVer = '%s' and RunFrom <= %d and RunTo >= %d group by
610 // CalParVer",SftVer,run_No,run_No);
611 sprintf( stmt1,
612 "select "
613 "LayTree,BoxTree,StrTree,ResTree,ClsTree,RunFrom,RunTo,CalParVer,FileName,"
614 "Status,SftVer from "
615 "MucCalConst where SftVer = '%s' and RunFrom <= %d and RunTo >= "
616 "%d order by CalParVer desc",
617 SftVer, run_No, run_No );
618 }
619
620 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
621 if ( row_no < 1 )
622 {
623 std::cout << "ERROR:error searching MUC calibration Data in the database with: " << stmt1
624 << std::endl;
625 return RETMySQLError;
626 }
627 int RunFrom, RunTo;
628 DatabaseRecord& records = *res[0];
629 sscanf( records["RunFrom"], "%d", &RunFrom );
630 sscanf( records["RunTo"], "%d", &RunTo );
631 cout << "@table Muc: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
632 return RETOk;
633 }

◆ getReadMUCInfo() [2/3]

eRet calibUtil::Metadata::getReadMUCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadMUCInfo() [3/3]

eRet calibUtil::Metadata::getReadMUCInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadOffEvtFilterInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadOffEvtFilterInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 464 of file Metadata.cxx.

467 {
468 using namespace rdbModel;
469 eRet ret;
470 char stmt1[200];
471 int run_No = runNo;
472
473 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
474 const char* SftVer = sftver.c_str();
475 if ( calParVer != "default" )
476 {
477 const char* calpar = calParVer.c_str();
478 sprintf( stmt1,
479 "select data,oef,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
480 "OffEvtFilter where SftVer = '%s' "
481 "and RunFrom <= %d and RunTo >= %d and CalParVer = '%s'",
482 SftVer, run_No, run_No, calpar );
483 }
484
485 if ( calParVer == "default" )
486 {
487 sprintf( stmt1,
488 "select data,oef,RunFrom,RunTo,CalParVer,FileName,Status,SftVer from "
489 "OffEvtFilter where SftVer = '%s' "
490 "and RunFrom <= %d and RunTo >= %d order by CalParVer desc",
491 SftVer, run_No, run_No );
492 }
493 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
494 if ( row_no < 1 )
495 {
496 std::cout << "ERROR:error searching OffEvtFilter calibration Data in the database with: "
497 << stmt1 << std::endl;
498 return RETMySQLError;
499 }
500 int RunFrom, RunTo;
501 DatabaseRecord& records = *res[0];
502 sscanf( records["RunFrom"], "%d", &RunFrom );
503 sscanf( records["RunTo"], "%d", &RunTo );
504 cout << "@table OffEvtFilter: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
505
506 return RETOk;
507 }

◆ getReadOffEvtFilterInfo() [2/3]

eRet calibUtil::Metadata::getReadOffEvtFilterInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadOffEvtFilterInfo() [3/3]

eRet calibUtil::Metadata::getReadOffEvtFilterInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadTOFInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadTOFInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 535 of file Metadata.cxx.

537 {
538 using namespace rdbModel;
539 eRet ret;
540 char stmt1[300];
541 int run_No = runNo;
542 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
543 const char* SftVer = sftver.c_str();
544
545 if ( calParVer != "default" )
546 {
547 const char* calpar = calParVer.c_str();
548 sprintf( stmt1,
549 "select "
550 "BarTofPar,EndTofPar,TofConPar,BarTof,EtfTofPar,EtfTofBunch,RunFrom,RunTo,"
551 "CalParVer,FileName,Status,"
552 "SftVer from TofCalConst where SftVer = '%s' and RunFrom "
553 "<= %d and RunTo >= %d and CalParVer = %s",
554 SftVer, run_No, run_No, calpar );
555 }
556 if ( calParVer == "default" )
557 {
558 sprintf( stmt1,
559 "select "
560 "BarTofPar,EndTofPar,TofConPar,BarTof,EtfTofPar,EtfTofBunch,RunFrom,RunTo,"
561 "CalParVer,FileName,Status,"
562 "SftVer from TofCalConst where SftVer = '%s' and RunFrom "
563 "<= %d and RunTo >= %d order by CalParVer desc",
564 SftVer, run_No, run_No );
565 }
566
567 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
568 if ( row_no < 1 )
569 {
570 std::cout << "ERROR:error searching TOF calibration Data in the database with: " << stmt1
571 << std::endl;
572 return RETMySQLError;
573 }
574 int RunFrom, RunTo;
575 DatabaseRecord& records = *res[0];
576 sscanf( records["RunFrom"], "%d", &RunFrom );
577 sscanf( records["RunTo"], "%d", &RunTo );
578 cout << "@table TofCalConst: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
579 return RETOk;
580 }

◆ getReadTOFInfo() [2/3]

eRet calibUtil::Metadata::getReadTOFInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadTOFInfo() [3/3]

eRet calibUtil::Metadata::getReadTOFInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadTofQElecInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadTofQElecInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 1077 of file Metadata.cxx.

1080 {
1081 using namespace rdbModel;
1082 eRet ret;
1083 char stmt1[400];
1084 int run_No = runNo;
1085 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
1086 const char* SftVer = sftver.c_str();
1087
1088 if ( calParVer != "default" )
1089 {
1090 const char* calpar = calParVer.c_str();
1091 sprintf( stmt1,
1092 "select "
1093 "BarBoardNum,EndBoardNum,QELecBarParEast,QELecBarParWest,QELecEndPar,"
1094 "SimQELecBarParEast,"
1095 "SimQELecBarParWest,SimQELecEndPar,RunFrom,RunTo,CalParVer,FileName,Status,"
1096 "SftVer from TofQELec where SftVer = '%s' and RunFrom <= %d and RunTo >= %d "
1097 "and CalParVer = %s",
1098 SftVer, run_No, run_No, calpar );
1099 }
1100 if ( calParVer == "default" )
1101 {
1102 sprintf( stmt1,
1103 "select "
1104 "BarBoardNum,EndBoardNum,QELecBarParEast,QELecBarParWest,QELecEndPar,"
1105 "SimQELecBarParEast,"
1106 "SimQELecBarParWest,SimQELecEndPar,RunFrom,RunTo,CalParVer,FileName,Status,"
1107 "SftVer from TofQELec where SftVer = '%s' and RunFrom <= %d and RunTo >= %d "
1108 "order by CalParVer desc",
1109 SftVer, run_No, run_No );
1110 }
1111 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
1112 if ( row_no < 1 )
1113 {
1114 std::cout << "ERROR:error searching TofQElec calibration Data in the database with: "
1115 << stmt1 << std::endl;
1116 return RETMySQLError;
1117 }
1118 int RunFrom, RunTo;
1119 DatabaseRecord& records = *res[0];
1120 sscanf( records["RunFrom"], "%d", &RunFrom );
1121 sscanf( records["RunTo"], "%d", &RunTo );
1122 cout << "Read from DB TofQElec: RunFrom " << RunFrom << " RunTo= " << RunTo << endl;
1123 std::cout << "metadata ok" << std::endl;
1124
1125 return RETOk;
1126 }

◆ getReadTofQElecInfo() [2/3]

eRet calibUtil::Metadata::getReadTofQElecInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadTofQElecInfo() [3/3]

eRet calibUtil::Metadata::getReadTofQElecInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadTofSimInfo() [1/3]

Metadata::eRet calibUtil::Metadata::getReadTofSimInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

Definition at line 885 of file Metadata.cxx.

888 {
889 using namespace rdbModel;
890 eRet ret;
891 char stmt1[200];
892 int run_No = runNo;
893 if ( sftver == "default" ) sftver = getenv( "BES_RELEASE" );
894 const char* SftVer = sftver.c_str();
895
896 if ( calParVer != "default" )
897 {
898 const char* calpar = calParVer.c_str();
899 sprintf( stmt1,
900 "select "
901 "BTofSim,ETofSim,SimConstants,RunFrom,RunTo,TofSimParVer,FileName,Status,"
902 "SftVer from TofSimSvc "
903 "where SftVer = '%s' and RunFrom <= %d and RunTo >= %d and "
904 "TofSimParVer = %s",
905 SftVer, run_No, run_No, calpar );
906 }
907 if ( calParVer == "default" )
908 {
909 // sprintf(stmt1,"select
910 // BTofSim,ETofSim,SimConstants,RunFrom,RunTo,max(TofSimParVer),FileName from TofSimSvc
911 // where SftVer = '%s' and RunFrom <= %d and RunTo >= %d group by
912 // TofSimParVer",SftVer,run_No,run_No);
913 sprintf( stmt1,
914 "select "
915 "BTofSim,ETofSim,SimConstants,RunFrom,RunTo,TofSimParVer,FileName,Status,"
916 "SftVer from TofSimSvc "
917 "where SftVer = '%s' and RunFrom <= %d and RunTo >= %d order "
918 "by TofSimParVer desc",
919 SftVer, run_No, run_No );
920 }
921
922 int row_no = m_dbsvc->query( "offlinedb", stmt1, res );
923 if ( row_no < 1 )
924 {
925 std::cout << "ERROR:error searching TOFSim calibration Data in the database with: "
926 << stmt1 << std::endl;
927 return RETMySQLError;
928 }
929 int RunFrom, RunTo;
930 DatabaseRecord& records = *res[0];
931 sscanf( records["RunFrom"], "%d", &RunFrom );
932 sscanf( records["RunTo"], "%d", &RunTo );
933 cout << "@table TofSim: RunFrom is:" << RunFrom << " RunTo is:" << RunTo << endl;
934 return RETOk;
935 }

◆ getReadTofSimInfo() [2/3]

eRet calibUtil::Metadata::getReadTofSimInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getReadTofSimInfo() [3/3]

eRet calibUtil::Metadata::getReadTofSimInfo ( unsigned int serialNo,
int * runFrm,
int * runTo,
std::string & calParVer,
DatabaseRecordVector & res,
int runNo,
std::string & sftver )

◆ getTable() [1/3]

const std::string & calibUtil::Metadata::getTable ( )
inline

Definition at line 223 of file Calibration/calibUtil/include/calibUtil/Metadata.h.

223{ return m_table; }

◆ getTable() [2/3]

const std::string & calibUtil::Metadata::getTable ( )
inline

Definition at line 223 of file InstallArea/x86_64-el9-gcc13-dbg/include/calibUtil/Metadata.h.

223{ return m_table; }

◆ getTable() [3/3]

const std::string & calibUtil::Metadata::getTable ( )
inline

Definition at line 223 of file InstallArea/x86_64-el9-gcc13-opt/include/calibUtil/Metadata.h.

223{ return m_table; }

◆ registerCalib() [1/3]

int calibUtil::Metadata::registerCalib ( const std::string & inst,
const std::string & flavor,
const std::string & calib_type,
const std::string & data_ident,
const std::string & data_format,
unsigned int & runfrm,
unsigned int & runto,
const std::string & input_desc,
const std::string & notes,
const std::string & proc_level,
const std::string & locale,
const std::string & fmt_version = "",
const std::string & completion = "OK" )

Definition at line 1205 of file Metadata.cxx.

1211 {
1212
1213 using namespace rdbModel;
1214
1215 eRet ret;
1216
1217 if ( !m_writeCxt )
1218 {
1219 connectWrite( ret );
1220 if ( ret != RETOk ) return 0; // we or connectWrite should throw exception
1221 }
1222 StringVector cols;
1223 StringVector vals;
1224 StringVector nullCols;
1225
1226 cols.reserve( 24 );
1227 vals.reserve( 24 );
1228 nullCols.reserve( 16 );
1229
1230 if ( inst.size() * calib_type.size() * flavor.size() * data_fmt.size() *
1231 data_ident.size() * proc_level.size() * completion.size() * locale.size() ==
1232 0 )
1233 { // something is null that shouldn't be
1234 return 0; // should perhaps throw exception
1235 }
1236 cols.push_back( "calib_type" );
1237 vals.push_back( calib_type );
1238 // cols.push_back("flavor"); vals.push_back(flavor);
1239 cols.push_back( "data_fmt" );
1240 vals.push_back( data_fmt );
1241 cols.push_back( "data_ident" );
1242 vals.push_back( data_ident );
1243 cols.push_back( "status" );
1244 vals.push_back( completion );
1245 std::string s_runfrm, s_runto;
1246 facilities::Util::itoa( runfrm, s_runfrm );
1247 facilities::Util::itoa( runto, s_runto );
1248 cols.push_back( "RunFrom" );
1249 vals.push_back( s_runfrm );
1250 cols.push_back( "RunTo" );
1251 vals.push_back( s_runto );
1252
1253 // These, however, may be null
1254 if ( input_desc.size() > 0 )
1255 {
1256 cols.push_back( "input_desc" );
1257 vals.push_back( input_desc );
1258 }
1259 else nullCols.push_back( "input_desc" );
1260
1261 if ( notes.size() > 0 )
1262 {
1263 cols.push_back( "notes" );
1264 vals.push_back( notes );
1265 }
1266 else nullCols.push_back( "notes" );
1267
1268 if ( fmt_version.size() > 0 )
1269 {
1270 cols.push_back( "fmt_version" );
1271 vals.push_back( fmt_version );
1272 }
1273
1274 // The service -- that's us -- is responsible for creator, uid, enter_time
1275 cols.push_back( "creator" );
1276 vals.push_back( "Metadata::registerCalib" );
1277 std::string uid;
1278 fetchUser( uid );
1279 cols.push_back( "uid" );
1280 vals.push_back( uid );
1281 facilities::Timestamp curTime;
1282 cols.push_back( "enter_time" );
1283 vals.push_back( curTime.getString() );
1284 // update_time is set automatically by MySQL, but MySQL uses
1285 // local timezone rather than gmt, so we have set it explicitly
1286 cols.push_back( "update_time" );
1287 vals.push_back( curTime.getString() );
1288
1289 if ( m_rdb )
1290 {
1291 bool ok = checkValues( cols, vals );
1292 if ( ok ) checkNulls( nullCols );
1293 if ( !ok ) return 0;
1294 }
1295
1296 // ser_no gets set automatically by MySQL
1297 int ser_no;
1298 if ( !( m_writeCxt->insertRow( m_table, cols, vals, &ser_no, &nullCols ) ) ) { return 0; }
1299 else
1300 {
1301 adjustVend( ser_no );
1302 return ser_no;
1303 }
1304 }
bool checkValues(const rdbModel::StringVector &cols, const rdbModel::StringVector &vals) const
bool checkNulls(const rdbModel::StringVector &cols) const
std::string getString() const
Return string representation of time, not including nanoseconds;.
Definition Timestamp.cxx:87

◆ registerCalib() [2/3]

int calibUtil::Metadata::registerCalib ( const std::string & inst,
const std::string & flavor,
const std::string & calib_type,
const std::string & data_ident,
const std::string & data_format,
unsigned int & runfrm,
unsigned int & runto,
const std::string & input_desc,
const std::string & notes,
const std::string & proc_level,
const std::string & locale,
const std::string & fmt_version = "",
const std::string & completion = "OK" )

◆ registerCalib() [3/3]

int calibUtil::Metadata::registerCalib ( const std::string & inst,
const std::string & flavor,
const std::string & calib_type,
const std::string & data_ident,
const std::string & data_format,
unsigned int & runfrm,
unsigned int & runto,
const std::string & input_desc,
const std::string & notes,
const std::string & proc_level,
const std::string & locale,
const std::string & fmt_version = "",
const std::string & completion = "OK" )

The documentation for this class was generated from the following files: