![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
11 ATH_MSG_DEBUG(
"calling the constructor of ZdcLEDMonitorAlgorithm");
66 if (!robBCIDHandle.isValid())
return StatusCode::FAILURE;
71 for (
const auto& zdcSum : *zdcSums) {
72 if (zdcSum->zdcSide() == 0){
73 moduleSumEventInfo_ptr = zdcSum;
77 const std::vector<uint16_t>& robBCIDvec = robBCIDHandle(*moduleSumEventInfo_ptr);
78 if (robBCIDHandle->size() == 0)
return StatusCode::FAILURE;
80 unsigned int checkBCID = robBCIDvec[0];
81 for (
unsigned int bcid : robBCIDvec) {
82 if (
bcid != checkBCID) {
83 ATH_MSG_ERROR(
"Inconsistent BCIDs in rob header, cannot continue in standalone mode");
84 return StatusCode::FAILURE;
93 unsigned int iLEDType = 1000;
97 return StatusCode::SUCCESS;
102 for (
const auto& zdcSum : *zdcSums) {
103 if (zdcSum->zdcSide() == 0){
104 iLEDType = zdcLEDTypeHandle(*zdcSum);
108 if (iLEDType == 1000){
110 return StatusCode::SUCCESS;
113 ATH_MSG_WARNING(
"The retrieved LED type is incorrect (larger than 2)!");
114 return StatusCode::SUCCESS;
146 return StatusCode::SUCCESS;
151 for (
const auto zdcMod : *zdcModules){
152 int iside = (zdcMod->zdcSide() > 0)? 1 : 0;
154 if (zdcMod->zdcType() == 0){
155 int imod = zdcMod->zdcModule();
156 zdcLEDADCSum = LEDADCSumHandle(*zdcMod);
157 zdcLEDMaxADC = LEDMaxADCHandle(*zdcMod);
158 zdcLEDMaxSample = LEDMaxSampleHandle(*zdcMod);
159 zdcLEDAvgTime = LEDAvgTimeHandle(*zdcMod);
163 else if (zdcMod->zdcType() == 1) {
164 int ichannel = zdcMod->zdcChannel();
166 ATH_MSG_WARNING(
"The current channel number exceeds the zero-based limit (15): it is " << ichannel);
169 rpdLEDADCSum = LEDADCSumHandle(*zdcMod);
170 rpdLEDMaxADC = LEDMaxADCHandle(*zdcMod);
171 rpdLEDMaxSample = LEDMaxSampleHandle(*zdcMod);
172 rpdLEDAvgTime = LEDAvgTimeHandle(*zdcMod);
178 return StatusCode::SUCCESS;
189 return StatusCode::SUCCESS;
210 return StatusCode::SUCCESS;
212 for (
const auto& zdcSum : *zdcSums) {
213 if (zdcSum->zdcSide() == 0){
215 ATH_MSG_WARNING(
"The global sum entry in zdc sum container can be retrieved; but it does NOT have the variable eventType written as a decoration!");
216 return StatusCode::SUCCESS;
220 ATH_MSG_WARNING(
"The global sum entry in zdc sum container can be retrieved; but it does NOT have the variable DAQMode written as a decoration!");
221 return StatusCode::SUCCESS;
224 eventType = eventTypeHandle(*zdcSum);
225 DAQMode = DAQModeHandle(*zdcSum);
232 ATH_MSG_WARNING(
"The zdc sum container can be retrieved from the evtStore() but");
233 ATH_MSG_WARNING(
"Either the event type or the DAQ mode is the default unknown value");
234 ATH_MSG_WARNING(
"Most likely, there is no global sum (side == 0) entry in the zdc sum container");
235 return StatusCode::SUCCESS;
243 return StatusCode::SUCCESS;
ZdcLEDMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
virtual ~ZdcLEDMonitorAlgorithm()
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_LEDPresampleADCKey
Class containing ZDC Module information.
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_LEDTypeKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_robBCIDKey
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_ZdcModuleContainerKey
Base class for Athena Monitoring Algorithms.
std::vector< std::vector< std::vector< int > > > m_RPDChannelLEDToolIndices
Handle class for reading a decoration on an object.
virtual StatusCode initialize() override
initialize
Generic monitoring tool for athena components.
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_ZdcSumContainerKey
::StatusCode StatusCode
StatusCode definition for legacy code.
static const int m_nModules
static const int m_nSides
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
uint32_t lumiBlock() const
The current event's luminosity block number.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_LEDMaxSampleKey
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_LEDAvgTimeKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_LEDMaxADCKey
setEventNumber setTimeStamp bcid
virtual StatusCode initialize() override
initialize
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_LEDADCSumKey
StatusCode fillLEDHistograms(unsigned int DAQMode, const EventContext &ctx) const
#define ATH_MSG_WARNING(x)
static const int m_nChannels
uint16_t level1TriggerType() const
The Level-1 trigger type.
const std::vector< std::string > m_LEDNames
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_eventTypeKey
Declare a monitored scalar variable.
uint32_t bcid() const
The bunch crossing ID of the event.
std::vector< std::vector< std::vector< int > > > m_ZDCModuleLEDToolIndices
bool isAvailable()
Test to see if this variable exists in the store, for the referenced object.
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_DAQModeKey