62 ATH_MSG_DEBUG(
"Request to reinitialize not satisfied - tags have not changed");
76 ATH_MSG_INFO(
" => initialize_from_dictionary(dict_mgr) ="
83 ATH_MSG_ERROR(
"initialize_from_dictionary - cannot access LArHighVoltage dictionary ");
90 ATH_MSG_INFO(
"Register_dict_tag of LArHighVoltage is OK");
105 if (atlasDict->
get_label_value(
"subdet",
"LArHighVoltage", larHVValue)) {
106 ATH_MSG_ERROR(
"Could not get value for label 'LArHighVoltage' of field 'subdet' in dictionary "
107 << atlasDict->
name());
110 ATH_MSG_DEBUG(
"[init_from_dictionary] > larHV value = " << larHVValue);
114 int configurationValue = 1;
115 if (
m_dict->get_label_value(
"configuration",
"Atlas", configurationValue)) {
116 ATH_MSG_WARNING(
"Could not get value for label 'configuration' in dictionary "
120 ATH_MSG_DEBUG(
"[init_from_dictionary] > configurationValue = " << configurationValue);
125 reg_id.
add(larHVValue);
126 reg_id.
add(configurationValue);
171 ATH_MSG_INFO(
"LArHVLineID::initLevelsFromDict - dictionary NOT initialized");
186 ATH_MSG_DEBUG(
"[initLevelsFromDict] data member initialization OK ...");
193 ATH_MSG_INFO(
"WARNING : LArHVLineID::initLevelsFromDict - unable to find 'barrel-region1' region");
196 ATH_MSG_DEBUG(
"[initLevelsFromDict] region 'LAr-HV-HEC-A' found OK ...");
204 ATH_MSG_INFO(
"LArHVLineID::initLevelsFromDict - unable to find 'subdet' field");
207 ATH_MSG_DEBUG(
"[initLevelsFromDict] field 'LArHighVoltage' found OK");
211 field =
m_dict->find_field(
"configuration") ;
215 ATH_MSG_INFO(
"LArHVLineID::initLevelsFromDict - unable to find 'configuration' field");
218 ATH_MSG_DEBUG(
"[initLevelsFromDict] field config=Atlas found OK");
222 field =
m_dict->find_field(
"partition") ;
226 ATH_MSG_INFO(
"LArHVLineID::initLevelsFromDict - unable to find 'partition' field");
229 ATH_MSG_DEBUG(
"[initLevelsFromDict] field 'partition' found OK");
234 field =
m_dict->find_field(
"canline") ;
238 ATH_MSG_INFO(
"LArHVLineID::initLevelsFromDict - unable to find 'canline' field");
241 ATH_MSG_DEBUG(
"[initLevelsFromDict] field 'canline' found OK");
246 field =
m_dict->find_field(
"cannode") ;
251 ATH_MSG_INFO(
"LArHVLineID::initLevelsFromDict - unable to find 'cannode' field");
254 ATH_MSG_DEBUG(
"[initLevelsFromDict] field 'cannode' found OK");
259 field =
m_dict->find_field(
"hvline") ;
264 ATH_MSG_INFO(
"LArHVLineID::initLevelsFromDict - unable to find 'hvline' field");
267 ATH_MSG_DEBUG(
"[initLevelsFromDict] field 'hvline' found OK");
283 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...fields implementation...");
284 ATH_MSG_DEBUG(
"[initLevelsFromDict] > ...implementation: m_larhvcalo_index");
292 ATH_MSG_DEBUG(
"[initLevelsFromDict] Decode index and bit fields for each level:");
315 unsigned int nids = 0;
316 std::set<HWIdentifier> ids;
320 for (
const auto & exp_id :rit) {
327 if(!(ids.insert(hv_id)).second){
328 ATH_MSG_ERROR(
"[init_hashes] > duplicated id for channel nb = " << nids);
336 ATH_MSG_ERROR(
" set size NOT EQUAL to hash max. size " << ids.size());
342 std::set<HWIdentifier>::const_iterator first = ids.begin();
343 std::set<HWIdentifier>::const_iterator last = ids.end();
344 for (;first != last && nids <
m_hvline_vec.size(); ++first) {
#define ATH_MSG_WARNING(x)
static const int s_lar_atlas_value
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 lar_field_value() const
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
AtlasDetectorID(const std::string &name, const std::string &group)
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
size_type m_canline_index
size_type m_partition_index
IdDictFieldImplementation m_partition_impl
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr)
Initialization from the identifier dictionary.
IdDictFieldImplementation m_canline_impl
MultiRange m_full_atlas_highvoltage_range
const IdDictDictionary * m_dict
size_type m_configuration_index
int can_node(const HWIdentifier id) const
Return the CAN node from an HighVoltage line identifier.
LArHVLineID()
only allowed constructor
IdDictFieldImplementation m_atlas_impl
Field Implementation.
IdDictFieldImplementation m_hvline_impl
size_type m_hvlineHashMax
int can_line(const HWIdentifier id) const
Return the CAN line from an HighVoltage line identifier.
int get_expanded_id(const HWIdentifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
std::vector< HWIdentifier > m_hvline_vec
IdContext hvlineContext() const
int partition(const HWIdentifier id) const
Return the partition from an HighVoltage line identifier.
IdDictFieldImplementation m_cannode_impl
size_type m_larhvRegion_index
size_type m_cannode_index
IdDictFieldImplementation m_configuration_impl
MultiRange m_full_canline_range
int hv_line(const HWIdentifier id) const
Return the HV line number from an HighVoltage line identifier.
MultiRange m_full_hvline_range
HWIdentifier HVLineId(int part, int canline, int cannode, int line) const
Create an HighVoltage line identifier from fields.
A Range describes the possible ranges for the field values of an ExpandedIdentifier.