12#include "GaudiKernel/Algorithm.h"
27 const Gaudi::Algorithm *parentAlg =
28 dynamic_cast< const Gaudi::Algorithm*
>(parent());
33 return StatusCode::SUCCESS;
44 return StatusCode::SUCCESS;
54 auto p_event_format = std::make_unique< xAOD::EventFormat >();
55 event_format = p_event_format.
get();
66 return StatusCode::SUCCESS;
73 const std::string& key = elem.getKey();
74 const CLID classID = elem.getPrimaryClassID();
78 bool ignoreObject =
false;
79 for (
const std::string& ignorePattern :
m_ignoreKeys.value()) {
80 if (std::regex_match(key, std::regex(ignorePattern))) {
85 if (ignoreObject)
continue;
90 if (
m_clidSvc->getTypeInfoNameOfID(classID, typeName).isFailure()) {
104 bool ignoreObject =
true;
105 for (
const std::string& typePattern :
m_typeNames.value()) {
106 if (std::regex_match(typeName, std::regex(typePattern))) {
107 ignoreObject =
false;
111 if (ignoreObject)
continue;
117 lookUpHash(classID, elem.getClassIDs(), elem.getHashes());
121 std::lock_guard< std::mutex > lock(
m_efMutex);
123 if (event_format->
exists(key))
continue;
130 <<
", typeName = \"" << typeName <<
"\""
131 <<
", hash = 0x" << std::hex << std::setw(8)
132 << std::setfill(
'0') << hash);
133 }
catch (
const std::exception& e) {
139 return StatusCode::SUCCESS;
145 const std::set<CLID>& classIDs,
146 const std::vector<sgkey_t>& hashes)
const {
148 if (classIDs.size() != hashes.size())
149 throw(std::runtime_error(
"CLID and hash sets not equal in size"));
151 auto it = classIDs.find(primaryClassID);
154 if (it == classIDs.end())
155 throw(std::range_error(
"Primary class ID not in list of class IDs"));
157 return hashes[std::distance(classIDs.begin(), it)];
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
uint32_t CLID
The Class ID type.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
::StatusCode StatusCode
StatusCode definition for legacy code.
EventFormat_v1 EventFormat
Definition of the current event format version.