269 {
270 MsgStream log(
msgSvc(), name() );
271 log << MSG::INFO <<
"begin read database MeasuredEcmsSvc from " <<
m_runFrom <<
" to "
273 m_dbRecordVector.clear();
274
275 m_rowNo1 = 0;
276 m_rowNo2 = 0;
277 m_isRunNoValid = false;
278 char stmt[400];
279
280 if ( ( runFrom >= 23463 && runFrom <= 38140 ) || ( runFrom >= 47543 && runFrom <= 51498 ) )
281 {
282 if ( ( runTo >= 23463 && runTo <= 38140 ) || ( runTo >= 47543 && runTo <= 51498 ) )
283 {
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",
288 runFrom, runTo );
289 m_tableOption = 1;
290 }
291 }
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 ) )
297 {
298 if ( ( runTo >= 11414 && runTo <= 23454 ) || ( runTo >= 43716 && runTo <= 47066 ) ||
299 ( runFrom >= 70522 && runFrom <= 73929 ) ||
300 ( runFrom >= 74031 && runFrom <= 78536 ) || ( runFrom >= 78615 && runFrom <= 81631 ) )
301 {
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",
306 runFrom, runTo );
307 m_tableOption = 2;
308 }
309 }
310 else { m_tableOption = -1; }
311
312 if ( m_tableOption == 1 || m_tableOption == 2 )
313 {
314 int rowNo = m_dbSvc->query( "offlinedb", stmt, m_dbRecordVector );
315 if ( rowNo == 0 )
316 {
317 log << MSG::ERROR << "RowNo can not be 0, failed to read DB for " << runFrom << ":"
318 << runTo << endmsg;
319 cout << "RowNo can not be 0, failed to read DB for " << runFrom << ":" << runTo << endl;
320 }
321 else
322 {
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 << ":"
326 << runTo << endmsg;
327 cout << "MeasuredEcmsSvc: initialize the DatabaseRecordVector OK for " << runFrom << ":"
328 << runTo << ", Nrecord = " << rowNo << "." << endl;
329 m_isRunNoValid = true;
330 }
331 if ( m_rowNo2 == 1 )
332 {
333 for ( int i = 0; i < rowNo; i++ )
334 {
335 int runnumber = m_dbRecordVector[i]->GetInt( "run_number" );
337 }
338 }
339 if ( m_rowNo1 == 1 )
340 {
341 for ( int i = 0; i < rowNo; i++ )
342 {
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; }
346 }
347 }
348 }
349}