36 : base_class( name, svcloc ) {
38 declareProperty(
"Host", host = std::string(
"bes3db2.ihep.ac.cn" ) );
39 declareProperty(
"DbName", dbName = std::string(
"offlinedb" ) );
40 declareProperty(
"UserName", userName = std::string(
"guest" ) );
41 declareProperty(
"Password", password = std::string(
"guestpass" ) );
42 declareProperty(
"BossRelease", m_bossRelease = std::string(
"default" ) );
43 declareProperty(
"EmcSatuDeadEnPar", m_calPar =
"default" );
44 declareProperty(
"EmcSatuDeadEnBossVer", m_bossVer =
"default" );
126 int& runfrm,
int& runto,
int RunNo,
127 std::string BossRelease, std::string DataType ) {
128 MsgStream log(
msgSvc(),
"EmcSatuDeadEnSvc" );
134 StatusCode sc = serviceLocator()->service(
"DatabaseSvc",
m_dbsvc,
true );
135 if ( sc.isFailure() )
137 log << MSG::ERROR <<
" Unable to find DatabaseSvc " << endmsg;
141 const char* bossRelease = BossRelease.c_str();
142 const char* dataType = DataType.c_str();
145 "select RunFrom,RunTo,SftVer,ParVer from CalVtxLumVer where BossRelease = '%s' and "
146 "RunFrom <= %d and RunTo >= %d and DataType='%s' ",
147 bossRelease, run_No, run_No, dataType );
148 log << MSG::DEBUG <<
"stmt=" << stmt << endmsg;
150 int row_no =
m_dbsvc->query(
"offlinedb", stmt, res );
154 log << MSG::ERROR <<
"error searching with:" << stmt << endmsg;
160 runfrm = records1->
GetInt(
"RunFrom" );
161 runto = records1->
GetInt(
"RunTo" );
162 log << MSG::DEBUG << dataType <<
" runfrm,runto in getSftParVer is:" << runfrm
163 <<
"::::" << runto << endmsg;
166 CalParVer = records1->
GetString(
"ParVer" );
167 log << MSG::DEBUG <<
"stmt=" << stmt <<
"\t" <<
SftVer <<
"\t" << CalParVer << endmsg;
171 log << MSG::ERROR <<
"ERROR: " << dataType
172 <<
" set overlapped run number in the table CalVtxLumVer" << endmsg;
175 return StatusCode::SUCCESS;
179 MsgStream log(
msgSvc(), name() );
180 SmartDataPtr<Event::EventHeader> eventHeader( m_eventSvc,
"/Event/EventHeader" );
181 int run = eventHeader->runNumber();
182 log << MSG::DEBUG <<
"Run in getEmcSatuDeadEnSvcInfo() is: " << run << endmsg;
194 log << MSG::DEBUG <<
"This data is the MC sample with the Run Number: " << run << endmsg;
200 if ( m_bossRelease ==
"default" )
202 log << MSG::FATAL <<
" Boss Release for EmcSatuDeadEnSvc not set!" << endmsg;
208 cType =
"EmcSatuDeadEn";
210 st1 =
getSftParVer( m_bossVer, m_calPar, runfrm1, runto1, run, m_bossRelease, cType );
213 "select RunFrom,RunTo,EmcSatuEn,EmcDeadEn from EmcSatuDeadEn where SftVer = "
214 "'%s' and RunFrom <= %d and "
216 m_bossVer.c_str(), run, run );
220 int row_no =
m_dbsvc->query(
"offlinedb", stmt1, res );
225 m_SatuEnFile = dbrec.
GetString(
"EmcSatuEn" );
226 m_DeadEnFile = dbrec.
GetString(
"EmcDeadEn" );
227 m_RunFrom = dbrec.
GetInt(
"RunFrom" );
228 m_RunTo = dbrec.
GetInt(
"RunTo" );
230 log << MSG::DEBUG <<
"BossReleaseVer=" << m_bossRelease.c_str() <<
"\t"
231 <<
"EmcSatuDeadEnBossVer=" << m_bossVer.c_str() << endmsg;
232 log << MSG::DEBUG <<
"m_SatuEnFile is:" << m_SatuEnFile << endmsg;
233 log << MSG::DEBUG <<
"m_DeadEnFile is:" << m_DeadEnFile << endmsg;
234 log << MSG::DEBUG <<
"m_RunFrom is:" << m_RunFrom << endmsg;
235 log << MSG::DEBUG <<
"m_RunTo is:" << m_RunTo << endmsg;
236 log << MSG::DEBUG <<
"Successfully fetch EmcSatuDeadEnSvc information for run: " << run
241 else if ( row_no <= 0 )
243 cout <<
" EmcSatuDeadEnSvc:: can not found EmcSatuDeadEnSvc information of run:" << run
244 <<
", boss version " << m_bossRelease << endl;
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)
StatusCode getSftParVer(std::string &SftVer, std::string &CalParVer, int &runfrm, int &runto, int RunNo, std::string BossRelease, std::string DataType)