|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef INDETIDENTIFIER_PIXELID_H
6 #define INDETIDENTIFIER_PIXELID_H
20 #include "Identifier/Identifier.h"
350 m_bec_impl.pack(barrel_ec,
result);
351 m_lay_disk_impl.pack(layer_disk,
result);
352 m_phi_mod_impl.pack(phi_module,
result);
353 m_eta_mod_impl.pack(eta_module,
result);
357 wafer_id_checks(barrel_ec, layer_disk, phi_module, eta_module);
367 int eta_module)
const {
496 if ((
val << 32) && !(
val >> 32)) {
504 }
else if (!(
val << 32) && (
val >> 32)) {
517 return (
val >> 31) && (
val & 0xff);
532 if ((
val << 32) && !(
val >> 32)) {
535 }
else if (!(
val << 32) && (
val >> 32)) {
550 int bec = bec_val[(
val >> 29) & 0x03];
555 ((
val >> 27) & 0x03),
556 ((
val >> 21) & 0x3f),
558 ((
val >> 8) & 0x1ff),
668 #endif // INDETIDENTIFIER_PIXELID_H
IdDictFieldImplementation m_bec_impl
virtual int get_hash(const Identifier &id, IdentifierHash &hash_id, const IdContext *context=0) const override final
Create hash id from compact id (return == 0 for OK)
size_type m_wafer_hash_max
int phi_index(const Identifier &id) const
std::vector< Identifier >::const_iterator const_id_iterator
const_id_iterator wafer_end(void) const
IdContext pixel_context(void) const
bool is_eta_module_min(const Identifier &id) const
For the barrel.
IdDictFieldImplementation m_eta_mod_shift_impl
IdDictFieldImplementation m_bec_shift_impl
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
hash_vec::const_iterator hash_vec_it
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr) override
Initialization from the identifier dictionary.
IdDictFieldImplementation m_indet_impl
hash_vec m_next_eta_wafer_vec
size_type m_BARREL_EC_INDEX
IdDictFieldImplementation m_phi_index_impl
const_id_iterator wafer_begin(void) const
Iterators over full set of ids. Wafer iterator is sorted.
size_type m_ETA_INDEX_INDEX
IdDictFieldImplementation m_phi_mod_shift_impl
MultiRange m_full_pixel_range
IdDictFieldImplementation m_eta_mod_impl
void pack(int value, Identifier &id) const
size_type m_ETA_MODULE_INDEX
Identifier::diff_type calc_offset(const Identifier &base, const Identifier &target) const
Calculate a channel offset between the two identifiers.
int get_prev_in_phi(const IdentifierHash &id, IdentifierHash &prev) const
Previous wafer hash in phi (return == 0 for neighbor found)
bool const RAWDATA *ch2 const
ExpandedIdentifier m_baseExpandedIdentifier
int unpack(Identifier id) const
Identifier manipulation methods.
bool is_shortened_pixel_id(Identifier32::value_type val) const
Test if this is a valid shortened pixel channel id.
int eta_module_max(const Identifier &id) const
bool is_blayer(const Identifier &id) const
Test for b-layer - WARNING: id MUST be pixel id, otherwise answer is not accurate....
size_type pixel_hash_max(void) const
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
HelperType
enum class for eventual final derived types of this class
int base_bit(void) const
Return the lowest bit position used in the channel id.
void reset(Identifier &id) const
IdDictFieldImplementation m_bec_eta_mod_impl
Identifier::size_type size_type
int initLevelsFromDict(void)
bool match(element_type value) const
The basic match operation.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for g...
IdentifierHash wafer_hash(Identifier wafer_id) const
wafer hash from id
size_type m_pixel_hash_max
int get_next_in_phi(const IdentifierHash &id, IdentifierHash &next) const
Next wafer hash in phi (return == 0 for neighbor found)
Identifier m_baseIdentifier
void get_expanded_id(const Identifier &id, ExpandedIdentifier &exp_id, const IdContext *context=0) const
Create expanded id from compact id (return == 0 for OK)
int phi_index_max(const Identifier &id) const
Identifier pixel_id_offset(const Identifier &base, Identifier::diff_type offset) const
Create an identifier with a given base and channel offset.
int eta_index_max(const Identifier &id) const
const_expanded_id_iterator pixel_begin(void) const
For pixel ids, only expanded id iterators are available.
MultiRange m_full_wafer_range
void pixel_id_checks(int barrel_ec, int layer_disk, int phi_module, int eta_module, int phi_index, int eta_index) const
int eta_index(const Identifier &id) const
int get_next_in_eta(const IdentifierHash &id, IdentifierHash &next) const
Next wafer hash in eta (return == 0 for neighbor found)
int phi_module_max(const Identifier &id) const
int layer_disk(const Identifier &id) const
void test_wafer_packing(void) const
Tests of packing.
int eta_module(const Identifier &id) const
hash_vec m_next_phi_wafer_vec
A MultiRange combines several Ranges.
hash_vec m_prev_phi_wafer_vec
size_type wafer_hash_max(void) const
int layer_disk_max(const Identifier &id) const
Max/Min values for each field (error returns -999)
virtual int get_id(const IdentifierHash &hash_id, Identifier &id, const IdContext *context=0) const override final
Create compact id from hash id (return == 0 for OK)
bool is_eta_module_max(const Identifier &id) const
For the barrel.
MultiRange::const_identifier_factory const_expanded_id_iterator
bool is_dbm(const Identifier &id) const
Test for dbm - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for gene...
size_type m_pixel_region_index
int eta_module_min(const Identifier &id) const
std::vector< Identifier > id_vec
IdContext wafer_context(void) const
void wafer_id_checks(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
virtual AtlasDetectorID::HelperType helper() const override
THis is a PixelID helper.
Identifier pixel_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int phi_index, int eta_index) const
For an individual pixel.
IdDictFieldImplementation m_eta_index_impl
IdDictFieldImplementation m_phi_mod_impl
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Range::field m_barrel_field
bool is_phi_module_max(const Identifier &id) const
To check for when phi wrap around may be needed.
This is the individual specification for the range of one ExpandedIdentifier IdentifierField.
IdDictFieldImplementation m_lay_disk_shift_impl
hash_vec m_prev_eta_wafer_vec
size_type m_LAYER_DISK_INDEX
unsigned long long value_type
Identifier::size_type size_type
unsigned long long size_type
IdDictFieldImplementation is used to capture the specification of a single field of an Identifier.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
size_type m_PHI_MODULE_INDEX
int phi_module(const Identifier &id) const
const_expanded_id_iterator pixel_end(void) const
IdDictFieldImplementation m_lay_disk_impl
virtual bool do_checks(void) const override
Checks are performed by default in debug compilation and NOT in optimized compilation.
const IdDictDictionary * m_dict
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
macros to associate a CLID to a type
int get_prev_in_eta(const IdentifierHash &id, IdentifierHash &prev) const
Previous wafer hash in eta (return == 0 for neighbor found)
id_vec::const_iterator id_vec_it
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Identifier pixel_id_from_shortened(Identifier32::value_type val) const
Create a compact pixel id from a (fixed format) legacy pixel channel id.
IdDictFieldImplementation m_pixel_impl
std::vector< unsigned short > hash_vec
size_type m_PHI_INDEX_INDEX