5 #ifdef ONLINE // This tool is only meant for special online monitoring at Point 1
12 #include "boost/date_time/posix_time/posix_time_types.hpp"
14 TRT_Hits_Monitoring_Tool::TRT_Hits_Monitoring_Tool(
const std::string &
type,
const std::string &
name,
const IInterface *
parent):
17 m_lastPublishTime(
boost::posix_time::min_date_time)
26 TRT_Hits_Monitoring_Tool::~TRT_Hits_Monitoring_Tool() {
41 m_name_longToT = m_server +
"." + m_name +
"_longToT";
42 m_nameBR_longToT = m_server +
"." + m_name +
"Barrel_longToT";
43 m_nameEA_longToT = m_server +
"." + m_name +
"EndCapA_longToT";
44 m_nameEC_longToT = m_server +
"." + m_name +
"EndCapC_longToT";
46 m_dict.checkin(m_name_longToT, m_occ_longToT);
47 m_dict.checkin(m_nameBR_longToT, m_occBR_longToT);
48 m_dict.checkin(m_nameEA_longToT, m_occEA_longToT);
49 m_dict.checkin(m_nameEC_longToT, m_occEC_longToT);
51 ATH_CHECK(m_rdoContainerKey.initialize());
53 return StatusCode::SUCCESS;
56 StatusCode TRT_Hits_Monitoring_Tool::bookHistogramsRecurrent() {
57 return StatusCode::SUCCESS;
60 StatusCode TRT_Hits_Monitoring_Tool::fillHistograms() {
61 const static boost::posix_time::time_duration sleepTime = boost::posix_time::milliseconds(m_sleepTime);
62 const boost::posix_time::ptime
now = boost::posix_time::microsec_clock::universal_time();
63 if (
now - m_lastPublishTime < sleepTime)
return StatusCode::SUCCESS;
66 if (!rdoContainer.isValid()) {
67 ATH_MSG_ERROR(
"Could not find TRT RDO container " << m_rdoContainerKey.key());
68 return StatusCode::FAILURE;
71 unsigned int nHits_longToT = 0;
72 unsigned int nHitsBR_longToT = 0;
73 unsigned int nHitsEA_longToT = 0;
74 unsigned int nHitsEC_longToT = 0;
80 if (!TRT_Collection)
continue;
86 if (!rawData)
continue;
90 switch (m_pTRTHelper->barrel_ec((*rdo)->identify())) {
92 case +1: ++nHitsBR_longToT;
break;
93 case +2: ++nHitsEA_longToT;
break;
94 case -2: ++nHitsEC_longToT;
break;
99 const unsigned int nChannelsBarrel = 105088;
100 const unsigned int nChannelsEndcap = 122880;
101 const unsigned int nChannelsTotal = nChannelsBarrel + 2 * nChannelsEndcap;
103 m_occ_longToT = (
float)nHits_longToT / nChannelsTotal;
104 m_occBR_longToT = (
float)nHitsBR_longToT / nChannelsBarrel;
105 m_occEA_longToT = (
float)nHitsEA_longToT / nChannelsEndcap;
106 m_occEC_longToT = (
float)nHitsEC_longToT / nChannelsEndcap;
108 m_dict.update(m_name_longToT, m_occ_longToT);
109 m_dict.update(m_nameBR_longToT, m_occBR_longToT);
110 m_dict.update(m_nameEA_longToT, m_occEA_longToT);
111 m_dict.update(m_nameEC_longToT, m_occEC_longToT);
113 m_lastPublishTime =
now;
114 return StatusCode::SUCCESS;
117 StatusCode TRT_Hits_Monitoring_Tool::procHistograms() {
118 return StatusCode::SUCCESS;