184 if (
runNo == m_runflag )
return;
186 MsgStream log(
msgSvc(), name() );
187 log << MSG::INFO <<
"begin read database MeasuredEcmsSvc" << endmsg;
189 m_dbRecordVector.clear();
194 m_isRunNoValid =
false;
195 int runNum = std::abs(
runNo );
197 if (
runNo < 0 ) log << MSG::INFO <<
"MeasuredEcmsSvc for MC events" << endmsg;
198 else log << MSG::INFO <<
"MeasuredEcmsSvc for DT events" << endmsg;
207 switch ( m_tableOption )
210 snprintf( stmt, 1024,
211 "select sample, RunFrom, RunTo, Ecms, Ecms_err, Ave_Ecms, Ave_Ecms_err from "
212 "MeasuredEcms2 where RunFrom <= %d and RunTo >= %d",
219 "select beam_energy, px, py, pz, beam_energy_err from RunParams where run_number = %d",
224 snprintf( stmt1, 1024,
225 "select sample, RunFrom, RunTo, Ecms, Ecms_err, Ave_Ecms, Ave_Ecms_err from "
226 "MeasuredEcms2 where RunFrom <= %d and RunTo >= %d",
230 "select beam_energy, px, py, pz, beam_energy_err from RunParams where run_number = %d",
235 if ( m_tableOption == 1 || m_tableOption == 2 )
237 int rowNo = m_dbSvc->query(
"offlinedb", stmt, m_dbRecordVector );
240 { log << MSG::ERROR <<
"RowNo can not be 0, failed to read DB for " <<
runNo << endmsg; }
243 if ( m_tableOption == 1 ) m_rowNo1 = 1;
244 if ( m_tableOption == 2 ) m_rowNo2 = 1;
245 log << MSG::INFO <<
"initialize the DatabaseRecordVector OK for " <<
runNo << endmsg;
246 m_isRunNoValid =
true;
251 m_rowNo1 = m_dbSvc->query(
"offlinedb", stmt1, m_dbRecordVector );
254 m_dbRecordVector.clear();
255 m_rowNo2 = m_dbSvc->query(
"offlinedb", stmt2, m_dbRecordVector );
258 if ( m_rowNo1 == 0 && m_rowNo2 == 0 )
259 { log << MSG::ERROR <<
"RowNo can not be 0, failed to read DB for " <<
runNo << endmsg; }
262 log << MSG::INFO <<
"initialize the DatabaseRecordVector OK for " <<
runNo << endmsg;
263 m_isRunNoValid =
true;
270 MsgStream log(
msgSvc(), name() );
271 log << MSG::INFO <<
"begin read database MeasuredEcmsSvc from " <<
m_runFrom <<
" to "
273 m_dbRecordVector.clear();
277 m_isRunNoValid =
false;
280 if ( ( runFrom >= 23463 && runFrom <= 38140 ) || ( runFrom >= 47543 && runFrom <= 51498 ) )
282 if ( ( runTo >= 23463 && runTo <= 38140 ) || ( runTo >= 47543 && runTo <= 51498 ) )
284 log << MSG::INFO <<
"read table MeasuredEcms2 for " << runFrom <<
":" << runTo << endmsg;
285 snprintf( stmt, 1024,
286 "select sample, RunFrom, RunTo, Ecms, Ecms_err, Ave_Ecms, Ave_Ecms_err from "
287 "MeasuredEcms2 where RunFrom >= %d and RunTo <= %d",
292 else if ( ( runFrom >= 11414 && runFrom <= 23454 ) ||
293 ( runFrom >= 43716 && runFrom <= 47066 ) ||
294 ( runFrom >= 70522 && runFrom <= 73929 ) ||
295 ( runFrom >= 74031 && runFrom <= 78536 ) ||
296 ( runFrom >= 78615 && runFrom <= 81631 ) )
298 if ( ( runTo >= 11414 && runTo <= 23454 ) || ( runTo >= 43716 && runTo <= 47066 ) ||
299 ( runFrom >= 70522 && runFrom <= 73929 ) ||
300 ( runFrom >= 74031 && runFrom <= 78536 ) || ( runFrom >= 78615 && runFrom <= 81631 ) )
302 log << MSG::INFO <<
"read table RunParams for " << runFrom <<
":" << runTo << endmsg;
303 snprintf( stmt, 1024,
304 "select run_number, beam_energy, px, py, pz, beam_energy_err from RunParams "
305 "where run_number >= %d and run_number <= %d",
310 else { m_tableOption = -1; }
312 if ( m_tableOption == 1 || m_tableOption == 2 )
314 int rowNo = m_dbSvc->query(
"offlinedb", stmt, m_dbRecordVector );
317 log << MSG::ERROR <<
"RowNo can not be 0, failed to read DB for " << runFrom <<
":"
319 cout <<
"RowNo can not be 0, failed to read DB for " << runFrom <<
":" << runTo << endl;
323 if ( m_tableOption == 1 ) m_rowNo1 = 1;
324 if ( m_tableOption == 2 ) m_rowNo2 = 1;
325 log << MSG::INFO <<
"initialize the DatabaseRecordVector OK for " << runFrom <<
":"
327 cout <<
"MeasuredEcmsSvc: initialize the DatabaseRecordVector OK for " << runFrom <<
":"
328 << runTo <<
", Nrecord = " << rowNo <<
"." << endl;
329 m_isRunNoValid =
true;
333 for (
int i = 0; i < rowNo; i++ )
335 int runnumber = m_dbRecordVector[i]->GetInt(
"run_number" );
341 for (
int i = 0; i < rowNo; i++ )
343 int run0 = m_dbRecordVector[i]->GetInt(
"RunFrom" );
344 int run1 = m_dbRecordVector[i]->GetInt(
"RunTo" );
345 for (
int j = run0; j <= run1; j++ ) {
m_mapBeamE[j] = i; }