80 ATH_MSG_DEBUG(
"Request to reinitialize not satisfied - tags have not changed");
120 ATH_MSG_ERROR(
" Could not get value for label 'Calorimeter' of field 'subdet' in dictionary " << atlasDict->
name());
123 ATH_MSG_DEBUG(
"[init_from_dictionary] > caloValue = " << caloValue);
129 std::string tag =
m_dict->dict_tag();
130 bool oldTag = ( tag.empty() || tag ==
"CaloIdentifier-DC3-05" || tag ==
"CaloIdentifier-LVL1-01");
150 reg_id.
add(caloValue);
204 std::string errorMessage =
"[TTOnlineID]::channnelId() result is not OK: ID, range = "
219 std::string errorMessage =
"TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID = "
226 std::string errorMessage =
"TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
241 std::string errorMessage =
"TTOnlineID::channel_Id_checks(moduleId) result is not OK: ID = "
248 std::string errorMessage =
"TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
263 std::string errorMessage =
"TTOnlineID::channel_Id_checks(crateId) result is not OK: ID = "
270 std::string errorMessage =
"TTOnlineID::channel_Id_checks(crateId) result is not OK: ID, range = "
285 if (!
m_full_submodule_range.match(expId)) { std::string errorMessage =
"TTOnlineID::submodule_Id_checks() result is not OK: ID, range = "
300 if (!
m_full_module_range.match(expId)) { std::string errorMessage =
"TTOnlineID::module_Id_checks() result is not OK: ID, range = "
315 if (!
m_full_crate_range.match(expId)) { std::string errorMessage =
"TTOnlineID::crate_Id_checks() result is not OK: ID, range = "
326 ATH_MSG_DEBUG(
"[initLevelsFromDict] (0) Entering routine... ");
329 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - dictionary NOT initialized ");
344 ATH_MSG_DEBUG(
"[initLevelsFromDict] (2) data member initialization OK ... ");
347 std::string tag =
m_dict->dict_tag();
348 bool oldTag = ( tag.empty() || tag ==
"CaloIdentifier-DC3-05" || tag ==
"CaloIdentifier-LVL1-01");
356 if(!oldTag)
ATH_MSG_WARNING(
"TTOnlineID::initLevelsFromDict - unable to find 'PPM_Crate-00' region");
367 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'Calo' field ");
370 ATH_MSG_DEBUG(
"[initLevelsFromDict] (4) field 'Calo' found OK ");
373 field =
m_dict->find_field(
"DetZside") ;
377 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'DetZside' field ");
380 ATH_MSG_DEBUG(
"[initLevelsFromDict] (5) field 'DetZside' found OK ");
383 field =
m_dict->find_field(
"crate") ;
387 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'crate' field ");
390 ATH_MSG_DEBUG(
"[initLevelsFromDict] (6) field 'crate' found OK ");
392 field =
m_dict->find_field(
"module") ;
397 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'module' field ");
400 ATH_MSG_DEBUG(
"[initLevelsFromDict] (7) field 'module' found OK ");
402 field =
m_dict->find_field(
"submodule") ;
407 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'submodule' field ");
410 ATH_MSG_DEBUG(
"[initLevelsFromDict] (8) field 'submodule' found OK ");
412 field =
m_dict->find_field(
"channel") ;
417 ATH_MSG_INFO(
"TTOnlineID::initLevelsFromDict - unable to find 'channel' field ");
420 ATH_MSG_DEBUG(
"[initLevelsFromDict] (9) field 'channel' found OK ");
434 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...fields implementation... ");
435 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_calo_index ");
438 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_det_side_index ");
441 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_crate_index ");
444 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_module_index ");
446 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_submodule_index ");
448 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_channel_index ");
451 ATH_MSG_DEBUG(
"[initLevelsFromDict] (11) decode index and bit fields for each level: ");
472 unsigned int nids = 0;
473 std::set<HWIdentifier> ids;
477 auto first = rit.
begin();
478 auto last = rit.
end();
479 for (; first != last; ++first) {
483 if(!(ids.insert(cra_id)).second){
484 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
492 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
498 std::set<HWIdentifier>::const_iterator first = ids.begin();
499 std::set<HWIdentifier>::const_iterator last = ids.end();
500 for (;first != last && nids <
m_crate_vec.size(); ++first) {
512 unsigned int nids = 0;
513 std::set<HWIdentifier> ids;
517 auto first = rit.
begin();
518 auto last = rit.
end();
519 for (; first != last; ++first) {
523 if(!(ids.insert(mod_id)).second){
524 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
532 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
538 std::set<HWIdentifier>::const_iterator first = ids.begin();
539 std::set<HWIdentifier>::const_iterator last = ids.end();
540 for (;first != last && nids <
m_module_vec.size(); ++first) {
552 unsigned int nids = 0;
553 std::set<HWIdentifier> ids;
557 auto first = rit.
begin();
558 auto last = rit.
end();
559 for (; first != last; ++first) {
563 if(!(ids.insert(submod_id)).second){
564 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
572 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
578 std::set<HWIdentifier>::const_iterator first = ids.begin();
579 std::set<HWIdentifier>::const_iterator last = ids.end();
592 unsigned int nids = 0;
593 std::set<HWIdentifier> ids;
597 auto first = rit.
begin();
598 auto last = rit.
end();
599 for (; first != last; ++first) {
603 if(!(ids.insert(chan_id)).second){
604 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
612 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
618 std::set<HWIdentifier>::const_iterator first = ids.begin();
619 std::set<HWIdentifier>::const_iterator last = ids.end();
620 for (;first != last && nids <
m_channel_vec.size(); ++first) {
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
#define ATH_MSG_WARNING(x,...)
#define ATH_MSG_INFO(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