5#ifndef DETECTORDESCRIPTION_MUONIDHELPER_H
6#define DETECTORDESCRIPTION_MUONIDHELPER_H
187 const std::vector<Identifier>&
idVector()
const;
308 dict.pack(new_val,
id);
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
macros to associate a CLID to a type
const std::string & group() const
Group name for this helper.
AtlasDetectorID(const std::string &name, const std::string &group)
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
IdDictFieldImplementation is used to capture the specification of a single field of an Identifier.
This is a "hash" representation of an Identifier.
A MultiRange combines several Ranges.
std::vector< Identifier >::const_iterator const_id_iterator
int stationNameIndex(const std::string &name) const
virtual int get_channel_hash(const Identifier &id, IdentifierHash &hash_id) const
int stationEta(const Identifier &id) const
std::set< int > m_isForward
const_id_iterator module_end() const
IdDictFieldImplementation m_phi_impl
const std::string & technologyString(const int &index) const
IdDictFieldImplementation m_tec_impl
int get_expanded_id(const Identifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
Create expanded id from compact id (return == 0 for OK)
const_id_iterator module_begin() const
Iterators over full set of ids.
virtual int get_detectorElement_hash(const Identifier &id, IdentifierHash &hash_id) const
bool is_rpc(const Identifier &id) const
void test_id(const Identifier &id, const IdContext &context) const
int get_next_in_eta(const IdentifierHash &id, IdentifierHash &next) const
std::map< int, std::string > m_technologyIdxToNameMap
Mapping int -> string.
const MultiRange & multiRange() const
multirange
virtual int get_id(const IdentifierHash &hash_id, Identifier &id, const IdContext *context=0) const override
Create compact id from hash id (return == 0 for OK)
size_type m_CHANNEL_INDEX
virtual int get_hash_calc(const Identifier &compact_id, IdentifierHash &hash_id, const IdContext *context) const
const_id_iterator detectorElement_begin() const
Iterators over full set of ids.
void test_module_packing() const
Tests of packing.
hash_vec m_next_phi_module_vec
int technologyIndex(const std::string &name) const
size_type m_station_region_index
std::vector< unsigned short > hash_vec
bool is_csc(const Identifier &id) const
IdDictFieldImplementation m_sta_impl
hash_vec m_prev_eta_module_vec
const_id_iterator channel_end() const
static const std::string BAD_NAME
std::map< int, std::string > m_stationIdxToNameMap
Mapping int -> string.
MultiRange m_full_module_range
MultiRange m_muon_channel_range
bool is_muon(const Identifier &id) const
bool is_stgc(const Identifier &id) const
IdDictFieldImplementation m_eta_impl
bool validTechnology(int technology) const
void addStationID(Identifier &id, int stationName, int stationEta, int stationPhi, int technology) const
int get_compact_id(const ExpandedIdentifier &id, Identifier &compact_id, const IdContext *context) const
bool isEndcap(const Identifier &id) const
MuonIdHelper(const MuonIdHelper &other)=delete
virtual ~MuonIdHelper()=default
virtual int get_module_hash(const Identifier &id, IdentifierHash &hash_id) const
MultiRange::const_identifier_factory const_expanded_id_iterator
size_type module_hash_max() const
the maximum hash value
const std::vector< Identifier > & idVector() const
the id's
bool isForward(const Identifier &id) const
MultiRange m_full_detectorElement_range
int get_next_in_phi(const IdentifierHash &id, IdentifierHash &next) const
const IdDictDictionary * m_dict
int nStationNames() const
bool is_tgc(const Identifier &id) const
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr) override
Initialization from the identifier dictionary.
MultiRange m_muon_detectorElement_range
std::vector< Identifier > id_vec
IdContext module_context() const
id for module
int stationNameIndexMax() const
int stationRegion(const Identifier &id) const
IdContext technology_context() const
access to IdContext's which define which levels or fields are contained in the Muon id
int stationPhi(const Identifier &id) const
size_type m_DETECTORELEMENT_INDEX
int technology(const Identifier &id) const
int stationName(const Identifier &id) const
MuonIdHelper & operator=(const MuonIdHelper &right)
int init_channel_hashes()
virtual bool measuresPhi(const Identifier &id) const =0
size_type channel_hash_max() const
const_id_iterator channel_begin() const
Iterators over full set of ids.
size_type m_module_hash_max
bool isBarrel(const Identifier &id) const
bool isSmall(const Identifier &id) const
IdContext detectorElement_context() const
id for detector element
hash_vec m_next_eta_module_vec
id_vec m_detectorElement_vec
bool is_mm(const Identifier &id) const
virtual int init_detectorElement_hashes()
virtual int gasGap(const Identifier &id) const =0
get the hashes
hash_vec::const_iterator hash_vec_it
int technologyNameIndexMax() const
hash_vec m_prev_phi_module_vec
bool is_mdt(const Identifier &id) const
size_type detectorElement_hash_max() const
virtual bool isStNameInTech(const std::string &stationName) const =0
The valid element checks converted the identifier to a stationName string in order to assess whether ...
IdDictFieldImplementation m_muon_impl
void resetAndSet(const IdDictFieldImplementation &dict, const int new_val, Identifier &id) const
std::set< int > m_isBarrel
virtual int channel(const Identifier &id) const =0
bool validStation(int stationName, int technology) const
virtual int get_hash(const Identifier &id, IdentifierHash &hash_id, const IdContext *context=0) const override
Create hash id from compact id (return == 0 for OK)
size_type m_detectorElement_hash_max
const_id_iterator detectorElement_end() const
static constexpr int NOT_VALID_HASH
Identifier::size_type size_type
std::map< std::string, int > m_stationNameToIdxMap
Mapping string -> int.
MultiRange m_full_channel_range
IdContext channel_context() const
id for channel
std::set< int > m_stationInTech
size_type m_channel_hash_max
std::set< int > m_isSmall
const std::string & stationNameString(const int &index) const
bool isInitialized() const
MuonIdHelper(const std::string &logName, const std::string &group)
id_vec::const_iterator id_vec_it
int get_expanded_id_calc(const Identifier &compact_id, ExpandedIdentifier &id, const IdContext *context) const
int get_prev_in_eta(const IdentifierHash &id, IdentifierHash &prev) const
size_type m_TECHNOLOGY_INDEX
int get_prev_in_phi(const IdentifierHash &id, IdentifierHash &prev) const
Access to hashes for neighbors in phi and eta (return == 0 for neighbor found)
std::map< std::string, int > m_technologyNameToIdxMap
Mapping string -> int.