34 ATH_MSG_DEBUG(
"Request to reinitialize not satisfied - tags have not changed");
45 ATH_MSG_ERROR(
"initialize_from_dictionary - cannot access LArCalorimeter dictionary ");
65 ATH_MSG_ERROR(
"Could not get value for label 'LArCalorimeter' of field 'subdet' in dictionary "
66 << atlasDict->
name());
71 int larOnlineField = -4;
72 if (
m_dict->get_label_value(
"part",
"LArOnline", larOnlineField)) {
73 ATH_MSG_ERROR(
"Could not get value for label 'LArOnline' of field 'part' in dictionary "
79 int larOnlineCalibField = -5;
80 if (
m_dict->get_label_value(
"part",
"LArOnlineCalib", larOnlineCalibField)) {
81 ATH_MSG_ERROR(
"Could not get value for label 'LArOnlineCalib' of field 'part' in dictionary "
88 region_id.add(larField);
89 region_id.add(larOnlineField);
129 int size = (1 << bits);
219 for (
unsigned int j = 0; j < nvalues; ++j) {
254 ( ft==3 || ft==10 || ft==16 || ft==22 )
269 bool sideCondition= (
pos_neg(
id)==1 && ch>95) || (
pos_neg(
id)==0 && ch<64);
271 return (bec==1 && sl==2 && sideCondition && (ft==2 || ft==9 ||
282 bool sideCondition=(
pos_neg(
id)==1 && ch<=95) || (
pos_neg(
id)==0 && ch>=64);
286 (ft == 0 || ft == 1 || ft == 2 || ft == 4 || ft == 5 || ft == 7 || ft == 8 || ft == 9 || ft == 11 || ft == 12 || ft == 13 || ft == 14 || ft == 15 ||
287 ft == 17 || ft == 18 || ft == 19 || ft == 20 || ft == 21 || ft == 23 || ft == 24)) ||
288 (sl==2 && sideCondition && (ft==2 ||ft==9 || ft==15 || ft==21))));
294 return (bec == 1 && !( ft==3 || ft==10 || ft==16 || ft==22 || ft==6));
#define ATH_MSG_WARNING(x)
virtual std::string dictionaryVersion(void) const override
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.
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
const std::string & group() const
Group name for this helper.
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.
Identifier::size_type size_type
const IdDictDictionary * find_dictionary(const std::string &name) const
Access dictionary by name.
size_type get_indices() const
bool isEnumerated() const
element_type get_value_at(size_type index) const
This is a "hash" representation of an Identifier.
std::vector< int > m_slot_values
Define the Hash identifier for channels and febs.
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
MultiRange m_full_laronline_range
HWIdentifier feedthrough_Id(int barrel_ec, int pos_neg, int feedthrough) const
Create a feedthrough identifier from fields.
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
const IdDictDictionary * m_dict
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier 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)
IdentifierHash channel_Hash_binary_search(HWIdentifier channelId) const
IdentifierHash feb_Hash_binary_search(HWIdentifier channelId) const
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
size_type m_channelHashMax
MultiRange m_full_feb_range
IdDictFieldImplementation m_bec_ft_impl
LArOnlineID_Base(const std::string &name, const std::string &group, bool is_slar)
Default constructor.
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
IdDictFieldImplementation m_feedthrough_impl
IdentifierHash feb_Hash(HWIdentifier febId) const
Create feb hash identifiers from feb identifiers.
IdContext feedthroughContext() const
Define context for feedthroughs.
IdDictFieldImplementation m_slot_impl
size_type m_feedthroughHashMax
IdDictFieldImplementation m_side_impl
std::vector< HashCalcFeb > m_feb_hash_calcs
int initLevelsFromDict(const std::string &group_name)
IdDictFieldImplementation m_bec_impl
IdDictFieldImplementation m_bec_slot_impl
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
MultiRange m_full_feedthrough_range
std::vector< HashCalc > m_chan_hash_calcs
bool isHECchannel(const HWIdentifier id) const override final
~LArOnline_SuperCellID()
Default destructor.
bool isEMECOW(const HWIdentifier id) const override final
int initialize_from_dictionary(const IdDictMgr &dict_mgr) override final
initialization from the identifier dictionary
bool isEMECIW(const HWIdentifier id) const override final
bool isEMECchannel(const HWIdentifier id) const override final
LArOnline_SuperCellID()
Default constructor.
A Range describes the possible ranges for the field values of an ExpandedIdentifier.
bool match(std::string s1, std::string s2)
match the individual directories of two strings