59 return StatusCode::FAILURE;
62 return StatusCode::SUCCESS;
79 return StatusCode::FAILURE;
81 const size_t currSize=cont->
size();
89 return StatusCode::FAILURE;
102 if (
sc.isFailure()) {
104 return StatusCode::FAILURE;
106 const size_t currSize=cont->
size();
113 return StatusCode::FAILURE;
123 for (
size_t i=0;i<
m_keyList.size();++i) {
127 if (
sc.isFailure()) {
129 return StatusCode::FAILURE;
131 const size_t currSize=cont->
size();
139 return StatusCode::FAILURE;
149 StatusCode
sc=
evtStore()->retrieve(febErrSum);
150 if (
sc.isFailure()) {
155 const std::map<unsigned int,uint16_t>& allFebErrs=febErrSum->
get_all_febs();
156 std::map<unsigned int,uint16_t>::const_iterator it=allFebErrs.begin();
157 std::map<unsigned int,uint16_t>::const_iterator it_e=allFebErrs.end();
158 for(;it!=it_e;++it) {
159 if (it->second & 0xEFFF) {
162 MSG::Level msglvl=MSG::WARNING;
165 if (
m_stopOnError) msglvl=MSG::FATAL;
else msglvl=MSG::ERROR;
168 msg() << msglvl <<
eventDetails() <<
"FEB 0x" << std::hex << it->first <<
" reports the following error(s): "
175 return StatusCode::FAILURE;
182 return StatusCode::SUCCESS;
190 StatusCode
sc =
evtStore()->retrieve(eventInfo);
192 result <<
"[No EventInfo]";
195 unsigned int runNum = eventInfo->
runNumber();
196 result <<
"Run " << runNum <<
", Evt " << evtNum;
206 return StatusCode::FAILURE;
209 return StatusCode::SUCCESS;
220 result+=
"BCID Mismatch, ";
222 result+=
"Sample Header Error, ";
228 result+=
"SCA out of range, ";
230 result+=
"Gain Mismatch, ";
234 result+=
"Number of Samples Mismatch, ";
236 result+=
"Empty Data Block, ";
238 result+=
"DSP Block Size, ";
240 result+=
"Checksum error, ";
242 result+=
"Missing Header, ";
#define ATH_MSG_WARNING(x)
Algorithm to catch corrupt events and stop the job.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
const ServiceHandle< StoreGateSvc > & detStore() const
size_type size() const noexcept
Returns the number of elements in the collection.
Container class for LArAccumulatedCalibDigit.
LArBadEventCatcher(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< std::string > m_keyList
std::string decipherFebError(const uint32_t errword) const
std::size_t m_nFebheaders
std::size_t m_nAccCalibDigits
std::string eventDetails() const
const LArOnlineID * m_onlineID
bool m_checkAccCalibDigits
Container class for LArDigit.
Holds information from the FEB Error Summary.
const std::map< unsigned int, uint16_t > & get_all_febs() const
get all febs with error
uint32_t runNumber() const
The current event's run number.
uint64_t eventNumber() const
The current event's event number.
bool contains(const std::string &s, const std::string ®x)
does a string contain the substring
EventInfo_v1 EventInfo
Definition of the latest event info version.