465 const CLID& classID, IRegistry* entry ) {
466 MsgStream log(
msgSvc(),
"CalibMySQLCnvSvc" );
468 debug() <<
"In createCalib, fullpath = " << fullpath << endmsg;
473 debug() <<
"org-ctype = " << cType << endmsg;
476 if ( std::string(
"Test" ) == cType.substr( 0, 4 ) ) { cType = std::string(
"Test_Gen" ); }
478 debug() <<
"ctype = " << cType << endmsg;
480 std::string testfile = std::string( getenv(
"CALIBMYSQLCNVROOT" ) ) +
"/share/test.root";
481 TFile*
f1 =
new TFile( testfile.c_str(),
"read" );
482 unsigned int ser = 0;
487 std::string
flag =
"default";
490 MSG::Level msgLevel = MSG::DEBUG;
492 std::string physFmt =
"UNK";
493 std::string fmtVersion;
494 std::string dataIdent;
497 SmartDataPtr<Event::EventHeader> evt( m_eventSvc,
"/Event/EventHeader" );
498 int runNo = 0, FirstEvent = 0;
501 log << MSG::WARNING <<
"Unable to read the Event for TDS" << endmsg;
506 if ( cType !=
"TofCal" && cType !=
"EstTofCal" && cType !=
"TofSim" && cType !=
"DedxSim" )
507 runNo = fabs( evt->runNumber() );
508 if ( cType ==
"TofCal" || cType ==
"EstTofCal" || cType ==
"TofSim" || cType ==
"DedxSim" )
509 runNo = evt->runNumber();
510 FirstEvent = evt->eventNumber();
517 if ( ( cType ==
"TofCal" ) && ( m_bossver[3] ==
"default" ) )
519 std::string cType =
"Tof";
520 if ( m_bossRelease ==
"default" )
522 log << MSG::FATAL <<
" Boss Release for TofCal not set!" << endmsg;
527 st1 =
getSftParVer( m_bossver[3], m_calPar[3], runfrm1, runto1,
runNo, m_bossRelease,
530 if ( st1.isFailure() )
532 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
536 ret = m_meta->getReadTOFInfo( ser, &runfrm, &runto, m_calPar[3], res,
runNo,
541 else if ( ( cType ==
"TofCal" ) && ( m_bossver[3] !=
"default" ) )
547 m_meta->getReadTOFInfo( ser, &runfrm, &runto, m_calPar[3], res,
runNo, m_bossver[3] );
552 if ( ( cType ==
"EmcCal" ) && ( m_bossver[2] ==
"default" ) )
554 std::string cType =
"Emc";
555 if ( m_bossRelease ==
"default" )
557 log << MSG::FATAL <<
" Boss Release for EmcCal not set!" << endmsg;
563 st1 =
getSftParVer( m_bossver[2], m_calPar[2], runfrm1, runto1,
runNo, m_bossRelease,
567 if ( st1.isFailure() )
569 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
572 ret = m_meta->getReadEMCInfo( ser, &runfrm, &runto, m_calPar[2], res,
runNo,
577 else if ( ( cType ==
"EmcCal" ) && ( m_bossver[2] !=
"default" ) )
583 m_meta->getReadEMCInfo( ser, &runfrm, &runto, m_calPar[2], res,
runNo, m_bossver[2] );
588 if ( ( cType ==
"DedxCal" ) && ( m_bossver[1] ==
"default" ) )
590 std::string cType =
"Dedx";
591 if ( m_bossRelease ==
"default" )
593 log << MSG::FATAL <<
" Boss Release for DedxCal not set!" << endmsg;
598 st1 =
getSftParVer( m_bossver[1], m_calPar[1], runfrm1, runto1,
runNo, m_bossRelease,
601 if ( st1.isFailure() )
603 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
606 ret = m_meta->getReadDedxInfo( ser, &runfrm, &runto, m_calPar[1], res,
runNo,
611 else if ( ( cType ==
"DedxCal" ) && ( m_bossver[1] !=
"default" ) )
617 m_meta->getReadDedxInfo( ser, &runfrm, &runto, m_calPar[1], res,
runNo, m_bossver[1] );
622 if ( ( cType ==
"MdcCal" ) && ( m_bossver[0] ==
"default" ) )
624 std::string cType =
"Mdc";
626 if ( m_bossRelease ==
"default" )
628 log << MSG::FATAL <<
" Boss Release for MdcCal not set!" << endmsg;
633 st1 =
getSftParVer( m_bossver[0], m_calPar[0], runfrm1, runto1,
runNo, m_bossRelease,
636 if ( st1.isFailure() )
638 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
641 ret = m_meta->getReadMDCInfo( ser, &runfrm, &runto, m_calPar[0], res,
runNo,
646 else if ( ( cType ==
"MdcCal" ) && ( m_bossver[0] !=
"default" ) )
652 m_meta->getReadMDCInfo( ser, &runfrm, &runto, m_calPar[0], res,
runNo, m_bossver[0] );
657 if ( ( cType ==
"MucCal" ) && ( m_bossver[4] ==
"default" ) )
659 std::string cType =
"Muc";
660 if ( m_bossRelease ==
"default" )
662 log << MSG::FATAL <<
" Boss Release for MucCal not set!" << endmsg;
667 st1 =
getSftParVer( m_bossver[4], m_calPar[4], runfrm1, runto1,
runNo, m_bossRelease,
670 if ( st1.isFailure() )
672 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
675 ret = m_meta->getReadMUCInfo( ser, &runfrm, &runto, m_calPar[4], res,
runNo,
680 else if ( ( cType ==
"MucCal" ) && ( m_bossver[4] !=
"default" ) )
686 m_meta->getReadMUCInfo( ser, &runfrm, &runto, m_calPar[4], res,
runNo, m_bossver[4] );
691 if ( ( cType ==
"EsTimeCal" ) && ( m_bossver[5] ==
"default" ) )
693 std::string cType =
"EsTime";
694 if ( m_bossRelease ==
"default" )
696 log << MSG::FATAL <<
" Boss Release for EsTimeCal not set!" << endmsg;
701 st1 =
getSftParVer( m_bossver[5], m_calPar[5], runfrm1, runto1,
runNo, m_bossRelease,
704 if ( st1.isFailure() )
706 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
709 ret = m_meta->getReadEsTimeInfo( ser, &runfrm, &runto, m_calPar[5], res,
runNo,
714 else if ( ( cType ==
"EsTimeCal" ) && ( m_bossver[5] !=
"default" ) )
719 ret = m_meta->getReadEsTimeInfo( ser, &runfrm, &runto, m_calPar[5], res,
runNo,
725 if ( ( cType ==
"MdcAlign" ) && ( m_bossver[7] ==
"default" ) )
727 std::string cType =
"MdcAlign";
728 if ( m_bossRelease ==
"default" )
730 log << MSG::FATAL <<
" Boss Release for MdcAlignCal not set!" << endmsg;
735 st1 =
getSftParVer( m_bossver[7], m_calPar[7], runfrm1, runto1,
runNo, m_bossRelease,
738 if ( st1.isFailure() )
740 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
743 ret = m_meta->getReadMdcAlignInfo( ser, &runfrm, &runto, m_calPar[7], res,
runNo,
748 else if ( ( cType ==
"MdcAlign" ) && ( m_bossver[7] !=
"default" ) )
753 ret = m_meta->getReadMdcAlignInfo( ser, &runfrm, &runto, m_calPar[7], res,
runNo,
759 if ( ( cType ==
"TofQElec" ) && ( m_bossver[8] ==
"default" ) )
761 std::string cType =
"TofQElec";
762 if ( m_bossRelease ==
"default" )
764 log << MSG::FATAL <<
" Boss Release for TofQElecCal not set!" << endmsg;
770 st1 =
getSftParVer( m_bossver[8], m_calPar[8], runfrm1, runto1,
runNo, m_bossRelease,
773 if ( st1.isFailure() )
775 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
778 ret = m_meta->getReadTofQElecInfo( ser, &runfrm, &runto, m_calPar[8], res,
runNo,
783 else if ( ( cType ==
"TofQElec" ) && ( m_bossver[8] !=
"default" ) )
788 ret = m_meta->getReadTofQElecInfo( ser, &runfrm, &runto, m_calPar[8], res,
runNo,
794 if ( ( cType ==
"TofSim" ) && ( m_bossver[9] ==
"default" ) )
796 std::string cType =
"TofSim";
797 if ( m_bossRelease ==
"default" )
799 log << MSG::FATAL <<
" Boss Release for TofSimCal not set!" << endmsg;
804 st1 =
getSftParVer( m_bossver[9], m_calPar[9], runfrm1, runto1,
runNo, m_bossRelease,
807 if ( st1.isFailure() )
809 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
812 ret = m_meta->getReadTofSimInfo( ser, &runfrm, &runto, m_calPar[9], res,
runNo,
817 else if ( ( cType ==
"TofSim" ) && ( m_bossver[9] !=
"default" ) )
822 ret = m_meta->getReadTofSimInfo( ser, &runfrm, &runto, m_calPar[9], res,
runNo,
828 if ( ( cType ==
"DedxSim" ) && ( m_bossver[10] ==
"default" ) )
830 std::string cType =
"DedxSim";
831 if ( m_bossRelease ==
"default" )
833 log << MSG::FATAL <<
" Boss Release for DedxSimCal not set!" << endmsg;
838 st1 =
getSftParVer( m_bossver[10], m_calPar[10], runfrm1, runto1,
runNo, m_bossRelease,
841 if ( st1.isFailure() )
843 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
846 ret = m_meta->getReadDedxSimInfo( ser, &runfrm, &runto, m_calPar[10], res,
runNo,
851 else if ( ( cType ==
"DedxSim" ) && ( m_bossver[10] !=
"default" ) )
856 ret = m_meta->getReadDedxSimInfo( ser, &runfrm, &runto, m_calPar[10], res,
runNo,
862 if ( ( cType ==
"MdcDataConst" ) && ( m_bossver[11] ==
"default" ) )
864 std::string cType =
"MdcData";
865 if ( m_bossRelease ==
"default" )
867 log << MSG::FATAL <<
" Boss Release for MdcDataConst not set!" << endmsg;
872 st1 =
getSftParVer( m_bossver[11], m_calPar[11], runfrm1, runto1,
runNo, m_bossRelease,
875 if ( st1.isFailure() )
877 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
880 ret = m_meta->getReadMdcDataConstInfo( ser, &runfrm, &runto, m_calPar[11], res,
runNo,
885 else if ( ( cType ==
"MdcDataConst" ) && ( m_bossver[11] !=
"default" ) )
890 ret = m_meta->getReadMdcDataConstInfo( ser, &runfrm, &runto, m_calPar[11], res,
runNo,
896 if ( ( cType ==
"EstTofCal" ) && ( m_bossver[6] ==
"default" ) )
898 std::string cType =
"EsTof";
899 if ( m_bossRelease ==
"default" )
901 log << MSG::FATAL <<
" Boss Release for EstTofCal not set!" << endmsg;
906 st1 =
getSftParVer( m_bossver[6], m_calPar[6], runfrm1, runto1,
runNo, m_bossRelease,
909 if ( st1.isFailure() )
911 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
914 ret = m_meta->getReadEstTofInfo( ser, &runfrm, &runto, m_calPar[6], res,
runNo,
919 else if ( ( cType ==
"EstTofCal" ) && ( m_bossver[6] !=
"default" ) )
924 ret = m_meta->getReadEstTofInfo( ser, &runfrm, &runto, m_calPar[6], res,
runNo,
930 if ( ( cType ==
"InjSigInterval" ) && ( m_bossver[12] ==
"default" ) )
932 std::string cType =
"InjSigInterval";
933 if ( m_bossRelease ==
"default" )
935 log << MSG::FATAL <<
" Boss Release for InjSigInterval not set!" << endmsg;
940 st1 =
getSftParVer( m_bossver[12], m_calPar[12], runfrm1, runto1,
runNo, m_bossRelease,
943 if ( st1.isFailure() )
945 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
948 ret = m_meta->getReadInjSigIntervalInfo( ser, &runfrm, &runto, m_calPar[12], res,
runNo,
953 else if ( ( cType ==
"InjSigInterval" ) && ( m_bossver[12] !=
"default" ) )
957 ret = m_meta->getReadInjSigIntervalInfo( ser, &runfrm, &runto, m_calPar[12], res,
runNo,
963 if ( ( cType ==
"InjSigTime" ) && ( m_bossver[13] ==
"default" ) )
965 std::string cType =
"InjSigTime";
966 if ( m_bossRelease ==
"default" )
968 log << MSG::FATAL <<
" Boss Release for InjSigTime not set!" << endmsg;
973 st1 =
getSftParVer( m_bossver[13], m_calPar[13], runfrm1, runto1,
runNo, m_bossRelease,
976 if ( st1.isFailure() )
978 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
981 ret = m_meta->getReadInjSigTimeInfo( ser, &runfrm, &runto, m_calPar[13], res,
runNo,
986 else if ( ( cType ==
"InjSigTime" ) && ( m_bossver[13] !=
"default" ) )
990 ret = m_meta->getReadInjSigTimeInfo( ser, &runfrm, &runto, m_calPar[13], res,
runNo,
996 if ( ( cType ==
"OffEvtFilter" ) && ( m_bossver[14] ==
"default" ) )
998 std::string cType =
"OffEvtFilter";
999 if ( m_bossRelease ==
"default" )
1001 log << MSG::FATAL <<
" Boss Release for OffEvtFilter not set!" << endmsg;
1006 st1 =
getSftParVer( m_bossver[14], m_calPar[14], runfrm1, runto1,
runNo, m_bossRelease,
1009 if ( st1.isFailure() )
1011 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1014 ret = m_meta->getReadOffEvtFilterInfo( ser, &runfrm, &runto, m_calPar[14], res,
runNo,
1019 else if ( ( cType ==
"OffEvtFilter" ) && ( m_bossver[14] !=
"default" ) )
1023 ret = m_meta->getReadOffEvtFilterInfo( ser, &runfrm, &runto, m_calPar[14], res,
runNo,
1029 if ( cType ==
"CorrectedETS" )
1031 std::string cType =
"CorrectedETS";
1033 ret = m_meta->getReadCorrectedETSInfo( ser,
runNo, FirstEvent, m_calPar[15], res );
1035 int _strlenRun = strlen( ( *res[0] )[
"Run"] ) + 1;
1036 char* _pStatus =
new char[3];
1037 char* _pRunFrom =
new char[_strlenRun];
1038 char* _pRunTo =
new char[_strlenRun];
1039 memcpy( _pStatus,
"OK", 3 );
1040 memcpy( _pRunFrom, ( *res[0] )[
"Run"], _strlenRun );
1041 memcpy( _pRunTo, ( *res[0] )[
"Run"], _strlenRun );
1043 ( *res[0] )[
"Status"] = _pStatus;
1044 ( *res[0] )[
"RunFrom"] = _pRunFrom;
1045 ( *res[0] )[
"RunTo"] = _pRunTo;
1052 log << MSG::ERROR <<
"no record in the database" << endmsg;
1056 int sz = res.size();
1059 if ( m_dbStatus ==
"OK" )
1061 if ( std::string( ( *records1 )[
"Status"] ) !=
"OK" )
1063 log << MSG::FATAL <<
"Status of type " << cType <<
" is " << ( *records1 )[
"Status"]
1064 <<
" your setting is OK" << endmsg;
1069 log << MSG::DEBUG <<
"dataIdent is:" << dataIdent << endmsg;
1070 unsigned char storageType;
1078 log << MSG::DEBUG <<
"Creating an address of type " << (int)storageType <<
" for class "
1079 << classID << endmsg;
1081 IOpaqueAddress* tmpAddress;
1082 const std::string par[3] = { dataIdent, fullpath, fmtVersion };
1085 const unsigned long ipar[2] = { 0, 0 };
1090 tmpAddress =
new TreeAddress( storageType, classID, *records1, ipar );
1093 sscanf( ( *records1 )[
"RunFrom"],
"%d", &runfrm );
1094 sscanf( ( *records1 )[
"RunTo"],
"%d", &runto );
1095 log << MSG::DEBUG << __LINE__ <<
" records @ runfrm is:" << ( *records1 )[
"RunFrom"]
1096 <<
" runto is:" << ( *records1 )[
"RunTo"] <<
" ser_no is:" << ser << endmsg;
1099 if (
flag ==
"default" )
1101 if ( runfrm1 > runfrm ) { runfrm = runfrm1; }
1102 if ( runto1 < runto ) { runto = runto1; }
1104 if (
flag ==
"set" ) {
flag =
"default"; }
1105 log << MSG::DEBUG << __LINE__ <<
" runfrm of max is:" << runfrm <<
" runto min is:" << runto
1123 tmpAddress->addRef();
1126 tmpAddress->setRegistry( entry );
1129 sc = m_detPersSvc->createObj( tmpAddress, refpObject );
1130 tmpAddress->release();
1131 if ( !sc.isSuccess() )
1133 log << msgLevel <<
"Persistency service could not create a new object" << endmsg;
1136 log << msgLevel << std::endl
1137 <<
"++++CalibMySQLCnvSvc Exiting... " << std::endl
1145 log << MSG::DEBUG <<
"New object successfully created" << endmsg;
1146 return StatusCode::SUCCESS;
1150 return StatusCode::SUCCESS;
1164 const CLID& classID, IRegistry* entry ) {
1167 MsgStream log(
msgSvc(),
"CalibMySQLCnvSvc" );
1170 std::string testfile = std::string( getenv(
"CALIBMYSQLCNVROOT" ) ) +
"/share/test.root";
1171 TFile*
f1 =
new TFile( testfile.c_str(),
"read" );
1178 if ( std::string(
"Test" ) == cType.substr( 0, 4 ) ) { cType = std::string(
"Test_Gen" ); }
1182 log << MSG::ERROR <<
"There is no DataObject to update" << endmsg;
1183 return StatusCode::FAILURE;
1186 if ( pObject->clID() != 6411 && classID != 6411 )
1188 if ( classID != pObject->clID() )
1190 log << MSG::ERROR <<
"Update requested for clID " << classID
1191 <<
" while DataObject is of clID " << pObject->clID() << endmsg;
1193 return StatusCode::FAILURE;
1202 log << MSG::WARNING <<
"Object to be updated is not a calib object! " << endmsg;
1203 return StatusCode::FAILURE;
1208 unsigned int ser = 0;
1209 int runfrm, runfrm1;
1210 int runto, runto1, FirstEvent = 0;
1214 std::string physFmt;
1215 std::string fmtVersion;
1216 std::string dataIdent;
1217 std::string
flag =
"default";
1225 SmartDataPtr<Event::EventHeader> evt( m_eventSvc,
"/Event/EventHeader" );
1229 log << MSG::WARNING <<
"Unable to read the Event for TDS" << endmsg;
1239 if ( cType !=
"TofCal" && cType !=
"EstTofCal" && cType !=
"TofSim" && cType !=
"DedxSim" )
1240 runNo = fabs( evt->runNumber() );
1241 if ( cType ==
"TofCal" || cType ==
"EstTofCal" || cType ==
"TofSim" || cType ==
"DedxSim" )
1242 runNo = evt->runNumber();
1243 FirstEvent = evt->eventNumber();
1247 if ( ( cType ==
"TofCal" ) )
1249 std::string cType =
"Tof";
1250 if ( m_flag[3] ==
"default" )
1252 st1 =
getSftParVer( m_bossver[3], m_calPar[3], runfrm1, runto1,
runNo, m_bossRelease,
1254 cout << cType <<
" runfrm1,runto1 @update is:" << runfrm1 <<
":::" << runto1 << endl;
1255 if ( st1.isFailure() )
1257 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1267 m_meta->getReadTOFInfo( ser, &runfrm, &runto, m_calPar[3], res,
runNo, m_bossver[3] );
1272 if ( ( cType ==
"EmcCal" ) )
1274 std::string cType =
"Emc";
1275 if ( m_flag[2] ==
"default" )
1277 st1 =
getSftParVer( m_bossver[2], m_calPar[2], runfrm1, runto1,
runNo, m_bossRelease,
1280 if ( st1.isFailure() )
1282 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1289 m_meta->getReadEMCInfo( ser, &runfrm, &runto, m_calPar[2], res,
runNo, m_bossver[2] );
1294 if ( ( cType ==
"DedxCal" ) )
1296 std::string cType =
"Dedx";
1297 if ( m_flag[1] ==
"default" )
1299 st1 =
getSftParVer( m_bossver[1], m_calPar[1], runfrm1, runto1,
runNo, m_bossRelease,
1302 if ( st1.isFailure() )
1304 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1311 m_meta->getReadDedxInfo( ser, &runfrm, &runto, m_calPar[1], res,
runNo, m_bossver[1] );
1315 if ( ( cType ==
"MdcCal" ) )
1317 std::string cType =
"Mdc";
1318 if ( m_flag[0] ==
"default" )
1321 st1 =
getSftParVer( m_bossver[0], m_calPar[0], runfrm1, runto1,
runNo, m_bossRelease,
1324 if ( st1.isFailure() )
1326 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1333 m_meta->getReadMDCInfo( ser, &runfrm, &runto, m_calPar[0], res,
runNo, m_bossver[0] );
1338 if ( ( cType ==
"MucCal" ) )
1340 std::string cType =
"Muc";
1341 if ( m_flag[4] ==
"default" )
1343 st1 =
getSftParVer( m_bossver[4], m_calPar[4], runfrm1, runto1,
runNo, m_bossRelease,
1346 if ( st1.isFailure() )
1348 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1355 m_meta->getReadMUCInfo( ser, &runfrm, &runto, m_calPar[4], res,
runNo, m_bossver[4] );
1359 if ( ( cType ==
"EsTimeCal" ) )
1361 std::string cType =
"EsTime";
1362 if ( m_flag[5] ==
"default" )
1364 st1 =
getSftParVer( m_bossver[5], m_calPar[5], runfrm1, runto1,
runNo, m_bossRelease,
1367 if ( st1.isFailure() )
1369 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1375 ret = m_meta->getReadEsTimeInfo( ser, &runfrm, &runto, m_calPar[5], res,
runNo,
1380 if ( ( cType ==
"MdcAlign" ) )
1382 std::string cType =
"MdcAlign";
1383 if ( m_flag[7] ==
"default" )
1385 st1 =
getSftParVer( m_bossver[7], m_calPar[7], runfrm1, runto1,
runNo, m_bossRelease,
1388 if ( st1.isFailure() )
1390 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1396 ret = m_meta->getReadMdcAlignInfo( ser, &runfrm, &runto, m_calPar[7], res,
runNo,
1401 if ( ( cType ==
"TofQElec" ) )
1403 std::string cType =
"TofQElec";
1404 if ( m_flag[8] ==
"default" )
1407 st1 =
getSftParVer( m_bossver[8], m_calPar[8], runfrm1, runto1,
runNo, m_bossRelease,
1413 ret = m_meta->getReadTofQElecInfo( ser, &runfrm, &runto, m_calPar[8], res,
runNo,
1419 if ( ( cType ==
"TofSim" ) )
1421 std::string cType =
"TofSim";
1422 if ( m_flag[9] ==
"default" )
1424 st1 =
getSftParVer( m_bossver[9], m_calPar[9], runfrm1, runto1,
runNo, m_bossRelease,
1427 if ( st1.isFailure() )
1429 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1435 ret = m_meta->getReadTofSimInfo( ser, &runfrm, &runto, m_calPar[9], res,
runNo,
1441 if ( ( cType ==
"DedxSim" ) )
1443 std::string cType =
"DedxSim";
1444 if ( m_flag[10] ==
"default" )
1446 st1 =
getSftParVer( m_bossver[10], m_calPar[10], runfrm1, runto1,
runNo, m_bossRelease,
1449 if ( st1.isFailure() )
1451 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1457 ret = m_meta->getReadDedxSimInfo( ser, &runfrm, &runto, m_calPar[10], res,
runNo,
1463 if ( ( cType ==
"MdcDataConst" ) )
1465 std::string cType =
"MdcData";
1466 if ( m_flag[11] ==
"default" )
1468 st1 =
getSftParVer( m_bossver[11], m_calPar[11], runfrm1, runto1,
runNo, m_bossRelease,
1471 if ( st1.isFailure() )
1473 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1479 ret = m_meta->getReadMdcDataConstInfo( ser, &runfrm, &runto, m_calPar[11], res,
runNo,
1485 if ( cType ==
"InjSigInterval" )
1487 std::string cType =
"InjSigInterval";
1488 if ( m_flag[12] ==
"default" )
1490 st1 =
getSftParVer( m_bossver[12], m_calPar[12], runfrm1, runto1,
runNo, m_bossRelease,
1492 if ( st1.isFailure() )
1494 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1499 ret = m_meta->getReadInjSigIntervalInfo( ser, &runfrm, &runto, m_calPar[12], res,
runNo,
1503 if ( cType ==
"InjSigTime" )
1505 std::string cType =
"InjSigTime";
1506 if ( m_flag[13] ==
"default" )
1508 st1 =
getSftParVer( m_bossver[13], m_calPar[13], runfrm1, runto1,
runNo, m_bossRelease,
1510 if ( st1.isFailure() )
1512 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1517 ret = m_meta->getReadInjSigTimeInfo( ser, &runfrm, &runto, m_calPar[13], res,
runNo,
1521 if ( cType ==
"OffEvtFilter" )
1523 std::string cType =
"OffEvtFilter";
1524 if ( m_flag[14] ==
"default" )
1526 st1 =
getSftParVer( m_bossver[14], m_calPar[14], runfrm1, runto1,
runNo, m_bossRelease,
1528 if ( st1.isFailure() )
1530 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1535 ret = m_meta->getReadOffEvtFilterInfo( ser, &runfrm, &runto, m_calPar[14], res,
runNo,
1539 if ( cType ==
"CorrectedETS" )
1541 std::string cType =
"CorrectedETS";
1542 ret = m_meta->getReadCorrectedETSInfo( ser,
runNo, FirstEvent, m_calPar[15], res );
1544 int _strlenRun = strlen( ( *res[0] )[
"Run"] ) + 1;
1545 char* _pStatus =
new char[3];
1546 char* _pRunFrom =
new char[_strlenRun];
1547 char* _pRunTo =
new char[_strlenRun];
1548 memcpy( _pStatus,
"OK", 3 );
1549 memcpy( _pRunFrom, ( *res[0] )[
"Run"], _strlenRun );
1550 memcpy( _pRunTo, ( *res[0] )[
"Run"], _strlenRun );
1552 ( *res[0] )[
"Status"] = _pStatus;
1553 ( *res[0] )[
"RunFrom"] = _pRunFrom;
1554 ( *res[0] )[
"RunTo"] = _pRunTo;
1560 if ( ( cType ==
"EstTofCal" ) )
1562 std::string cType =
"EsTof";
1563 if ( m_flag[6] ==
"default" )
1565 st1 =
getSftParVer( m_bossver[6], m_calPar[6], runfrm1, runto1,
runNo, m_bossRelease,
1568 if ( st1.isFailure() )
1570 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
1576 ret = m_meta->getReadEstTofInfo( ser, &runfrm, &runto, m_calPar[6], res,
runNo,
1583 log << MSG::ERROR <<
"Error searching in the database" << endmsg;
1588 unsigned char storageType;
1595 log << MSG::DEBUG <<
"Creating an address of type " << (int)storageType <<
" for class "
1596 << classID << endmsg;
1601 if ( m_dbStatus ==
"OK" )
1603 if ( std::string( ( *records1 )[
"Status"] ) !=
"OK" )
1605 log << MSG::FATAL <<
"the status of type " << cType <<
" is " << ( *records1 )[
"Status"]
1606 <<
" your setting is OK" << endmsg;
1611 IOpaqueAddress* tmpAddress;
1613 const unsigned long ipar[2] = { 0, 0 };
1615 tmpAddress =
new TreeAddress( storageType, classID, *records1, ipar );
1618 sscanf( ( *records1 )[
"RunFrom"],
"%d", &runfrm );
1619 sscanf( ( *records1 )[
"RunTo"],
"%d", &runto );
1620 log << MSG::DEBUG << __LINE__ <<
" records @update runfrm is:" << ( *records1 )[
"RunFrom"]
1621 <<
" runto is:" << ( *records1 )[
"RunTo"] <<
" ser_no is:" << ser << endmsg;
1622 if (
flag ==
"default" )
1624 if ( runfrm1 > runfrm ) { runfrm = runfrm1; }
1625 if ( runto1 < runto ) { runto = runto1; }
1627 if (
flag ==
"set" ) {
flag ==
"default"; }
1629 log << MSG::DEBUG << __LINE__ <<
" runfrm of max is:" << runfrm <<
" runto min is:" << runto
1638 log << MSG::DEBUG <<
"Temporary address successfully created" << endmsg;
1639 tmpAddress->addRef();
1642 tmpAddress->setRegistry( entry );
1645 DataObject* pNewObject;
1646 status = m_detPersSvc->createObj( tmpAddress, pNewObject );
1647 tmpAddress->release();
1648 if ( !status.isSuccess() )
1650 log << MSG::ERROR <<
"Persistency service could not create object" << endmsg;
1660 if ( 0 == pNewBase )
1662 log << MSG::ERROR <<
"Cannot update objects other than Calib objects: "
1663 <<
"update() must be defined!" << endmsg;
1664 return StatusCode::FAILURE;
1672 pBase->
update( *pNewBase, &log );
1677 return StatusCode::SUCCESS;