 |
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)
static constexpr value_type MAX_BIT
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 Given a value, test to see if it satisfies the constraints for this field.
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...
static constexpr value_type ALL_BITS
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