27 ISvcLocator* pSvcLocator ) :
29 m_evtStore(
"StoreGateSvc",
name),
30 m_detStore(
"DetectorStore",
name),
31 m_mapSvc(
"TRT_HWMappingSvc",
name),
32 m_condSvc(
"CondSvc",
name),
33 m_barrelReadKey(
"/TRT/DCS/HV/BARREL"),
34 m_EAReadKey(
"/TRT/DCS/HV/ENDCAPA"),
35 m_ECReadKey(
"/TRT/DCS/HV/ENDCAPC"),
36 m_TRT_ID_Helper(nullptr),
39 m_currentTimestamp(0),
40 m_doMonitoring(false),
41 m_h_Barrel_nRED(nullptr),
42 m_h_EndcapA_nRED(nullptr),
43 m_h_EndcapC_nRED(nullptr),
44 m_h_Barrel_nNOINFO(nullptr),
45 m_h_EndcapA_nNOINFO(nullptr),
46 m_h_EndcapC_nNOINFO(nullptr),
47 m_h_Barrel_HVvalAvg(nullptr),
48 m_h_EndcapA_HVvalAvg(nullptr),
49 m_h_EndcapC_HVvalAvg(nullptr),
69 ATH_MSG_WARNING(
"DoIOVChecking is deprecated and does nothing. Please remove from your job options configuration." );
73 m_evtBA.push_back(-1);
74 m_evtEA.push_back(-1);
75 m_evtEC.push_back(-1);
76 m_Barrel_HV_COOLCont.push_back(
nullptr);
77 m_EndcapA_HV_COOLCont.push_back(
nullptr);
78 m_EndcapC_HV_COOLCont.push_back(
nullptr);
95 if (
sc.isFailure() ) {
99 if (
sc.isFailure() ) {
111 if (
sc.isFailure() ) {
112 ATH_MSG_ERROR(
"Unable to retrieve pointer to TRT ID Helper." );
118 if (
sc.isFailure() ) {
135 if (
sc.isFailure() ) {
140 if ( theVoltage < m_HVWarnValLo || theVoltage >
m_HVWarnValHi ) {
175 return StatusCode::FAILURE;
183 << barrel_ec <<
"," << phi_slice <<
"," << module_or_wheel <<
","
184 << straw_layer <<
"," <<
straw );
189 if (
sc.isFailure() ) {
193 std::string chanName =
"";
195 if ( chanName.empty() ) {
197 << barrel_ec <<
"," << phi_slice <<
"," << module_or_wheel <<
","
198 << straw_layer <<
"," <<
straw );
199 return StatusCode::FAILURE;
203 if (
sc.isFailure() ) {
207 }
else return StatusCode::FAILURE;
212 return StatusCode::FAILURE;
222 const std::string & chanName,
234 if ( !DCScondFolder ) {
236 if (
sc.isFailure() ) {
238 <<
" from DetectorStore. Has it been loaded into IOVDbSvc?" );
239 return StatusCode::FAILURE;
242 if ( !DCScondFolder )
return StatusCode::FAILURE;
248 <<
" in its ChanNameMap. Won't be able to get channel numbers." );
250 for ( chanNameMapItr = DCScondFolder->
name_begin();
251 chanNameMapItr != DCScondFolder->
name_end(); ++chanNameMapItr ) {
252 if ( (*chanNameMapItr).second == chanName ) {
253 chanNum = (*chanNameMapItr).first;
261 if ( chanAttrListPair == DCScondFolder->
end() ) {
264 <<
" for this IOV." );
265 return StatusCode::FAILURE;
290 if ( !DCScondFolder ) {
292 if (
sc.isFailure() ) {
294 <<
" from DetectorStore. Has it been loaded into IOVDbSvc?" );
298 if ( !DCScondFolder )
return StatusCode::FAILURE;
302 if ( chanAttrListPair == DCScondFolder->
end() ) {
305 <<
" for this IOV." );
306 return StatusCode::FAILURE;
313 return StatusCode::SUCCESS;
333 std::string chanName =
m_mapSvc->get_HV_CoolChanName(
ident );
335 ATH_MSG_VERBOSE(
"Channel " <<
det <<
" " <<
phi <<
" " << lay <<
" " << strawLay <<
" " <<
straw <<
" on line " << chanName <<
" has flag " << theFlag);
347 ATH_MSG_INFO(
"If these are suspicious numbers, turn on VERBOSE output and set VeryVerbose=True to see more info." );
352 TFile*
outFile =
new TFile(
"TRT_DCS_Monitoring.root",
"RECREATE");
367 return StatusCode::SUCCESS;
374 const EventContext& event_context=Gaudi::Hive::currentContext();
375 EventContext::ContextID_t slot=event_context.slot();
376 EventContext::ContextEvt_t event_id=event_context.evt();
379 if(slot>=m_evtBA.size()) {
380 m_evtBA.resize(slot+1);
381 m_Barrel_HV_COOLCont.resize(slot+1);
383 if(m_evtBA[slot]!=event_id) {
385 m_evtBA[slot]=event_id;
386 m_Barrel_HV_COOLCont[slot]=(*rst);
389 return m_Barrel_HV_COOLCont[slot];
392 if(slot>=m_evtEA.size()) {
393 m_evtEA.resize(slot+1);
394 m_EndcapA_HV_COOLCont.resize(slot+1);
396 if(m_evtEA[slot]!=event_id) {
398 m_evtEA[slot]=event_id;
399 m_EndcapA_HV_COOLCont[slot]=(*rst);
402 return m_EndcapA_HV_COOLCont[slot];
405 if(slot>=m_evtEC.size()) {
406 m_evtEC.resize(slot+1);
407 m_EndcapC_HV_COOLCont.resize(slot+1);
409 if(m_evtEC[slot]!=event_id) {
411 m_evtEC[slot]=event_id;
412 m_EndcapC_HV_COOLCont[slot]=(*rst);
415 return m_EndcapC_HV_COOLCont[slot];
418 ATH_MSG_WARNING(
" TRT DCS HV folder requested with bad folder name " );
436 <<
" from StoreGate." );
455 chanNameMapItr != clc->
name_end(); ++chanNameMapItr ) {
456 std::string chanName( (*chanNameMapItr).second );
457 int chanNum( (*chanNameMapItr).first );
467 chanNameMapItr != clc->
name_end(); ++chanNameMapItr ) {
468 std::string chanName( (*chanNameMapItr).second );
469 int chanNum( (*chanNameMapItr).first );
496 <<
" from StoreGate." );
515 chanNameMapItr != clc->
name_end(); ++chanNameMapItr ) {
516 std::string chanName( (*chanNameMapItr).second );
517 int chanNum( (*chanNameMapItr).first );
525 chanNameMapItr != clc->
name_end(); ++chanNameMapItr ) {
526 std::string chanName( (*chanNameMapItr).second );
527 int chanNum( (*chanNameMapItr).first );
552 <<
" from StoreGate." );
571 chanNameMapItr != clc->
name_end(); ++chanNameMapItr ) {
572 std::string chanName( (*chanNameMapItr).second );
573 int chanNum( (*chanNameMapItr).first );
581 chanNameMapItr != clc->
name_end(); ++chanNameMapItr ) {
582 std::string chanName( (*chanNameMapItr).second );
583 int chanNum( (*chanNameMapItr).first );