ATLAS Offline Software
Loading...
Searching...
No Matches
LArOnlineID_Base Class Referenceabstract

Helper for the Liquid Argon Calorimeter cell identifiers. More...

#include <LArOnlineID_Base.h>

Inheritance diagram for LArOnlineID_Base:
Collaboration diagram for LArOnlineID_Base:

Classes

class  HashCalc
 Define the Hash identifier for channels and febs. More...
class  HashCalcFeb

Public Types

using size_type = Identifier::size_type
using id_iterator = std::vector<HWIdentifier>::const_iterator
 Type for iterators over identifiers.
using id_range = std::ranges::subrange<id_iterator>
 Type for range over identifiers.
enum class  HelperType {
  Unimplemented = -1 , Silicon = 0 , Pixel , PLR ,
  SCT , TRT , LArEM , LArFCal ,
  LArFCalSuperCell , LArHEC , LArHEC_SuperCell , LARMiniFCal ,
  Tile , TileSuperCell , LArOnline , LArOnlineSuperCell ,
  LArElectrode , LArHVLine , TileHardware , TileTestbeam ,
  CaloCell , CaloSuperCell , CaloDM , CaloLvl1 ,
  GTower , JTower , Muon , LUCID ,
  LUCID_Hardware , Zdc , ZdcHardware , TT
}
 enum class for eventual final derived types of this class More...

Public Member Functions

 LArOnlineID_Base (const std::string &name, const std::string &group, bool is_slar)
 Default constructor.
virtual ~LArOnlineID_Base ()
 Default destructor.
HWIdentifier feedthrough_Id (int barrel_ec, int pos_neg, int feedthrough) const
 Create a feedthrough identifier from fields.
HWIdentifier feedthrough_Id (int barrel_ec, int pos_neg, int feedthrough, bool checks) const
HWIdentifier feedthrough_Id (IdentifierHash feedthroughHash) const
 Create a feedthrough identifier from hash_id.
IdentifierHash feedthrough_Hash (HWIdentifier feedthroughId) const
 Create hash id from feedthrough identifiers.
id_iterator feedthrough_begin () const
 Return an iterator pointing to Feedthrough identifiers collection.
id_iterator feedthrough_end () const
id_range feedthrough_range () const
HWIdentifier feb_Id (int barrel_ec, int pos_neg, int feedthrough, int slot) const
 Create feb_Id from fields.
HWIdentifier feb_Id (int barrel_ec, int pos_neg, int feedthrough, int slot, bool checks) const
HWIdentifier feb_Id (IdentifierHash febHash) const
 create feb identifier from hash id
IdentifierHash feb_Hash (HWIdentifier febId) const
 Create feb hash identifiers from feb identifiers.
id_iterator feb_begin () const
 Returns an iterator pointing to a feb identifier collection.
id_iterator feb_end () const
id_range feb_range () const
HWIdentifier channel_Id (int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
 create channel identifier from fields
HWIdentifier channel_Id (int barrel_ec, int pos_neg, int feedthrough, int slot, int channel, bool checks) const
HWIdentifier channel_Id (IdentifierHash channelHash) const
 Create channel identifiers from hash id.
IdentifierHash channel_Hash (HWIdentifier channelId) const
 Create channel_hash from channel_Id.
id_iterator channel_begin () const
 Returns an iterator pointing to a channel identifier collection.
id_iterator channel_end () const
id_range channel_range () const
HWIdentifier feedthrough_Id (const HWIdentifier Id) const
 Define a channel identifier from a feedthrough identifier.
HWIdentifier feb_Id (const HWIdentifier channelId) const
 Define a feb identifier from a channel identifier.
HWIdentifier feb_Id (const HWIdentifier feedthroughId, int slot) const
 Define a feb identifier from a feedthrough identifier.
HWIdentifier channel_Id (const HWIdentifier feedthroughId, int slot, int channel) const
 Define a channel identifier from a feedthrough identifier.
HWIdentifier channel_Id (const HWIdentifier feedthroughId, int slot, int channel, bool checks) const
HWIdentifier channel_Id (const HWIdentifier febId, int channel) const
 Define a channel identifier from a feb identifier.
HWIdentifier channel_Id (const HWIdentifier febId, int channel, bool checks) const
size_type feedthroughHashMax () const
 Define feedthrough hash tables max size.
size_type febHashMax () const
 define feb hash tables max size
size_type channelHashMax () const
 Define channel hash tables max size.
HWIdentifier calib_module_Id (int barrel_ec, int pos_neg, int feedthrough, int slot) const
 Build calibration module identifier from fields.
HWIdentifier calib_module_Id (IdentifierHash calibModuleHash) const
 Create calibration module identifier from hash identifiers.
IdentifierHash calib_module_Hash (HWIdentifier calibModuleId) const
 create calibration module_hash identifier from module Identifier
id_iterator calib_module_begin () const
 Return an iterator pointing to a calibFeb identifier 's collection.
id_iterator calib_module_end () const
id_range calib_module_range () const
HWIdentifier calib_channel_Id (int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
 create calibration channel identifiers from fields
HWIdentifier calib_channel_Id (IdentifierHash calibChannelHash) const
 create calibration channel identifiers from hash identifiers
id_iterator calib_channel_begin () const
 Return an iterator pointing to a collection of calibration channel identifiers.
id_iterator calib_channel_end () const
id_range calib_channel_range () const
HWIdentifier calib_module_Id (const HWIdentifier ChannelId) const
 Define a calibration module identifier from a channel identifier.
HWIdentifier calib_module_Id (const HWIdentifier FeedthroughId, int slot) const
 Define a calibration module identifier from a feedthrough identifier.
HWIdentifier calib_channel_Id (const HWIdentifier FeedthroughId, int slot, int channel) const
 Define a calibration channel identifier from a feedthrough identifier.
HWIdentifier calib_channel_Id (const HWIdentifier febId, int ChannelId) const
 Define a calibration channel identifier from a feb identifier.
IdentifierHash calib_channel_Hash (HWIdentifier channelId) const
size_type calibModuleHashMax () const
 Define calibration module hash tables max size.
size_type calibChannelHashMax () const
 Define calibration channel hash tables max size.
bool isEMBchannel (const HWIdentifier id) const
virtual bool isEMECchannel (const HWIdentifier id) const =0
virtual bool isHECchannel (const HWIdentifier id) const =0
bool isFCALchannel (const HWIdentifier id) const
virtual bool isEMECIW (const HWIdentifier id) const =0
virtual bool isEMECOW (const HWIdentifier id) const =0
bool isEMBPS (const HWIdentifier id) const
bool isEMECPS (const HWIdentifier id) const
bool isPS (const HWIdentifier id) const
bool isNotWarmCableConnected (const HWIdentifier id) const
bool isCalibration (const HWIdentifier id) const
bool isHecOnline (const HWIdentifier id) const
bool isHecOnlineFebId (const HWIdentifier febId) const
bool isEMECinHECchannel (const HWIdentifier id) const
bool isEmBarrelOnline (const HWIdentifier id) const
bool isEmEndcapOnline (const HWIdentifier id) const
bool isEndcapOnline (const HWIdentifier id) const
bool isFcalOnline (const HWIdentifier id) const
bool isEmEndcapStandardOnline (const HWIdentifier id) const
bool isEmEndcapSpecialOnline (const HWIdentifier id) const
int channelInSlotMax (const HWIdentifier Id) const
 Return the Maximum channel number of a given feb slot.
std::string feedthrough_name (const HWIdentifier id) const
 Return a string corresponding to a feedthrough name given an identifier.
std::string channel_name (const HWIdentifier id) const
 Return a string corresponding to a feedthrough name given an identifier.
int barrel_ec (const HWIdentifier id) const
 Return the position barrel or endcap of a hardware cell identifier:
barrel_ec = [0,1] : Barrel / EndCap.
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/Endcap.
int feedthrough (const HWIdentifier id) const
 Return the feedthrough of a hardware cell identifier :
feedthrough = [0,31] Barrel - A/C side or H/I half barrel
feedthrough = [1,25] Endcap-Standard EMEC 1.6<|eta|<2.4 - A/C side
feedthrough = [1,25] Endcap-Special EMEC 1.5<|eta|<1.6 and 2.4<|eta|<3.2
feedthrough = [1,25] HEC A/C side.
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 crate (higher phi)
Note that a crate is = Slot(1-15)L + Slot(1-15)R.
int channel (const HWIdentifier id) const
 Return the channel number of a hardware cell identifier
channel = [0,127] in all FEB.
int is_slar (const HWIdentifier id) const
 Return whether the channel is in slar or not is_ slar = [0,1] in all FEB.
bool isValidId (const HWIdentifier id) const
 Returns false if the identifier is not a LAr-online id or any of the sub-fields is out of range.
virtual int initialize_from_dictionary (const IdDictMgr &dict_mgr)
 initialization from the identifier dictionary
IdContext cryostatEndContext () const
 Define context for cryostat (obsolete)
IdContext feedthroughContext () const
 Define context for feedthroughs.
IdContext febContext () const
 Define context for feb.
IdContext channelContext () const
 Define context for channel.
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.
strutors
virtual HelperType helper () const
 Type of helper, defaulted to 'Unimplemented'.
const std::string & group () const
 Group name for this helper.
Detector system ids
Identifier indet (void) const
 Detector systems:
Identifier lar (void) const
Identifier tile (void) const
Identifier muon (void) const
Identifier calo (void) const
Inner Detector subsystem ids
Identifier pixel (void) const
Identifier sct (void) const
Identifier trt (void) const
Identifier hgtd (void) const
Identifier lumi (void) const
LAr subsystem ids
Identifier lar_em (void) const
Identifier lar_hec (void) const
Identifier lar_fcal (void) const
Muon subsystem ids
Identifier mdt (void) const
Identifier csc (void) const
Identifier rpc (void) const
Identifier tgc (void) const
Identifier stgc (void) const
Identifier mm (void) const
level 1 and dead material ids
Identifier lar_lvl1 (void) const
Identifier lar_dm (void) const
Identifier tile_dm (void) const
Contexts to provide id length - e.g. for use in generic decoding
IdContext detsystem_context (void) const
 IdContext (indicates id length) for detector systems.
IdContext subdet_context (void) const
 IdContext (indicates id length) for sub-detector.
Generic conversion between identifier and idhash
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)
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)
Initialization and version name
virtual std::string dictionaryVersion (void) const override
Generic printing of identifiers
void show (Identifier id, const IdContext *context=0, char sep='.') const
 Short print out of any identifier (optionally provide separation character - default is '.
std::string show_to_string (Identifier id, const IdContext *context=0, char sep='.') const
 or provide the printout in string form
void print (Identifier id, const IdContext *context=0) const
 Expanded print out of any identifier.
std::string print_to_string (Identifier id, const IdContext *context=0) const
 or provide the printout in string form
Test of an Identifier to see if it belongs to a particular detector (sub)system:
bool is_indet (Identifier id) const
bool is_lar (Identifier id) const
bool is_tile (Identifier id) const
bool is_muon (Identifier id) const
bool is_calo (Identifier id) const
bool is_lvl1_trig_towers (Identifier id) const
bool is_lvl1_online (Identifier id) const
bool is_pixel (Identifier id) const
bool is_sct (Identifier id) const
bool is_trt (Identifier id) const
bool is_hgtd (Identifier id) const
bool is_lumi (Identifier id) const
bool is_plr (Identifier id) const
bool is_lar_em (Identifier id) const
bool is_lar_hec (Identifier id) const
bool is_lar_fcal (Identifier id) const
bool is_lar_minifcal (Identifier id) const
bool is_lar_dm (Identifier id) const
 LAr/Tile dead material:
bool is_tile_dm (Identifier id) const
bool is_mdt (Identifier id) const
bool is_csc (Identifier id) const
bool is_tgc (Identifier id) const
bool is_rpc (Identifier id) const
bool is_stgc (Identifier id) const
bool is_mm (Identifier id) const
bool is_forward (Identifier id) const
bool is_alfa (Identifier id) const
bool is_bcm (Identifier id) const
bool is_lucid (Identifier id) const
bool is_zdc (Identifier id) const
Test of an Identifier to see if it belongs to a particular detector (sub)system (using expanded ids):
bool is_indet (const ExpandedIdentifier &id) const
bool is_lar (const ExpandedIdentifier &id) const
bool is_tile (const ExpandedIdentifier &id) const
bool is_muon (const ExpandedIdentifier &id) const
bool is_calo (const ExpandedIdentifier &id) const
bool is_pixel (const ExpandedIdentifier &id) const
bool is_sct (const ExpandedIdentifier &id) const
bool is_trt (const ExpandedIdentifier &id) const
bool is_hgtd (const ExpandedIdentifier &id) const
bool is_lumi (const ExpandedIdentifier &id) const
bool is_plr (const ExpandedIdentifier &id) const
bool is_lar_em (const ExpandedIdentifier &id) const
bool is_lar_hec (const ExpandedIdentifier &id) const
bool is_lar_fcal (const ExpandedIdentifier &id) const
bool is_lar_minifcal (const ExpandedIdentifier &id) const
bool is_mdt (const ExpandedIdentifier &id) const
bool is_csc (const ExpandedIdentifier &id) const
bool is_tgc (const ExpandedIdentifier &id) const
bool is_rpc (const ExpandedIdentifier &id) const
bool is_stgc (const ExpandedIdentifier &id) const
bool is_mm (const ExpandedIdentifier &id) const
Dictionary versioning: provide access to dictionary names and versions. Note that a helper may correspond to one or more id dictionary
const std::vector< std::string > & dict_names (void) const
 Dictionary names.
const std::vector< std::string > & file_names (void) const
 File names for subdet dictionaries.
const std::vector< std::string > & dict_tags (void) const
 Version tags for subdet dictionaries.
Checks are performed by default in debug compilation and NOT in optimized compilation. One can switch or query this mode for any idHelper with the following methods:
virtual bool do_checks (void) const override
 Checks are performed by default in debug compilation and NOT in optimized compilation.
virtual void set_do_checks (bool do_checks) override

Protected Types

enum  { NOT_VALID_HASH = 256000 }

Protected Member Functions

IdentifierHash feb_Hash_binary_search (HWIdentifier channelId) const
IdentifierHash channel_Hash_binary_search (HWIdentifier channelId) const
void channel_Id_checks (int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
void channel_Id_checks (const HWIdentifier feedthroughId, int slot, int channel) const
void channel_Id_checks (const HWIdentifier febId, int channel) const
void feb_Id_checks (int barrel_ec, int pos_neg, int feedthrough, int slot) const
void feedthrough_Id_checks (int barrel_ec, int pos_neg, int feedthrough) const
int get_expanded_id (const HWIdentifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
 create expanded HWIdentifier from HWIdentifier (return == 0 for OK)
int get_expanded_calib_id (const HWIdentifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
int initLevelsFromDict (const std::string &group_name)
int init_hashes ()
int init_calib_hashes ()

Protected Attributes

bool m_this_is_slar
size_type m_laronlineRegion_index
size_type m_lar_index
size_type m_laronline_index
size_type m_bec_index
size_type m_side_index
size_type m_feedthrough_index
size_type m_slot_index
size_type m_channel_in_slot_index
size_type m_slar_index
const IdDictDictionarym_dict
MultiRange m_full_laronline_range
MultiRange m_full_feedthrough_range
MultiRange m_full_feb_range
MultiRange m_full_channel_range
size_type m_feedthroughHashMax
size_type m_febHashMax
size_type m_channelHashMax
std::vector< HWIdentifierm_feedthrough_vec
std::vector< HWIdentifierm_feb_vec
std::vector< HWIdentifierm_channel_vec
MultiRange m_full_calib_laronline_range
MultiRange m_full_calib_module_range
size_type m_calibModuleHashMax
size_type m_calibChannelHashMax
std::vector< HWIdentifierm_calib_module_vec
std::vector< HWIdentifierm_calib_channel_vec
IdDictFieldImplementation m_lar_impl
 Field Implementation.
IdDictFieldImplementation m_laronline_impl
IdDictFieldImplementation m_bec_impl
IdDictFieldImplementation m_side_impl
IdDictFieldImplementation m_feedthrough_impl
IdDictFieldImplementation m_slot_impl
IdDictFieldImplementation m_channel_in_slot_impl
IdDictFieldImplementation m_bec_ft_impl
IdDictFieldImplementation m_bec_slot_impl
IdDictFieldImplementation m_slar_impl
std::vector< HashCalcFebm_feb_hash_calcs
std::vector< HashCalcm_chan_hash_calcs

Private Member Functions

void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels)
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging)

neighbours are initialized by default. One can switch or query this mode with the following methods:

std::string m_group
 Group name.
bool m_do_checks {}
 Flag for subclasses to know whether or not to perform checks.
bool m_do_neighbours {true}
 Flag for subclasses to know whether or not to perform neighbour initialization.
std::vector< std::string > m_dict_names
 List of dictionary names used by this helper.
std::vector< std::string > m_file_names
 List of dictionary file names used by this helper.
std::vector< std::string > m_dict_tags
 List of dictionary versions used by this helper.
virtual bool do_neighbours (void) const override
 Neighbour initialization is performed by default One can switch or query this mode for any idHelper with the following method:
virtual void set_do_neighbours (bool do_neighbours) override
virtual void setDictVersion (const IdDictMgr &dict_mgr, const std::string &name) override
std::string to_range (const ExpandedIdentifier &id) const
std::string fix_barrel_ec (const std::string &barrel_ec) const
ExpandedIdentifier indet_exp (void) const
 Detector systems:
ExpandedIdentifier lar_exp (void) const
ExpandedIdentifier tile_exp (void) const
ExpandedIdentifier muon_exp (void) const
ExpandedIdentifier calo_exp (void) const
ExpandedIdentifier fwd_exp (void) const
ExpandedIdentifier pixel_exp (void) const
 Inner Detector:
ExpandedIdentifier sct_exp (void) const
ExpandedIdentifier trt_exp (void) const
ExpandedIdentifier hgtd_exp (void) const
ExpandedIdentifier lumi_exp (void) const
ExpandedIdentifier lar_em_exp (void) const
 LAr.
ExpandedIdentifier lar_hec_exp (void) const
ExpandedIdentifier lar_fcal_exp (void) const
ExpandedIdentifier alfa_exp (void) const
 Forward.
ExpandedIdentifier bcm_exp (void) const
ExpandedIdentifier lucid_exp (void) const
ExpandedIdentifier zdc_exp (void) const
int indet_field_value () const
 Provide efficient access to individual field values, for subclass idhelpers.
int lar_field_value () const
int tile_field_value () const
int muon_field_value () const
int calo_field_value () const
int pixel_field_value () const
int sct_field_value () const
int trt_field_value () const
int hgtd_field_value () const
int lumi_field_value () const
int plr_field_value () const
int lar_em_field_value () const
int lar_hec_field_value () const
int lar_fcal_field_value () const
int mdt_field_value () const
int csc_field_value () const
int rpc_field_value () const
int tgc_field_value () const
int stgc_field_value () const
int mm_field_value () const
int forward_field_value () const
int alfa_field_value () const
int bcm_field_value () const
int lucid_field_value () const
int zdc_field_value () const
int register_dict_tag (const IdDictMgr &dict_mgr, const std::string &dict_name)
 Register the file and tag names for a particular IdDict dictionary.
bool reinitialize (const IdDictMgr &dict_mgr)
 Test whether an idhelper should be reinitialized based on the change of tags.
enum  ID { ATLAS_ID = static_cast<Identifier::value_type>(0) , MAX_BIT = Identifier::MAX_BIT , PIXEL_MASK = static_cast<Identifier::value_type>(0xFF) , ALL_BITS = Identifier::ALL_BITS }
std::string m_dict_version
bool m_is_initialized_from_dict {}
size_type m_DET_INDEX {999}
size_type m_SUBDET_INDEX {999}
size_type m_MUON_SUBDET_INDEX {999}
int m_INDET_ID {2}
int m_LAR_ID {4}
int m_TILE_ID {5}
int m_MUON_ID {7}
int m_CALO_ID {10}
int m_PIXEL_ID {1}
int m_SCT_ID {2}
int m_TRT_ID {3}
int m_HGTD_ID {4}
int m_LUMI_ID {3}
int m_LUMI_PLR_ID {1}
int m_LAR_EM_ID {1}
int m_LAR_HEC_ID {2}
int m_LAR_FCAL_ID {3}
int m_LAR_FCAL_MODULE_INDEX {999}
int m_MDT_ID {0}
int m_CSC_ID {1}
int m_RPC_ID {2}
int m_TGC_ID {3}
int m_STGC_ID {4}
int m_MM_ID {5}
int m_FWD_ID {13}
int m_ALFA_ID {1}
int m_BCM_ID {3}
int m_LUCID_ID {5}
int m_ZDC_ID {7}
bool m_isHighLuminosityLHC {}
Range::field m_lvl1_field
Range::field m_lvl1_onl_field
Range::field m_lar_dm_field
Range::field m_tile_dm_field
const IdDictDictionarym_atlas_dict {}
const IdDictDictionarym_indet_dict {}
const IdDictDictionarym_lar_dict {}
const IdDictDictionarym_tile_dict {}
const IdDictDictionarym_muon_dict {}
const IdDictDictionarym_calo_dict {}
const IdDictDictionarym_fwd_dict {}
AtlasDetectorIDHelperm_helper {}
IdDictFieldImplementation m_det_impl
IdDictFieldImplementation m_indet_part_impl
IdDictFieldImplementation m_calo_side_impl
IdDictFieldImplementation m_lar_part_impl
IdDictFieldImplementation m_lar_fcal_module_impl
IdDictFieldImplementation m_muon_station_name_impl
IdDictFieldImplementation m_muon_mdt_impl
IdDictFieldImplementation m_muon_rpc_impl
IdDictFieldImplementation m_fwd_part_impl
std::vector< unsigned int > m_muon_tech_bits

Detailed Description

Helper for the Liquid Argon Calorimeter cell identifiers.

This class provides a hardware description of a calorimeter cell

Author
Arnaud Lucotte

LArCalorimeter fields:

Part: 4 = LArOnline barrel_ec : 0 = barrel 1 = end-cap pos_neg : 0 = negative eta side (C side) 1 = positive eta side (A side) feedthrough :
[0,31] = EM BARREL crates 00,01,04,07,08,11,12,13, 14,17,18,19,20,23,24 = EMEC Standard crates 02,09,15,21 = EMEC Special crates 03,10,16,22 = HEC crates (note: slots 1&2 are EMEC slots) 06 = FCAL crate
25-27 = sFCAL (is reported as FCAL) slot :
1 to 14 = EM BARREL crates 1 to 13 = Endcap Standard crates 1 to 15 = Endcap Special crates 5,6,7,8,9,10 = HEC in HEC crates 1,2 = EMEC in HEC crates 1 to 15 = FCAL crates 1 to 10 = sFCAL crates channel: 0 to 127

In the following, four contexts are defined:

  • cryostatEndContext
  • feedthroughContext
  • febContext
  • channelContext

Throw a LArOnlID_Exception if one parameter is out of range

Access Methods :

There are three types of methods:

  • recommended methods
  • methods that can still be used but with special care
  • methods that are now obsolete

RECOMMENDED methods : bool isEMBchannel (const HWIdentifier Id) const; bool isEMECchannel (const HWIdentifier Id) const; bool isHECchannel (const HWIdentifier Id) const; bool isFCALchannel (const HWIdentifier Id) const; bool isEMECIW (const HWIdentifier Id) const; bool isEMECOW (const HWIdentifier Id) const; bool isEndcapOnline (const HWIdentifier Id) const; bool isEmEndcapStandardOnline(const HWIdentifier Id) const; bool isEmEndcapSpecialOnline (const HWIdentifier Id) const; bool isEMBPS (const HWIdentifier Id) const; bool isEMECPS (const HWIdentifier Id) const; bool isPS (const HWIdentifier Id) const;

USE-with-CARE methods (still used for historical reasons): bool isHecOnline (const HWIdentifier chId) const; bool isHecOnlineFebId(const HWIdentifier febId)const; bool isEMECinHECchannel(const HWIdentifier Id) const;

OBSOLETE methods : bool isEmBarrelOnline(const HWIdentifier chId) const; -> use isEMBchannel bool isEmEndcapOnline(const HWIdentifier chId) const; -> use isEMECchannel bool isFcalOnline (const HWIdentifier chId) const; -> use isFCALchannel

int channelInSlotMax (const HWIdentifier Id) const;


Definition at line 96 of file LArOnlineID_Base.h.

Member Typedef Documentation

◆ id_iterator

Type for iterators over identifiers.

Definition at line 103 of file LArOnlineID_Base.h.

◆ id_range

using LArOnlineID_Base::id_range = std::ranges::subrange<id_iterator>

Type for range over identifiers.

Definition at line 105 of file LArOnlineID_Base.h.

◆ size_type

using LArOnlineID_Base::size_type = Identifier::size_type

Definition at line 100 of file LArOnlineID_Base.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
NOT_VALID_HASH 

Definition at line 436 of file LArOnlineID_Base.h.

◆ HelperType

enum class AtlasDetectorID::HelperType
stronginherited

enum class for eventual final derived types of this class

Enumerator
Unimplemented 
Silicon 
Pixel 
PLR 
SCT 
TRT 
LArEM 
LArFCal 
LArFCalSuperCell 
LArHEC 
LArHEC_SuperCell 
LARMiniFCal 
Tile 
TileSuperCell 
LArOnline 
LArOnlineSuperCell 
LArElectrode 
LArHVLine 
TileHardware 
TileTestbeam 
CaloCell 
CaloSuperCell 
CaloDM 
CaloLvl1 
GTower 
JTower 
Muon 
LUCID 
LUCID_Hardware 
Zdc 
ZdcHardware 
TT 

Definition at line 55 of file AtlasDetectorID.h.

55 {
56 Unimplemented = -1,
57 Silicon = 0,
58 Pixel, PLR, SCT, TRT,
59 //inherits from CaloIDHelper
60 LArEM, LArFCal, LArFCalSuperCell,
61 LArHEC, LArHEC_SuperCell, LARMiniFCal,
62 Tile, TileSuperCell,
63 //
64 //inherit from LArOnlineId
65 LArOnline, LArOnlineSuperCell,
66 //
67 LArElectrode, LArHVLine,
68 TileHardware, TileTestbeam,
69 CaloCell, CaloSuperCell,
70 CaloDM, CaloLvl1,
71 //inherit from JGTowerBase
72 GTower, JTower,
73 //
74 Muon,
75 LUCID, LUCID_Hardware,
76 Zdc,ZdcHardware,
77 TT
78 };
@ TRT
Definition RegSelEnums.h:26
@ SCT
Definition RegSelEnums.h:25
@ Pixel
Definition DetType.h:13
constexpr std::initializer_list< int > Tile
Definition HIEventDefs.h:70
Muon_v1 Muon
Reference the current persistent version:

◆ ID

enum AtlasDetectorID::ID
privateinherited
Enumerator
ATLAS_ID 
MAX_BIT 
PIXEL_MASK 
ALL_BITS 

Definition at line 373 of file AtlasDetectorID.h.

373 { ATLAS_ID = static_cast<Identifier::value_type>(0),
374 MAX_BIT = Identifier::MAX_BIT,
375 // mask to distinguish a pixel id from lvl1 id (bit 1 set)
376 PIXEL_MASK = static_cast<Identifier::value_type>(0xFF),

Constructor & Destructor Documentation

◆ LArOnlineID_Base()

LArOnlineID_Base::LArOnlineID_Base ( const std::string & name,
const std::string & group,
bool is_slar )

Default constructor.

Definition at line 49 of file LArOnlineID_Base.cxx.

51 :
55 m_lar_index(999),
57 m_bec_index(999),
58 m_side_index(999),
60 m_slot_index(999),
62 m_slar_index(999),
63 m_dict(nullptr),
65 m_febHashMax(0),
69{
70}
const std::string & group() const
Group name for this helper.
AtlasDetectorID(const std::string &name, const std::string &group)
size_type m_calibModuleHashMax
const IdDictDictionary * m_dict
size_type m_channel_in_slot_index
size_type m_feedthrough_index
int is_slar(const HWIdentifier id) const
Return whether the channel is in slar or not is_ slar = [0,1] in all FEB.
size_type m_laronline_index
size_type m_feedthroughHashMax
size_type m_laronlineRegion_index
size_type m_calibChannelHashMax

◆ ~LArOnlineID_Base()

LArOnlineID_Base::~LArOnlineID_Base ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ alfa_exp()

ExpandedIdentifier AtlasDetectorID::alfa_exp ( void ) const
protectedinherited

Forward.

Definition at line 1140 of file AtlasDetectorID.cxx.

1141{
1142 ExpandedIdentifier result(fwd_exp());
1143 return (result << m_ALFA_ID);
1144}
ExpandedIdentifier fwd_exp(void) const

◆ alfa_field_value()

int AtlasDetectorID::alfa_field_value ( ) const
inlineprotectedinherited

Definition at line 526 of file AtlasDetectorID.h.

526{return (m_ALFA_ID);}

◆ barrel_ec()

int LArOnlineID_Base::barrel_ec ( const HWIdentifier id) const

Return the position barrel or endcap of a hardware cell identifier:
barrel_ec = [0,1] : Barrel / EndCap.

Definition at line 1648 of file LArOnlineID_Base.cxx.

1650{
1651 return (m_bec_impl.unpack(id));
1652}
IdDictFieldImplementation m_bec_impl

◆ bcm_exp()

ExpandedIdentifier AtlasDetectorID::bcm_exp ( void ) const
protectedinherited

Definition at line 1147 of file AtlasDetectorID.cxx.

1148{
1149 ExpandedIdentifier result(fwd_exp());
1150 return (result << m_BCM_ID);
1151}

◆ bcm_field_value()

int AtlasDetectorID::bcm_field_value ( ) const
inlineprotectedinherited

Definition at line 528 of file AtlasDetectorID.h.

528{return (m_BCM_ID);}

◆ calib_channel_begin()

LArOnlineID_Base::id_iterator LArOnlineID_Base::calib_channel_begin ( ) const
inline

Return an iterator pointing to a collection of calibration channel identifiers.

Definition at line 705 of file LArOnlineID_Base.h.

707{
708 return(m_calib_channel_vec.begin());
709}
std::vector< HWIdentifier > m_calib_channel_vec

◆ calib_channel_end()

LArOnlineID_Base::id_iterator LArOnlineID_Base::calib_channel_end ( ) const
inline

Definition at line 710 of file LArOnlineID_Base.h.

712{
713 return(m_calib_channel_vec.end());
714}

◆ calib_channel_Hash()

IdentifierHash LArOnlineID_Base::calib_channel_Hash ( HWIdentifier channelId) const
inline

Definition at line 662 of file LArOnlineID_Base.h.

664{
665 std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_calib_channel_vec.begin(),m_calib_channel_vec.end(),channelId);
666 if ( it != m_calib_channel_vec.end() ){
667 return (it - m_calib_channel_vec.begin());
668 }
669 return(0) ;
670}

◆ calib_channel_Id() [1/4]

HWIdentifier LArOnlineID_Base::calib_channel_Id ( const HWIdentifier febId,
int ChannelId ) const
inline

Define a calibration channel identifier from a feb identifier.

Definition at line 646 of file LArOnlineID_Base.h.

648{
649 HWIdentifier result(febId);
650 /* Pack fields independently */
651 m_channel_in_slot_impl.reset(result);
652 m_channel_in_slot_impl.pack (channel, result);
653
654 return result;
655}
IdDictFieldImplementation m_channel_in_slot_impl
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.

◆ calib_channel_Id() [2/4]

HWIdentifier LArOnlineID_Base::calib_channel_Id ( const HWIdentifier FeedthroughId,
int slot,
int channel ) const
inline

Define a calibration channel identifier from a feedthrough identifier.

Definition at line 633 of file LArOnlineID_Base.h.

635{
636 HWIdentifier result(feedthroughId);
637 /* Pack fields independently */
638 m_slot_impl.reset (result);
639 m_channel_in_slot_impl.reset(result);
640 m_slot_impl.pack (slot , result);
641 m_channel_in_slot_impl.pack (channel, result);
642
643 return result;
644}
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...
IdDictFieldImplementation m_slot_impl

◆ calib_channel_Id() [3/4]

HWIdentifier LArOnlineID_Base::calib_channel_Id ( IdentifierHash calibChannelHash) const
inline

create calibration channel identifiers from hash identifiers

Definition at line 656 of file LArOnlineID_Base.h.

658{
659 return(m_calib_channel_vec[channelHashId]);
660}

◆ calib_channel_Id() [4/4]

HWIdentifier LArOnlineID_Base::calib_channel_Id ( int barrel_ec,
int pos_neg,
int feedthrough,
int slot,
int channel ) const
inline

create calibration channel identifiers from fields

Definition at line 616 of file LArOnlineID_Base.h.

619{
620 HWIdentifier result(0);
621 /* Pack fields independently */
622 m_lar_impl.pack (lar_field_value() , result);
623 m_laronline_impl.pack (5 , result);
624 m_bec_impl.pack (barrel_ec , result);
625 m_side_impl.pack (pos_neg , result);
626 m_feedthrough_impl.pack (feedthrough , result);
627 m_slot_impl.pack (slot , result);
628 m_channel_in_slot_impl.pack(channel , result);
629
630 return result;
631}
int lar_field_value() const
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
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
IdDictFieldImplementation m_laronline_impl
IdDictFieldImplementation m_side_impl
IdDictFieldImplementation m_lar_impl
Field Implementation.

◆ calib_channel_range()

LArOnlineID_Base::id_range LArOnlineID_Base::calib_channel_range ( ) const
inline

Definition at line 715 of file LArOnlineID_Base.h.

717{
719}
std::ranges::subrange< id_iterator > id_range
Type for range over identifiers.
id_iterator calib_channel_begin() const
Return an iterator pointing to a collection of calibration channel identifiers.
id_iterator calib_channel_end() const

◆ calib_module_begin()

LArOnlineID_Base::id_iterator LArOnlineID_Base::calib_module_begin ( ) const
inline

Return an iterator pointing to a calibFeb identifier 's collection.

Definition at line 689 of file LArOnlineID_Base.h.

691{
692 return(m_calib_module_vec.begin());
693}
std::vector< HWIdentifier > m_calib_module_vec

◆ calib_module_end()

LArOnlineID_Base::id_iterator LArOnlineID_Base::calib_module_end ( ) const
inline

Definition at line 694 of file LArOnlineID_Base.h.

696{
697 return(m_calib_module_vec.end());
698}

◆ calib_module_Hash()

IdentifierHash LArOnlineID_Base::calib_module_Hash ( HWIdentifier calibModuleId) const
inline

create calibration module_hash identifier from module Identifier

Definition at line 606 of file LArOnlineID_Base.h.

608{
609 std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_calib_module_vec.begin(),m_calib_module_vec.end(),calibModuleId);
610 if ( it != m_calib_module_vec.end() ){
611 return (it - m_calib_module_vec.begin());
612 }
613 return (0);
614}

◆ calib_module_Id() [1/4]

HWIdentifier LArOnlineID_Base::calib_module_Id ( const HWIdentifier ChannelId) const
inline

Define a calibration module identifier from a channel identifier.

Definition at line 592 of file LArOnlineID_Base.h.

594{
595 HWIdentifier result(calibChannelId);
596 m_channel_in_slot_impl.reset(result);
597 return(result);
598}

◆ calib_module_Id() [2/4]

HWIdentifier LArOnlineID_Base::calib_module_Id ( const HWIdentifier FeedthroughId,
int slot ) const
inline

Define a calibration module identifier from a feedthrough identifier.

Definition at line 582 of file LArOnlineID_Base.h.

584{
585 HWIdentifier result(feedthroughId);
586 /* Pack fields independently */
587 m_slot_impl.reset (result);
588 m_slot_impl.pack (slot , result);
589 return(result);
590}

◆ calib_module_Id() [3/4]

HWIdentifier LArOnlineID_Base::calib_module_Id ( IdentifierHash calibModuleHash) const
inline

Create calibration module identifier from hash identifiers.

Definition at line 600 of file LArOnlineID_Base.h.

602{
603 return(m_calib_module_vec[calibModuleHashId]);
604}

◆ calib_module_Id() [4/4]

HWIdentifier LArOnlineID_Base::calib_module_Id ( int barrel_ec,
int pos_neg,
int feedthrough,
int slot ) const
inline

Build calibration module identifier from fields.

Definition at line 567 of file LArOnlineID_Base.h.

570{
571 HWIdentifier result(0);
572 /*Pack fields independently */
573 m_lar_impl.pack (lar_field_value(), result);
574 m_laronline_impl.pack (5 , result);
575 m_bec_impl.pack (barrel_ec , result);
576 m_side_impl.pack (pos_neg , result);
577 m_feedthrough_impl.pack(feedthrough , result);
578 m_slot_impl.pack (slot , result);
579 return result;
580}

◆ calib_module_range()

LArOnlineID_Base::id_range LArOnlineID_Base::calib_module_range ( ) const
inline

Definition at line 699 of file LArOnlineID_Base.h.

701{
703}
id_iterator calib_module_end() const
id_iterator calib_module_begin() const
Return an iterator pointing to a calibFeb identifier 's collection.

◆ calibChannelHashMax()

LArOnlineID_Base::size_type LArOnlineID_Base::calibChannelHashMax ( ) const
inline

Define calibration channel hash tables max size.

Definition at line 678 of file LArOnlineID_Base.h.

680{
682}

◆ calibModuleHashMax()

LArOnlineID_Base::size_type LArOnlineID_Base::calibModuleHashMax ( ) const
inline

Define calibration module hash tables max size.

Definition at line 673 of file LArOnlineID_Base.h.

675{
677}

◆ calo()

Identifier AtlasDetectorID::calo ( void ) const
inherited

Definition at line 85 of file AtlasDetectorID.cxx.

85 {
86 Identifier result{0};
87 // Pack field
88 m_det_impl.pack(calo_field_value(), result);
89 return result;
90}
IdDictFieldImplementation m_det_impl
int calo_field_value() const

◆ calo_exp()

ExpandedIdentifier AtlasDetectorID::calo_exp ( void ) const
protectedinherited

Definition at line 1070 of file AtlasDetectorID.cxx.

1071{
1072 ExpandedIdentifier result;
1073 return (result << m_CALO_ID);
1074}

◆ calo_field_value()

int AtlasDetectorID::calo_field_value ( ) const
inlineprotectedinherited

Definition at line 476 of file AtlasDetectorID.h.

476{return (m_CALO_ID);}

◆ channel()

int LArOnlineID_Base::channel ( const HWIdentifier id) const

Return the channel number of a hardware cell identifier
channel = [0,127] in all FEB.

Definition at line 1673 of file LArOnlineID_Base.cxx.

1675{
1676 return (m_channel_in_slot_impl.unpack(id));
1677}

◆ channel_begin()

LArOnlineID_Base::id_iterator LArOnlineID_Base::channel_begin ( ) const

Returns an iterator pointing to a channel identifier collection.

Definition at line 1632 of file LArOnlineID_Base.cxx.

1634{
1635 return(m_channel_vec.begin());
1636}
std::vector< HWIdentifier > m_channel_vec

◆ channel_end()

LArOnlineID_Base::id_iterator LArOnlineID_Base::channel_end ( ) const

Definition at line 1637 of file LArOnlineID_Base.cxx.

1639{
1640 return(m_channel_vec.end());
1641}

◆ channel_Hash()

IdentifierHash LArOnlineID_Base::channel_Hash ( HWIdentifier channelId) const

Create channel_hash from channel_Id.

Definition at line 1342 of file LArOnlineID_Base.cxx.

1343{
1344 const HashCalc& hc = m_chan_hash_calcs[m_bec_slot_impl.unpack(channelId)];
1345 return (hc.m_hash + channel(channelId));
1346}
Define the Hash identifier for channels and febs.
IdDictFieldImplementation m_bec_slot_impl
std::vector< HashCalc > m_chan_hash_calcs

◆ channel_Hash_binary_search()

IdentifierHash LArOnlineID_Base::channel_Hash_binary_search ( HWIdentifier channelId) const
inlineprotected

Definition at line 554 of file LArOnlineID_Base.h.

556{
557 std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_channel_vec.begin(),m_channel_vec.end(),channelId);
558 if ( it != m_channel_vec.end() ){
559 return (it - m_channel_vec.begin());
560 }
561 return(0) ;
562}

◆ channel_Id() [1/7]

HWIdentifier LArOnlineID_Base::channel_Id ( const HWIdentifier febId,
int channel ) const

Define a channel identifier from a feb identifier.

Definition at line 1336 of file LArOnlineID_Base.cxx.

1337{
1338 return channel_Id (febId, channel, do_checks());
1339}
virtual bool do_checks(void) const override
Checks are performed by default in debug compilation and NOT in optimized compilation.
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields

◆ channel_Id() [2/7]

HWIdentifier LArOnlineID_Base::channel_Id ( const HWIdentifier febId,
int channel,
bool checks ) const

Definition at line 1317 of file LArOnlineID_Base.cxx.

1320{
1321 HWIdentifier result(febId);
1322 /* Pack fields independently */
1323 m_channel_in_slot_impl.reset(result);
1324 m_channel_in_slot_impl.pack (channel, result);
1325 if ( m_this_is_slar )
1326 m_slar_impl.pack (1, result);
1327
1328 /* Do checks */
1329 if(checks) {
1330 channel_Id_checks( febId, channel );
1331 }
1332 return result;
1333}
void channel_Id_checks(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
IdDictFieldImplementation m_slar_impl

◆ channel_Id() [3/7]

HWIdentifier LArOnlineID_Base::channel_Id ( const HWIdentifier feedthroughId,
int slot,
int channel ) const

Define a channel identifier from a feedthrough identifier.

Definition at line 1311 of file LArOnlineID_Base.cxx.

1312{
1313 return channel_Id (feedthroughId, slot, channel, do_checks());
1314}

◆ channel_Id() [4/7]

HWIdentifier LArOnlineID_Base::channel_Id ( const HWIdentifier feedthroughId,
int slot,
int channel,
bool checks ) const

Definition at line 1290 of file LArOnlineID_Base.cxx.

1293{
1294 HWIdentifier result(feedthroughId);
1295 /* Pack fields independently */
1296 m_slot_impl.reset (result);
1297 m_channel_in_slot_impl.reset(result);
1298 m_slot_impl.pack (slot , result);
1299 m_channel_in_slot_impl.pack (channel, result);
1300 if ( m_this_is_slar )
1301 m_slar_impl.pack (1 , result);
1302
1303 /* Do checks */
1304 if(checks) {
1305 channel_Id_checks( feedthroughId, slot, channel );
1306 }
1307 return result;
1308}

◆ channel_Id() [5/7]

HWIdentifier LArOnlineID_Base::channel_Id ( IdentifierHash channelHash) const

Create channel identifiers from hash id.

Definition at line 1282 of file LArOnlineID_Base.cxx.

1284{
1285 return(m_channel_vec[channelHashId]);
1286}

◆ channel_Id() [6/7]

HWIdentifier LArOnlineID_Base::channel_Id ( int barrel_ec,
int pos_neg,
int feedthrough,
int slot,
int channel ) const

create channel identifier from fields

Definition at line 1275 of file LArOnlineID_Base.cxx.

1277{
1279 do_checks());
1280}

◆ channel_Id() [7/7]

HWIdentifier LArOnlineID_Base::channel_Id ( int barrel_ec,
int pos_neg,
int feedthrough,
int slot,
int channel,
bool checks ) const

Definition at line 1250 of file LArOnlineID_Base.cxx.

1254{
1255 HWIdentifier result(0);
1256 /* Pack fields independently */
1257 m_lar_impl.pack (lar_field_value() , result);
1259 m_bec_impl.pack (barrel_ec , result);
1260 m_side_impl.pack (pos_neg , result);
1261 m_feedthrough_impl.pack (feedthrough , result);
1262 m_slot_impl.pack (slot , result);
1263 m_channel_in_slot_impl.pack(channel , result);
1264 if ( m_this_is_slar )
1265 m_slar_impl.pack (1 , result);
1266
1267 /* Do checks */
1268 if(checks) {
1270 }
1271 return result;
1272}
static const int s_lar_online_field_value

◆ channel_Id_checks() [1/3]

void LArOnlineID_Base::channel_Id_checks ( const HWIdentifier febId,
int channel ) const
protected

Definition at line 595 of file LArOnlineID_Base.cxx.

598{
599 // Check that id is within allowed range
600 // Fill expanded id
601 ExpandedIdentifier expId;
602 IdContext context = febContext();
603 if (get_expanded_id(febId, expId, &context)) {
604 std::string errorMessage = "LArOnlineID_Base::channel_Id_checks(febId) result is not OK: ID = "
605 + show_to_string(febId) ;
606 LArOnlID_Exception except(errorMessage , 99);
607 throw except ;
608 }
609
610 expId << channel;
611 if ( m_this_is_slar ) expId << 1;
612 if (!m_full_laronline_range.match(expId)) {
613 std::string errorMessage = "LArOnlineID_Base::channel_Id_checks(febId) result is not OK: ID, range = "
614 + std::string(expId) + " , " + (std::string)m_full_laronline_range;
615 LArOnlID_Exception except(errorMessage , 99);
616 throw except ;
617 }
618}
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
MultiRange m_full_laronline_range
int get_expanded_id(const HWIdentifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
create expanded HWIdentifier from HWIdentifier (return == 0 for OK)
IdContext febContext() const
Define context for feb.

◆ channel_Id_checks() [2/3]

void LArOnlineID_Base::channel_Id_checks ( const HWIdentifier feedthroughId,
int slot,
int channel ) const
protected

Definition at line 621 of file LArOnlineID_Base.cxx.

624{
625 // Check that id is within allowed range
626 // Fill expanded id
627 ExpandedIdentifier expId;
628 IdContext context = feedthroughContext();
629 if (get_expanded_id(feedthroughId, expId, &context)) {
630 std::string errorMessage = "LArOnlineID_Base::channel_Id_checks(feedthroughId) result is not OK: ID = "
631 + show_to_string(feedthroughId) ;
632 LArOnlID_Exception except(errorMessage , 99);
633 throw except ;
634 }
635
636 expId << slot << channel;
637 if ( m_this_is_slar ) expId << 1;
638 if (!m_full_laronline_range.match(expId)) {
639 std::string errorMessage = "LArOnlineID_Base::channel_Id_checks(feedthroughId) result is not OK: ID, range = "
640 + std::string(expId) + " , " + (std::string)m_full_laronline_range;
641 LArOnlID_Exception except(errorMessage , 99);
642 throw except ;
643 }
644}
IdContext feedthroughContext() const
Define context for feedthroughs.

◆ channel_Id_checks() [3/3]

void LArOnlineID_Base::channel_Id_checks ( int barrel_ec,
int pos_neg,
int feedthrough,
int slot,
int channel ) const
protected

Definition at line 576 of file LArOnlineID_Base.cxx.

579{
580 // Check that id is within allowed range
581 // Fill expanded id
582 ExpandedIdentifier expId(lar_exp());
584 if ( m_this_is_slar ) expId << 1;
585
586 if (!m_full_laronline_range.match(expId)) {
587 std::string errorMessage = "LArOnlineID_Base::channel_Id_checks() result is not OK: ID, range = "
588 + std::string(expId) + " , " + (std::string)m_full_laronline_range;
589 LArOnlID_Exception except(errorMessage , 99);
590 throw except ;
591 }
592}
ExpandedIdentifier lar_exp(void) const

◆ channel_name()

std::string LArOnlineID_Base::channel_name ( const HWIdentifier id) const

Return a string corresponding to a feedthrough name given an identifier.

Definition at line 223 of file LArOnlineID_Base.cxx.

223 {
224//==================================================================
225 std::ostringstream s1;
226 int Nchan = channel(id);
227 int Nslot = slot(id);
228 int Nft = feedthrough(id);
229 std::string det_barrel_endcap = "NODETE";
230 std::string det_side = "/X-SIDE";
231
232 if( barrel_ec(id) == 0 ) det_barrel_endcap = "BARREL";
233 if( barrel_ec(id) == 1 ) det_barrel_endcap = "ENDCAP";
234 if( pos_neg(id) == 1 ) det_side = "/A-SIDE";
235 if( pos_neg(id) == 0 ) det_side = "/C-SIDE";
236
237 s1 << det_barrel_endcap
238 << det_side
239 << "/FT-" << Nft
240 << "/SLOT-" << Nslot
241 << "/CHAN-" << Nchan;
242 return s1.str();
243 //return s2;
244}

◆ channel_range()

LArOnlineID_Base::id_range LArOnlineID_Base::channel_range ( ) const

Definition at line 1642 of file LArOnlineID_Base.cxx.

1644{
1645 return {channel_begin(), channel_end()};
1646}
id_iterator channel_end() const
id_iterator channel_begin() const
Returns an iterator pointing to a channel identifier collection.

◆ channelContext()

IdContext LArOnlineID_Base::channelContext ( ) const

Define context for channel.

Definition at line 270 of file LArOnlineID_Base.cxx.

272{
273 ExpandedIdentifier id;
274 return (IdContext(id, 0, m_channel_in_slot_index));
275}

◆ channelHashMax()

LArOnlineID_Base::size_type LArOnlineID_Base::channelHashMax ( ) const

Define channel hash tables max size.

Definition at line 1607 of file LArOnlineID_Base.cxx.

1609{
1610 return m_channelHashMax;
1611}

◆ channelInSlotMax()

int LArOnlineID_Base::channelInSlotMax ( const HWIdentifier Id) const

Return the Maximum channel number of a given feb slot.

Definition at line 290 of file LArOnlineID_Base.cxx.

292{
293
294 ExpandedIdentifier expId;
295 IdContext context = channelContext();
296 if(!get_expanded_id(channelId, expId, &context)) {
297 int result = -999;
298 for (unsigned int i = 0; i < m_full_laronline_range.size(); ++i) {
299 const Range& range = m_full_laronline_range[i];
300 if (range.match(expId)) {
301 const Range::field& channel_in_slot_field = range[m_channel_in_slot_index];
302 if (!channel_in_slot_field.empty()) {
303 int channel_in_slotmax = channel_in_slot_field.get_maximum();
304 if (result < channel_in_slotmax) result = channel_in_slotmax + 1;
305 }
306 }
307 }
308 return (result);
309 }
310 return (-999); // default
311}
bool empty() const
If true, this field does not have any constraints, and may hold any value representable by element_ty...
element_type get_maximum() const
IdContext channelContext() const
Define context for channel.

◆ cryostatEndContext()

IdContext LArOnlineID_Base::cryostatEndContext ( ) const

Define context for cryostat (obsolete)

Definition at line 249 of file LArOnlineID_Base.cxx.

251{
252 ExpandedIdentifier id;
253 return (IdContext(id, 0, m_side_index));
254}

◆ csc()

Identifier AtlasDetectorID::csc ( void ) const
inherited

Definition at line 42 of file AtlasDetectorID.cxx.

42 {
43 return Identifier{};
44}

◆ csc_field_value()

int AtlasDetectorID::csc_field_value ( ) const
inlineprotectedinherited

Definition at line 509 of file AtlasDetectorID.h.

509{return (m_CSC_ID);}

◆ detsystem_context()

IdContext AtlasDetectorID::detsystem_context ( void ) const
inherited

IdContext (indicates id length) for detector systems.

Definition at line 180 of file AtlasDetectorID.cxx.

180 {
181 ExpandedIdentifier id{};
182 return IdContext{id, 0, m_DET_INDEX};
183}

◆ dict_names()

const std::vector< std::string > & AtlasDetectorID::dict_names ( void ) const
inherited

Dictionary names.

Definition at line 469 of file AtlasDetectorID.cxx.

469 {
470 return m_dict_names;
471}
std::vector< std::string > m_dict_names
List of dictionary names used by this helper.

◆ dict_tags()

const std::vector< std::string > & AtlasDetectorID::dict_tags ( void ) const
inherited

Version tags for subdet dictionaries.

Definition at line 475 of file AtlasDetectorID.cxx.

475 {
476 return m_dict_tags;
477}
std::vector< std::string > m_dict_tags
List of dictionary versions used by this helper.

◆ dictionaryVersion()

std::string AtlasDetectorID::dictionaryVersion ( void ) const
overridevirtualinherited

Implements IdHelper.

Definition at line 283 of file AtlasDetectorID.cxx.

283 {
284 return m_dict_version;
285}
std::string m_dict_version

◆ do_checks()

bool AtlasDetectorID::do_checks ( void ) const
overridevirtualinherited

Checks are performed by default in debug compilation and NOT in optimized compilation.

One can switch or query this mode for any idHelper with the following methods:

Implements IdHelper.

Definition at line 478 of file AtlasDetectorID.cxx.

478 {
479 return m_do_checks;
480}
bool m_do_checks
Flag for subclasses to know whether or not to perform checks.

◆ do_neighbours()

bool AtlasDetectorID::do_neighbours ( void ) const
overridevirtualinherited

Neighbour initialization is performed by default One can switch or query this mode for any idHelper with the following method:

Implements IdHelper.

Definition at line 485 of file AtlasDetectorID.cxx.

485 {
486 return m_do_neighbours;
487}
bool m_do_neighbours
Flag for subclasses to know whether or not to perform neighbour initialization.

◆ feb_begin()

LArOnlineID_Base::id_iterator LArOnlineID_Base::feb_begin ( ) const

Returns an iterator pointing to a feb identifier collection.

Definition at line 1616 of file LArOnlineID_Base.cxx.

1618{
1619 return(m_feb_vec.begin());
1620}
std::vector< HWIdentifier > m_feb_vec

◆ feb_end()

LArOnlineID_Base::id_iterator LArOnlineID_Base::feb_end ( ) const

Definition at line 1621 of file LArOnlineID_Base.cxx.

1623{
1624 return(m_feb_vec.end());
1625}

◆ feb_Hash()

IdentifierHash LArOnlineID_Base::feb_Hash ( HWIdentifier febId) const

Create feb hash identifiers from feb identifiers.

Definition at line 1227 of file LArOnlineID_Base.cxx.

1229{
1230 // Get the hash caculator for the febs
1231 const HashCalcFeb& hc = m_feb_hash_calcs[m_bec_ft_impl.unpack(febId)];
1232 // Two cases:
1233 // 1) slot values are enumerated and we must look for a matching
1234 // value to obtain the index
1235 // 2) slot values are a continuous range, then the slot index is
1236 // sufficient for the hash calculation
1237 if (!hc.m_slot_values.empty()) {
1238 // find matching value
1239 int slotValue = slot(febId);
1240 for (int i = 0; (unsigned int)i < hc.m_slot_values.size(); ++i) {
1241 if (slotValue == hc.m_slot_values[i]) return (hc.m_hash + i);
1242 }
1243 ATH_MSG_WARNING("LArOnlineID_Base::feb_Hash - ***** WARNING: could not match slot value for has calculation ");
1244 }
1245 size_type slotIndex = m_slot_impl.unpackToIndex(febId);
1246 return (hc.m_hash + slotIndex);
1247}
#define ATH_MSG_WARNING(x)
IdDictFieldImplementation m_bec_ft_impl
std::vector< HashCalcFeb > m_feb_hash_calcs
Identifier::size_type size_type

◆ feb_Hash_binary_search()

IdentifierHash LArOnlineID_Base::feb_Hash_binary_search ( HWIdentifier channelId) const
inlineprotected

Definition at line 543 of file LArOnlineID_Base.h.

545{
546 std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_feb_vec.begin(),m_feb_vec.end(),febId);
547 if ( it != m_feb_vec.end() ){
548 return (it - m_feb_vec.begin());
549 }
550 return (0);
551}

◆ feb_Id() [1/5]

HWIdentifier LArOnlineID_Base::feb_Id ( const HWIdentifier channelId) const

Define a feb identifier from a channel identifier.

Definition at line 1213 of file LArOnlineID_Base.cxx.

1215{
1216 HWIdentifier result(channelId);
1217 m_channel_in_slot_impl.reset(result);
1218 return(result);
1219}

◆ feb_Id() [2/5]

HWIdentifier LArOnlineID_Base::feb_Id ( const HWIdentifier feedthroughId,
int slot ) const

Define a feb identifier from a feedthrough identifier.

Definition at line 1200 of file LArOnlineID_Base.cxx.

1202{
1203 HWIdentifier result(feedthroughId);
1204 /* Pack fields independently */
1205 m_slot_impl.reset (result);
1206 m_slot_impl.pack (slot , result);
1207 if ( m_this_is_slar )
1208 m_slar_impl.pack (1 , result);
1209
1210 return(result);
1211}

◆ feb_Id() [3/5]

HWIdentifier LArOnlineID_Base::feb_Id ( IdentifierHash febHash) const

create feb identifier from hash id

Definition at line 1221 of file LArOnlineID_Base.cxx.

1223{
1224 return(m_feb_vec[febHashId]);
1225}

◆ feb_Id() [4/5]

HWIdentifier LArOnlineID_Base::feb_Id ( int barrel_ec,
int pos_neg,
int feedthrough,
int slot ) const

Create feb_Id from fields.

Definition at line 1194 of file LArOnlineID_Base.cxx.

1196{
1198}
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.

◆ feb_Id() [5/5]

HWIdentifier LArOnlineID_Base::feb_Id ( int barrel_ec,
int pos_neg,
int feedthrough,
int slot,
bool checks ) const

Definition at line 1169 of file LArOnlineID_Base.cxx.

1173{
1174 HWIdentifier result(0);
1175
1176 /*Pack fields independently */
1177 m_lar_impl.pack (lar_field_value(), result);
1179 m_bec_impl.pack (barrel_ec , result);
1180 m_side_impl.pack (pos_neg , result);
1181 m_feedthrough_impl.pack(feedthrough , result);
1182 m_slot_impl.pack (slot , result);
1183 if ( m_this_is_slar )
1184 m_slar_impl.pack (1 , result);
1185
1186 /* Do checks */
1187 if(checks) {
1189 }
1190 return result;
1191}
void feb_Id_checks(int barrel_ec, int pos_neg, int feedthrough, int slot) const

◆ feb_Id_checks()

void LArOnlineID_Base::feb_Id_checks ( int barrel_ec,
int pos_neg,
int feedthrough,
int slot ) const
protected

Definition at line 647 of file LArOnlineID_Base.cxx.

649{
650 // Check that id is within allowed range
651 // Fill expanded id
652 ExpandedIdentifier expId(lar_exp());
654
655 if ( m_this_is_slar ) expId << 0 << 1;
656 if (!m_full_feedthrough_range.match(expId)) { std::string errorMessage = "LArOnlineID_Base::feb_Id_checks() result is not OK: ID, range = "
657 + std::string(expId) + " , " + (std::string)m_full_feb_range;
658 LArOnlID_Exception except(errorMessage , 99);
659 throw except ;
660 }
661}
MultiRange m_full_feb_range
MultiRange m_full_feedthrough_range

◆ feb_range()

LArOnlineID_Base::id_range LArOnlineID_Base::feb_range ( ) const

Definition at line 1626 of file LArOnlineID_Base.cxx.

1628{
1629 return {feb_begin(), feb_end()};
1630}
id_iterator feb_begin() const
Returns an iterator pointing to a feb identifier collection.
id_iterator feb_end() const

◆ febContext()

IdContext LArOnlineID_Base::febContext ( ) const

Define context for feb.

Definition at line 280 of file LArOnlineID_Base.cxx.

282{
283 ExpandedIdentifier id;
284 return (IdContext(id, 0, m_slot_index));
285}

◆ febHashMax()

LArOnlineID_Base::size_type LArOnlineID_Base::febHashMax ( ) const

define feb hash tables max size

Definition at line 1602 of file LArOnlineID_Base.cxx.

1604{
1605 return m_febHashMax;
1606}

◆ feedthrough()

int LArOnlineID_Base::feedthrough ( const HWIdentifier id) const

Return the feedthrough of a hardware cell identifier :
feedthrough = [0,31] Barrel - A/C side or H/I half barrel
feedthrough = [1,25] Endcap-Standard EMEC 1.6<|eta|<2.4 - A/C side
feedthrough = [1,25] Endcap-Special EMEC 1.5<|eta|<1.6 and 2.4<|eta|<3.2
feedthrough = [1,25] HEC A/C side.

Definition at line 1654 of file LArOnlineID_Base.cxx.

1656{
1657 return (m_feedthrough_impl.unpack(id));
1658}

◆ feedthrough_begin()

LArOnlineID_Base::id_iterator LArOnlineID_Base::feedthrough_begin ( ) const

Return an iterator pointing to Feedthrough identifiers collection.

Definition at line 1146 of file LArOnlineID_Base.cxx.

1148{
1149 return(m_feedthrough_vec.begin());
1150}
std::vector< HWIdentifier > m_feedthrough_vec

◆ feedthrough_end()

LArOnlineID_Base::id_iterator LArOnlineID_Base::feedthrough_end ( ) const

Definition at line 1152 of file LArOnlineID_Base.cxx.

1154{
1155 return(m_feedthrough_vec.end());
1156}

◆ feedthrough_Hash()

IdentifierHash LArOnlineID_Base::feedthrough_Hash ( HWIdentifier feedthroughId) const

Create hash id from feedthrough identifiers.

Definition at line 1127 of file LArOnlineID_Base.cxx.

1129{
1130 std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_feedthrough_vec.begin(),m_feedthrough_vec.end(),feedthroughId);
1131 if ( it != m_feedthrough_vec.end() ){
1132 return (it - m_feedthrough_vec.begin());
1133 }
1134 return (0);
1135}

◆ feedthrough_Id() [1/4]

HWIdentifier LArOnlineID_Base::feedthrough_Id ( const HWIdentifier Id) const

Define a channel identifier from a feedthrough identifier.

Definition at line 1137 of file LArOnlineID_Base.cxx.

1139{
1140 HWIdentifier result(Id);
1141 m_slot_impl.reset(result);
1142 m_channel_in_slot_impl.reset(result);
1143 return(result);
1144}

◆ feedthrough_Id() [2/4]

HWIdentifier LArOnlineID_Base::feedthrough_Id ( IdentifierHash feedthroughHash) const

Create a feedthrough identifier from hash_id.

Definition at line 1121 of file LArOnlineID_Base.cxx.

1123{
1124 return(m_feedthrough_vec[feedthroughHashId]);
1125}

◆ feedthrough_Id() [3/4]

HWIdentifier LArOnlineID_Base::feedthrough_Id ( int barrel_ec,
int pos_neg,
int feedthrough ) const

Create a feedthrough identifier from fields.

Definition at line 1115 of file LArOnlineID_Base.cxx.

1116{
1118}
HWIdentifier feedthrough_Id(int barrel_ec, int pos_neg, int feedthrough) const
Create a feedthrough identifier from fields.

◆ feedthrough_Id() [4/4]

HWIdentifier LArOnlineID_Base::feedthrough_Id ( int barrel_ec,
int pos_neg,
int feedthrough,
bool checks ) const

Definition at line 1093 of file LArOnlineID_Base.cxx.

1095{
1096 HWIdentifier result(0);
1097
1098 /*Pack fields independently */
1099 m_lar_impl.pack (lar_field_value(), result);
1101 m_bec_impl.pack (barrel_ec , result);
1102 m_side_impl.pack (pos_neg , result);
1103 m_feedthrough_impl.pack(feedthrough , result);
1104 if ( m_this_is_slar )
1105 m_slar_impl.pack (1 , result);
1106
1107 /* Do checks */
1108 if(checks)
1109 {
1111 }
1112 return result;
1113}
void feedthrough_Id_checks(int barrel_ec, int pos_neg, int feedthrough) const

◆ feedthrough_Id_checks()

void LArOnlineID_Base::feedthrough_Id_checks ( int barrel_ec,
int pos_neg,
int feedthrough ) const
protected

Definition at line 664 of file LArOnlineID_Base.cxx.

666{
667 // Check that id is within allowed range
668 // Fill expanded id
669 ExpandedIdentifier expId(lar_exp());
671
672// if ( m_this_is_slar ) expId << 0 << 0 << 1;
673 if (!m_full_feedthrough_range.match(expId)) { std::string errorMessage = "LArOnlineID_Base::feedthrough_Id_checks() result is not OK: ID, range = "
674 + std::string(expId) + " , " + (std::string)m_full_feedthrough_range;
675 LArOnlID_Exception except(errorMessage , 99);
676 throw except ;
677 }
678}

◆ feedthrough_name()

std::string LArOnlineID_Base::feedthrough_name ( const HWIdentifier id) const

Return a string corresponding to a feedthrough name given an identifier.

Definition at line 77 of file LArOnlineID_Base.cxx.

77 {
78//==================================================================
79 std::string result;
80 int ft = feedthrough(id);
81 if( barrel_ec(id)== 0 ){
82 // if BARREL
83 if( pos_neg(id) == 1 ){
84 // if EMBA
85 if( ft==31 ){result = "I01R";}
86 if( ft==0 ){result = "I01L";}
87 if( ft==1 ){result = "I02R";}
88 if( ft==2 ){result = "I02L";}
89 if( ft==3 ){result = "I03R";}
90 if( ft==4 ){result = "I03L";}
91 if( ft==5 ){result = "I04R";}
92 if( ft==6 ){result = "I04L";}
93 if( ft==7 ){result = "I05R";}
94 if( ft==8 ){result = "I05L";}
95 if( ft==9 ){result = "I06R";}
96 if( ft==10 ){result = "I06L";}
97 if( ft==11 ){result = "I07R";}
98 if( ft==12 ){result = "I07L";}
99 if( ft==13 ){result = "I08R";}
100 if( ft==14 ){result = "I08L";}
101 if( ft==15 ){result = "I09R";}
102 if( ft==16 ){result = "I09L";}
103 if( ft==17 ){result = "I10R";}
104 if( ft==18 ){result = "I10L";}
105 if( ft==19 ){result = "I11R";}
106 if( ft==20 ){result = "I11L";}
107 if( ft==21 ){result = "I12R";}
108 if( ft==22 ){result = "I12L";}
109 if( ft==23 ){result = "I13R";}
110 if( ft==24 ){result = "I13L";}
111 if( ft==25 ){result = "I14R";}
112 if( ft==26 ){result = "I14L";}
113 if( ft==27 ){result = "I15R";}
114 if( ft==28 ){result = "I15L";}
115 if( ft==29 ){result = "I16R";}
116 if( ft==30 ){result = "I16L";}
117 }
118 else{
119 // EMBC
120 if( ft==15 ){result = "H01R";}
121 if( ft==16 ){result = "H01L";}
122 if( ft==13 ){result = "H02R";}
123 if( ft==14 ){result = "H02L";}
124 if( ft==11 ){result = "H03R";}
125 if( ft==12 ){result = "H03L";}
126 if( ft==9 ){result = "H04R";}
127 if( ft==10){result = "H04L";}
128 if( ft==7 ){result = "H05R";}
129 if( ft==8 ){result = "H05L";}
130 if( ft==5 ){result = "H06R";}
131 if( ft==6 ){result = "H06L";}
132 if( ft==3 ){result = "H07R";}
133 if( ft==4 ){result = "H07L";}
134 if( ft==1 ){result = "H08R";}
135 if( ft==2 ){result = "H08L";}
136 if( ft==31){result = "H09R";}
137 if( ft==0 ){result = "H09L";}
138 if( ft==29 ){result = "H10R";}
139 if( ft==30 ){result = "H10L";}
140 if( ft==27 ){result = "H11R";}
141 if( ft==28 ){result = "H11L";}
142 if( ft==25 ){result = "H12R";}
143 if( ft==26 ){result = "H12L";}
144 if( ft==23 ){result = "H13R";}
145 if( ft==24 ){result = "H13L";}
146 if( ft==21 ){result = "H14R";}
147 if( ft==22 ){result = "H14L";}
148 if( ft==19 ){result = "H15R";}
149 if( ft==20 ){result = "H15L";}
150 if( ft==17 ){result = "H16R";}
151 if( ft==18 ){result = "H16L";}
152 }
153 }
154 if ( barrel_ec(id) == 1 ){
155 // ENDCAP
156 if( pos_neg(id) == 1 ){
157 // EMEC-A
158 if( ft==0 ){result = "A01R";}
159 if( ft==1 ){result = "A01L";}
160 if( ft==2 ){result = "A02R";}
161 if( ft==3 ){result = "A02L";}
162 if( ft==4 ){result = "A03R";}
163 if( ft==5 ){result = "A03L";}
164 if( ft==6 ){result = "A04R";}
165 if( ft==7 ){result = "A05R";}
166 if( ft==8 ){result = "A05L";}
167 if( ft==9 ){result = "A06R";}
168 if( ft==10){result = "A06L";}
169 if( ft==11){result = "A07R";}
170 if( ft==12){result = "A07L";}
171 if( ft==13){result = "A08R";}
172 if( ft==14){result = "A08L";}
173 if( ft==15){result = "A09R";}
174 if( ft==16){result = "A09L";}
175 if( ft==17){result = "A10R";}
176 if( ft==18){result = "A10L";}
177 if( ft==19){result = "A11R";}
178 if( ft==20){result = "A11L";}
179 if( ft==21){result = "A12R";}
180 if( ft==22){result = "A12L";}
181 if( ft==23){result = "A13R";}
182 if( ft==24){result = "A13L";}
183 if( ft==25){result = "A14R";} // ft25-27 are sFCal; A14R, A14L, A15L
184 if( ft==26){result = "A14L";} // will need to be replaced by actual
185 if( ft==27){result = "A15L";} // crate name once it exists
186 }
187 else{
188 // EMEC-C
189 if( ft==11 ){result = "C01R";}
190 if( ft==12 ){result = "C01L";}
191 if( ft==9 ){result = "C02R";}
192 if( ft==10 ){result = "C02L";}
193 if( ft==7 ){result = "C03R";}
194 if( ft==8 ){result = "C03L";}
195 if( ft==4 ){result = "C05R";}
196 if( ft==5 ){result = "C05L";}
197 if( ft==2 ){result = "C06R";}
198 if( ft==3 ){result = "C06L";}
199 if( ft==0 ){result = "C07R";}
200 if( ft==1 ){result = "C07L";}
201 if( ft==23 ){result = "C08R";}
202 if( ft==24 ){result = "C08L";}
203 if( ft==21 ){result = "C09R";}
204 if( ft==22 ){result = "C09L";}
205 if( ft==19 ){result = "C10R";}
206 if( ft==20 ){result = "C10L";}
207 if( ft==17 ){result = "C11R";}
208 if( ft==18 ){result = "C11L";}
209 if( ft==15 ){result = "C12R";}
210 if( ft==16 ){result = "C12L";}
211 if( ft==13 ){result = "C13R";}
212 if( ft==14 ){result = "C13L";}
213 if( ft==6 ){result = "C04L";}
214 if( ft==25 ){result = "C14R";} // ft25-27 are sFCal; C14R, C14L, C15L
215 if( ft==26 ){result = "C14L";} // will need to be replaced by actual
216 if( ft==27 ){result = "C15L";} // crate name once it exists
217 }
218 }
219 return result;
220}

◆ feedthrough_range()

LArOnlineID_Base::id_range LArOnlineID_Base::feedthrough_range ( ) const

Definition at line 1158 of file LArOnlineID_Base.cxx.

1160{
1161 return {feedthrough_begin(), feedthrough_end()};
1162}
id_iterator feedthrough_begin() const
Return an iterator pointing to Feedthrough identifiers collection.
id_iterator feedthrough_end() const

◆ feedthroughContext()

IdContext LArOnlineID_Base::feedthroughContext ( ) const

Define context for feedthroughs.

Definition at line 259 of file LArOnlineID_Base.cxx.

261{
262 ExpandedIdentifier id;
263 return (IdContext(id, 0, m_feedthrough_index));
264}

◆ feedthroughHashMax()

LArOnlineID_Base::size_type LArOnlineID_Base::feedthroughHashMax ( ) const

Define feedthrough hash tables max size.

Definition at line 1597 of file LArOnlineID_Base.cxx.

1599{
1600 return m_feedthroughHashMax;
1601}

◆ file_names()

const std::vector< std::string > & AtlasDetectorID::file_names ( void ) const
inherited

File names for subdet dictionaries.

Definition at line 472 of file AtlasDetectorID.cxx.

472 {
473 return m_file_names;
474}
std::vector< std::string > m_file_names
List of dictionary file names used by this helper.

◆ fix_barrel_ec()

std::string AtlasDetectorID::fix_barrel_ec ( const std::string & barrel_ec) const
protectedinherited

◆ forward_field_value()

int AtlasDetectorID::forward_field_value ( ) const
inlineprotectedinherited

Definition at line 524 of file AtlasDetectorID.h.

524{return (m_FWD_ID);}

◆ fwd_exp()

ExpandedIdentifier AtlasDetectorID::fwd_exp ( void ) const
protectedinherited

Definition at line 1077 of file AtlasDetectorID.cxx.

1078{
1079 ExpandedIdentifier result;
1080 return (result << m_FWD_ID);
1081}

◆ get_expanded_calib_id()

int LArOnlineID_Base::get_expanded_calib_id ( const HWIdentifier & id,
ExpandedIdentifier & exp_id,
const IdContext * context ) const
protected

Definition at line 710 of file LArOnlineID_Base.cxx.

713{
714 // We assume that the context is >= feedthrough
715 exp_id.clear();
716 exp_id << lar_field_value()
718 << barrel_ec(id)
719 << pos_neg(id)
720 << feedthrough(id);
721 if(context && context->end_index() >= m_slot_index) {
722 exp_id << slot(id);
723 if(context->end_index() >= m_channel_in_slot_index) {
724 exp_id << channel(id);
725 if(context->end_index() >= m_slar_index) {
726 exp_id << is_slar(id);
727 }
728 }
729 }
730 return (0);
731}
static const int s_lar_onlineCalib_field_value
void clear()
Erase all fields.
size_type end_index() const
Definition IdContext.h:46

◆ get_expanded_id()

int LArOnlineID_Base::get_expanded_id ( const HWIdentifier & id,
ExpandedIdentifier & exp_id,
const IdContext * context ) const
protected

create expanded HWIdentifier from HWIdentifier (return == 0 for OK)

Definition at line 683 of file LArOnlineID_Base.cxx.

686{
687 // We assume that the context is >= feedthrough
688 exp_id.clear();
689 exp_id << lar_field_value()
691 << barrel_ec(id)
692 << pos_neg(id);
693 if(context && context->end_index() >= m_feedthrough_index) {
694 exp_id << feedthrough(id);
695 if(context && context->end_index() >= m_slot_index) {
696 exp_id << slot(id);
697 if(context->end_index() >= m_channel_in_slot_index) {
698 exp_id << channel(id);
699 if(context->end_index() >= m_slar_index) {
700 exp_id << is_slar(id);
701 }
702 }
703 }
704 }
705 return (0);
706}

◆ get_hash()

int AtlasDetectorID::get_hash ( const Identifier & id,
IdentifierHash & hash_id,
const IdContext * context = 0 ) const
overridevirtualinherited

Create hash id from compact id (return == 0 for OK)

Implements IdHelper.

Reimplemented in CaloIDHelper, CaloLVL1_ID, HGTD_ID, JGTowerBase_ID, MuonIdHelper, PixelID, SCT_ID, SiliconID, Tile_Base_ID, TileHWID, TileTBID, and TRT_ID.

Definition at line 197 of file AtlasDetectorID.cxx.

199 {
200 return 0;
201}

◆ get_id()

int AtlasDetectorID::get_id ( const IdentifierHash & hash_id,
Identifier & id,
const IdContext * context = 0 ) const
overridevirtualinherited

Create compact id from hash id (return == 0 for OK)

Implements IdHelper.

Reimplemented in CaloIDHelper, CaloLVL1_ID, HGTD_ID, JGTowerBase_ID, MuonIdHelper, PixelID, SCT_ID, SiliconID, Tile_Base_ID, TileHWID, TileTBID, and TRT_ID.

Definition at line 191 of file AtlasDetectorID.cxx.

193 {
194 return 0;
195}

◆ group()

const std::string & AtlasDetectorID::group ( ) const
inherited

Group name for this helper.

Definition at line 34 of file AtlasDetectorID.cxx.

35{
36 return m_group;
37}
std::string m_group
Group name.

◆ helper()

virtual HelperType AtlasDetectorID::helper ( ) const
inlinevirtualinherited

Type of helper, defaulted to 'Unimplemented'.

Reimplemented in PixelID, PLR_ID, and SCT_ID.

Definition at line 90 of file AtlasDetectorID.h.

◆ hgtd()

Identifier AtlasDetectorID::hgtd ( void ) const
inherited

Definition at line 116 of file AtlasDetectorID.cxx.

116 {
117 Identifier result{0};
118 // Pack field
119 m_det_impl.pack(indet_field_value(), result);
120 m_indet_part_impl.pack(m_HGTD_ID, result);
121 return result;
122}
IdDictFieldImplementation m_indet_part_impl
int indet_field_value() const
Provide efficient access to individual field values, for subclass idhelpers.

◆ hgtd_exp()

ExpandedIdentifier AtlasDetectorID::hgtd_exp ( void ) const
protectedinherited

Definition at line 1105 of file AtlasDetectorID.cxx.

1106{
1107 ExpandedIdentifier result(indet_exp());
1108 return (result << m_HGTD_ID);
1109}
ExpandedIdentifier indet_exp(void) const
Detector systems:

◆ hgtd_field_value()

int AtlasDetectorID::hgtd_field_value ( ) const
inlineprotectedinherited

Definition at line 488 of file AtlasDetectorID.h.

488{return (m_HGTD_ID);}

◆ indet()

Identifier AtlasDetectorID::indet ( void ) const
inherited

Detector systems:

Definition at line 57 of file AtlasDetectorID.cxx.

57 {
58 Identifier result{0};
59 // Pack field
60 m_det_impl.pack(indet_field_value(), result);
61 return result;
62}

◆ indet_exp()

ExpandedIdentifier AtlasDetectorID::indet_exp ( void ) const
protectedinherited

Detector systems:

Definition at line 1042 of file AtlasDetectorID.cxx.

1043{
1044 ExpandedIdentifier result;
1045 return (result << m_INDET_ID);
1046}

◆ indet_field_value()

int AtlasDetectorID::indet_field_value ( ) const
inlineprotectedinherited

Provide efficient access to individual field values, for subclass idhelpers.

Definition at line 464 of file AtlasDetectorID.h.

464{return (m_INDET_ID);}

◆ init_calib_hashes()

int LArOnlineID_Base::init_calib_hashes ( )
protected

Definition at line 1687 of file LArOnlineID_Base.cxx.

1689{
1690 unsigned int nids=0;
1691 std::set<HWIdentifier> ids;
1692 for (unsigned int i = 0; i < m_full_calib_laronline_range.size(); ++i) {
1693 const Range& range = m_full_calib_laronline_range[i];
1694 ConstRangeIterator rit(range);
1695 for (const auto & exp_id : rit) {
1696 HWIdentifier id = this->calib_channel_Id(exp_id[m_bec_index],
1697 exp_id[m_side_index],
1698 exp_id[m_feedthrough_index],
1699 exp_id[m_slot_index],
1700 exp_id[m_channel_in_slot_index]);
1701 if(!(ids.insert(id)).second) {
1702 ATH_MSG_WARNING("LArOnlineID_Base::init_calib_Hashes: Error: duplicated id for channel id. nids= "
1703 + std::to_string(nids) + " compact Id " + std::string(exp_id) + " " + show_to_string(id));
1704 }
1705 nids++;
1706 }
1707 }
1708 unsigned int nidtb=0;
1709 std::set<HWIdentifier>::const_iterator first = ids.begin();
1710 std::set<HWIdentifier>::const_iterator last = ids.end();
1711 for (;first != last && nidtb < nids; ++first) {
1712 m_calib_channel_vec.push_back(*first);
1713 nidtb++;
1714 }
1716
1717 /* FEB hash */
1718 /*==========*/
1719 nids = 0;
1720 ids.clear();
1721 for (unsigned int i = 0; i < m_full_calib_module_range.size(); ++i) {
1722 const Range& range = m_full_calib_module_range[i];
1723 ConstRangeIterator rit(range);
1724 for (const auto & exp_id : rit) {
1725 HWIdentifier febId = calib_module_Id( exp_id[m_bec_index],
1726 exp_id[m_side_index],
1727 exp_id[m_feedthrough_index],
1728 exp_id[m_slot_index] );
1729 if(!(ids.insert(febId)).second){
1730 ATH_MSG_WARNING("LArOnlineID_Base::init_calibhashes: Warning: duplicated id for feb id. nids= "
1731 + std::to_string(nids) + " compact Id " + std::string(exp_id) + " " + show_to_string(febId));
1732 }
1733 nids++;
1734 }
1735 }
1736 nidtb=0;
1737 first = ids.begin();
1738 last = ids.end();
1739 for (;first != last && nidtb < nids; ++first)
1740 {
1741 m_calib_module_vec.push_back(*first);
1742 nidtb++;
1743 }
1745 return (0);
1746}
HWIdentifier calib_channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create calibration channel identifiers from fields
MultiRange m_full_calib_laronline_range
HWIdentifier calib_module_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Build calibration module identifier from fields.
MultiRange m_full_calib_module_range
bool first
Definition DeMoScan.py:534

◆ init_hashes()

int LArOnlineID_Base::init_hashes ( )
protected

Definition at line 921 of file LArOnlineID_Base.cxx.

923{
924 /* channel hash */
927 unsigned int nids = 0;
928 std::set<HWIdentifier> ids;
929 for (unsigned int i = 0; i < m_full_laronline_range.size(); ++i)
930 {
931 const Range& range = m_full_laronline_range[i];
932 ConstRangeIterator rit(range);
933 for (const auto & exp_id : rit)
934 {
935 HWIdentifier id = this->channel_Id (exp_id[m_bec_index],
936 exp_id[m_side_index],
937 exp_id[m_feedthrough_index],
938 exp_id[m_slot_index],
940 if(!(ids.insert(id)).second)
941 {
942 ATH_MSG_ERROR("init_hashes: duplicated id for channel nb = " + std::to_string(nids));
943 ATH_MSG_ERROR("expanded Id= " + show_to_string(id));
944 }
945 nids++;
946 }
947 }
948 if(ids.size() != m_channelHashMax)
949 {
950 ATH_MSG_ERROR("init_hashes: set size NOT EQUAL to hash max. size " + std::to_string(ids.size()));
951 ATH_MSG_ERROR("hash max " + std::to_string(m_channelHashMax));
952 return (1);
953 }
954 nids=0;
955 std::set<HWIdentifier>::const_iterator first = ids.begin();
956 std::set<HWIdentifier>::const_iterator last = ids.end();
957 for (;first != last && nids < m_channel_vec.size(); ++first)
958 {
959 m_channel_vec[nids] = (*first) ;
960 nids++;
961 }
962
963 /* feedthrough hash */
966 nids = 0;
967 ids.clear();
968 for (unsigned int i = 0; i < m_full_feedthrough_range.size(); ++i)
969 {
970 const Range& range = m_full_feedthrough_range[i];
971 ConstRangeIterator rit(range);
972 for (const auto & exp_id: rit) {
973 HWIdentifier feedthroughId = feedthrough_Id( exp_id[m_bec_index],
974 exp_id[m_side_index],
975 exp_id[m_feedthrough_index] );
976 if(!(ids.insert(feedthroughId)).second){
977 ATH_MSG_ERROR("init_hashes: duplicated id for feedthrough nb = " + std::to_string(nids));
978 ATH_MSG_ERROR("expanded Id= " + show_to_string(feedthroughId));
979 }
980 nids++;
981 }
982 }
983 if(ids.size() != m_feedthroughHashMax)
984 {
985 ATH_MSG_ERROR("init_hashes: set size NOT EQUAL to feedthrough hash max. size " + std::to_string(ids.size()));
986 ATH_MSG_ERROR("hash max= " + std::to_string(m_feedthroughHashMax));
987 return (1);
988 }
989 nids=0;
990 first = ids.begin();
991 last = ids.end();
992 for (;first != last && nids < m_feedthrough_vec.size(); ++first)
993 {
994 m_feedthrough_vec[nids] = (*first) ;
995 nids++;
996 }
997
998 /* FEB hash */
999 /*==========*/
1000 m_febHashMax = m_full_feb_range.cardinality();
1001 m_feb_vec.resize(m_febHashMax);
1002 nids = 0;
1003 ids.clear();
1004 for (unsigned int i = 0; i < m_full_feb_range.size(); ++i)
1005 {
1006 const Range& range = m_full_feb_range[i];
1007 ConstRangeIterator rit(range);
1008 for (const auto & exp_id :rit)
1009 {
1010 HWIdentifier febId = feb_Id( exp_id[m_bec_index],
1011 exp_id[m_side_index],
1012 exp_id[m_feedthrough_index],
1013 exp_id[m_slot_index] );
1014 if(!(ids.insert(febId)).second)
1015 {
1016 ATH_MSG_ERROR("init_hashes: duplicated id for FEB nb = " + std::to_string(nids));
1017 ATH_MSG_ERROR("expanded Id= " + show_to_string(febId));
1018 }
1019 nids++;
1020 }
1021 }
1022 if(ids.size() != m_febHashMax)
1023 {
1024 ATH_MSG_ERROR("init_hashes: set size NOT EQUAL to FEB hash max. size " + std::to_string(ids.size()));
1025 ATH_MSG_ERROR("hash max " + std::to_string(m_febHashMax));
1026 return (1);
1027 }
1028 nids=0;
1029 first = ids.begin();
1030 last = ids.end();
1031 for (;first != last && nids < m_feb_vec.size(); ++first)
1032 {
1033 m_feb_vec[nids] = (*first) ;
1034 nids++;
1035 }
1036
1037
1038 return (0);
1039}
#define ATH_MSG_ERROR(x)

◆ initialize_from_dictionary()

int LArOnlineID_Base::initialize_from_dictionary ( const IdDictMgr & dict_mgr)
virtual

initialization from the identifier dictionary

Reimplemented from AtlasDetectorID.

Reimplemented in LArOnline_SuperCellID, and LArOnlineID.

Definition at line 318 of file LArOnlineID_Base.cxx.

320{
321 ATH_MSG_INFO("initialize_from_dictionary");
322
323 // Check whether this helper should be reinitialized
324 if (!reinitialize(dict_mgr)) {
325 ATH_MSG_DEBUG("Request to reinitialize not satisfied - tags have not changed");
326 return (0);
327 }
328 else {
329 ATH_MSG_DEBUG("(Re)initialize");
330 }
331
332 // init base object
333 if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)) return (1);
334 m_dict = dict_mgr.find_dictionary ("LArCalorimeter");
335 if(!m_dict) {
336 ATH_MSG_ERROR("initialize_from_dictionary - cannot access LArCalorimeter dictionary");
337 return 1;
338 }
339
340 // Register version of the dictionary used
341 if (register_dict_tag(dict_mgr, "LArCalorimeter")) return(1);
342
343 // initialize dictionary version
344 AtlasDetectorID::setDictVersion(dict_mgr, "LArCalorimeter");
345
346 /* Initialize the field indices */
347// if(initLevelsFromDict()) return (1);
348 if(initLevelsFromDict(group())) return (1);
349
350
351 /* Find value for the field LAr Calorimeter */
352 const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS");
353 int larField = -1;
354 if (atlasDict->get_label_value("subdet", "LArCalorimeter", larField)) {
355 ATH_MSG_ERROR("Could not get value for label 'LArCalorimeter' of field 'subdet' in dictionary "
356 << atlasDict->name());
357 return (1);
358 }
359
360 /* Find value for the field LArOnline */
361 int larOnlineField = -4;
362 if (m_dict->get_label_value("part", "LArOnline", larOnlineField)) {
363 ATH_MSG_ERROR("Could not get value for label 'LArOnline' of field 'part' in dictionary "
364 << m_dict->name());
365 return (1);
366 }
367
368 /* Find value for the field calibLArOnline */
369 int larOnlineCalibField = -5;
370 if (m_dict->get_label_value("part", "LArOnlineCalib", larOnlineCalibField)) {
371 ATH_MSG_ERROR("Could not get value for label 'LArOnlineCalib' of field 'part' in dictionary "
372 << m_dict->name());
373 return (1);
374 }
375
376 /* Set up id for Region and range prefix */
377 ExpandedIdentifier region_id;
378 region_id.add(larField);
379 region_id.add(larOnlineField);
380 Range prefix;
381 /* Calib Multirange */
382 ExpandedIdentifier region_id2;
383 region_id2.add(larField);
384 region_id2.add(larOnlineCalibField);
385 Range prefix2;
386
387 /*Full range for all channels*/
388 m_full_laronline_range = m_dict->build_multirange( region_id , group(), prefix);
389 m_full_feb_range = m_dict->build_multirange( region_id , group(), prefix, "slot");
390 m_full_feedthrough_range = m_dict->build_multirange( region_id , group(), prefix, "feedthrough");
391
392 ATH_MSG_DEBUG("initialize_from_dictionary :");
393 ATH_MSG_DEBUG("feedthrough range -> " << (std::string)m_full_feedthrough_range);
394 ATH_MSG_DEBUG("feedthrough slot range -> " << (std::string)m_full_feb_range);
395 ATH_MSG_DEBUG("channel range -> " << (std::string)m_full_laronline_range);
396
397 /* calib */
398 /* Full range for calib channels */
399 m_full_calib_laronline_range = m_dict->build_multirange( region_id2 , group(), prefix2);
400 m_full_calib_module_range = m_dict->build_multirange( region_id2 , group(), prefix2, "slot");
401
402 ATH_MSG_DEBUG("=> initialize_from_dictionary : ");
403 ATH_MSG_DEBUG("=> Calib module range -> " << (std::string)m_full_calib_module_range);
404 ATH_MSG_DEBUG("=> Calib channel range -> " << (std::string)m_full_calib_laronline_range);
405
406 /* Setup the hash tables */
407 ATH_MSG_DEBUG("[initialize_from_dictionary] version= " << dictionaryVersion());
408 if( dictionaryVersion() == "fullAtlas" ) {
409 if(init_hashes()) return (1);
410 }
411
412 // Setup for hash calculation for channels (febs is further below)
413
414 // Febs have a uniform number of channels
415 // The lookup table only needs to contain the
416 // hash offset for each feb
417
418 // The implementation requires:
419
420 // 1) a lookup table for each feb containing hash offset
421 // 2) a decoder to access the "index" corresponding to the
422 // bec/side/ft/slot fields. These fields use x bits, so the
423 // vector has a length of 2**x.
424
425 /* Create decoder for fields bec to slot */
427 m_bec_impl.bits() +
428 m_side_impl.bits() +
429 m_feedthrough_impl.bits() +
430 m_slot_impl.bits();
431 IdDictFieldImplementation::size_type bits_offset = m_bec_impl.bits_offset();
432 m_bec_slot_impl.set_bits(bits, bits_offset);
433 int size = (1 << bits);
434
435 // Set up vector as lookup table for hash calculation.
436 m_chan_hash_calcs.resize(size);
437
438 for (unsigned int i = 0; i < m_febHashMax; ++i) {
439
440 HWIdentifier febId = feb_Id(i) ;
441
442 HashCalc hc;
443
444 HWIdentifier min = channel_Id ( febId, 0);
445
446 IdentifierHash min_hash = channel_Hash_binary_search(min);
447 hc.m_hash = min_hash;
449
450 if (m_bec_slot_impl.unpack(min) >= size) {
451 ATH_MSG_DEBUG("Min > " << size);
453 ATH_MSG_DEBUG(" " << std::to_string(m_bec_slot_impl.unpack(min)));
454 }
455 }
456
457 // Check channel hash calculation
458 for (unsigned int i = 0; i < m_channelHashMax; ++i) {
459 HWIdentifier id = channel_Id(i);
460 if (channel_Hash(id) != i) {
461 ATH_MSG_ERROR(" ***** Error channel ranges, id, hash, i = " << show_to_string(id));
462 ATH_MSG_ERROR(" , " << std::to_string(channel_Hash(id)));
463 ATH_MSG_ERROR(" , " << i);
464 }
465 }
466
467
468
469 // Setup for hash calculation for febs
470
471 // We calculate the feb hash by saving the hash of each
472 // feedthrough in a HashCalc object and then adding on the slot
473 // number for a particular feb
474
475 // The implementation requires:
476
477 // 1) a lookup table for each ft containing hash offset
478 // 2) a decoder to access the "index" corresponding to the
479 // bec/side/ft fields. These fields use x bits, so the
480 // vector has a length of 2**x.
481
482 /* Create decoder for fields bec to ft */
483 bits = m_bec_impl.bits() +
484 m_side_impl.bits() +
485 m_feedthrough_impl.bits();
486 bits_offset = m_bec_impl.bits_offset();
487 m_bec_ft_impl.set_bits(bits, bits_offset);
488 size = (1 << bits);
489
490 // Set up vector as lookup table for hash calculation.
491 m_feb_hash_calcs.resize(size);
492
493 // Get context for conversion to expanded ids
494 IdContext ftContext = feedthroughContext();
495 ExpandedIdentifier ftExpId;
496
497 for (unsigned int i = 0; i < m_feedthroughHashMax; ++i) {
498
499 HWIdentifier min = feedthrough_Id(i) ;
500
501 HashCalcFeb hc;
502
503 // Set the hash id for each feedthrough, and then check if one
504 // needs to also save the slot values
505 IdentifierHash min_hash = feb_Hash_binary_search(min);
506 hc.m_hash = min_hash;
507
508 // For each feedthrough we must check to see if the slot
509 // values are enumerated or not. If they are enumerate we must
510 // save the values in order to calculate the fed hash
511 if (get_expanded_id(min, ftExpId, &ftContext)) {
512 ATH_MSG_WARNING(" ***** Warning cannot get ft expanded id for " + show_to_string(min));
513 }
514 unsigned int nrangesFound = 0;
515 for (unsigned int i = 0; i < m_full_feb_range.size(); ++i) {
516 if (m_full_feb_range[i].match(ftExpId)) {
517 nrangesFound += 1;
518 const Range::field& slotField = m_full_feb_range[i][m_slot_index];
519 if (slotField.isEnumerated()) {
520 // save values
521 hc.m_slot_values = slotField.get_values();
522 }
523 }
524 }
525
526 // Similarly, if there is more than one range per feedthrough,
527 // this means that slot values are not a continuous range. In
528 // this case, as well, we save all possible slot values
529 if (nrangesFound > 1) {
530 for (unsigned int i = 0; i < m_full_feb_range.size(); ++i) {
531 if (m_full_feb_range[i].match(ftExpId)) {
532 const Range::field& slotField = m_full_feb_range[i][m_slot_index];
533 if (slotField.isBounded()) {
534 // save values
535 unsigned int nvalues = slotField.get_maximum() - slotField.get_minimum() + 1;
536 hc.m_slot_values.reserve(std::max(hc.m_slot_values.size()*3/2, hc.m_slot_values.size() + nvalues));
537 for (unsigned int j = 0; j < nvalues; ++j) {
538 hc.m_slot_values.push_back(j + slotField.get_minimum());
539 }
540 }
541 else {
542 ATH_MSG_WARNING(" ***** Warning feb range slot field is NOT both_bounded - id, slot mode: " +
543 show_to_string(min) + " enumerated");
544 }
545 }
546 }
547 }
548
549
550 // Set hash calculator
551 m_feb_hash_calcs[m_bec_ft_impl.unpack(min)] = std::move(hc);
552
553
554 if (m_bec_ft_impl.unpack(min) >= size) {
555 ATH_MSG_DEBUG("Min > " << size << " " << show_to_string(min) <<
556 " " << m_bec_ft_impl.unpack(min) << " " <<
557 min_hash);
558 }
559 }
560
561 // Check feb hash calculation
562 for (unsigned int i = 0; i < m_febHashMax; ++i) {
563 HWIdentifier id = feb_Id(i);
564 if (feb_Hash(id) != i) {
565 ATH_MSG_ERROR(" ***** Error feb ranges, id, hash, i = " <<
566 show_to_string(id) << " , " << feb_Hash(id) << " , " << i);
567 }
568 }
569
570 return 0;
571}
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
#define min(a, b)
Definition cfImp.cxx:40
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.
void add(element_type value)
Append a value into a new field.
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.
element_type get_minimum() const
Query the values.
bool isEnumerated() const
const element_vector & get_values() const
bool isBounded() const
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
IdentifierHash channel_Hash_binary_search(HWIdentifier channelId) const
IdentifierHash feb_Hash_binary_search(HWIdentifier channelId) const
IdentifierHash feb_Hash(HWIdentifier febId) const
Create feb hash identifiers from feb identifiers.
int initLevelsFromDict(const std::string &group_name)
bool match(std::string s1, std::string s2)
match the individual directories of two strings
Definition hcg.cxx:357

◆ initLevelsFromDict()

int LArOnlineID_Base::initLevelsFromDict ( const std::string & group_name)
protected

Definition at line 736 of file LArOnlineID_Base.cxx.

738{
739
740 if(!m_dict)
741 {
742 ATH_MSG_ERROR("initLevelsFromDict - dictionary NOT initialized");
743 return (1);
744 }
745
746 /* Find out which identifier field corresponds to each level.*/
747
748 m_lar_index = 999 ;
749 m_laronline_index = 999 ;
750 m_bec_index = 999 ;
751 m_side_index = 999 ;
752 m_feedthrough_index = 999 ;
753 m_slot_index = 999 ;
755 m_slar_index = 999 ;
756
757 // Save index to a DictionaryRegion for unpacking
758 const IdDictRegion* reg = m_dict->find_region("laronline-barrel");
759 if (reg)
760 {
761 m_laronlineRegion_index = reg->index();
762 }
763 else
764 {
765 ATH_MSG_ERROR("initLevelsFromDict - unable to find laronline region ");
766 return (1);
767 }
768 /* Find LAr field */
769 const IdDictField* field = m_dict->find_field("subdet") ;
770 if (field)
771 {
772 m_lar_index = field->index();
773 }
774 else
775 {
776 ATH_MSG_ERROR("initLevelsFromDict - unable to find 'subdet' field ");
777 return (1);
778 }
779
780 /* Find LArOnline field */
781 field = m_dict->find_field("part") ;
782 if (field)
783 {
784 m_laronline_index = field->index();
785 }
786 else
787 {
788 ATH_MSG_ERROR("initLevelsFromDict - unable to find 'part' field ");
789 return (1);
790 }
791
792 /* Find barrel-endcap field */
793 field = m_dict->find_field("barrel-ec") ;
794 if (field)
795 {
796 m_bec_index = field->index();
797 }
798 else
799 {
800 ATH_MSG_ERROR("initLevelsFromDict - unable to find 'barrel-endcap' field ");
801 return (1);
802 }
803
804 /* Find detector-side field */
805 field = m_dict->find_field("pos_neg") ;
806 if (field)
807 {
808 m_side_index = field->index();
809 }
810 else
811 {
812 ATH_MSG_ERROR("initLevelsFromDict - unable to find 'barrel-endcap' field ");
813 return (1);
814 }
815
816 /* Find feedthrough field */
817 std::string feedthrough_name;
818 if ( m_this_is_slar ){
819 feedthrough_name+="slar_feedthrough";
820 } else {
821 feedthrough_name+="feedthrough";
822 }
823 field = m_dict->find_field(feedthrough_name) ;
824 if (field) {
825 m_feedthrough_index = field->index();
826 }
827 else
828 {
829 ATH_MSG_ERROR("initLevelsFromDict - unable to find 'feedthrough' field ");
830 return (1);
831 }
832
833 /* Find slot field */
834 std::string slot_name;
835 if ( m_this_is_slar ){
836 slot_name+="slar_slot";
837 } else {
838 slot_name+="slot";
839 }
840 field = m_dict->find_field(slot_name) ;
841 if (field)
842 {
843 m_slot_index = field->index();
844 }
845 else
846 {
847 ATH_MSG_ERROR("initLevelsFromDict - unable to find 'slot' field ");
848 return (1);
849 }
850
851 /* Find channel_in_slot field */
852 std::string channel_name;
853 if ( m_this_is_slar ){
854 channel_name+="sch_in_slot";
855 } else {
856 channel_name+="channel_in_slot";
857 }
858 field = m_dict->find_field(channel_name) ;
859 if (field)
860 {
862 }
863 else
864 {
865 ATH_MSG_ERROR("initLevelsFromDict - unable to find 'channel_in_slot' field ");
866 return (1);
867 }
868
869 /* Find slar field */
870 if ( m_this_is_slar ) {
871 field = m_dict->find_field("is-slar") ;
872 if (field)
873 {
874 m_slar_index = field->index();
875 }
876 else
877 {
878 ATH_MSG_ERROR("initLevelsFromDict - unable to find 'slar' field ");
879 return (1);
880 }
881 } // end of m_this_is_slar
882
883 /* Set the field implementations */
884
885 const IdDictGroup* group = m_dict->find_group(group_name);
886 if ( !group ) {
887 ATH_MSG_ERROR("initLevelsFromDict - cannot find " << group_name);
888 } else {
889 m_laronlineRegion_index = group->region(0).index();
890 }
891
892 const IdDictRegion& region = m_dict->region(m_laronlineRegion_index);
893
901 if ( m_this_is_slar )
903
904 ATH_MSG_DEBUG("decode index and bit fields for each level:");
905 ATH_MSG_DEBUG("lar " << m_lar_impl.show_to_string());
906 ATH_MSG_DEBUG("online " << m_laronline_impl.show_to_string());
907 ATH_MSG_DEBUG("bec " << m_bec_impl.show_to_string());
908 ATH_MSG_DEBUG("side " << m_side_impl.show_to_string());
909 ATH_MSG_DEBUG("ft " << m_feedthrough_impl.show_to_string());
910 ATH_MSG_DEBUG("slot " << m_slot_impl.show_to_string());
911 ATH_MSG_DEBUG("channel " << m_channel_in_slot_impl.show_to_string());
912 if ( m_this_is_slar )
913 ATH_MSG_DEBUG("is-slar " << m_slar_impl.show_to_string());
914
915 return(0) ;
916}
const IdDictFieldImplementation & implementation(size_t i) const
std::string feedthrough_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)

◆ is_alfa()

bool AtlasDetectorID::is_alfa ( Identifier id) const
inlineinherited

Definition at line 794 of file AtlasDetectorID.h.

795{
796 bool result = false;
797 if(is_forward(id)) {
798 result = (abs(m_lar_part_impl.unpack(id)) == m_ALFA_ID);
799 }
800 return result;
801}
IdDictFieldImplementation m_lar_part_impl
bool is_forward(Identifier id) const

◆ is_bcm()

bool AtlasDetectorID::is_bcm ( Identifier id) const
inlineinherited

Definition at line 804 of file AtlasDetectorID.h.

805{
806 bool result = false;
807 if(is_forward(id)) {
808 result = (abs(m_lar_part_impl.unpack(id)) == m_BCM_ID);
809 }
810 return result;
811}

◆ is_calo() [1/2]

bool AtlasDetectorID::is_calo ( const ExpandedIdentifier & id) const
inherited

Definition at line 298 of file AtlasDetectorID.cxx.

298 {
299 return id.fields() > 0 && id[0] == m_CALO_ID;
300}

◆ is_calo() [2/2]

bool AtlasDetectorID::is_calo ( Identifier id) const
inlineinherited

Definition at line 560 of file AtlasDetectorID.h.

561{
562 return (m_det_impl.unpack(id) == m_CALO_ID);
563}

◆ is_csc() [1/2]

bool AtlasDetectorID::is_csc ( const ExpandedIdentifier & id) const
inherited

Definition at line 340 of file AtlasDetectorID.cxx.

340 {
341 return id.fields() > 4 && id[0] == m_MUON_ID && id[4] == m_CSC_ID;
342}

◆ is_csc() [2/2]

bool AtlasDetectorID::is_csc ( Identifier id) const
inlineinherited

Definition at line 744 of file AtlasDetectorID.h.

745{
746 bool result = false;
747 if (!is_muon(id)) return false;
748 unsigned int stationNameIndex = m_muon_station_name_impl.unpack(id);
749 unsigned int techBit = m_muon_tech_bits[stationNameIndex];
750 result = (is_muon(id) && (techBit == AtlasDetDescr::fAtlasCSC));
751 return result;
752}
bool is_muon(Identifier id) const
std::vector< unsigned int > m_muon_tech_bits
IdDictFieldImplementation m_muon_station_name_impl

◆ is_forward()

bool AtlasDetectorID::is_forward ( Identifier id) const
inlineinherited

Definition at line 788 of file AtlasDetectorID.h.

789{
790 return (m_det_impl.unpack(id) == m_FWD_ID);
791}

◆ is_hgtd() [1/2]

bool AtlasDetectorID::is_hgtd ( const ExpandedIdentifier & id) const
inherited

Definition at line 311 of file AtlasDetectorID.cxx.

311 {
312 return is_indet(id) && id.fields() > 1 && id[1] == m_HGTD_ID;
313}
bool is_indet(Identifier id) const

◆ is_hgtd() [2/2]

bool AtlasDetectorID::is_hgtd ( Identifier id) const
inlineinherited

Definition at line 647 of file AtlasDetectorID.h.

648{
649 bool result = false;
650 // Must check is_pixel to allow for special bits
651 // (don't need this check for 64-bit identifier, but leave it in for now)
652 if(is_indet(id) && !is_pixel(id)) {
653 result = (m_indet_part_impl.unpack(id) == m_HGTD_ID);
654 }
655 return result;
656}
bool is_pixel(Identifier id) const

◆ is_indet() [1/2]

bool AtlasDetectorID::is_indet ( const ExpandedIdentifier & id) const
inherited

Definition at line 286 of file AtlasDetectorID.cxx.

286 {
287 return id.fields() > 0 && id[0] == m_INDET_ID;
288}

◆ is_indet() [2/2]

bool AtlasDetectorID::is_indet ( Identifier id) const
inlineinherited

Definition at line 536 of file AtlasDetectorID.h.

537{
538 return (m_det_impl.unpack(id) == m_INDET_ID);
539}

◆ is_lar() [1/2]

bool AtlasDetectorID::is_lar ( const ExpandedIdentifier & id) const
inherited

Definition at line 289 of file AtlasDetectorID.cxx.

289 {
290 return id.fields() > 0 && id[0] == m_LAR_ID;
291}

◆ is_lar() [2/2]

bool AtlasDetectorID::is_lar ( Identifier id) const
inlineinherited

Definition at line 542 of file AtlasDetectorID.h.

543{
544 return (m_det_impl.unpack(id) == m_LAR_ID);
545}

◆ is_lar_dm()

bool AtlasDetectorID::is_lar_dm ( Identifier id) const
inlineinherited

LAr/Tile dead material:

Definition at line 589 of file AtlasDetectorID.h.

590{
591 bool result = false;
592 if (is_calo(id)) {
593 int temp = m_calo_side_impl.unpack(id);
594 result = (m_lar_dm_field.match(temp));
595 }
596 return result;
597}
Range::field m_lar_dm_field
IdDictFieldImplementation m_calo_side_impl
bool is_calo(Identifier id) const

◆ is_lar_em() [1/2]

bool AtlasDetectorID::is_lar_em ( const ExpandedIdentifier & id) const
inherited

Definition at line 321 of file AtlasDetectorID.cxx.

321 {
322 return is_lar(id) && id.fields() > 1 && std::abs(id[1]) == m_LAR_EM_ID;
323}
bool is_lar(Identifier id) const

◆ is_lar_em() [2/2]

bool AtlasDetectorID::is_lar_em ( Identifier id) const
inlineinherited

Definition at line 671 of file AtlasDetectorID.h.

672{
673 bool result = false;
674 if(is_lar(id)) {
675 result = (abs(m_lar_part_impl.unpack(id)) == m_LAR_EM_ID);
676 }
677 return result;
678}

◆ is_lar_fcal() [1/2]

bool AtlasDetectorID::is_lar_fcal ( const ExpandedIdentifier & id) const
inherited

Definition at line 328 of file AtlasDetectorID.cxx.

328 {
329 return is_lar(id) && id.fields() > 1 && std::abs(id[1]) == m_LAR_FCAL_ID;
330}

◆ is_lar_fcal() [2/2]

bool AtlasDetectorID::is_lar_fcal ( Identifier id) const
inlineinherited

Definition at line 692 of file AtlasDetectorID.h.

693{
694 bool result = false;
695 if(is_lar(id)) {
696 result = (abs(m_lar_part_impl.unpack(id)) == m_LAR_FCAL_ID);
697 }
698 return result;
699}

◆ is_lar_hec() [1/2]

bool AtlasDetectorID::is_lar_hec ( const ExpandedIdentifier & id) const
inherited

Definition at line 324 of file AtlasDetectorID.cxx.

324 {
325 return is_lar(id) && id.fields() > 1 && std::abs(id[1]) == m_LAR_HEC_ID;
326}

◆ is_lar_hec() [2/2]

bool AtlasDetectorID::is_lar_hec ( Identifier id) const
inlineinherited

Definition at line 682 of file AtlasDetectorID.h.

683{
684 bool result = false;
685 if(is_lar(id)) {
686 result = (abs(m_lar_part_impl.unpack(id)) == m_LAR_HEC_ID);
687 }
688 return result;
689}

◆ is_lar_minifcal() [1/2]

bool AtlasDetectorID::is_lar_minifcal ( const ExpandedIdentifier & id) const
inherited

Definition at line 332 of file AtlasDetectorID.cxx.

332 {
333 return is_lar_fcal(id) && id.fields() > 3 &&std::abs(id[3]) == 0;
334}
bool is_lar_fcal(Identifier id) const

◆ is_lar_minifcal() [2/2]

bool AtlasDetectorID::is_lar_minifcal ( Identifier id) const
inlineinherited

Definition at line 702 of file AtlasDetectorID.h.

703{
704 bool result = false;
705 if(is_lar_fcal(id)) {
706 result = (m_lar_fcal_module_impl.unpack(id) == 0);
707 }
708 return result;
709}
IdDictFieldImplementation m_lar_fcal_module_impl

◆ is_lucid()

bool AtlasDetectorID::is_lucid ( Identifier id) const
inlineinherited

Definition at line 814 of file AtlasDetectorID.h.

815{
816 bool result = false;
817 if(is_forward(id)) {
818 result = (abs(m_lar_part_impl.unpack(id)) == m_LUCID_ID);
819 }
820 return result;
821}

◆ is_lumi() [1/2]

bool AtlasDetectorID::is_lumi ( const ExpandedIdentifier & id) const
inherited

Definition at line 314 of file AtlasDetectorID.cxx.

314 {
315 return is_indet(id) && id.fields() > 1 && id[1] == m_LUMI_ID;
316}

◆ is_lumi() [2/2]

bool AtlasDetectorID::is_lumi ( Identifier id) const
inlineinherited

Definition at line 659 of file AtlasDetectorID.h.

660{
661 bool result = false;
662 // Must check is_pixel to allow for special bits
663 // (don't need this check for 64-bit identifier, but leave it in for now)
664 if(is_indet(id) && !is_pixel(id)) {
665 result = (m_indet_part_impl.unpack(id) == m_LUMI_ID);
666 }
667 return result;
668}

◆ is_lvl1_online()

bool AtlasDetectorID::is_lvl1_online ( Identifier id) const
inlineinherited

Definition at line 577 of file AtlasDetectorID.h.

578{
579 bool result = false;
580 if (is_calo(id)) {
581 int temp = m_calo_side_impl.unpack(id);
582 result = (m_lvl1_onl_field.match(temp));
583 }
584 return result;
585}
Range::field m_lvl1_onl_field

◆ is_lvl1_trig_towers()

bool AtlasDetectorID::is_lvl1_trig_towers ( Identifier id) const
inlineinherited

Definition at line 566 of file AtlasDetectorID.h.

567{
568 bool result = false;
569 if (is_calo(id)) {
570 int temp = m_calo_side_impl.unpack(id);
571 result = (m_lvl1_field.match(temp));
572 }
573 return result;
574}
Range::field m_lvl1_field

◆ is_mdt() [1/2]

bool AtlasDetectorID::is_mdt ( const ExpandedIdentifier & id) const
inherited

Definition at line 336 of file AtlasDetectorID.cxx.

336 {
337 return id.fields() > 4 && id[0] == m_MUON_ID && id[4] == m_MDT_ID;
338}

◆ is_mdt() [2/2]

bool AtlasDetectorID::is_mdt ( Identifier id) const
inlineinherited

Definition at line 712 of file AtlasDetectorID.h.

713{
714 bool result = false;
715 if (!is_muon(id)) return false;
716 unsigned int stationNameIndex = m_muon_station_name_impl.unpack(id);
717 unsigned int techBit = m_muon_tech_bits[stationNameIndex];
718 // MDT and RPC can only be destinguished by the additional bit in the ID
719 // since the station names are ambiguous
720 if (is_muon(id) && ((techBit == AtlasDetDescr::fAtlasMDT)
721 || (techBit == AtlasDetDescr::fAtlasRPC))) {
722 result = (m_muon_mdt_impl.unpack(id) == m_MDT_ID);
723 }
724 return result;
725}
IdDictFieldImplementation m_muon_mdt_impl

◆ is_mm() [1/2]

bool AtlasDetectorID::is_mm ( const ExpandedIdentifier & id) const
inherited

Definition at line 356 of file AtlasDetectorID.cxx.

356 {
357 return id.fields() > 4 && id[0] == m_MUON_ID && id[4] == m_MM_ID;
358}

◆ is_mm() [2/2]

bool AtlasDetectorID::is_mm ( Identifier id) const
inlineinherited

Definition at line 766 of file AtlasDetectorID.h.

767{
768 bool result = false;
769 if (!is_muon(id)) return false;
770 unsigned int stationNameIndex = m_muon_station_name_impl.unpack(id);
771 unsigned int techBit = m_muon_tech_bits[stationNameIndex];
772 result = (is_muon(id) && (techBit == AtlasDetDescr::fAtlasMM));
773 return result;
774}

◆ is_muon() [1/2]

bool AtlasDetectorID::is_muon ( const ExpandedIdentifier & id) const
inherited

Definition at line 295 of file AtlasDetectorID.cxx.

295 {
296 return id.fields() > 0 && id[0] == m_MUON_ID;
297}

◆ is_muon() [2/2]

bool AtlasDetectorID::is_muon ( Identifier id) const
inlineinherited

Definition at line 554 of file AtlasDetectorID.h.

555{
556 return (m_det_impl.unpack(id) == m_MUON_ID);
557}

◆ is_pixel() [1/2]

bool AtlasDetectorID::is_pixel ( const ExpandedIdentifier & id) const
inherited

Definition at line 301 of file AtlasDetectorID.cxx.

301 {
302 return is_indet(id) && id.fields() > 1 && id[1] == m_PIXEL_ID;
303}

◆ is_pixel() [2/2]

bool AtlasDetectorID::is_pixel ( Identifier id) const
inlineinherited

Definition at line 613 of file AtlasDetectorID.h.

614{
615 bool result = false;
616 if(is_indet(id)) {
617 result = (m_indet_part_impl.unpack(id) == m_PIXEL_ID);
618 }
619 return result;
620}

◆ is_plr() [1/2]

bool AtlasDetectorID::is_plr ( const ExpandedIdentifier & id) const
inherited

Definition at line 317 of file AtlasDetectorID.cxx.

317 {
318 return is_lumi(id) && id.fields() > 2 && id[2] == m_LUMI_PLR_ID;
319}
bool is_lumi(Identifier id) const

◆ is_plr() [2/2]

bool AtlasDetectorID::is_plr ( Identifier id) const
inherited

◆ is_rpc() [1/2]

bool AtlasDetectorID::is_rpc ( const ExpandedIdentifier & id) const
inherited

Definition at line 344 of file AtlasDetectorID.cxx.

344 {
345 return id.fields() > 4 && id[0] == m_MUON_ID && id[4] == m_RPC_ID;
346}

◆ is_rpc() [2/2]

bool AtlasDetectorID::is_rpc ( Identifier id) const
inlineinherited

Definition at line 728 of file AtlasDetectorID.h.

729{
730 bool result = false;
731 if (!is_muon(id)) return false;
732 unsigned int stationNameIndex = m_muon_station_name_impl.unpack(id);
733 unsigned int techBit = m_muon_tech_bits[stationNameIndex];
734 // MDT and RPC can only be destinguished by the additional bit in the ID
735 // since the station names are ambiguous
736 if (is_muon(id) && ((techBit == AtlasDetDescr::fAtlasMDT)
737 || (techBit == AtlasDetDescr::fAtlasRPC))) {
738 result = (m_muon_rpc_impl.unpack(id) == m_RPC_ID);
739 }
740 return result;
741}
IdDictFieldImplementation m_muon_rpc_impl

◆ is_sct() [1/2]

bool AtlasDetectorID::is_sct ( const ExpandedIdentifier & id) const
inherited

Definition at line 305 of file AtlasDetectorID.cxx.

305 {
306 return is_indet(id) && id.fields() > 1 && id[1] == m_SCT_ID;
307}

◆ is_sct() [2/2]

bool AtlasDetectorID::is_sct ( Identifier id) const
inlineinherited

Definition at line 623 of file AtlasDetectorID.h.

624{
625 bool result = false;
626 // Must check is_pixel to allow for special bits
627 // (don't need this check for 64-bit identifier, but leave it in for now)
628 if(is_indet(id) && !is_pixel(id)) {
629 result = (m_indet_part_impl.unpack(id) == m_SCT_ID);
630 }
631 return result;
632}

◆ is_slar()

int LArOnlineID_Base::is_slar ( const HWIdentifier id) const

Return whether the channel is in slar or not is_ slar = [0,1] in all FEB.

Definition at line 1679 of file LArOnlineID_Base.cxx.

1681{
1682 return (m_slar_impl.unpack(id));
1683}

◆ is_stgc() [1/2]

bool AtlasDetectorID::is_stgc ( const ExpandedIdentifier & id) const
inherited

Definition at line 352 of file AtlasDetectorID.cxx.

352 {
353 return id.fields() > 4 && id[0] == m_MUON_ID && id[4] == m_STGC_ID;
354}

◆ is_stgc() [2/2]

bool AtlasDetectorID::is_stgc ( Identifier id) const
inlineinherited

Definition at line 777 of file AtlasDetectorID.h.

778{
779 bool result = false;
780 if (!is_muon(id)) return false;
781 unsigned int stationNameIndex = m_muon_station_name_impl.unpack(id);
782 unsigned int techBit = m_muon_tech_bits[stationNameIndex];
783 result = (is_muon(id) && (techBit == AtlasDetDescr::fAtlasSTGC));
784 return result;
785}

◆ is_tgc() [1/2]

bool AtlasDetectorID::is_tgc ( const ExpandedIdentifier & id) const
inherited

Definition at line 348 of file AtlasDetectorID.cxx.

348 {
349 return id.fields() > 4 && id[0] == m_MUON_ID && id[4] == m_TGC_ID;
350}

◆ is_tgc() [2/2]

bool AtlasDetectorID::is_tgc ( Identifier id) const
inlineinherited

Definition at line 755 of file AtlasDetectorID.h.

756{
757 bool result = false;
758 if (!is_muon(id)) return false;
759 unsigned int stationNameIndex = m_muon_station_name_impl.unpack(id);
760 unsigned int techBit = m_muon_tech_bits[stationNameIndex];
761 result = (is_muon(id) && (techBit == AtlasDetDescr::fAtlasTGC));
762 return result;
763}

◆ is_tile() [1/2]

bool AtlasDetectorID::is_tile ( const ExpandedIdentifier & id) const
inherited

Definition at line 292 of file AtlasDetectorID.cxx.

292 {
293 return id.fields() > 0 && id[0] == m_TILE_ID;
294}

◆ is_tile() [2/2]

bool AtlasDetectorID::is_tile ( Identifier id) const
inlineinherited

Definition at line 548 of file AtlasDetectorID.h.

549{
550 return (m_det_impl.unpack(id) == m_TILE_ID);
551}

◆ is_tile_dm()

bool AtlasDetectorID::is_tile_dm ( Identifier id) const
inlineinherited

Definition at line 601 of file AtlasDetectorID.h.

602{
603 bool result = false;
604 if (is_calo(id)) {
605 int temp = m_calo_side_impl.unpack(id);
606 result = (m_tile_dm_field.match(temp));
607 }
608 return result;
609}
Range::field m_tile_dm_field

◆ is_trt() [1/2]

bool AtlasDetectorID::is_trt ( const ExpandedIdentifier & id) const
inherited

Definition at line 308 of file AtlasDetectorID.cxx.

308 {
309 return is_indet(id) && id.fields() > 1;
310}

◆ is_trt() [2/2]

bool AtlasDetectorID::is_trt ( Identifier id) const
inlineinherited

Definition at line 635 of file AtlasDetectorID.h.

636{
637 bool result = false;
638 // Must check is_pixel to allow for special bits
639 // (don't need this check for 64-bit identifier, but leave it in for now)
640 if(is_indet(id) && !is_pixel(id)) {
641 result = (m_indet_part_impl.unpack(id) == m_TRT_ID);
642 }
643 return result;
644}

◆ is_zdc()

bool AtlasDetectorID::is_zdc ( Identifier id) const
inlineinherited

Definition at line 824 of file AtlasDetectorID.h.

825{
826 bool result = false;
827 if(is_forward(id)) {
828 result = (abs(m_lar_part_impl.unpack(id)) == m_ZDC_ID);
829 }
830 return result;
831}

◆ isCalibration()

bool LArOnlineID_Base::isCalibration ( const HWIdentifier id) const

Definition at line 1493 of file LArOnlineID_Base.cxx.

1495{
1496 int bec= barrel_ec(id);
1497 int ft = feedthrough(id);
1498 int sl = slot(id);
1499 return ( (bec==0 && sl==15)
1500 ||
1501 ( bec==1 && sl==15 &&
1502 (ft==0 ||
1503 ft==1 ||
1504 ft==4 ||
1505 ft==5 ||
1506 ft==7 ||
1507 ft==8 ||
1508 ft==11 ||
1509 ft==12 ||
1510 ft==13 ||
1511 ft==14 ||
1512 ft==17 ||
1513 ft==18 ||
1514 ft==19 ||
1515 ft==20 ||
1516 ft==23 ||
1517 ft==24 )
1518 )
1519 ||
1520 ( barrel_ec(id)==1 &&
1521 (sl==3 || sl==4 || sl==12) &&
1522 (ft==3 ||
1523 ft==10 ||
1524 ft==16 ||
1525 ft==22 )
1526 )
1527 ||
1528 ( barrel_ec(id)==1 && sl==16 )
1529 ||
1530 ( barrel_ec(id)==1 && ft==27 && sl==11 )
1531 );
1532}

◆ isEmBarrelOnline()

bool LArOnlineID_Base::isEmBarrelOnline ( const HWIdentifier id) const

Definition at line 1426 of file LArOnlineID_Base.cxx.

1428{/* redefined to isEMBchannel() */
1429 return (isEMBchannel(id));
1430}
bool isEMBchannel(const HWIdentifier id) const

◆ isEMBchannel()

bool LArOnlineID_Base::isEMBchannel ( const HWIdentifier id) const
Returns
true if the Id belongs to a subsystem

Definition at line 1358 of file LArOnlineID_Base.cxx.

1360{
1361 return (barrel_ec(id)==0);
1362}

◆ isEMBPS()

bool LArOnlineID_Base::isEMBPS ( const HWIdentifier id) const

Definition at line 1371 of file LArOnlineID_Base.cxx.

1373{
1374 int bec= barrel_ec(id);
1375 int sl = slot(id);
1376 return (
1377 bec == 0 && sl == 1
1378 );
1379}

◆ isEMECchannel()

virtual bool LArOnlineID_Base::isEMECchannel ( const HWIdentifier id) const
pure virtual

Implemented in LArOnline_SuperCellID, and LArOnlineID.

◆ isEMECinHECchannel()

bool LArOnlineID_Base::isEMECinHECchannel ( const HWIdentifier id) const

Definition at line 1583 of file LArOnlineID_Base.cxx.

1585{/* re-definition with isEMECIW */
1586 return isEMECIW(id);
1587}
virtual bool isEMECIW(const HWIdentifier id) const =0

◆ isEMECIW()

virtual bool LArOnlineID_Base::isEMECIW ( const HWIdentifier id) const
pure virtual

Implemented in LArOnline_SuperCellID, and LArOnlineID.

◆ isEMECOW()

virtual bool LArOnlineID_Base::isEMECOW ( const HWIdentifier id) const
pure virtual

Implemented in LArOnline_SuperCellID, and LArOnlineID.

◆ isEMECPS()

bool LArOnlineID_Base::isEMECPS ( const HWIdentifier id) const

Definition at line 1381 of file LArOnlineID_Base.cxx.

1383{/* redefinition (bug fix) */
1384 return (isEMECOW(id) && slot(id)==1);
1385}
virtual bool isEMECOW(const HWIdentifier id) const =0

◆ isEmEndcapOnline()

bool LArOnlineID_Base::isEmEndcapOnline ( const HWIdentifier id) const

Definition at line 1443 of file LArOnlineID_Base.cxx.

1445{/* redefinition */
1446 return isEMECchannel(id);
1447}
virtual bool isEMECchannel(const HWIdentifier id) const =0

◆ isEmEndcapSpecialOnline()

bool LArOnlineID_Base::isEmEndcapSpecialOnline ( const HWIdentifier id) const

Definition at line 1481 of file LArOnlineID_Base.cxx.

1483{
1484 int ft = feedthrough(id);
1485 return ( barrel_ec(id)==1 &&
1486 (ft==2 ||
1487 ft==9 ||
1488 ft==15 ||
1489 ft==21 )
1490 );
1491}

◆ isEmEndcapStandardOnline()

bool LArOnlineID_Base::isEmEndcapStandardOnline ( const HWIdentifier id) const

Definition at line 1458 of file LArOnlineID_Base.cxx.

1460{
1461 int ft = feedthrough(id);
1462 return ( barrel_ec(id)==1 &&
1463 (ft==0 ||
1464 ft==1 ||
1465 ft==4 ||
1466 ft==5 ||
1467 ft==7 ||
1468 ft==8 ||
1469 ft==11 ||
1470 ft==12 ||
1471 ft==13 ||
1472 ft==14 ||
1473 ft==17 ||
1474 ft==18 ||
1475 ft==19 ||
1476 ft==20 ||
1477 ft==23 ||
1478 ft==24)
1479 );
1480}

◆ isEndcapOnline()

bool LArOnlineID_Base::isEndcapOnline ( const HWIdentifier id) const

Definition at line 1432 of file LArOnlineID_Base.cxx.

1434{
1435 return (barrel_ec(id)==1);
1436}

◆ isFCALchannel()

bool LArOnlineID_Base::isFCALchannel ( const HWIdentifier id) const

Definition at line 1363 of file LArOnlineID_Base.cxx.

1365{
1366 return ( barrel_ec(id)==1 && feedthrough(id) == 6 );
1367}

◆ isFcalOnline()

bool LArOnlineID_Base::isFcalOnline ( const HWIdentifier id) const

Definition at line 1438 of file LArOnlineID_Base.cxx.

1440{/* redefinition (was redundant with isFCALchannel) */
1441 return isFCALchannel(id);
1442}
bool isFCALchannel(const HWIdentifier id) const

◆ isHECchannel()

virtual bool LArOnlineID_Base::isHECchannel ( const HWIdentifier id) const
pure virtual

Implemented in LArOnline_SuperCellID, and LArOnlineID.

◆ isHecOnline()

bool LArOnlineID_Base::isHecOnline ( const HWIdentifier id) const

Definition at line 1543 of file LArOnlineID_Base.cxx.

1545{
1546 /* Must be used with CARE !
1547 * This method returns true for all slots/channel in HEC crates,
1548 * thus including the EMEC slot/channels that are present
1549 * in slot 1 and slot 2 of HEC crates !
1550 * To access specifically EMEC in HEC slot/channel, you then
1551 * have to use isEMECinHECchannel()
1552 */
1553 int ft = feedthrough(id);
1554 return (
1555 //(slot(id)!=1 && slot(id)!= 2) &&
1556 barrel_ec(id)==1 &&
1557 (ft==3 ||
1558 ft==10 ||
1559 ft==16 ||
1560 ft==22 )
1561 );
1562}

◆ isHecOnlineFebId()

bool LArOnlineID_Base::isHecOnlineFebId ( const HWIdentifier febId) const

Definition at line 1564 of file LArOnlineID_Base.cxx.

1566{
1567 /* Must be used with CARE !
1568 * This method returns true for all slots/channel in HEC crates,
1569 * thus including the EMEC slot/channels that are present
1570 * in slot 1 and slot 2 of HEC crates !
1571 * To access specifically EMEC in HEC slot/channel, you then
1572 * have to use isEMECinHECchannel()
1573 */
1574 int ft = feedthrough(febId);
1575 return ( barrel_ec(febId)==1 &&
1576 (ft==3 ||
1577 ft==10 ||
1578 ft==16 ||
1579 ft==22 )
1580 );
1581}

◆ isNotWarmCableConnected()

bool LArOnlineID_Base::isNotWarmCableConnected ( const HWIdentifier id) const

Definition at line 1394 of file LArOnlineID_Base.cxx.

1396{
1397 int ft = feedthrough(id);
1398 int sl = slot(id);
1399 int ch = channel(id);
1400 return (
1401 (
1402 isEMBchannel(id) &&
1403 ( (-1 < ft && ft < 32) &&
1404 ( sl == 14 ) &&
1405 ( 63 < ch && ch < 128 )
1406 )
1407 )
1408 ||
1409 (
1410 isEMECchannel(id) && sl == 1 &&
1411 (ft == 2 || ft == 9 || ft == 15 || ft == 21 ) &&
1412 (63 < ch && ch < 128)
1413 )
1414 );
1415}

◆ isPS()

bool LArOnlineID_Base::isPS ( const HWIdentifier id) const

Definition at line 1387 of file LArOnlineID_Base.cxx.

1389{/* redefinition with isEMBPS and isEMECPS */
1390 return ( isEMBPS(id) || isEMECPS(id));
1391}
bool isEMECPS(const HWIdentifier id) const
bool isEMBPS(const HWIdentifier id) const

◆ isValidId()

bool LArOnlineID_Base::isValidId ( const HWIdentifier id) const

Returns false if the identifier is not a LAr-online id or any of the sub-fields is out of range.


Definition at line 1044 of file LArOnlineID_Base.cxx.

1044 {
1045
1046
1047 const int larid=m_lar_impl.unpack(id);
1048 const int laronlineid=m_laronline_impl.unpack(id);
1049 if (larid!=lar_field_value()) return false;
1050
1051 if (laronlineid!=s_lar_online_field_value && laronlineid!=s_lar_onlineCalib_field_value) return false;
1052
1053 const int channel=m_channel_in_slot_impl.unpack(id);
1054 if (channel<0 || channel>128) return false;
1055
1056 const int bec=m_bec_impl.unpack(id);
1057 const int ft=m_feedthrough_impl.unpack(id);
1058 const int slot=m_slot_impl.unpack(id);
1059 if (slot<1) return false;
1060 if (ft<0) return false;
1061 if (bec==0) { // Barrel case
1062 if (ft>31) return false;
1063 if (slot>14) return false;
1064 }
1065 else { //Endcap case
1066 if (ft>27) return false;
1067 if (ft==2 || ft==9 || ft==15 || ft==21){ //Special crate
1068 if (slot >15) return false;
1069 }
1070 else if (ft==6) { //FCAL
1071 if (slot>15) return false;
1072 }
1073 else if (ft>24 && ft<28) { //sFCAL
1074 if (slot>10) return false;
1075 }
1076 else if (ft==3 || ft==10 || ft==16 || ft==22) { //HEC
1077 if (slot==3 || slot==4 || slot>10) return false;
1078 }
1079 else //standard crate
1080 if (slot>13) return false;
1081 }//end endcap
1082 return true;
1083}

◆ lar()

Identifier AtlasDetectorID::lar ( void ) const
inherited

Definition at line 64 of file AtlasDetectorID.cxx.

64 {
65 Identifier result{0};
66 // Pack field
67 m_det_impl.pack(lar_field_value(), result);
68 return result;
69}

◆ lar_dm()

Identifier AtlasDetectorID::lar_dm ( void ) const
inherited

Definition at line 148 of file AtlasDetectorID.cxx.

148 {
149 Identifier result{0};
150 // Pack field
151 m_det_impl.pack(calo_field_value(), result);
152 m_calo_side_impl.pack(-4, result);
153 return result;
154}

◆ lar_em()

Identifier AtlasDetectorID::lar_em ( void ) const
inherited

Definition at line 132 of file AtlasDetectorID.cxx.

132 {
133 Identifier result{0};
134 // Pack field
135 m_det_impl.pack(lar_field_value(), result);
136 m_lar_part_impl.pack(m_LAR_EM_ID, result);
137 return result;
138}

◆ lar_em_exp()

ExpandedIdentifier AtlasDetectorID::lar_em_exp ( void ) const
protectedinherited

LAr.

Definition at line 1119 of file AtlasDetectorID.cxx.

1120{
1121 ExpandedIdentifier result(lar_exp());
1122 return (result << m_LAR_EM_ID);
1123}

◆ lar_em_field_value()

int AtlasDetectorID::lar_em_field_value ( ) const
inlineprotectedinherited

Definition at line 497 of file AtlasDetectorID.h.

497{return (m_LAR_EM_ID);}

◆ lar_exp()

ExpandedIdentifier AtlasDetectorID::lar_exp ( void ) const
protectedinherited

Definition at line 1049 of file AtlasDetectorID.cxx.

1050{
1051 ExpandedIdentifier result;
1052 return (result << m_LAR_ID);
1053}

◆ lar_fcal()

Identifier AtlasDetectorID::lar_fcal ( void ) const
inherited

Definition at line 172 of file AtlasDetectorID.cxx.

172 {
173 Identifier result{0};
174 // Pack field
175 m_det_impl.pack(lar_field_value(), result);
176 m_lar_part_impl.pack(m_LAR_FCAL_ID, result);
177 return result;
178}

◆ lar_fcal_exp()

ExpandedIdentifier AtlasDetectorID::lar_fcal_exp ( void ) const
protectedinherited

Definition at line 1133 of file AtlasDetectorID.cxx.

1134{
1135 ExpandedIdentifier result(lar_exp());
1136 return (result << m_LAR_FCAL_ID);
1137}

◆ lar_fcal_field_value()

int AtlasDetectorID::lar_fcal_field_value ( ) const
inlineprotectedinherited

Definition at line 503 of file AtlasDetectorID.h.

503{return (m_LAR_FCAL_ID);}

◆ lar_field_value()

int AtlasDetectorID::lar_field_value ( ) const
inlineprotectedinherited

Definition at line 467 of file AtlasDetectorID.h.

467{return (m_LAR_ID);}

◆ lar_hec()

Identifier AtlasDetectorID::lar_hec ( void ) const
inherited

Definition at line 164 of file AtlasDetectorID.cxx.

164 {
165 Identifier result{0};
166 // Pack field
167 m_det_impl.pack(lar_field_value(), result);
168 m_lar_part_impl.pack(m_LAR_HEC_ID, result);
169 return result;
170}

◆ lar_hec_exp()

ExpandedIdentifier AtlasDetectorID::lar_hec_exp ( void ) const
protectedinherited

Definition at line 1126 of file AtlasDetectorID.cxx.

1127{
1128 ExpandedIdentifier result(lar_exp());
1129 return (result << m_LAR_HEC_ID);
1130}

◆ lar_hec_field_value()

int AtlasDetectorID::lar_hec_field_value ( ) const
inlineprotectedinherited

Definition at line 500 of file AtlasDetectorID.h.

500{return (m_LAR_HEC_ID);}

◆ lar_lvl1()

Identifier AtlasDetectorID::lar_lvl1 ( void ) const
inherited

Definition at line 140 of file AtlasDetectorID.cxx.

140 {
141 Identifier result{0};
142 // Pack field
143 m_det_impl.pack(calo_field_value(), result);
144 m_calo_side_impl.pack(-1, result);
145 return result;
146}

◆ lucid_exp()

ExpandedIdentifier AtlasDetectorID::lucid_exp ( void ) const
protectedinherited

Definition at line 1154 of file AtlasDetectorID.cxx.

1155{
1156 ExpandedIdentifier result(fwd_exp());
1157 return (result << m_LUCID_ID);
1158}

◆ lucid_field_value()

int AtlasDetectorID::lucid_field_value ( ) const
inlineprotectedinherited

Definition at line 530 of file AtlasDetectorID.h.

530{return (m_LUCID_ID);}

◆ lumi()

Identifier AtlasDetectorID::lumi ( void ) const
inherited

Definition at line 124 of file AtlasDetectorID.cxx.

124 {
125 Identifier result{0};
126 // Pack field
127 m_det_impl.pack(indet_field_value(), result);
128 m_indet_part_impl.pack(m_LUMI_ID, result);
129 return result;
130}

◆ lumi_exp()

ExpandedIdentifier AtlasDetectorID::lumi_exp ( void ) const
protectedinherited

Definition at line 1112 of file AtlasDetectorID.cxx.

1113{
1114 ExpandedIdentifier result(indet_exp());
1115 return (result << m_LUMI_ID);
1116}

◆ lumi_field_value()

int AtlasDetectorID::lumi_field_value ( ) const
inlineprotectedinherited

Definition at line 491 of file AtlasDetectorID.h.

491{return (m_LUMI_ID);}

◆ mdt()

Identifier AtlasDetectorID::mdt ( void ) const
inherited

Definition at line 39 of file AtlasDetectorID.cxx.

39 {
40 return Identifier{};
41}

◆ mdt_field_value()

int AtlasDetectorID::mdt_field_value ( ) const
inlineprotectedinherited

Definition at line 506 of file AtlasDetectorID.h.

506{return (m_MDT_ID);}

◆ mm()

Identifier AtlasDetectorID::mm ( void ) const
inherited

Definition at line 54 of file AtlasDetectorID.cxx.

54 {
55 return Identifier{};
56}

◆ mm_field_value()

int AtlasDetectorID::mm_field_value ( ) const
inlineprotectedinherited

Definition at line 521 of file AtlasDetectorID.h.

521{return (m_MM_ID);}

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 163 of file AthMessaging.h.

164{
165 MsgStream* ms = m_msg_tls.get();
166 if (!ms) {
167 if (!m_initialized.test_and_set()) initMessaging();
168 ms = new MsgStream(m_imsg,m_nm);
169 m_msg_tls.reset( ms );
170 }
171
172 ms->setLevel (m_lvl);
173 return *ms;
174}
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
void initMessaging() const
Initialize our message level and MessageSvc.

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 178 of file AthMessaging.h.

179{ return msg() << lvl; }
MsgStream & msg() const
The standard message stream.

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152{
153 if (m_lvl <= lvl) {
154 msg() << lvl;
155 return true;
156 } else {
157 return false;
158 }
159}

◆ muon()

Identifier AtlasDetectorID::muon ( void ) const
inherited

Definition at line 78 of file AtlasDetectorID.cxx.

78 {
79 Identifier result{0};
80 // Pack field
81 m_det_impl.pack(muon_field_value(), result);
82 return result;
83}
int muon_field_value() const

◆ muon_exp()

ExpandedIdentifier AtlasDetectorID::muon_exp ( void ) const
protectedinherited

Definition at line 1063 of file AtlasDetectorID.cxx.

1064{
1065 ExpandedIdentifier result;
1066 return (result << m_MUON_ID);
1067}

◆ muon_field_value()

int AtlasDetectorID::muon_field_value ( ) const
inlineprotectedinherited

Definition at line 473 of file AtlasDetectorID.h.

473{return (m_MUON_ID);}

◆ pixel()

Identifier AtlasDetectorID::pixel ( void ) const
inherited

Definition at line 92 of file AtlasDetectorID.cxx.

92 {
93 Identifier result{0};
94 // Pack field
95 m_det_impl.pack(indet_field_value(), result);
96 m_indet_part_impl.pack(m_PIXEL_ID, result);
97 return result;
98}

◆ pixel_exp()

ExpandedIdentifier AtlasDetectorID::pixel_exp ( void ) const
protectedinherited

Inner Detector:

Definition at line 1084 of file AtlasDetectorID.cxx.

1085{
1086 ExpandedIdentifier result(indet_exp());
1087 return (result << m_PIXEL_ID);
1088}

◆ pixel_field_value()

int AtlasDetectorID::pixel_field_value ( ) const
inlineprotectedinherited

Definition at line 479 of file AtlasDetectorID.h.

479{return (m_PIXEL_ID);}

◆ plr_field_value()

int AtlasDetectorID::plr_field_value ( ) const
inlineprotectedinherited

Definition at line 494 of file AtlasDetectorID.h.

494{return (m_LUMI_PLR_ID);}

◆ pos_neg()

int LArOnlineID_Base::pos_neg ( const HWIdentifier id) const

Return the side of a hardware cell identifier
pos_neg = [0,1] positive-side or negative-side Barrel/Endcap.

Definition at line 1660 of file LArOnlineID_Base.cxx.

1662{
1663 return (m_side_impl.unpack(id));
1664}

◆ print()

void AtlasDetectorID::print ( Identifier id,
const IdContext * context = 0 ) const
inherited

Expanded print out of any identifier.

Definition at line 425 of file AtlasDetectorID.cxx.

425 {
426 ATH_MSG_INFO(print_to_string(id, context));
427}
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form

◆ print_to_string()

std::string AtlasDetectorID::print_to_string ( Identifier id,
const IdContext * context = 0 ) const
inherited

or provide the printout in string form

Definition at line 429 of file AtlasDetectorID.cxx.

430 {
431 // Print out for any Atlas identifier
432 std::string result;
434
435 // Do a generic printout of identifier from dictionary
436 unsigned int max_index = (context) ? context->end_index() : 999;
437
438 // Find the dictionary to use:
439 const IdDictDictionary *dict{nullptr};
440 ExpandedIdentifier expId;
441 ExpandedIdentifier prefix; // default is null prefix
442 Identifier compact = id;
443
444 if (is_indet(id)) {
445 dict = m_indet_dict;
446 } else if (is_lar(id)) {
447 dict = m_lar_dict;
448 } else if (is_tile(id)) {
449 dict = m_tile_dict;
450 } else if (is_muon(id)) {
451 dict = m_muon_dict;
452 } else if (is_lvl1_trig_towers(id) || is_lvl1_online(id) ||
453 is_lar_dm(id) || is_tile_dm(id)) {
454 dict = m_calo_dict;
455 } else if (is_forward(id)) {
456 dict = m_fwd_dict;
457 }
458
459 if (!dict) {
460 ATH_MSG_WARNING(__func__<<":"<<__LINE__<<" No dictionary could be associated to "<<id);
461 return result;
462 }
463 if (dict->unpack(m_group, compact, prefix, max_index," ", result)) {
464 return result;
465 }
466 }
467 return result;
468}
const IdDictDictionary * m_calo_dict
const IdDictDictionary * m_muon_dict
bool is_lar_dm(Identifier id) const
LAr/Tile dead material:
bool is_lvl1_online(Identifier id) const
const IdDictDictionary * m_tile_dict
const IdDictDictionary * m_fwd_dict
bool is_tile_dm(Identifier id) const
bool is_tile(Identifier id) const
const IdDictDictionary * m_indet_dict
const IdDictDictionary * m_lar_dict
bool is_lvl1_trig_towers(Identifier id) const
int unpack(const std::string &group, const Identifier &id, const ExpandedIdentifier &prefix, size_t index2, ExpandedIdentifier &unpackedId) const
Unpack the value_type id to an expanded Identifier for a given group, considering the provided prefix...

◆ register_dict_tag()

int AtlasDetectorID::register_dict_tag ( const IdDictMgr & dict_mgr,
const std::string & dict_name )
protectedinherited

Register the file and tag names for a particular IdDict dictionary.

Definition at line 203 of file AtlasDetectorID.cxx.

204 {
205 // Register version of dictionary dict_name
206
207 // Access dictionary by name
208 const IdDictDictionary *dict = dict_mgr.find_dictionary(dict_name);
209 if (!dict) {
210 ATH_MSG_ERROR(__func__<<":"<<__LINE__<<" No dictionary found");
211 return 1;
212
213 }
214 // Add in dict name, file name and version
215 m_dict_names.push_back(dict_name);
216 m_file_names.push_back(dict->file_name());
217 m_dict_tags.push_back(dict->dict_tag());
218 return 0;
219}
const std::string & dict_tag() const
Access to the dictionary tag.
const std::string & file_name() const
Access to file name.

◆ reinitialize()

bool AtlasDetectorID::reinitialize ( const IdDictMgr & dict_mgr)
protectedinherited

Test whether an idhelper should be reinitialized based on the change of tags.

Definition at line 223 of file AtlasDetectorID.cxx.

223 {
224 // If no tag has been registered, then reinitialize
225 if (m_dict_tags.size() == 0){
226 return true;
227 }
228 // If no dict names have been registered, then reinitialize
229 if (m_dict_names.size() == 0){
230 return true;
231 }
232 // Loop over dict names and check version tags
233 if (m_dict_names.size() != m_dict_tags.size()) {
234 ATH_MSG_ERROR("reinitialize: dict names and tags vectors not the same length ");
235 ATH_MSG_ERROR("names: " << m_dict_names.size() << " tags: " << m_dict_tags.size());
236 }
237 for (unsigned int i = 0; i < m_dict_names.size(); ++i) {
238 // Access dictionary by name
239 const IdDictDictionary *dict = dict_mgr.find_dictionary(m_dict_names[i]);
240 if (!dict) {
241 ATH_MSG_ERROR("reinitialize: could not find dict - " << m_dict_names[i]);
242 return false;
243 }
244 if (m_dict_tags[i] != dict->dict_tag()) {
245 // Remove all memory of versions
246 m_dict_names.clear();
247 m_dict_tags.clear();
248 m_file_names.clear();
249 return true;
250 }
251 }
252
253 // Tags match - don't reinitialize
254 return false;
255}

◆ rpc()

Identifier AtlasDetectorID::rpc ( void ) const
inherited

Definition at line 45 of file AtlasDetectorID.cxx.

45 {
46 return Identifier{};
47}

◆ rpc_field_value()

int AtlasDetectorID::rpc_field_value ( ) const
inlineprotectedinherited

Definition at line 512 of file AtlasDetectorID.h.

512{return (m_RPC_ID);}

◆ sct()

Identifier AtlasDetectorID::sct ( void ) const
inherited

Definition at line 100 of file AtlasDetectorID.cxx.

100 {
101 Identifier result{0};
102 // Pack field
103 m_det_impl.pack(indet_field_value(), result);
104 m_indet_part_impl.pack(m_SCT_ID, result);
105 return result;
106}

◆ sct_exp()

ExpandedIdentifier AtlasDetectorID::sct_exp ( void ) const
protectedinherited

Definition at line 1091 of file AtlasDetectorID.cxx.

1092{
1093 ExpandedIdentifier result(indet_exp());
1094 return (result << m_SCT_ID);
1095}

◆ sct_field_value()

int AtlasDetectorID::sct_field_value ( ) const
inlineprotectedinherited

Definition at line 482 of file AtlasDetectorID.h.

482{return (m_SCT_ID);}

◆ set_do_checks()

void AtlasDetectorID::set_do_checks ( bool do_checks)
overridevirtualinherited

Implements IdHelper.

Definition at line 481 of file AtlasDetectorID.cxx.

481 {
483}

◆ set_do_neighbours()

void AtlasDetectorID::set_do_neighbours ( bool do_neighbours)
overridevirtualinherited

Implements IdHelper.

Definition at line 489 of file AtlasDetectorID.cxx.

489 {
491}
virtual bool do_neighbours(void) const override
Neighbour initialization is performed by default One can switch or query this mode for any idHelper w...

◆ setDictVersion()

void AtlasDetectorID::setDictVersion ( const IdDictMgr & dict_mgr,
const std::string & name )
overrideprotectedvirtualinherited

Implements IdHelper.

Definition at line 493 of file AtlasDetectorID.cxx.

493 {
494 const IdDictDictionary *dict = dict_mgr.find_dictionary(name);
495 m_dict_version = dict->version();
496}
const std::string & version() const
Dictionary version.

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

◆ show()

void AtlasDetectorID::show ( Identifier id,
const IdContext * context = 0,
char sep = '.' ) const
inherited

Short print out of any identifier (optionally provide separation character - default is '.

'):

Definition at line 361 of file AtlasDetectorID.cxx.

361 {
362 ATH_MSG_INFO(show_to_string(id, context, sep));
363}

◆ show_to_string()

std::string AtlasDetectorID::show_to_string ( Identifier id,
const IdContext * context = 0,
char sep = '.' ) const
inherited

or provide the printout in string form

Definition at line 367 of file AtlasDetectorID.cxx.

367 {
368 // Do a generic printout of identifier
369
370 std::string result("Unable to decode id");
371 unsigned int max_index = (context) ? context->end_index() : 999;
372
373 if (!id.is_valid()) {
374 return "[INVALID]";
375 }
376
378 return result;
379
380 // Find the dictionary to use:
381 const IdDictDictionary *dict{nullptr};
382 ExpandedIdentifier expId{};
383 ExpandedIdentifier prefix{}; // default is null prefix
384 Identifier compact = id;
385
386 if (is_indet(id)) {
387 dict = m_indet_dict;
388 } else if (is_lar(id)) {
389 dict = m_lar_dict;
390 } else if (is_tile(id)) {
391 dict = m_tile_dict;
392 } else if (is_muon(id)) {
393 dict = m_muon_dict;
394 } else if (is_lvl1_trig_towers(id) || is_lvl1_online(id) ||
395 is_lar_dm(id) || is_tile_dm(id)) {
396 dict = m_calo_dict;
397 } else if (is_forward(id)) {
398 dict = m_fwd_dict;
399 }
400
401 if (!dict) {
402 ATH_MSG_WARNING(__func__<<" No detector type associated to id "<<id);
403 return result;
404 }
405 if (dict->unpack(m_group, compact, prefix, max_index, expId)) {
406 return result;
407 }
408
409 bool first = true;
410 result = "";
411 if ('.' == sep)
412 result = "[";
413 for (unsigned int i = 0; i < expId.fields(); ++i) {
414 if (first)
415 first = false;
416 else
417 result += sep;
418 result += std::format("{}", expId[i]);
419 }
420 if ('.' == sep)
421 result += "]";
422 return result;
423}
size_type fields() const

◆ slot()

int LArOnlineID_Base::slot ( const HWIdentifier id) const

Return the slot number of a hardware cell identifier:
slot = [1,15] Slot-ID in top part of the crate (higher phi)
Note that a crate is = Slot(1-15)L + Slot(1-15)R.

Definition at line 1667 of file LArOnlineID_Base.cxx.

1669{
1670 return (m_slot_impl.unpack(id));
1671}

◆ stgc()

Identifier AtlasDetectorID::stgc ( void ) const
inherited

Definition at line 51 of file AtlasDetectorID.cxx.

51 {
52 return Identifier{};
53}

◆ stgc_field_value()

int AtlasDetectorID::stgc_field_value ( ) const
inlineprotectedinherited

Definition at line 518 of file AtlasDetectorID.h.

518{return (m_STGC_ID);}

◆ subdet_context()

IdContext AtlasDetectorID::subdet_context ( void ) const
inherited

IdContext (indicates id length) for sub-detector.

Definition at line 186 of file AtlasDetectorID.cxx.

186 {
187 ExpandedIdentifier id{};
188 return IdContext{id, 0, m_SUBDET_INDEX};
189}
size_type m_SUBDET_INDEX

◆ tgc()

Identifier AtlasDetectorID::tgc ( void ) const
inherited

Definition at line 48 of file AtlasDetectorID.cxx.

48 {
49 return Identifier{};
50}

◆ tgc_field_value()

int AtlasDetectorID::tgc_field_value ( ) const
inlineprotectedinherited

Definition at line 515 of file AtlasDetectorID.h.

515{return (m_TGC_ID);}

◆ tile()

Identifier AtlasDetectorID::tile ( void ) const
inherited

Definition at line 71 of file AtlasDetectorID.cxx.

71 {
72 Identifier result{0};
73 // Pack field
74 m_det_impl.pack(tile_field_value(), result);
75 return result;
76}
int tile_field_value() const

◆ tile_dm()

Identifier AtlasDetectorID::tile_dm ( void ) const
inherited

Definition at line 156 of file AtlasDetectorID.cxx.

156 {
157 Identifier result{0};
158 // Pack field
159 m_det_impl.pack(calo_field_value(), result);
160 m_calo_side_impl.pack(-5, result);
161 return result;
162}

◆ tile_exp()

ExpandedIdentifier AtlasDetectorID::tile_exp ( void ) const
protectedinherited

Definition at line 1056 of file AtlasDetectorID.cxx.

1057{
1058 ExpandedIdentifier result;
1059 return (result << m_TILE_ID);
1060}

◆ tile_field_value()

int AtlasDetectorID::tile_field_value ( ) const
inlineprotectedinherited

Definition at line 470 of file AtlasDetectorID.h.

470{return (m_TILE_ID);}

◆ to_range()

std::string AtlasDetectorID::to_range ( const ExpandedIdentifier & id) const
protectedinherited

Definition at line 498 of file AtlasDetectorID.cxx.

498 {
499
500 // Build a string from the contents of an identifier
501 int fields = id.fields();
502 std::string result("");
503 for (int i = 0; i < fields; ++i) {
504 if (i > 0) {
505 result += '/'; // add '/' only if NOT last one
506 }
507 result += std::format("{}", id[i]);
508 }
509 return result;
510}

◆ trt()

Identifier AtlasDetectorID::trt ( void ) const
inherited

Definition at line 108 of file AtlasDetectorID.cxx.

108 {
109 Identifier result{0};
110 // Pack field
111 m_det_impl.pack(indet_field_value(), result);
112 m_indet_part_impl.pack(m_TRT_ID, result);
113 return result;
114}

◆ trt_exp()

ExpandedIdentifier AtlasDetectorID::trt_exp ( void ) const
protectedinherited

Definition at line 1098 of file AtlasDetectorID.cxx.

1099{
1100 ExpandedIdentifier result(indet_exp());
1101 return (result << m_TRT_ID);
1102}

◆ trt_field_value()

int AtlasDetectorID::trt_field_value ( ) const
inlineprotectedinherited

Definition at line 485 of file AtlasDetectorID.h.

485{return (m_TRT_ID);}

◆ zdc_exp()

ExpandedIdentifier AtlasDetectorID::zdc_exp ( void ) const
protectedinherited

Definition at line 1161 of file AtlasDetectorID.cxx.

1162{
1163 ExpandedIdentifier result(fwd_exp());
1164 return (result << m_ZDC_ID);
1165}

◆ zdc_field_value()

int AtlasDetectorID::zdc_field_value ( ) const
inlineprotectedinherited

Definition at line 532 of file AtlasDetectorID.h.

532{return (m_ZDC_ID);}

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_ALFA_ID

int AtlasDetectorID::m_ALFA_ID {1}
privateinherited

Definition at line 409 of file AtlasDetectorID.h.

409{1};

◆ m_atlas_dict

const IdDictDictionary* AtlasDetectorID::m_atlas_dict {}
privateinherited

Definition at line 420 of file AtlasDetectorID.h.

420{};

◆ m_BCM_ID

int AtlasDetectorID::m_BCM_ID {3}
privateinherited

Definition at line 410 of file AtlasDetectorID.h.

410{3};

◆ m_bec_ft_impl

IdDictFieldImplementation LArOnlineID_Base::m_bec_ft_impl
protected

Definition at line 511 of file LArOnlineID_Base.h.

◆ m_bec_impl

IdDictFieldImplementation LArOnlineID_Base::m_bec_impl
protected

Definition at line 506 of file LArOnlineID_Base.h.

◆ m_bec_index

size_type LArOnlineID_Base::m_bec_index
protected

Definition at line 475 of file LArOnlineID_Base.h.

◆ m_bec_slot_impl

IdDictFieldImplementation LArOnlineID_Base::m_bec_slot_impl
protected

Definition at line 512 of file LArOnlineID_Base.h.

◆ m_calib_channel_vec

std::vector<HWIdentifier> LArOnlineID_Base::m_calib_channel_vec
protected

Definition at line 501 of file LArOnlineID_Base.h.

◆ m_calib_module_vec

std::vector<HWIdentifier> LArOnlineID_Base::m_calib_module_vec
protected

Definition at line 500 of file LArOnlineID_Base.h.

◆ m_calibChannelHashMax

size_type LArOnlineID_Base::m_calibChannelHashMax
protected

Definition at line 499 of file LArOnlineID_Base.h.

◆ m_calibModuleHashMax

size_type LArOnlineID_Base::m_calibModuleHashMax
protected

Definition at line 498 of file LArOnlineID_Base.h.

◆ m_calo_dict

const IdDictDictionary* AtlasDetectorID::m_calo_dict {}
privateinherited

Definition at line 425 of file AtlasDetectorID.h.

425{};

◆ m_CALO_ID

int AtlasDetectorID::m_CALO_ID {10}
privateinherited

Definition at line 391 of file AtlasDetectorID.h.

391{10};

◆ m_calo_side_impl

IdDictFieldImplementation AtlasDetectorID::m_calo_side_impl
privateinherited

Definition at line 430 of file AtlasDetectorID.h.

◆ m_chan_hash_calcs

std::vector<HashCalc> LArOnlineID_Base::m_chan_hash_calcs
protected

Definition at line 532 of file LArOnlineID_Base.h.

◆ m_channel_in_slot_impl

IdDictFieldImplementation LArOnlineID_Base::m_channel_in_slot_impl
protected

Definition at line 510 of file LArOnlineID_Base.h.

◆ m_channel_in_slot_index

size_type LArOnlineID_Base::m_channel_in_slot_index
protected

Definition at line 479 of file LArOnlineID_Base.h.

◆ m_channel_vec

std::vector<HWIdentifier> LArOnlineID_Base::m_channel_vec
protected

Definition at line 493 of file LArOnlineID_Base.h.

◆ m_channelHashMax

size_type LArOnlineID_Base::m_channelHashMax
protected

Definition at line 489 of file LArOnlineID_Base.h.

◆ m_CSC_ID

int AtlasDetectorID::m_CSC_ID {1}
privateinherited

Definition at line 403 of file AtlasDetectorID.h.

403{1};

◆ m_det_impl

IdDictFieldImplementation AtlasDetectorID::m_det_impl
privateinherited

Definition at line 428 of file AtlasDetectorID.h.

◆ m_DET_INDEX

size_type AtlasDetectorID::m_DET_INDEX {999}
privateinherited

Definition at line 384 of file AtlasDetectorID.h.

384{999};

◆ m_dict

const IdDictDictionary* LArOnlineID_Base::m_dict
protected

Definition at line 482 of file LArOnlineID_Base.h.

◆ m_dict_names

std::vector<std::string> AtlasDetectorID::m_dict_names
protectedinherited

List of dictionary names used by this helper.

Definition at line 360 of file AtlasDetectorID.h.

◆ m_dict_tags

std::vector<std::string> AtlasDetectorID::m_dict_tags
protectedinherited

List of dictionary versions used by this helper.

Definition at line 366 of file AtlasDetectorID.h.

◆ m_dict_version

std::string AtlasDetectorID::m_dict_version
privateinherited

Definition at line 382 of file AtlasDetectorID.h.

◆ m_do_checks

bool AtlasDetectorID::m_do_checks {}
protectedinherited

Flag for subclasses to know whether or not to perform checks.

In general, this is set to false in optimized mode.

Definition at line 354 of file AtlasDetectorID.h.

354{};

◆ m_do_neighbours

bool AtlasDetectorID::m_do_neighbours {true}
protectedinherited

Flag for subclasses to know whether or not to perform neighbour initialization.

Definition at line 357 of file AtlasDetectorID.h.

357{true};

◆ m_feb_hash_calcs

std::vector<HashCalcFeb> LArOnlineID_Base::m_feb_hash_calcs
protected

Definition at line 531 of file LArOnlineID_Base.h.

◆ m_feb_vec

std::vector<HWIdentifier> LArOnlineID_Base::m_feb_vec
protected

Definition at line 492 of file LArOnlineID_Base.h.

◆ m_febHashMax

size_type LArOnlineID_Base::m_febHashMax
protected

Definition at line 488 of file LArOnlineID_Base.h.

◆ m_feedthrough_impl

IdDictFieldImplementation LArOnlineID_Base::m_feedthrough_impl
protected

Definition at line 508 of file LArOnlineID_Base.h.

◆ m_feedthrough_index

size_type LArOnlineID_Base::m_feedthrough_index
protected

Definition at line 477 of file LArOnlineID_Base.h.

◆ m_feedthrough_vec

std::vector<HWIdentifier> LArOnlineID_Base::m_feedthrough_vec
protected

Definition at line 491 of file LArOnlineID_Base.h.

◆ m_feedthroughHashMax

size_type LArOnlineID_Base::m_feedthroughHashMax
protected

Definition at line 487 of file LArOnlineID_Base.h.

◆ m_file_names

std::vector<std::string> AtlasDetectorID::m_file_names
protectedinherited

List of dictionary file names used by this helper.

Definition at line 363 of file AtlasDetectorID.h.

◆ m_full_calib_laronline_range

MultiRange LArOnlineID_Base::m_full_calib_laronline_range
protected

Definition at line 496 of file LArOnlineID_Base.h.

◆ m_full_calib_module_range

MultiRange LArOnlineID_Base::m_full_calib_module_range
protected

Definition at line 497 of file LArOnlineID_Base.h.

◆ m_full_channel_range

MultiRange LArOnlineID_Base::m_full_channel_range
protected

Definition at line 486 of file LArOnlineID_Base.h.

◆ m_full_feb_range

MultiRange LArOnlineID_Base::m_full_feb_range
protected

Definition at line 485 of file LArOnlineID_Base.h.

◆ m_full_feedthrough_range

MultiRange LArOnlineID_Base::m_full_feedthrough_range
protected

Definition at line 484 of file LArOnlineID_Base.h.

◆ m_full_laronline_range

MultiRange LArOnlineID_Base::m_full_laronline_range
protected

Definition at line 483 of file LArOnlineID_Base.h.

◆ m_fwd_dict

const IdDictDictionary* AtlasDetectorID::m_fwd_dict {}
privateinherited

Definition at line 426 of file AtlasDetectorID.h.

426{};

◆ m_FWD_ID

int AtlasDetectorID::m_FWD_ID {13}
privateinherited

Definition at line 408 of file AtlasDetectorID.h.

408{13};

◆ m_fwd_part_impl

IdDictFieldImplementation AtlasDetectorID::m_fwd_part_impl
privateinherited

Definition at line 436 of file AtlasDetectorID.h.

◆ m_group

std::string AtlasDetectorID::m_group
protectedinherited

Group name.

Definition at line 350 of file AtlasDetectorID.h.

◆ m_helper

AtlasDetectorIDHelper* AtlasDetectorID::m_helper {}
privateinherited

Definition at line 427 of file AtlasDetectorID.h.

427{};

◆ m_HGTD_ID

int AtlasDetectorID::m_HGTD_ID {4}
privateinherited

Definition at line 395 of file AtlasDetectorID.h.

395{4};

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_indet_dict

const IdDictDictionary* AtlasDetectorID::m_indet_dict {}
privateinherited

Definition at line 421 of file AtlasDetectorID.h.

421{};

◆ m_INDET_ID

int AtlasDetectorID::m_INDET_ID {2}
privateinherited

Definition at line 387 of file AtlasDetectorID.h.

387{2};

◆ m_indet_part_impl

IdDictFieldImplementation AtlasDetectorID::m_indet_part_impl
privateinherited

Definition at line 429 of file AtlasDetectorID.h.

◆ m_is_initialized_from_dict

bool AtlasDetectorID::m_is_initialized_from_dict {}
privateinherited

Definition at line 383 of file AtlasDetectorID.h.

383{};

◆ m_isHighLuminosityLHC

bool AtlasDetectorID::m_isHighLuminosityLHC {}
privateinherited

Definition at line 414 of file AtlasDetectorID.h.

414{};

◆ m_lar_dict

const IdDictDictionary* AtlasDetectorID::m_lar_dict {}
privateinherited

Definition at line 422 of file AtlasDetectorID.h.

422{};

◆ m_lar_dm_field

Range::field AtlasDetectorID::m_lar_dm_field
privateinherited

Definition at line 418 of file AtlasDetectorID.h.

◆ m_LAR_EM_ID

int AtlasDetectorID::m_LAR_EM_ID {1}
privateinherited

Definition at line 398 of file AtlasDetectorID.h.

398{1};

◆ m_LAR_FCAL_ID

int AtlasDetectorID::m_LAR_FCAL_ID {3}
privateinherited

Definition at line 400 of file AtlasDetectorID.h.

400{3};

◆ m_lar_fcal_module_impl

IdDictFieldImplementation AtlasDetectorID::m_lar_fcal_module_impl
privateinherited

Definition at line 432 of file AtlasDetectorID.h.

◆ m_LAR_FCAL_MODULE_INDEX

int AtlasDetectorID::m_LAR_FCAL_MODULE_INDEX {999}
privateinherited

Definition at line 401 of file AtlasDetectorID.h.

401{999};

◆ m_LAR_HEC_ID

int AtlasDetectorID::m_LAR_HEC_ID {2}
privateinherited

Definition at line 399 of file AtlasDetectorID.h.

399{2};

◆ m_LAR_ID

int AtlasDetectorID::m_LAR_ID {4}
privateinherited

Definition at line 388 of file AtlasDetectorID.h.

388{4};

◆ m_lar_impl

IdDictFieldImplementation LArOnlineID_Base::m_lar_impl
protected

Field Implementation.

Definition at line 504 of file LArOnlineID_Base.h.

◆ m_lar_index

size_type LArOnlineID_Base::m_lar_index
protected

Definition at line 473 of file LArOnlineID_Base.h.

◆ m_lar_part_impl

IdDictFieldImplementation AtlasDetectorID::m_lar_part_impl
privateinherited

Definition at line 431 of file AtlasDetectorID.h.

◆ m_laronline_impl

IdDictFieldImplementation LArOnlineID_Base::m_laronline_impl
protected

Definition at line 505 of file LArOnlineID_Base.h.

◆ m_laronline_index

size_type LArOnlineID_Base::m_laronline_index
protected

Definition at line 474 of file LArOnlineID_Base.h.

◆ m_laronlineRegion_index

size_type LArOnlineID_Base::m_laronlineRegion_index
protected

Definition at line 472 of file LArOnlineID_Base.h.

◆ m_LUCID_ID

int AtlasDetectorID::m_LUCID_ID {5}
privateinherited

Definition at line 411 of file AtlasDetectorID.h.

411{5};

◆ m_LUMI_ID

int AtlasDetectorID::m_LUMI_ID {3}
privateinherited

Definition at line 396 of file AtlasDetectorID.h.

396{3};

◆ m_LUMI_PLR_ID

int AtlasDetectorID::m_LUMI_PLR_ID {1}
privateinherited

Definition at line 397 of file AtlasDetectorID.h.

397{1};

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_lvl1_field

Range::field AtlasDetectorID::m_lvl1_field
privateinherited

Definition at line 416 of file AtlasDetectorID.h.

◆ m_lvl1_onl_field

Range::field AtlasDetectorID::m_lvl1_onl_field
privateinherited

Definition at line 417 of file AtlasDetectorID.h.

◆ m_MDT_ID

int AtlasDetectorID::m_MDT_ID {0}
privateinherited

Definition at line 402 of file AtlasDetectorID.h.

402{0};

◆ m_MM_ID

int AtlasDetectorID::m_MM_ID {5}
privateinherited

Definition at line 407 of file AtlasDetectorID.h.

407{5};

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_muon_dict

const IdDictDictionary* AtlasDetectorID::m_muon_dict {}
privateinherited

Definition at line 424 of file AtlasDetectorID.h.

424{};

◆ m_MUON_ID

int AtlasDetectorID::m_MUON_ID {7}
privateinherited

Definition at line 390 of file AtlasDetectorID.h.

390{7};

◆ m_muon_mdt_impl

IdDictFieldImplementation AtlasDetectorID::m_muon_mdt_impl
privateinherited

Definition at line 434 of file AtlasDetectorID.h.

◆ m_muon_rpc_impl

IdDictFieldImplementation AtlasDetectorID::m_muon_rpc_impl
privateinherited

Definition at line 435 of file AtlasDetectorID.h.

◆ m_muon_station_name_impl

IdDictFieldImplementation AtlasDetectorID::m_muon_station_name_impl
privateinherited

Definition at line 433 of file AtlasDetectorID.h.

◆ m_MUON_SUBDET_INDEX

size_type AtlasDetectorID::m_MUON_SUBDET_INDEX {999}
privateinherited

Definition at line 386 of file AtlasDetectorID.h.

386{999};

◆ m_muon_tech_bits

std::vector<unsigned int> AtlasDetectorID::m_muon_tech_bits
privateinherited

Definition at line 439 of file AtlasDetectorID.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_PIXEL_ID

int AtlasDetectorID::m_PIXEL_ID {1}
privateinherited

Definition at line 392 of file AtlasDetectorID.h.

392{1};

◆ m_RPC_ID

int AtlasDetectorID::m_RPC_ID {2}
privateinherited

Definition at line 404 of file AtlasDetectorID.h.

404{2};

◆ m_SCT_ID

int AtlasDetectorID::m_SCT_ID {2}
privateinherited

Definition at line 393 of file AtlasDetectorID.h.

393{2};

◆ m_side_impl

IdDictFieldImplementation LArOnlineID_Base::m_side_impl
protected

Definition at line 507 of file LArOnlineID_Base.h.

◆ m_side_index

size_type LArOnlineID_Base::m_side_index
protected

Definition at line 476 of file LArOnlineID_Base.h.

◆ m_slar_impl

IdDictFieldImplementation LArOnlineID_Base::m_slar_impl
protected

Definition at line 513 of file LArOnlineID_Base.h.

◆ m_slar_index

size_type LArOnlineID_Base::m_slar_index
protected

Definition at line 480 of file LArOnlineID_Base.h.

◆ m_slot_impl

IdDictFieldImplementation LArOnlineID_Base::m_slot_impl
protected

Definition at line 509 of file LArOnlineID_Base.h.

◆ m_slot_index

size_type LArOnlineID_Base::m_slot_index
protected

Definition at line 478 of file LArOnlineID_Base.h.

◆ m_STGC_ID

int AtlasDetectorID::m_STGC_ID {4}
privateinherited

Definition at line 406 of file AtlasDetectorID.h.

406{4};

◆ m_SUBDET_INDEX

size_type AtlasDetectorID::m_SUBDET_INDEX {999}
privateinherited

Definition at line 385 of file AtlasDetectorID.h.

385{999};

◆ m_TGC_ID

int AtlasDetectorID::m_TGC_ID {3}
privateinherited

Definition at line 405 of file AtlasDetectorID.h.

405{3};

◆ m_this_is_slar

bool LArOnlineID_Base::m_this_is_slar
protected

Definition at line 437 of file LArOnlineID_Base.h.

◆ m_tile_dict

const IdDictDictionary* AtlasDetectorID::m_tile_dict {}
privateinherited

Definition at line 423 of file AtlasDetectorID.h.

423{};

◆ m_tile_dm_field

Range::field AtlasDetectorID::m_tile_dm_field
privateinherited

Definition at line 419 of file AtlasDetectorID.h.

◆ m_TILE_ID

int AtlasDetectorID::m_TILE_ID {5}
privateinherited

Definition at line 389 of file AtlasDetectorID.h.

389{5};

◆ m_TRT_ID

int AtlasDetectorID::m_TRT_ID {3}
privateinherited

Definition at line 394 of file AtlasDetectorID.h.

394{3};

◆ m_ZDC_ID

int AtlasDetectorID::m_ZDC_ID {7}
privateinherited

Definition at line 412 of file AtlasDetectorID.h.

412{7};

The documentation for this class was generated from the following files: