83 ATH_MSG_DEBUG(
"Request to reinitialize not satisfied - tags have not changed");
123 ATH_MSG_ERROR(
" Could not get value for label 'Calorimeter' of field 'subdet' in dictionary " << atlasDict->
name());
126 ATH_MSG_DEBUG(
"[init_from_dictionary] > caloValue = " << caloValue);
132 std::string tag =
m_dict->dict_tag();
133 bool oldTag = ( tag.empty() || tag ==
"CaloIdentifier-DC3-05" || tag ==
"CaloIdentifier-LVL1-01");
153 reg_id.
add(caloValue);
207 std::string errorMessage =
"[TTOnlineID]::channnelId() result is not OK: ID, range = "
222 std::string errorMessage =
"TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID = "
229 std::string errorMessage =
"TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
244 std::string errorMessage =
"TTOnlineID::channel_Id_checks(moduleId) result is not OK: ID = "
251 std::string errorMessage =
"TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
266 std::string errorMessage =
"TTOnlineID::channel_Id_checks(crateId) result is not OK: ID = "
273 std::string errorMessage =
"TTOnlineID::channel_Id_checks(crateId) result is not OK: ID, range = "
288 if (!
m_full_submodule_range.match(expId)) { std::string errorMessage =
"TTOnlineID::submodule_Id_checks() result is not OK: ID, range = "
303 if (!
m_full_module_range.match(expId)) { std::string errorMessage =
"TTOnlineID::module_Id_checks() result is not OK: ID, range = "
318 if (!
m_full_crate_range.match(expId)) { std::string errorMessage =
"TTOnlineID::crate_Id_checks() result is not OK: ID, range = "
329 ATH_MSG_DEBUG(
"[initLevelsFromDict] (0) Entering routine... ");
332 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - dictionary NOT initialized ");
347 ATH_MSG_DEBUG(
"[initLevelsFromDict] (2) data member initialization OK ... ");
350 std::string tag =
m_dict->dict_tag();
351 bool oldTag = ( tag.empty() || tag ==
"CaloIdentifier-DC3-05" || tag ==
"CaloIdentifier-LVL1-01");
359 if(!oldTag)
ATH_MSG_WARNING(
"TTOnlineID::initLevelsFromDict - unable to find 'PPM_Crate-00' region");
370 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'Calo' field ");
373 ATH_MSG_DEBUG(
"[initLevelsFromDict] (4) field 'Calo' found OK ");
376 field =
m_dict->find_field(
"DetZside") ;
380 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'DetZside' field ");
383 ATH_MSG_DEBUG(
"[initLevelsFromDict] (5) field 'DetZside' found OK ");
386 field =
m_dict->find_field(
"crate") ;
390 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'crate' field ");
393 ATH_MSG_DEBUG(
"[initLevelsFromDict] (6) field 'crate' found OK ");
395 field =
m_dict->find_field(
"module") ;
400 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'module' field ");
403 ATH_MSG_DEBUG(
"[initLevelsFromDict] (7) field 'module' found OK ");
405 field =
m_dict->find_field(
"submodule") ;
410 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'submodule' field ");
413 ATH_MSG_DEBUG(
"[initLevelsFromDict] (8) field 'submodule' found OK ");
415 field =
m_dict->find_field(
"channel") ;
420 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'channel' field ");
423 ATH_MSG_DEBUG(
"[initLevelsFromDict] (9) field 'channel' found OK ");
437 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...fields implementation... ");
438 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_calo_index ");
441 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_det_side_index ");
444 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_crate_index ");
447 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_module_index ");
449 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_submodule_index ");
451 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_channel_index ");
454 ATH_MSG_DEBUG(
"[initLevelsFromDict] (11) decode index and bit fields for each level: ");
475 unsigned int nids = 0;
476 std::set<HWIdentifier> ids;
480 auto first = rit.
begin();
481 auto last = rit.
end();
482 for (; first != last; ++first) {
486 if(!(ids.insert(cra_id)).second){
487 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
495 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
501 std::set<HWIdentifier>::const_iterator first = ids.begin();
502 std::set<HWIdentifier>::const_iterator last = ids.end();
503 for (;first != last && nids <
m_crate_vec.size(); ++first) {
515 unsigned int nids = 0;
516 std::set<HWIdentifier> ids;
520 auto first = rit.
begin();
521 auto last = rit.
end();
522 for (; first != last; ++first) {
526 if(!(ids.insert(mod_id)).second){
527 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
535 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
541 std::set<HWIdentifier>::const_iterator first = ids.begin();
542 std::set<HWIdentifier>::const_iterator last = ids.end();
543 for (;first != last && nids <
m_module_vec.size(); ++first) {
555 unsigned int nids = 0;
556 std::set<HWIdentifier> ids;
560 auto first = rit.
begin();
561 auto last = rit.
end();
562 for (; first != last; ++first) {
566 if(!(ids.insert(submod_id)).second){
567 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
575 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
581 std::set<HWIdentifier>::const_iterator first = ids.begin();
582 std::set<HWIdentifier>::const_iterator last = ids.end();
595 unsigned int nids = 0;
596 std::set<HWIdentifier> ids;
600 auto first = rit.
begin();
601 auto last = rit.
end();
602 for (; first != last; ++first) {
606 if(!(ids.insert(chan_id)).second){
607 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
615 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
621 std::set<HWIdentifier>::const_iterator first = ids.begin();
622 std::set<HWIdentifier>::const_iterator last = ids.end();
623 for (;first != last && nids <
m_channel_vec.size(); ++first) {
#define ATH_MSG_WARNING(x)
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr) override
Initialization from the identifier dictionary.
bool reinitialize(const IdDictMgr &dict_mgr)
Test whether an idhelper should be reinitialized based on the change of tags.
virtual void setDictVersion(const IdDictMgr &dict_mgr, const std::string &name) override
int register_dict_tag(const IdDictMgr &dict_mgr, const std::string &dict_name)
Register the file and tag names for a particular IdDict dictionary.
int calo_field_value() const
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
ExpandedIdentifier calo_exp(void) const
AtlasDetectorID(const std::string &name, const std::string &group)
Exception class for Calo Identifiers.
ConstRangeIterator end() const
ConstRangeIterator begin() const
void add(element_type value)
Append a value into a new field.
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
int get_label_value(const std::string &field, const std::string &label, int &value) const
const std::string & name() const
Dictionary name.
const IdDictDictionary * find_dictionary(const std::string &name) const
Access dictionary by name.
const IdDictFieldImplementation & implementation(size_t i) const
A Range describes the possible ranges for the field values of an ExpandedIdentifier.
HWIdentifier moduleId(int crate, int module) const
(1) create towerId from fields
size_type m_submodule_index
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr)
Initialization from the identifier dictionary.
int initLevelsFromDict()
init() hashes
size_type m_l1online_regions_index
std::vector< HWIdentifier > m_channel_vec
IdDictFieldImplementation m_channel_impl
IdDictFieldImplementation m_submodule_impl
MultiRange m_full_submodule_range
size_type m_submoduleHashMax
HWIdentifier channelId(int crate, int module, int submodule, int channel) const
(1) create towerId from fields
int get_expanded_id(const HWIdentifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
create expanded HWIdentifier from HWIdentifier (return == 0 for OK)
HWIdentifier crateId(int crate) const
(1) create towerId from fields
IdDictFieldImplementation m_calo_detzside_impl
int module(const HWIdentifier id) const
int detzside_field_value() const
return the value of the detzside field (initialized in initialize_from_dictionary())
void channel_Id_checks(int crate, int module, int submodule, int channel) const
void module_Id_checks(int crate, int module) const
IdContext crateContext() const
context for feedthroughs, feb & channels
std::vector< HWIdentifier > m_module_vec
IdDictFieldImplementation m_crate_impl
size_type m_channel_index
const IdDictDictionary * m_dict
void crate_Id_checks(int crate) const
IdContext moduleContext() const
MultiRange m_full_crate_range
int m_iDetZSideFieldValue
IdDictFieldImplementation m_calo_impl
Field Implementation.
MultiRange m_full_module_range
size_type m_moduleHashMax
std::vector< HWIdentifier > m_crate_vec
size_type m_calo_index
Member Data index.
void submodule_Id_checks(int crate, int module, int submodule) const
HWIdentifier submoduleId(int crate, int module, int submodule) const
(1) create towerId from fields
int submodule(const HWIdentifier id) const
IdContext submoduleContext() const
MultiRange m_full_channel_range
size_type m_channelHashMax
size_type m_detzside_index
int crate(const HWIdentifier id) const
std::vector< HWIdentifier > m_submodule_vec
IdContext channelContext() const
int channel(const HWIdentifier id) const
IdDictFieldImplementation m_module_impl
std::string strformat(const char *fmt,...)
return a std::string according to a format fmt and varargs